Teach reginfo how to deal with ADJSTACKPTRri, allowing us to generate:
authorChris Lattner <sabre@nondot.org>
Sun, 15 May 2005 05:49:58 +0000 (05:49 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 15 May 2005 05:49:58 +0000 (05:49 +0000)
        add %ESP, 20
        jmp %EDX  # TAIL CALL

instead of:
        add %ESP, -8
        add %ESP, 28
        jmp %EDX  # TAIL CALL

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22047 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86RegisterInfo.cpp

index a1ec6dcbe4983255ebd6a010959340a9e23e0660..08920cc2605893da3fd5ac2bbb227ba425fbf8f6 100644 (file)
@@ -544,6 +544,9 @@ void X86RegisterInfo::emitEpilogue(MachineFunction &MF,
                    PI->getOperand(0).getReg() == X86::ESP) {
           NumBytes -= PI->getOperand(1).getImmedValue();
           MBB.erase(PI);
+        } else if (PI->getOpcode() == X86::ADJSTACKPTRri) {
+          NumBytes += PI->getOperand(1).getImmedValue();
+          MBB.erase(PI);
         }
       }