* x86-64: we can spill replace 32 bit operations if the operation does not modify a register

git-svn-id: trunk@49097 -
This commit is contained in:
florian 2021-03-31 21:23:22 +00:00
parent 8ea95e9b95
commit 7811b915a9

View File

@ -407,8 +407,10 @@ implementation
{ 32 bit operations on 32 bit registers on x86_64 can result in
zeroing the upper 32 bits of the register. This does not happen
with memory operations, so we have to perform these calculations
in registers. }
if (opsize=S_L) then
in registers.
However, for instructions not modifying registers, this is not a problem }
if (opsize=S_L) and (opcode<>A_CMP) and (opcode<>A_TEST) and (opcode<>A_BT) then
replaceoper:=-1;
{$endif x86_64}