diff --git a/llvm/lib/Target/M68k/M68kInstrControl.td b/llvm/lib/Target/M68k/M68kInstrControl.td --- a/llvm/lib/Target/M68k/M68kInstrControl.td +++ b/llvm/lib/Target/M68k/M68kInstrControl.td @@ -353,3 +353,19 @@ (ADDX8dd MxDRD8:$op, (MOV8di 0))>; def : Pat<(sub MxXRD32:$op, (i32 (MxSetCC_C MxCONDcs, CCR))), (ADDX32dd MxDRD32:$op, (MOV32ri 0))>; + +def TRAP : MxInst<(outs), (ins Mxi8imm:$vect), "trap\t$vect", []> { + let Inst = (descend 0b0100, 0b1110, 0b0100, (operand "$vect", 4)); +} + +def TRAPV : MxInst<(outs), (ins), "trapv", []> { + let Inst = (descend 0b0100, 0b1110, 0b0111, 0b0110); +} + +def BKPT : MxInst<(outs), (ins Mxi8imm:$vect), "bkpt\t$vect", []> { + let Inst = (descend 0b0100, 0b1000, 0b0100, 0b1 , (operand "$vect", 3)); +} + +def ILLEGAL : MxInst<(outs), (ins), "illegal", []> { + let Inst = (descend 0b0100, 0b1010, 0b1111, 0b1100); +}