diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-12-05 04:01:03 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-12-05 04:01:03 +0000 |
commit | 19f2ffce4598c4c70f32eed7c6740b43185200b1 (patch) | |
tree | 3296988ab06147d942cb990a8f2e8c6dd6d811dc /lib/Target/X86/X86InstrX86-64.td | |
parent | d9ff60b955022954101700f867dcf315ba7d818d (diff) | |
download | llvm-19f2ffce4598c4c70f32eed7c6740b43185200b1.tar.gz llvm-19f2ffce4598c4c70f32eed7c6740b43185200b1.tar.bz2 llvm-19f2ffce4598c4c70f32eed7c6740b43185200b1.tar.xz |
- Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit
immediate in small code model. The JIT cannot ensure GV's are placed in the
lower 4G.
- Some preliminary support for large code model.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32215 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrX86-64.td')
-rw-r--r-- | lib/Target/X86/X86InstrX86-64.td | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/lib/Target/X86/X86InstrX86-64.td b/lib/Target/X86/X86InstrX86-64.td index 0c49e94c0b..663e5f3442 100644 --- a/lib/Target/X86/X86InstrX86-64.td +++ b/lib/Target/X86/X86InstrX86-64.td @@ -36,7 +36,7 @@ def lea64_32mem : Operand<i32> { // Complex Pattern Definitions... // def lea64addr : ComplexPattern<i64, 4, "SelectLEAAddr", - [add, mul, shl, or, frameindex, X86WrapperRIP], + [add, mul, shl, or, frameindex, X86Wrapper], []>; //===----------------------------------------------------------------------===// @@ -1023,15 +1023,6 @@ def MOV64ri64i32 : Ii32<0xB8, AddRegFrm, (ops GR64:$dst, i64i32imm:$src), // ConstantPool GlobalAddress, ExternalSymbol, and JumpTable def : Pat<(i64 (X86Wrapper tconstpool :$dst)), - (MOV64ri32 tconstpool :$dst)>, Requires<[SmallCode]>; -def : Pat<(i64 (X86Wrapper tjumptable :$dst)), - (MOV64ri32 tjumptable :$dst)>, Requires<[SmallCode]>; -def : Pat<(i64 (X86Wrapper tglobaladdr :$dst)), - (MOV64ri32 tglobaladdr :$dst)>, Requires<[SmallCode]>; -def : Pat<(i64 (X86Wrapper texternalsym:$dst)), - (MOV64ri32 texternalsym:$dst)>, Requires<[SmallCode]>; - -def : Pat<(i64 (X86Wrapper tconstpool :$dst)), (MOV64ri tconstpool :$dst)>, Requires<[NotSmallCode]>; def : Pat<(i64 (X86Wrapper tjumptable :$dst)), (MOV64ri tjumptable :$dst)>, Requires<[NotSmallCode]>; @@ -1040,10 +1031,12 @@ def : Pat<(i64 (X86Wrapper tglobaladdr :$dst)), def : Pat<(i64 (X86Wrapper texternalsym:$dst)), (MOV64ri texternalsym:$dst)>, Requires<[NotSmallCode]>; +/* def : Pat<(store (i64 (X86Wrapper tglobaladdr:$src)), addr:$dst), (MOV64mi32 addr:$dst, tglobaladdr:$src)>, Requires<[SmallCode]>; def : Pat<(store (i64 (X86Wrapper texternalsym:$src)), addr:$dst), (MOV64mi32 addr:$dst, texternalsym:$src)>, Requires<[SmallCode]>; +*/ // Calls // Direct PC relative function call for small code model. 32-bit displacement |