Vhex-kernel/src/kernel/util/disasm/opcode.c

2615 lines
67 KiB
C

#include <kernel/util/disasm.h>
// Internal functions
static uint32_t opcode_indirect_long_pc(struct cpu_context *context, uint32_t argument)
{
return (*(uint32_t*)((ptrdiff_t)(((context->spc + 4) >> 2 << 2) + (argument << 2))));
}
static uint32_t opcode_indirect_word_pc(struct cpu_context *context, uint32_t argument)
{
return (*(uint16_t*)((ptrdiff_t)(((context->spc + 4) >> 2 << 2) + (argument << 1))));
}
static uint32_t opcode_indirect_instruction_pc_8(struct cpu_context *context, uint32_t argument)
{
if (argument & (1 << 7)) {
argument = (argument ^ 0x00ff) + 1;
argument = -argument;
}
return (context->spc + 4 + (argument * 2));
}
static uint32_t opcode_indirect_instruction_pc_12(struct cpu_context *context, uint32_t argument)
{
if (argument & (1 << 11)) {
argument = (argument ^ 0x0fff) + 1;
argument = -argument;
}
return (context->spc + 4 + (argument * 2));
}
// Define ALL SH3 / SH4 instructions.
const struct opcode_s opcode_list[] = {
{
.name = "add\t0x%x,r%d",
.mask = 0b1111000000000000,
.code = 0b0111000000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "add\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "addc\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "addv\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "and\t0x%x,r0",
.mask = 0b1111111100000000,
.code = 0b1100100100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "and\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001001,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "and.b\t0x%x,@(r0,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100110100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bf\t%#.8x",
.mask = 0b1111111100000000,
.code = 0b1000101100000000,
.arg = {
{.mask = 0b0000000011111111, .special = &opcode_indirect_instruction_pc_8},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bf/s\t%#.8x",
.mask = 0b1111111100000000,
.code = 0b1000111100000000,
.arg = {
{.mask = 0b0000000011111111, .special = &opcode_indirect_instruction_pc_8},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bra\t%#.8x",
.mask = 0b1111000000000000,
.code = 0b1010000000000000,
.arg = {
{.mask = 0b0000111111111111, .special = &opcode_indirect_instruction_pc_12},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "braf\tr%d",
.mask = 0b1111000011111111,
.code = 0b0000000000100011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bsr\t%#.8x",
.mask = 0b1111000000000000,
.code = 0b1011000000000000,
.arg = {
{.mask = 0b0000111111111111, .special = &opcode_indirect_instruction_pc_12},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bsrf\tr%d",
.mask = 0b1111000011111111,
.code = 0b0000000000000011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bt\t%#.8x",
.mask = 0b1111111100000000,
.code = 0b1000100100000000,
.arg = {
{.mask = 0b0000000011111111, .special = &opcode_indirect_instruction_pc_8},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "bt/s\t%#.8x",
.mask = 0b1111111100000000,
.code = 0b1000110100000000,
.arg = {
{.mask = 0b0000000011111111, .special = &opcode_indirect_instruction_pc_8},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "clrmac",
.mask = 0b1111111111111111,
.code = 0b0000000000101000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "clrs",
.mask = 0b1111111111111111,
.code = 0b0000000001001000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "clrt",
.mask = 0b1111111111111111,
.code = 0b0000000000001000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/eq\t0x%x,r0",
.mask = 0b1111111100000000,
.code = 0b1000100000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/eq\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/ge\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/gt\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/hi\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/hs\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/pl\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000010101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/pz\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000010001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "cmp/str\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "div0s\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "div0u",
.mask = 0b1111111111111111,
.code = 0b0000000000011001,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "div1\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "dmuls.l\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "dmulu.l\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000000101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "dt\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000010000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "exts.b\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "exts.w\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "extu.b\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "extu.w\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fabs\tfr%d",
.mask = 0b1111000011111111,
.code = 0b1111000001011101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fadd\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fcmp/eq\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fcmp/gt\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fdiv\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fldi0\tfr%d",
.mask = 0b1111000011111111,
.code = 0b1111000010001101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fldi1\tfr%d",
.mask = 0b1111000011111111,
.code = 0b1111000010011101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "flds\tfr%d,FPUL",
.mask = 0b1111000011111111,
.code = 0b1111000000011101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "float\tFPUL,fr%d",
.mask = 0b1111000011111111,
.code = 0b1111000000101101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmac\tFR0,fr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000001110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000001100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov.s\t@(r0,r%d),fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov.s\t@r%d+,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000001001,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov.s\t@r%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000001000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov.s\tfr%d,@(r0,r%d)",
.mask = 0b1111000000001111,
.code = 0b1111000000000111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov.s\tfr%d,@-r%d",
.mask = 0b1111000000001111,
.code = 0b1111000000001011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmov.s\tfr%d,@r%d",
.mask = 0b1111000000001111,
.code = 0b1111000000001010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fmul\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fneg\tfr%d",
.mask = 0b1111000011111111,
.code = 0b1111000001001101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fsqrt\tfr%d",
.mask = 0b1111000011111111,
.code = 0b1111000001101101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fsts\tFPUL,fr%d",
.mask = 0b1111000011111111,
.code = 0b1111000000001101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "fsub\tfr%d,fr%d",
.mask = 0b1111000000001111,
.code = 0b1111000000000001,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ftrc\tfr%d,FPUL",
.mask = 0b1111000011111111,
.code = 0b1111000000111101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "jmp\t@r%d",
.mask = 0b1111000011111111,
.code = 0b0100000000101011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "jsr\t@r%d",
.mask = 0b1111000011111111,
.code = 0b0100000000001011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,GBR",
.mask = 0b1111000011111111,
.code = 0b0100000000011110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,SR",
.mask = 0b1111000011111111,
.code = 0b0100000000001110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,VBR",
.mask = 0b1111000011111111,
.code = 0b0100000000101110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,SSR",
.mask = 0b1111000011111111,
.code = 0b0100000000111110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,SPC",
.mask = 0b1111000011111111,
.code = 0b0100000001001110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,MOD",
.mask = 0b1111000011111111,
.code = 0b0100000001011110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
//FIXME: find difference between "ldc rm,RE" and "ldc rm,RS"
{
.name = "ldc\tr%d,RE/RS",
.mask = 0b1111000011111111,
.code = 0b0100000001101110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R0_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010001110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R1_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010011110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R2_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010101110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R3_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010111110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R4_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011001110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R5_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011011110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R6_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011101110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc\tr%d,R7_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011111110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,GBR",
.mask = 0b1111000011111111,
.code = 0b0100000000010111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,SR",
.mask = 0b1111000011111111,
.code = 0b0100000000000111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,VBR",
.mask = 0b1111000011111111,
.code = 0b0100000000100111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,SSR",
.mask = 0b1111000011111111,
.code = 0b0100000000110111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,SPC",
.mask = 0b1111000011111111,
.code = 0b0100000001000111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,MOD",
.mask = 0b1111000011111111,
.code = 0b0100000001010111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,RE",
.mask = 0b1111000011111111,
.code = 0b0100000001110111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,RS",
.mask = 0b1111000011111111,
.code = 0b0100000001100111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R0_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010000111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R1_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010010111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R2_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010100111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@%d+,R3_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000010110111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R4_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011000111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R5_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011010111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R7_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011100111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldc.l\t@r%d+,R7_BANK",
.mask = 0b1111000011111111,
.code = 0b0100000011110111,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldre\t@(0x%x,PC)",
.mask = 0b1111111100000000,
.code = 0b1000111000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldrs\t@(0x%x,PC)",
.mask = 0b1111111100000000,
.code = 0b1000110000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,FPSCR",
.mask = 0b1111000011111111,
.code = 0b0100000001101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,FPUL",
.mask = 0b1111000011111111,
.code = 0b0100000001011010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,MACH",
.mask = 0b1111000011111111,
.code = 0b0100000000001010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,MACL",
.mask = 0b1111000011111111,
.code = 0b0100000000011010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,PR",
.mask = 0b1111000011111111,
.code = 0b0100000000101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,A0",
.mask = 0b1111000011111111,
.code = 0b0100000001101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,DSR",
.mask = 0b1111000011111111,
.code = 0b0100000001111010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,X0",
.mask = 0b1111000011111111,
.code = 0b01000000010001010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,X1",
.mask = 0b1111000011111111,
.code = 0b0100000010011010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,Y0",
.mask = 0b1111000011111111,
.code = 0b0100000010101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds\tr%d,Y1",
.mask = 0b1111000011111111,
.code = 0b0100000010111010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,FPSCR",
.mask = 0b1111000011111111,
.code = 0b0100000001100110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,FPUL",
.mask = 0b1111000011111111,
.code = 0b0100000001010110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,MACH",
.mask = 0b1111000011111111,
.code = 0b0100000000000110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,MACL",
.mask = 0b1111000011111111,
.code = 0b0100000000010110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,PR",
.mask = 0b1111000011111111,
.code = 0b0100000000100110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,DSR",
.mask = 0b1111000011111111,
.code = 0b0100000001100110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,A0",
.mask = 0b1111000011111111,
.code = 0b0100000001110110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,X0",
.mask = 0b1111000011111111,
.code = 0b0100000001000110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,X1",
.mask = 0b1111000011111111,
.code = 0b0100000010010110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,Y0",
.mask = 0b1111000011111111,
.code = 0b0100000010100110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "lds.l\t@r%d+,Y1",
.mask = 0b1111000011111111,
.code = 0b0100000010110110,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "ldtlb",
.mask = 0b1111111111111111,
.code = 0b0000000000111000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mac.l\t@r%d+,@r%d+",
.mask = 0b1111000000001111,
.code = 0b0000000000001111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mac.w\t@r%d+,@r%d+",
.mask = 0b1111000000001111,
.code = 0b0100000000001111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov\t0x%.8x,r%d",
.mask = 0b1111000000000000,
.code = 0b1110000000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\t@(0x%x,GBR),r0",
.mask = 0b1111111100000000,
.code = 0b1100010000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\t@(0x%x,r%d),r0",
.mask = 0b1111111100000000,
.code = 0b1000010000000000,
.arg = {
{.mask = 0b0000000000001111, .special = NULL},
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\t@(r0,r%d),r%d",
.mask = 0b1111000000001111,
.code = 0b0000000000001100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\t@r%d+,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\t@r%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\tr0,@(0x%x,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100000000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\tr0,@(0x%x,r%d)",
.mask = 0b1111111100000000,
.code = 0b1000000000000000,
.arg = {
{.mask = 0b0000000000001111, .special = NULL},
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\tr%d,@(r0,r%d)",
.mask = 0b1111000000001111,
.code = 0b0000000000000100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\tr%d,@-r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.b\tr%d,@r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\t@(0x%x,GBR),r0",
.mask = 0b1111111100000000,
.code = 0b1100011000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\t0x%.8x,r%d",
.mask = 0b1111000000000000,
.code = 0b1101000000000000,
.arg = {
{.mask = 0b0000000011111111, .special = &opcode_indirect_long_pc},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\t@(%#.8x,r%d),r%d",
.mask = 0b1111000000000000,
.code = 0b0101000000000000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000000000001111, .special = NULL}
}
},
{
.name = "mov.l\t@(r0,r%d),r%d",
.mask = 0b1111000000001111,
.code = 0b0000000000001110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\t@r%d+,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\t@r%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\tr0,@(0x%x,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100001000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\tr%d,@(0x%x,r%d)",
.mask = 0b1111000000000000,
.code = 0b0001000000000000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000000000001111, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL}
}
},
{
.name = "mov.l\tr%d,@(r0,r%d)",
.mask = 0b1111000000001111,
.code = 0b0000000000000110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\tr%d,@-r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.l\tr%d,@r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\t@(0x%x,GBR),r0",
.mask = 0b1111111100000000,
.code = 0b1100010100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\t0x%.4x,r%d",
.mask = 0b1111000000000000,
.code = 0b1001000000000000,
.arg = {
{.mask = 0b0000000011111111, .special = &opcode_indirect_word_pc},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\t@(r0,r%d),r%d",
.mask = 0b1111000000001111,
.code = 0b0000000000001101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\t@r%d+,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\t@r%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000001,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\tr0,@(0x%x,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100000100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\tr0,@(0x%x,,r%d)",
.mask = 0b1111111100000000,
.code = 0b1000000100000000,
.arg = {
{.mask = 0b0000000000001111, .special = NULL},
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\tr%d,@(r0,r%d)",
.mask = 0b1111000000001111,
.code = 0b0000000000000101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\tr%d,@-r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mov.w\tr%d,@r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000000001,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mova\t@(0x%x,PC),r0",
.mask = 0b1111111100000000,
.code = 0b1100011100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "movt\tr%d",
.mask = 0b1111000011111111,
.code = 0b0000000000101001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mul.l\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0000000000000111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "muls.w\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "mulu.w\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001110,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "neg\tr%d,@-r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "negc\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "nop",
.mask = 0b1111111111111111,
.code = 0b0000000000001001,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "not\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000000111,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "or\t0x%x,r0",
.mask = 0b1111111100000000,
.code = 0b1100101100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "or\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "or.b\t0x%x,@(r0,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100111100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "pref\t@r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010000011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "rotcl\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000100100,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "rotcr\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000100101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "rotl\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000000100,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "rotr\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000000101,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "rte",
.mask = 0b1111111111111111,
.code = 0b0000000000101011,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "rts",
.mask = 0b1111111111111111,
.code = 0b0000000000001011,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "setrc\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000010100,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "setrc\t0x%x",
.mask = 0b1111111100000000,
.code = 0b1000001000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sets",
.mask = 0b1111111111111111,
.code = 0b0000000001011000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sett",
.mask = 0b1111111111111111,
.code = 0b0000000000011000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shad\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0100000000001100,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shal\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000100000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shar\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000100001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shld\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0100000000001101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shll\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000000000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shll2\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000001000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shll8\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000011000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shll16\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000101000,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shlr\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000000001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shlr2\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000001001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shlr8\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000011001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "shlr16\tr%d",
.mask = 0b1111000011111111,
.code = 0b0100000000101001,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sleep",
.mask = 0b1111111111111111,
.code = 0b0000000000011011,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tGBR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tSR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000000010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tVBR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tSSR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000110010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tSPC,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001000010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tMOD,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tRE,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001110010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tRS,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR0_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010000010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR1_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR2_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR3_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010110010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR4_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000011000010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR5_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000011010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR6_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000011100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc\tR7_BANK,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000011110010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tGBR,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000000010011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tSR,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000000000011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tVBR,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000000100011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tSSR,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000000110011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tSPC,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000001000011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tMOD,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000001010011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tRE,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000001110011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tRS,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000001100011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR0_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000010000011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR1_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000010010011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR2_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000010100011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR3_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000010110011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR4_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000011000011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR5_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000011010011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR6_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000011100011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "stc.l\tR7_BANK,@r-%d",
.mask = 0b1111000011111111,
.code = 0b0100000011110011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tFPSCR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tFPUL,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001011010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tMACH,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000001010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tMACL,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000011010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tPR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000000101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tDSR,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tA0,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000001111010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tX0,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010001010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tX1,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010011010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tY0,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010101010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts\tY1,r%d",
.mask = 0b1111000011111111,
.code = 0b0000000010111010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tFPSCR,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000001100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tFPUL,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000001010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tMACH,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000000000010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tMACL,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000000010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tPR,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000000100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tDSR,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000001100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tA0,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000001110010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tX0,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000010000010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tX1,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000010010010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tY0,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000010100010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sts.l\tY1,@-r%d",
.mask = 0b1111000011111111,
.code = 0b0100000010110010,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "sub\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "subc\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "subv\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0011000000001011,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "swap.b\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "swap.w\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0110000000001001,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "tas.b\t@r%d",
.mask = 0b1111000011111111,
.code = 0b0100000000011011,
.arg = {
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "trapa\t0x%x",
.mask = 0b1111111100000000,
.code = 0b1100001100000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "tst\t0x%x,r0",
.mask = 0b1111111100000000,
.code = 0b1100100000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "tst\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001000,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "tst.b\t0x%x,@(r0,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100110000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "xor\t0x%x,r0",
.mask = 0b1111111100000000,
.code = 0b1100101000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "xor\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001010,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "wor.b\t0x%x,@(r0,GBR)",
.mask = 0b1111111100000000,
.code = 0b1100111000000000,
.arg = {
{.mask = 0b0000000011111111, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = "xtrct\tr%d,r%d",
.mask = 0b1111000000001111,
.code = 0b0010000000001101,
.arg = {
{.mask = 0b0000000011110000, .special = NULL},
{.mask = 0b0000111100000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
{
.name = NULL,
.mask = 0b0000000000000000,
.code = 0b0000000000000000,
.arg = {
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL},
{.mask = 0b0000000000000000, .special = NULL}
}
},
};