@@ -105,28 +105,12 @@ bool X86FrameLowering::hasFP(const MachineFunction &MF) const {
105105 (isWin64Prologue (MF) && MFI.hasCopyImplyingStackAdjustment ()));
106106}
107107
108- static unsigned getSUBriOpcode (bool IsLP64, int64_t Imm) {
109- if (IsLP64) {
110- if (isInt<8 >(Imm))
111- return X86::SUB64ri8;
112- return X86::SUB64ri32;
113- } else {
114- if (isInt<8 >(Imm))
115- return X86::SUB32ri8;
116- return X86::SUB32ri;
117- }
108+ static unsigned getSUBriOpcode (bool IsLP64) {
109+ return IsLP64 ? X86::SUB64ri32 : X86::SUB32ri;
118110}
119111
120- static unsigned getADDriOpcode (bool IsLP64, int64_t Imm) {
121- if (IsLP64) {
122- if (isInt<8 >(Imm))
123- return X86::ADD64ri8;
124- return X86::ADD64ri32;
125- } else {
126- if (isInt<8 >(Imm))
127- return X86::ADD32ri8;
128- return X86::ADD32ri;
129- }
112+ static unsigned getADDriOpcode (bool IsLP64) {
113+ return IsLP64 ? X86::ADD64ri32 : X86::ADD32ri;
130114}
131115
132116static unsigned getSUBrrOpcode (bool IsLP64) {
@@ -138,14 +122,7 @@ static unsigned getADDrrOpcode(bool IsLP64) {
138122}
139123
140124static unsigned getANDriOpcode (bool IsLP64, int64_t Imm) {
141- if (IsLP64) {
142- if (isInt<8 >(Imm))
143- return X86::AND64ri8;
144- return X86::AND64ri32;
145- }
146- if (isInt<8 >(Imm))
147- return X86::AND32ri8;
148- return X86::AND32ri;
125+ return IsLP64 ? X86::AND64ri32 : X86::AND32ri;
149126}
150127
151128static unsigned getLEArOpcode (bool IsLP64) {
@@ -363,8 +340,8 @@ MachineInstrBuilder X86FrameLowering::BuildStackAdjustment(
363340 } else {
364341 bool IsSub = Offset < 0 ;
365342 uint64_t AbsOffset = IsSub ? -Offset : Offset;
366- const unsigned Opc = IsSub ? getSUBriOpcode (Uses64BitFramePtr, AbsOffset )
367- : getADDriOpcode (Uses64BitFramePtr, AbsOffset );
343+ const unsigned Opc = IsSub ? getSUBriOpcode (Uses64BitFramePtr)
344+ : getADDriOpcode (Uses64BitFramePtr);
368345 MI = BuildMI (MBB, MBBI, DL, TII.get (Opc), StackPtr)
369346 .addReg (StackPtr)
370347 .addImm (AbsOffset);
@@ -400,9 +377,8 @@ int X86FrameLowering::mergeSPUpdates(MachineBasicBlock &MBB,
400377 unsigned Opc = PI->getOpcode ();
401378 int Offset = 0 ;
402379
403- if ((Opc == X86::ADD64ri32 || Opc == X86::ADD64ri8 ||
404- Opc == X86::ADD32ri || Opc == X86::ADD32ri8) &&
405- PI->getOperand (0 ).getReg () == StackPtr){
380+ if ((Opc == X86::ADD64ri32 || Opc == X86::ADD32ri) &&
381+ PI->getOperand (0 ).getReg () == StackPtr) {
406382 assert (PI->getOperand (1 ).getReg () == StackPtr);
407383 Offset = PI->getOperand (2 ).getImm ();
408384 } else if ((Opc == X86::LEA32r || Opc == X86::LEA64_32r) &&
@@ -413,8 +389,7 @@ int X86FrameLowering::mergeSPUpdates(MachineBasicBlock &MBB,
413389 PI->getOperand (5 ).getReg () == X86::NoRegister) {
414390 // For LEAs we have: def = lea SP, FI, noreg, Offset, noreg.
415391 Offset = PI->getOperand (4 ).getImm ();
416- } else if ((Opc == X86::SUB64ri32 || Opc == X86::SUB64ri8 ||
417- Opc == X86::SUB32ri || Opc == X86::SUB32ri8) &&
392+ } else if ((Opc == X86::SUB64ri32 || Opc == X86::SUB32ri) &&
418393 PI->getOperand (0 ).getReg () == StackPtr) {
419394 assert (PI->getOperand (1 ).getReg () == StackPtr);
420395 Offset = -PI->getOperand (2 ).getImm ();
@@ -833,7 +808,7 @@ void X86FrameLowering::emitStackProbeInlineGenericLoop(
833808 // save loop bound
834809 {
835810 const unsigned BoundOffset = alignDown (Offset, StackProbeSize);
836- const unsigned SUBOpc = getSUBriOpcode (Uses64BitFramePtr, BoundOffset );
811+ const unsigned SUBOpc = getSUBriOpcode (Uses64BitFramePtr);
837812 BuildMI (MBB, MBBI, DL, TII.get (SUBOpc), FinalStackProbed)
838813 .addReg (FinalStackProbed)
839814 .addImm (BoundOffset)
@@ -1336,7 +1311,7 @@ void X86FrameLowering::BuildStackAlignAND(MachineBasicBlock &MBB,
13361311
13371312 {
13381313 const unsigned SUBOpc =
1339- getSUBriOpcode (Uses64BitFramePtr, StackProbeSize );
1314+ getSUBriOpcode (Uses64BitFramePtr);
13401315 BuildMI (headMBB, DL, TII.get (SUBOpc), StackPtr)
13411316 .addReg (StackPtr)
13421317 .addImm (StackProbeSize)
@@ -1367,7 +1342,7 @@ void X86FrameLowering::BuildStackAlignAND(MachineBasicBlock &MBB,
13671342 .setMIFlag (MachineInstr::FrameSetup);
13681343
13691344 const unsigned SUBOpc =
1370- getSUBriOpcode (Uses64BitFramePtr, StackProbeSize );
1345+ getSUBriOpcode (Uses64BitFramePtr);
13711346 BuildMI (bodyMBB, DL, TII.get (SUBOpc), StackPtr)
13721347 .addReg (StackPtr)
13731348 .addImm (StackProbeSize)
@@ -1800,7 +1775,7 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
18001775 .addImm (8 )
18011776 .addUse (X86::NoRegister)
18021777 .setMIFlag (MachineInstr::FrameSetup);
1803- BuildMI (MBB, MBBI, DL, TII.get (X86::SUB64ri8 ), X86::RSP)
1778+ BuildMI (MBB, MBBI, DL, TII.get (X86::SUB64ri32 ), X86::RSP)
18041779 .addUse (X86::RSP)
18051780 .addImm (8 )
18061781 .setMIFlag (MachineInstr::FrameSetup);
@@ -2419,7 +2394,7 @@ void X86FrameLowering::emitEpilogue(MachineFunction &MF,
24192394 if ((Opc != X86::POP32r || !PI->getFlag (MachineInstr::FrameDestroy)) &&
24202395 (Opc != X86::POP64r || !PI->getFlag (MachineInstr::FrameDestroy)) &&
24212396 (Opc != X86::BTR64ri8 || !PI->getFlag (MachineInstr::FrameDestroy)) &&
2422- (Opc != X86::ADD64ri8 || !PI->getFlag (MachineInstr::FrameDestroy)))
2397+ (Opc != X86::ADD64ri32 || !PI->getFlag (MachineInstr::FrameDestroy)))
24232398 break ;
24242399 FirstCSPop = PI;
24252400 }
@@ -3793,7 +3768,7 @@ MachineBasicBlock::iterator X86FrameLowering::restoreWin32EHStackPointers(
37933768
37943769 if (UsedReg == FramePtr) {
37953770 // ADD $offset, %ebp
3796- unsigned ADDri = getADDriOpcode (false , EndOffset );
3771+ unsigned ADDri = getADDriOpcode (false );
37973772 BuildMI (MBB, MBBI, DL, TII.get (ADDri), FramePtr)
37983773 .addReg (FramePtr)
37993774 .addImm (EndOffset)
0 commit comments