summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-09 20:20:29 +0000
committerChris Lattner <sabre@nondot.org>2005-01-09 20:20:29 +0000
commitcf8fd0c0db4d627d179be4b79cebbb64ba31c9eb (patch)
tree9426bb7fd6daf888cfef61ea32ba1e7b3fc530bf /llvm
parent3d5d5022d577786bc8b09f6c55ac32bc3f6e1251 (diff)
downloadbcm5719-llvm-cf8fd0c0db4d627d179be4b79cebbb64ba31c9eb.tar.gz
bcm5719-llvm-cf8fd0c0db4d627d179be4b79cebbb64ba31c9eb.zip
Codegen (Reg|imm)+&GV as an LEA, because we cannot put it into the immediate field
of an ADDri (due to current restrictions on MachineOperand :( ). This allows us to generate: leal Data+16000, %edx instead of: movl $Data, %edx addl $16000, %edx llvm-svn: 19420
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/X86ISelPattern.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelPattern.cpp b/llvm/lib/Target/X86/X86ISelPattern.cpp
index 13839ffb9a2..265e38815bb 100644
--- a/llvm/lib/Target/X86/X86ISelPattern.cpp
+++ b/llvm/lib/Target/X86/X86ISelPattern.cpp
@@ -1027,11 +1027,11 @@ unsigned ISel::SelectExpr(SDOperand N) {
if (!SelectAddress(N.getOperand(0), AM) &&
!SelectAddress(N.getOperand(1), AM)) {
// If this is not just an add, emit the LEA. For a simple add (like
- // reg+reg or reg+imm), we just emit an add. If might be a good idea to
+ // reg+reg or reg+imm), we just emit an add. It might be a good idea to
// leave this as LEA, then peephole it to 'ADD' after two address elim
// happens.
if (AM.Scale != 1 || AM.BaseType == X86AddressMode::FrameIndexBase ||
- AM.Base.Reg && AM.IndexReg && (AM.Disp || AM.GV)) {
+ AM.GV || (AM.Base.Reg && AM.IndexReg && AM.Disp)) {
addFullAddress(BuildMI(BB, X86::LEA32r, 4, Result), AM);
return Result;
}
OpenPOWER on IntegriCloud