blob: 541cba495dc3bc89c6038261c700b62057415dc6 [file]
// RUN: llvm-tblgen -gen-disassembler -I %p/../../../include %s | FileCheck %s
include "llvm/Target/Target.td"
class I<dag outs, dag ins, bits<5> opcode> : Instruction {
let InOperandList = ins;
let OutOperandList = outs;
bits<5> dst;
bits<5> src0;
bits<5> src1;
int Size = 16;
bits<128> Inst;
let Inst{4...0} = opcode;
let Inst{9...5} = dst;
let Inst{14...10} = src0;
let Inst{19...15} = src1;
let Inst{127...20} = 0xdeadbeef;
}
def Reg : Register<"reg">;
def Regs : RegisterClass<"foo", [i32], 0, (add Reg)>;
def IAdd : I<(outs Regs:$dst), (ins Regs:$src0, Regs:$src1), 0b10101>;
// CHECK-LABEL: static const uint8_t DecoderTable128[20] = {
// CHECK-NEXT: OPC_CheckField, 84, 44, 0, // 0: check Inst[127:84] == 0x0
// CHECK-NEXT: OPC_CheckField, 20, 64, 239, 253, 182, 245, 13,
def II : InstrInfo;
def MyTarget : Target {
let InstructionSet = II;
}