diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-02-25 19:20:53 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-02-25 19:20:53 +0000 |
| commit | 84ab9a556c6c720bfa9fd5881454a272de6c3d65 (patch) | |
| tree | 73f5faa0e85e1d23f3f44558c133139c6e2831f4 /llvm | |
| parent | 93a7145ebe32eb4aec3d0c00ef638148e456da0f (diff) | |
| download | bcm5719-llvm-84ab9a556c6c720bfa9fd5881454a272de6c3d65.tar.gz bcm5719-llvm-84ab9a556c6c720bfa9fd5881454a272de6c3d65.zip | |
one important bugfix: PPC32 didn't have both elf and macho support for
external symbols and global addresses. Add the missing ones.
one important workaround: PPCISD::CALL is matched by both PPCcall_ELF
and PPCcall_Macho, disable the _ELF patterns for now.
llvm-svn: 34601
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstr64Bit.td | 6 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrInfo.td | 10 |
2 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td index 89e883a6968..57bb9dac408 100644 --- a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td +++ b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td @@ -102,7 +102,7 @@ let isCall = 1, noResults = 1, PPC970_Unit = 7, def BLA8_ELF : IForm<18, 1, 1, (ops aaddr:$func, variable_ops), - "bla $func", BrB, [(PPCcall_ELF (i64 imm:$func))]>; + "bla $func", BrB, [/*(PPCcall_ELF (i64 imm:$func))*/]>; } @@ -111,12 +111,12 @@ def : Pat<(PPCcall_Macho (i64 tglobaladdr:$dst)), (BL8_Macho tglobaladdr:$dst)>; def : Pat<(PPCcall_Macho (i64 texternalsym:$dst)), (BL8_Macho texternalsym:$dst)>; - +/* def : Pat<(PPCcall_ELF (i64 tglobaladdr:$dst)), (BL8_ELF tglobaladdr:$dst)>; def : Pat<(PPCcall_ELF (i64 texternalsym:$dst)), (BL8_ELF texternalsym:$dst)>; - +*/ //===----------------------------------------------------------------------===// // 64-bit SPR manipulation instrs. diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td index 0f9e9bd13ae..1b961167760 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td @@ -407,11 +407,11 @@ let isCall = 1, noResults = 1, PPC970_Unit = 7, def BLA_ELF : IForm<18, 1, 1, (ops aaddr:$func, variable_ops), "bla $func", BrB, - [(PPCcall_ELF (i32 imm:$func))]>; + [/*(PPCcall_ELF (i32 imm:$func))*/]>; def BCTRL_ELF : XLForm_2_ext<19, 528, 20, 0, 1, (ops variable_ops), "bctrl", BrB, - [(PPCbctrl_ELF)]>; + [/*(PPCbctrl_ELF)*/]>; } // DCB* instructions. @@ -1102,8 +1102,12 @@ def : Pat<(and (rotl GPRC:$in, GPRC:$sh), maskimm32:$imm), // Calls def : Pat<(PPCcall_Macho (i32 tglobaladdr:$dst)), (BL_Macho tglobaladdr:$dst)>; +def : Pat<(PPCcall_Macho (i32 texternalsym:$dst)), + (BL_Macho texternalsym:$dst)>; +/*def : Pat<(PPCcall_ELF (i32 tglobaladdr:$dst)), + (BL_ELF tglobaladdr:$dst)>; def : Pat<(PPCcall_ELF (i32 texternalsym:$dst)), - (BL_ELF texternalsym:$dst)>; + (BL_ELF texternalsym:$dst)>;*/ // Hi and Lo for Darwin Global Addresses. def : Pat<(PPChi tglobaladdr:$in, 0), (LIS tglobaladdr:$in)>; |

