diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-01-03 22:53:22 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-01-03 22:53:22 +0000 |
commit | 7158e08b8e619f4dcac9834c57f5f8afd6eea2eb (patch) | |
tree | 49f3021d388b4d92ceeace2b7b648696c88a8bfe /lib/Target/X86/X86InstrControl.td | |
parent | fd1ed5f4c4afebf312ecb708280686c49a7d8839 (diff) | |
download | llvm-7158e08b8e619f4dcac9834c57f5f8afd6eea2eb.tar.gz llvm-7158e08b8e619f4dcac9834c57f5f8afd6eea2eb.tar.bz2 llvm-7158e08b8e619f4dcac9834c57f5f8afd6eea2eb.tar.xz |
Use pushq / popq instead of subq $8, %rsp / addq $8, %rsp to adjust stack in
prologue and epilogue if the adjustment is 8. Similarly, use pushl / popl if
the adjustment is 4 in 32-bit mode.
In the epilogue, takes care to pop to a caller-saved register that's not live
at the exit (either return or tailcall instruction).
rdar://8771137
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122783 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrControl.td')
-rw-r--r-- | lib/Target/X86/X86InstrControl.td | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrControl.td b/lib/Target/X86/X86InstrControl.td index 79a6e4ae52..62ab53eb09 100644 --- a/lib/Target/X86/X86InstrControl.td +++ b/lib/Target/X86/X86InstrControl.td @@ -26,7 +26,7 @@ let isTerminator = 1, isReturn = 1, isBarrier = 1, [(X86retflag timm:$amt)]>; def RETIW : Ii16<0xC2, RawFrm, (outs), (ins i16imm:$amt, variable_ops), "retw\t$amt", - [(X86retflag timm:$amt)]>, OpSize; + []>, OpSize; def LRETL : I <0xCB, RawFrm, (outs), (ins), "lretl", []>; def LRETQ : RI <0xCB, RawFrm, (outs), (ins), |