diff options
-rw-r--r-- | llvm/lib/Target/X86/X86Instr64bit.td | 2 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86Instr64bit.td b/llvm/lib/Target/X86/X86Instr64bit.td index 427f6db51c8..5935745777e 100644 --- a/llvm/lib/Target/X86/X86Instr64bit.td +++ b/llvm/lib/Target/X86/X86Instr64bit.td @@ -45,7 +45,7 @@ def lea64_32mem : Operand<i32> { // Complex Pattern Definitions. // def lea64addr : ComplexPattern<i64, 4, "SelectLEAAddr", - [add, mul, X86mul_imm, shl, or, frameindex, + [add, sub, mul, X86mul_imm, shl, or, frameindex, X86WrapperRIP], []>; def tls64addr : ComplexPattern<i64, 4, "SelectTLSADDRAddr", diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 49da970ca24..9814a075d43 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -232,7 +232,8 @@ def brtarget8 : Operand<OtherVT> { // Define X86 specific addressing mode. def addr : ComplexPattern<iPTR, 5, "SelectAddr", [], []>; def lea32addr : ComplexPattern<i32, 4, "SelectLEAAddr", - [add, sub, mul, shl, or, frameindex], []>; + [add, sub, mul, X86mul_imm, shl, or, frameindex], + []>; def tls32addr : ComplexPattern<i32, 4, "SelectTLSADDRAddr", [tglobaltlsaddr], []>; |