diff options
author | Richard Osborne <richard@xmos.com> | 2013-05-05 13:36:53 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2013-05-05 13:36:53 +0000 |
commit | 4498bd352f1f41e5af2378ed976ad4f9a2fb0a18 (patch) | |
tree | a01f3dc4d0a51544602fa4509889906d04e8fa39 | |
parent | e41cdbd3aaad37a47c38f8c56de98cbc714f46a1 (diff) | |
download | bcm5719-llvm-4498bd352f1f41e5af2378ed976ad4f9a2fb0a18.tar.gz bcm5719-llvm-4498bd352f1f41e5af2378ed976ad4f9a2fb0a18.zip |
[XCore] Add LDAPB instructions.
With the change the disassembler now supports the XCore ISA in its
entirety.
llvm-svn: 181155
-rw-r--r-- | llvm/lib/Target/XCore/XCoreInstrInfo.td | 16 | ||||
-rw-r--r-- | llvm/test/MC/Disassembler/XCore/xcore.txt | 6 |
2 files changed, 19 insertions, 3 deletions
diff --git a/llvm/lib/Target/XCore/XCoreInstrInfo.td b/llvm/lib/Target/XCore/XCoreInstrInfo.td index a4a339e9174..587166c1ce1 100644 --- a/llvm/lib/Target/XCore/XCoreInstrInfo.td +++ b/llvm/lib/Target/XCore/XCoreInstrInfo.td @@ -657,16 +657,26 @@ defm KRESTSP : FU6_LU6_np<0b0111101111, "krestsp">; // U10 -let Defs = [R11], isReMaterializable = 1, neverHasSideEffects = 1 in +let Defs = [R11], isReMaterializable = 1 in { +let neverHasSideEffects = 1 in def LDAPF_u10 : _FU10<0b110110, (outs), (ins pcrel_imm:$a), "ldap r11, $a", []>; -let Defs = [R11], isReMaterializable = 1 in def LDAPF_lu10 : _FLU10<0b110110, (outs), (ins pcrel_imm:$a), "ldap r11, $a", [(set R11, (pcrelwrapper tglobaladdr:$a))]>; -let Defs = [R11], isReMaterializable = 1, isCodeGenOnly = 1 in +let neverHasSideEffects = 1 in +def LDAPB_u10 : _FU10<0b110111, (outs), (ins pcrel_imm_neg:$a), "ldap r11, $a", + []>; + +let neverHasSideEffects = 1 in +def LDAPB_lu10 : _FLU10<0b110111, (outs), (ins pcrel_imm_neg:$a), + "ldap r11, $a", + [(set R11, (pcrelwrapper tglobaladdr:$a))]>; + +let isCodeGenOnly = 1 in def LDAPF_lu10_ba : _FLU10<0b110110, (outs), (ins pcrel_imm:$a), "ldap r11, $a", [(set R11, (pcrelwrapper tblockaddress:$a))]>; +} let isCall=1, // All calls clobber the link register and the non-callee-saved registers: diff --git a/llvm/test/MC/Disassembler/XCore/xcore.txt b/llvm/test/MC/Disassembler/XCore/xcore.txt index 311ca16767d..116433051a5 100644 --- a/llvm/test/MC/Disassembler/XCore/xcore.txt +++ b/llvm/test/MC/Disassembler/XCore/xcore.txt @@ -648,6 +648,12 @@ # CHECK: ldap r11, 53112 0x33 0xf0 0x78 0xdb +# CHECK: ldap r11, -22 +0x16 0xdc + +# CHECK: ldap r11, -9999 +0x09 0xf0 0x0f 0xdf + # CHECK: bl 8 0x08 0xd0 |