diff options
author | Richard Osborne <richard@xmos.com> | 2013-05-05 13:24:16 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2013-05-05 13:24:16 +0000 |
commit | c601bd69d5c7fcd3bf9946e8a8a1bd1f9ab6642b (patch) | |
tree | bc56fb9a7a6daffd250f79603e7155b2330b9de7 /lib/Target/XCore | |
parent | 1114b0ec15aaa22dfc0ce582820cea556600d103 (diff) | |
download | external_llvm-c601bd69d5c7fcd3bf9946e8a8a1bd1f9ab6642b.zip external_llvm-c601bd69d5c7fcd3bf9946e8a8a1bd1f9ab6642b.tar.gz external_llvm-c601bd69d5c7fcd3bf9946e8a8a1bd1f9ab6642b.tar.bz2 |
[XCore] Add BLRB instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181152 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/XCore')
-rw-r--r-- | lib/Target/XCore/XCoreInstrInfo.td | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/XCore/XCoreInstrInfo.td b/lib/Target/XCore/XCoreInstrInfo.td index 9bb61c8..2be1ce2 100644 --- a/lib/Target/XCore/XCoreInstrInfo.td +++ b/lib/Target/XCore/XCoreInstrInfo.td @@ -169,6 +169,9 @@ def ldawb : PatFrag<(ops node:$addr, node:$offset), // Instruction operand types def calltarget : Operand<i32>; +def calltarget_neg : Operand<i32> { + let DecoderMethod = "DecodeNegImmOperand"; +} def brtarget : Operand<OtherVT>; def brtarget_neg : Operand<OtherVT> { let DecoderMethod = "DecodeNegImmOperand"; @@ -677,6 +680,10 @@ def BLRF_u10 : _FU10<0b110100, (outs), (ins calltarget:$a), "bl $a", def BLRF_lu10 : _FLU10<0b110100, (outs), (ins calltarget:$a), "bl $a", [(XCoreBranchLink immU20:$a)]>; + +def BLRB_u10 : _FU10<0b110101, (outs), (ins calltarget_neg:$a), "bl $a", []>; + +def BLRB_lu10 : _FLU10<0b110101, (outs), (ins calltarget_neg:$a), "bl $a", []>; } let Defs = [R11], mayLoad = 1, isReMaterializable = 1, |