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@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > -Chris -- http://nondot.org/sabre/ http://llvm.org/ _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits