vhex-disassembler/include/opcode.h

2604 lines
46 KiB
C

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