diff options
Diffstat (limited to 'test/TableGen/RegisterEncoder.td')
| -rw-r--r-- | test/TableGen/RegisterEncoder.td | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/TableGen/RegisterEncoder.td b/test/TableGen/RegisterEncoder.td new file mode 100644 index 000000000000..a0472c5feffa --- /dev/null +++ b/test/TableGen/RegisterEncoder.td @@ -0,0 +1,35 @@ +// RUN: llvm-tblgen -gen-emitter -I %p/../../include %s | FileCheck %s + +// Check that EncoderMethod for RegisterOperand is working correctly + +include "llvm/Target/Target.td" + +def ArchInstrInfo : InstrInfo { } + +def Arch : Target { + let InstructionSet = ArchInstrInfo; +} + +def Reg : Register<"reg">; + +def RegClass : RegisterClass<"foo", [i32], 0, (add Reg)>; + +def RegOperand : RegisterOperand<RegClass> { + let EncoderMethod = "barEncoder"; +} + +def foo : Instruction { + let Size = 1; + + let OutOperandList = (outs); + let InOperandList = (ins RegOperand:$bar); + + bits<8> bar; + bits<8> Inst = bar; +} + +// CHECK: case ::foo: { +// CHECK: op = barEncoder +// CHECK: Value |= op & UINT64_C(255); +// CHECK: break; +// CHECK: }
\ No newline at end of file |
