[llvm-commits] [llvm] r109035 - in /llvm/trunk/lib/Target/X86: X86ISelLowering.cpp X86InstrInfo.cpp

Nate Begeman natebegeman at mac.com
Wed Jul 21 14:04:05 PDT 2010



On Jul 21, 2010, at 2:01 PM, Anton Korobeynikov wrote:

> Hello, Nate
> 
>> xmm6-15 are marked as clobbered by call instructions on win64 even though they aren't.
> They in fact are. Consider reading e.g.
> http://msdn.microsoft.com/en-us/library/9z1stfyw.aspx

Your link says they're callee-save, not call-clobbered.

> 
>> -    if (!X86::VR128RegClass.contains(Reg) && !isWin64) {
>> +    if (!X86::VR128RegClass.contains(Reg)) {
> This change is incorrect. This way you'll get stuff like "push xmm6",
> which is invalid instruction.
> Please revert.

How so?  The previous code is obviously incorrect, and leads to code like the following being generated on win64 today;

movaps rsi, (stack)

Nate



More information about the llvm-commits mailing list