[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrInfo.td

Chris Lattner sabre at nondot.org
Thu Oct 12 13:33:10 PDT 2006


On Thu, 12 Oct 2006, Evan Cheng wrote:
> In 64-bit, stack ptr is RSP. But I suppose that is ok since ESP / RSP 
> overlaps?

Good point, yep it should be ok.

-Chris

> Evan
> On Oct 12, 2006, at 10:43 AM, Chris Lattner wrote:
>
>> 
>> 
>>  Changes in directory llvm/lib/Target/X86:
>> 
>>  X86InstrInfo.td updated: 1.289 -> 1.290
>>  ---
>>  Log message:
>> 
>>  Mark ADJCALLSTACKUP/DOWN as clobbering ESP so that virtregmap will notice
>>  that it can't assume ESP is unmodified across the instrs.
>> 
>> 
>>  ---
>>  Diffs of the changes:  (+6 -2)
>> 
>>   X86InstrInfo.td |    8 ++++++--
>>   1 files changed, 6 insertions(+), 2 deletions(-)
>> 
>> 
>>  Index: llvm/lib/Target/X86/X86InstrInfo.td
>>  diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.289 llvm/lib/Target/ 
>>  X86/X86InstrInfo.td:1.290
>>  --- llvm/lib/Target/X86/X86InstrInfo.td:1.289	Wed Oct 11 16:03:53 
>>  2006
>>  +++ llvm/lib/Target/X86/X86InstrInfo.td	Thu Oct 12 12:42:56 2006
>>  @@ -346,11 +346,15 @@
>>   // Instruction list...
>>   //
>> 
>>  +// ADJCALLSTACKDOWN/UP implicitly use/def ESP because they may be 
>>  expanded into
>>  +// a stack adjustment and the codegen must know that they may modify the 
>>  stack
>>  +// pointer before prolog-epilog rewriting occurs.
>>  def ADJCALLSTACKDOWN : I<0, Pseudo, (ops i32imm:$amt), 
>>  "#ADJCALLSTACKDOWN",
>>  -                         [(X86callseq_start imm:$amt)]>;
>>  +                         [(X86callseq_start imm:$amt)]>, Imp<[ESP], 
>>  [ESP]>;
>>   def ADJCALLSTACKUP   : I<0, Pseudo, (ops i32imm:$amt1, i32imm:$amt2),
>>                           "#ADJCALLSTACKUP",
>>  -                         [(X86callseq_end imm:$amt1, imm:$amt2)]>;
>>  +                         [(X86callseq_end imm:$amt1, imm:$amt2)]>,
>>  +                         Imp<[ESP],[ESP]>;
>>  def IMPLICIT_USE     : I<0, Pseudo, (ops variable_ops), "#IMPLICIT_USE", 
>>  []>;
>>  def IMPLICIT_DEF     : I<0, Pseudo, (ops variable_ops), "#IMPLICIT_DEF", 
>>  []>;
>>   def IMPLICIT_DEF_GR8  : I<0, Pseudo, (ops GR8:$dst),
>> 
>> 
>> 
>>  _______________________________________________
>>  llvm-commits mailing list
>>  llvm-commits at cs.uiuc.edu
>>  http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-commits mailing list