samrat opened PR #1499 from fix-xmm-type
to master
:
When adding floating-point registers as callee-saved register to block- and function parameter lists add them as
F64X2
arguments.Fixes #1497
bjorn3 submitted PR Review.
bjorn3 created PR Review Comment:
This line should be removed.
samrat updated PR #1499 from fix-xmm-type
to master
:
When adding floating-point registers as callee-saved register to block- and function parameter lists add them as
F64X2
arguments.Fixes #1497
samrat updated PR #1499 from fix-xmm-type
to master
:
When adding floating-point registers as callee-saved register to block- and function parameter lists add them as
F64X2
arguments.Fixes #1497
samrat updated PR #1499 from fix-xmm-type
to master
:
When adding floating-point registers as callee-saved register to block- and function parameter lists add them as
F64X2
arguments.Fixes #1497
iximeow submitted PR Review.
iximeow submitted PR Review.
iximeow created PR Review Comment:
The astute reader may ask, "why did prologue sizes change if this was supposed to be a no-op cleanup-style change?"
It turns out my
F64 causes a whole XMM register to be preserved anyway.
comment became a lie between when I wrote it and when #1216 landed. Or maybe I was wrong the whole time? It was generatingmovsd
(for example,f2 41 0f 11 33
), where with this change Cranelift generatesmovups
(->41 0f 11 33
, one byte shorter).This is why prologues are shorter, but more importantly,
movsd
only works with the low 64 bits of its xmm argument!movups
is the correct instruction (movaps
would also be acceptable), which moves the entire 128 bits.
iximeow merged PR #1499.
abrown submitted PR Review.
abrown created PR Review Comment:
Aha! I was about to ask that very question. (Don't know how astute of a reader I am, though.) Thanks for the explanation.
Last updated: Dec 23 2024 at 12:05 UTC