revert r95689: getX86RegNum(BaseReg) != N86::ESP is
authorChris Lattner <sabre@nondot.org>
Tue, 9 Feb 2010 21:21:26 +0000 (21:21 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 9 Feb 2010 21:21:26 +0000 (21:21 +0000)
a confusing idiom to check for ESP or RSP.

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

lib/Target/X86/X86CodeEmitter.cpp

index 3f7c42559b2b81b4847bae5b242faa4f5c01e5ed..859eb909d9448d5feabf3973aeb3ff6ace77ead6 100644 (file)
@@ -389,8 +389,8 @@ void Emitter<CodeEmitter>::emitMemModRMByte(const MachineInstr &MI,
   // 2-7) and absolute references.
   if ((!Is64BitMode || DispForReloc || BaseReg != 0) &&
       IndexReg.getReg() == 0 && 
-      ((BaseReg == 0 && IsPCRel) || BaseReg == X86::RIP || 
-       (BaseReg != 0 && BaseReg != X86::ESP))) {
+      ((BaseReg == 0 && MCE.earlyResolveAddresses()) || BaseReg == X86::RIP || 
+       (BaseReg != 0 && getX86RegNum(BaseReg) != N86::ESP))) {
     if (BaseReg == 0 || BaseReg == X86::RIP) {  // Just a displacement?
       // Emit special case [disp32] encoding
       MCE.emitByte(ModRMByte(0, RegOpcodeField, 5));