diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-05-12 00:07:35 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-05-12 00:07:35 +0000 |
commit | 92569cebd5be392964f9a6e967becfa614f18f67 (patch) | |
tree | 71eb67519d2af9ef5970bcab85289655236472d8 /lib/Target/X86/X86InstrInfo.cpp | |
parent | dea0ec265e17840423c49ee1608bc8d9d3205037 (diff) | |
download | external_llvm-92569cebd5be392964f9a6e967becfa614f18f67.zip external_llvm-92569cebd5be392964f9a6e967becfa614f18f67.tar.gz external_llvm-92569cebd5be392964f9a6e967becfa614f18f67.tar.bz2 |
Avoid unneeded SIB byte encoding. Patch by Zoltan Varga.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71520 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrInfo.cpp')
-rw-r--r-- | lib/Target/X86/X86InstrInfo.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 369c4c6..85756a1 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -2811,7 +2811,8 @@ static unsigned getMemModRMByteSize(const MachineInstr &MI, unsigned Op, unsigned BaseReg = Base.getReg(); // Is a SIB byte needed? - if ((!Is64BitMode || DispForReloc) && IndexReg.getReg() == 0 && + if ((!Is64BitMode || DispForReloc || BaseReg != 0) && + IndexReg.getReg() == 0 && (BaseReg == 0 || X86RegisterInfo::getX86RegNum(BaseReg) != N86::ESP)) { if (BaseReg == 0) { // Just a displacement? // Emit special case [disp32] encoding |