summaryrefslogtreecommitdiff
path: root/lib/Target/XCore/XCoreInstrFormats.td
diff options
context:
space:
mode:
authorRichard Osborne <richard@xmos.com>2013-01-21 20:42:16 +0000
committerRichard Osborne <richard@xmos.com>2013-01-21 20:42:16 +0000
commit9b709f8b3f3fa6e9bfb5007b70e096f6192f3ef8 (patch)
tree9ef864c103916ee8ad7fc1e09bc1a770af644a56 /lib/Target/XCore/XCoreInstrFormats.td
parenta3458380b97bd732baf84f1bf0d21f215bf99727 (diff)
downloadllvm-9b709f8b3f3fa6e9bfb5007b70e096f6192f3ef8.tar.gz
llvm-9b709f8b3f3fa6e9bfb5007b70e096f6192f3ef8.tar.bz2
llvm-9b709f8b3f3fa6e9bfb5007b70e096f6192f3ef8.tar.xz
Add instruction encoding / disassembly support for ru6 / lru6 instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173085 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/XCore/XCoreInstrFormats.td')
-rw-r--r--lib/Target/XCore/XCoreInstrFormats.td18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/Target/XCore/XCoreInstrFormats.td b/lib/Target/XCore/XCoreInstrFormats.td
index 01ed5cbf93..fa5c0a22bd 100644
--- a/lib/Target/XCore/XCoreInstrFormats.td
+++ b/lib/Target/XCore/XCoreInstrFormats.td
@@ -85,12 +85,26 @@ class _FL2RUSBitp<bits<9> opc, dag outs, dag ins, string asmstr,
let DecoderMethod = "DecodeL2RUSBitpInstruction";
}
-class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
+class _FRU6<bits<6> opc, dag outs, dag ins, string asmstr, list<dag> pattern>
: InstXCore<2, outs, ins, asmstr, pattern> {
+ bits<4> a;
+ bits<6> b;
+
+ let Inst{15-10} = opc;
+ let Inst{9-6} = a;
+ let Inst{5-0} = b;
}
-class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
+class _FLRU6<bits<6> opc, dag outs, dag ins, string asmstr, list<dag> pattern>
: InstXCore<4, outs, ins, asmstr, pattern> {
+ bits<4> a;
+ bits<16> b;
+
+ let Inst{31-26} = opc;
+ let Inst{25-22} = a;
+ let Inst{21-16} = b{5-0};
+ let Inst{15-10} = 0b111100;
+ let Inst{9-0} = b{15-6};
}
class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>