1 ! Generated file. DO
NOT EDIT.
3 ! This file was generated by gas
/testsuite
/gas
/sh
/arch
/arch.exp
.
4 ! This file should contain every instruction valid on
5 ! architecture sh-dsp but no more.
6 ! If the tests are failing because the expected results
7 ! have changed then run
'make check' and copy the new file
8 ! from
<objdir
>/gas
/testsuite
/sh-dsp.s
9 ! to
<srcdir
>/gas
/testsuite
/gas
/sh
/arch
/sh-dsp.s
.
10 ! Make sure there are no unexpected
or missing instructions.
14 ! Instructions introduced into sh-dsp
15 ldc
r4,MOD ;
!/* 0100nnnn01011110 ldc <REG_N>,MOD */{"ldc",{A_REG_N
,A_MOD
},{HEX_4
,REG_N
,HEX_5
,HEX_E
}, arch_sh_dsp_up
}
16 ldc
r4,RE ;
!/* 0100nnnn01111110 ldc <REG_N>,RE */{"ldc",{A_REG_N
,A_RE
},{HEX_4
,REG_N
,HEX_7
,HEX_E
}, arch_sh_dsp_up
}
17 ldc
r4,RS ;
!/* 0100nnnn01101110 ldc <REG_N>,RS */{"ldc",{A_REG_N
,A_RS
},{HEX_4
,REG_N
,HEX_6
,HEX_E
}, arch_sh_dsp_up
}
18 ldc.
l @r4+
,MOD ;
!/* 0100nnnn01010111 ldc.l @<REG_N>+,MOD */{"ldc.l",{A_INC_N
,A_MOD
},{HEX_4
,REG_N
,HEX_5
,HEX_7
}, arch_sh_dsp_up
}
19 ldc.
l @r4+
,RE ;
!/* 0100nnnn01110111 ldc.l @<REG_N>+,RE */{"ldc.l",{A_INC_N
,A_RE
},{HEX_4
,REG_N
,HEX_7
,HEX_7
}, arch_sh_dsp_up
}
20 ldc.
l @r4+
,RS ;
!/* 0100nnnn01100111 ldc.l @<REG_N>+,RS */{"ldc.l",{A_INC_N
,A_RS
},{HEX_4
,REG_N
,HEX_6
,HEX_7
}, arch_sh_dsp_up
}
21 ldre @
(8,PC
) ;
!/* 10001110i8p2.... ldre @(<disp>,PC) */{"ldre",{A_DISP_PC
},{HEX_8
,HEX_E
,PCRELIMM_8BY2
}, arch_sh_dsp_up
}
22 ldrs @
(8,PC
) ;
!/* 10001100i8p2.... ldrs @(<disp>,PC) */{"ldrs",{A_DISP_PC
},{HEX_8
,HEX_C
,PCRELIMM_8BY2
}, arch_sh_dsp_up
}
23 lds
r4,DSR ;
!/* 0100nnnn01101010 lds <REG_N>,DSR */{"lds",{A_REG_N
,A_DSR
},{HEX_4
,REG_N
,HEX_6
,HEX_A
}, arch_sh_dsp_up
}
24 lds
r4,A0 ;
!/* 0100nnnn01111010 lds <REG_N>,A0 */{"lds",{A_REG_N
,A_A0
},{HEX_4
,REG_N
,HEX_7
,HEX_A
}, arch_sh_dsp_up
}
25 lds
r4,X0 ;
!/* 0100nnnn10001010 lds <REG_N>,X0 */{"lds",{A_REG_N
,A_X0
},{HEX_4
,REG_N
,HEX_8
,HEX_A
}, arch_sh_dsp_up
}
26 lds
r4,X1 ;
!/* 0100nnnn10011010 lds <REG_N>,X1 */{"lds",{A_REG_N
,A_X1
},{HEX_4
,REG_N
,HEX_9
,HEX_A
}, arch_sh_dsp_up
}
27 lds
r4,Y0 ;
!/* 0100nnnn10101010 lds <REG_N>,Y0 */{"lds",{A_REG_N
,A_Y0
},{HEX_4
,REG_N
,HEX_A
,HEX_A
}, arch_sh_dsp_up
}
28 lds
r4,Y1 ;
!/* 0100nnnn10111010 lds <REG_N>,Y1 */{"lds",{A_REG_N
,A_Y1
},{HEX_4
,REG_N
,HEX_B
,HEX_A
}, arch_sh_dsp_up
}
29 lds.
l @r4+
,DSR ;
!/* 0100nnnn01100110 lds.l @<REG_N>+,DSR */{"lds.l",{A_INC_N
,A_DSR
},{HEX_4
,REG_N
,HEX_6
,HEX_6
}, arch_sh_dsp_up
}
30 lds.
l @r4+
,A0 ;
!/* 0100nnnn01110110 lds.l @<REG_N>+,A0 */{"lds.l",{A_INC_N
,A_A0
},{HEX_4
,REG_N
,HEX_7
,HEX_6
}, arch_sh_dsp_up
}
31 lds.
l @r4+
,X0 ;
!/* 0100nnnn10000110 lds.l @<REG_N>+,X0 */{"lds.l",{A_INC_N
,A_X0
},{HEX_4
,REG_N
,HEX_8
,HEX_6
}, arch_sh_dsp_up
}
32 lds.
l @r4+
,X1 ;
!/* 0100nnnn10010110 lds.l @<REG_N>+,X1 */{"lds.l",{A_INC_N
,A_X1
},{HEX_4
,REG_N
,HEX_9
,HEX_6
}, arch_sh_dsp_up
}
33 lds.
l @r4+
,Y0 ;
!/* 0100nnnn10100110 lds.l @<REG_N>+,Y0 */{"lds.l",{A_INC_N
,A_Y0
},{HEX_4
,REG_N
,HEX_A
,HEX_6
}, arch_sh_dsp_up
}
34 lds.
l @r4+
,Y1 ;
!/* 0100nnnn10110110 lds.l @<REG_N>+,Y1 */{"lds.l",{A_INC_N
,A_Y1
},{HEX_4
,REG_N
,HEX_B
,HEX_6
}, arch_sh_dsp_up
}
35 setrc
r4 ;
!/* 0100nnnn00010100 setrc <REG_N> */{"setrc",{A_REG_N
},{HEX_4
,REG_N
,HEX_1
,HEX_4
}, arch_sh_dsp_up
}
36 setrc
#4 ;!/* 10000010i8*1.... setrc #<imm> */{"setrc",{A_IMM},{HEX_8,HEX_2,IMM0_8}, arch_sh_dsp_up}
37 repeat
10 20 r4 ;
!/* repeat start end <REG_N> */{"repeat",{A_DISP_PC
,A_DISP_PC
,A_REG_N
},{REPEAT
,REG_N
,HEX_1
,HEX_4
}, arch_sh_dsp_up
}
38 repeat
10 20 #4 ;!/* repeat start end #<imm> */{"repeat",{A_DISP_PC,A_DISP_PC,A_IMM},{REPEAT,HEX_2,IMM0_8,HEX_8}, arch_sh_dsp_up}
39 stc MOD
,r4 ;
!/* 0000nnnn01010010 stc MOD,<REG_N> */{"stc",{A_MOD
,A_REG_N
},{HEX_0
,REG_N
,HEX_5
,HEX_2
}, arch_sh_dsp_up
}
40 stc RE
,r4 ;
!/* 0000nnnn01110010 stc RE,<REG_N> */{"stc",{A_RE
,A_REG_N
},{HEX_0
,REG_N
,HEX_7
,HEX_2
}, arch_sh_dsp_up
}
41 stc RS
,r4 ;
!/* 0000nnnn01100010 stc RS,<REG_N> */{"stc",{A_RS
,A_REG_N
},{HEX_0
,REG_N
,HEX_6
,HEX_2
}, arch_sh_dsp_up
}
42 stc.
l MOD
,@
-r4 ;
!/* 0100nnnn01010011 stc.l MOD,@-<REG_N> */{"stc.l",{A_MOD
,A_DEC_N
},{HEX_4
,REG_N
,HEX_5
,HEX_3
}, arch_sh_dsp_up
}
43 stc.
l RE
,@
-r4 ;
!/* 0100nnnn01110011 stc.l RE,@-<REG_N> */{"stc.l",{A_RE
,A_DEC_N
},{HEX_4
,REG_N
,HEX_7
,HEX_3
}, arch_sh_dsp_up
}
44 stc.
l RS
,@
-r4 ;
!/* 0100nnnn01100011 stc.l RS,@-<REG_N> */{"stc.l",{A_RS
,A_DEC_N
},{HEX_4
,REG_N
,HEX_6
,HEX_3
}, arch_sh_dsp_up
}
45 sts DSR
,r4 ;
!/* 0000nnnn01101010 sts DSR,<REG_N> */{"sts",{A_DSR
,A_REG_N
},{HEX_0
,REG_N
,HEX_6
,HEX_A
}, arch_sh_dsp_up
}
46 sts A0
,r4 ;
!/* 0000nnnn01111010 sts A0,<REG_N> */{"sts",{A_A0
,A_REG_N
},{HEX_0
,REG_N
,HEX_7
,HEX_A
}, arch_sh_dsp_up
}
47 sts X0
,r4 ;
!/* 0000nnnn10001010 sts X0,<REG_N> */{"sts",{A_X0
,A_REG_N
},{HEX_0
,REG_N
,HEX_8
,HEX_A
}, arch_sh_dsp_up
}
48 sts X1
,r4 ;
!/* 0000nnnn10011010 sts X1,<REG_N> */{"sts",{A_X1
,A_REG_N
},{HEX_0
,REG_N
,HEX_9
,HEX_A
}, arch_sh_dsp_up
}
49 sts Y0
,r4 ;
!/* 0000nnnn10101010 sts Y0,<REG_N> */{"sts",{A_Y0
,A_REG_N
},{HEX_0
,REG_N
,HEX_A
,HEX_A
}, arch_sh_dsp_up
}
50 sts Y1
,r4 ;
!/* 0000nnnn10111010 sts Y1,<REG_N> */{"sts",{A_Y1
,A_REG_N
},{HEX_0
,REG_N
,HEX_B
,HEX_A
}, arch_sh_dsp_up
}
51 sts.
l DSR
,@
-r4 ;
!/* 0100nnnn01100110 sts.l DSR,@-<REG_N> */{"sts.l",{A_DSR
,A_DEC_N
},{HEX_4
,REG_N
,HEX_6
,HEX_2
}, arch_sh_dsp_up
}
52 sts.
l A0
,@
-r4 ;
!/* 0100nnnn01110110 sts.l A0,@-<REG_N> */{"sts.l",{A_A0
,A_DEC_N
},{HEX_4
,REG_N
,HEX_7
,HEX_2
}, arch_sh_dsp_up
}
53 sts.
l X0
,@
-r4 ;
!/* 0100nnnn10000110 sts.l X0,@-<REG_N> */{"sts.l",{A_X0
,A_DEC_N
},{HEX_4
,REG_N
,HEX_8
,HEX_2
}, arch_sh_dsp_up
}
54 sts.
l X1
,@
-r4 ;
!/* 0100nnnn10010110 sts.l X1,@-<REG_N> */{"sts.l",{A_X1
,A_DEC_N
},{HEX_4
,REG_N
,HEX_9
,HEX_2
}, arch_sh_dsp_up
}
55 sts.
l Y0
,@
-r4 ;
!/* 0100nnnn10100110 sts.l Y0,@-<REG_N> */{"sts.l",{A_Y0
,A_DEC_N
},{HEX_4
,REG_N
,HEX_A
,HEX_2
}, arch_sh_dsp_up
}
56 sts.
l Y1
,@
-r4 ;
!/* 0100nnnn10110110 sts.l Y1,@-<REG_N> */{"sts.l",{A_Y1
,A_DEC_N
},{HEX_4
,REG_N
,HEX_B
,HEX_2
}, arch_sh_dsp_up
}
57 movs.w @
-r4,a1 ;
!/* 111101nnmmmm0000 movs.w @-<REG_N>,<DSP_REG_M> */ {"movs.w",{A_DEC_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_0
}, arch_sh_dsp_up
}
58 movs.w @
r4,a1 ;
!/* 111101nnmmmm0001 movs.w @<REG_N>,<DSP_REG_M> */ {"movs.w",{A_IND_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_4
}, arch_sh_dsp_up
}
59 movs.w @r4+
,a1 ;
!/* 111101nnmmmm0010 movs.w @<REG_N>+,<DSP_REG_M> */ {"movs.w",{A_INC_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_8
}, arch_sh_dsp_up
}
60 movs.w @r4+
r8,a1 ;
!/* 111101nnmmmm0011 movs.w @<REG_N>+r8,<DSP_REG_M> */ {"movs.w",{AS_PMOD_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_C
}, arch_sh_dsp_up
}
61 movs.w a1
,@
-r4 ;
!/* 111101nnmmmm0100 movs.w <DSP_REG_M>,@-<REG_N> */ {"movs.w",{DSP_REG_M
,A_DEC_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_1
}, arch_sh_dsp_up
}
62 movs.w a1
,@
r4 ;
!/* 111101nnmmmm0101 movs.w <DSP_REG_M>,@<REG_N> */ {"movs.w",{DSP_REG_M
,A_IND_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_5
}, arch_sh_dsp_up
}
63 movs.w a1
,@r4+ ;
!/* 111101nnmmmm0110 movs.w <DSP_REG_M>,@<REG_N>+ */ {"movs.w",{DSP_REG_M
,A_INC_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_9
}, arch_sh_dsp_up
}
64 movs.w a1
,@r4+
r8 ;
!/* 111101nnmmmm0111 movs.w <DSP_REG_M>,@<REG_N>+r8 */ {"movs.w",{DSP_REG_M
,AS_PMOD_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_D
}, arch_sh_dsp_up
}
65 movs.
l @
-r4,a1 ;
!/* 111101nnmmmm1000 movs.l @-<REG_N>,<DSP_REG_M> */ {"movs.l",{A_DEC_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_2
}, arch_sh_dsp_up
}
66 movs.
l @
r4,a1 ;
!/* 111101nnmmmm1001 movs.l @<REG_N>,<DSP_REG_M> */ {"movs.l",{A_IND_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_6
}, arch_sh_dsp_up
}
67 movs.
l @r4+
,a1 ;
!/* 111101nnmmmm1010 movs.l @<REG_N>+,<DSP_REG_M> */ {"movs.l",{A_INC_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_A
}, arch_sh_dsp_up
}
68 movs.
l @r4+
r8,a1 ;
!/* 111101nnmmmm1011 movs.l @<REG_N>+r8,<DSP_REG_M> */ {"movs.l",{AS_PMOD_N
,DSP_REG_M
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_E
}, arch_sh_dsp_up
}
69 movs.
l a1
,@
-r4 ;
!/* 111101nnmmmm1100 movs.l <DSP_REG_M>,@-<REG_N> */ {"movs.l",{DSP_REG_M
,A_DEC_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_3
}, arch_sh_dsp_up
}
70 movs.
l a1
,@
r4 ;
!/* 111101nnmmmm1101 movs.l <DSP_REG_M>,@<REG_N> */ {"movs.l",{DSP_REG_M
,A_IND_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_7
}, arch_sh_dsp_up
}
71 movs.
l a1
,@r4+ ;
!/* 111101nnmmmm1110 movs.l <DSP_REG_M>,@<REG_N>+ */ {"movs.l",{DSP_REG_M
,A_INC_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_B
}, arch_sh_dsp_up
}
72 movs.
l a1
,@r4+
r8 ;
!/* 111101nnmmmm1111 movs.l <DSP_REG_M>,@<REG_N>+r8 */ {"movs.l",{DSP_REG_M
,AS_PMOD_N
},{HEX_F
,SDT_REG_N
,REG_M
,HEX_F
}, arch_sh_dsp_up
}
73 nopx ;
!/* 0*0*0*00** nopx */ {"nopx",{0},{PPI
,NOPX
}, arch_sh_dsp_up
}
74 nopy ;
!/* *0*0*0**00 nopy */ {"nopy",{0},{PPI
,NOPY
}, arch_sh_dsp_up
}
75 movx.w @
r4,x1 ;
!/* n*m*0*01** movx.w @<REG_N>,<DSP_REG_X> */ {"movx.w",{AX_IND_N
,DSP_REG_X
},{PPI
,MOVX
,HEX_1
}, arch_sh_dsp_up
}
76 movx.w @r4+
,x1 ;
!/* n*m*0*10** movx.w @<REG_N>+,<DSP_REG_X> */ {"movx.w",{AX_INC_N
,DSP_REG_X
},{PPI
,MOVX
,HEX_2
}, arch_sh_dsp_up
}
77 movx.w @r4+
r8,x1 ;
!/* n*m*0*11** movx.w @<REG_N>+r8,<DSP_REG_X> */ {"movx.w",{AX_PMOD_N
,DSP_REG_X
},{PPI
,MOVX
,HEX_3
}, arch_sh_dsp_up
}
78 movx.w a1
,@
r4 ;
!/* n*m*1*01** movx.w <DSP_REG_M>,@<REG_N> */ {"movx.w",{DSP_REG_A_M
,AX_IND_N
},{PPI
,MOVX
,HEX_9
}, arch_sh_dsp_up
}
79 movx.w a1
,@r4+ ;
!/* n*m*1*10** movx.w <DSP_REG_M>,@<REG_N>+ */ {"movx.w",{DSP_REG_A_M
,AX_INC_N
},{PPI
,MOVX
,HEX_A
}, arch_sh_dsp_up
}
80 movx.w a1
,@r4+
r8 ;
!/* n*m*1*11** movx.w <DSP_REG_M>,@<REG_N>+r8 */ {"movx.w",{DSP_REG_A_M
,AX_PMOD_N
},{PPI
,MOVX
,HEX_B
}, arch_sh_dsp_up
}
81 movy.w @
r6,y0 ;
!/* *n*m*0**01 movy.w @<REG_N>,<DSP_REG_Y> */ {"movy.w",{AY_IND_N
,DSP_REG_Y
},{PPI
,MOVY
,HEX_1
}, arch_sh_dsp_up
}
82 movy.w @r6+
,y0 ;
!/* *n*m*0**10 movy.w @<REG_N>+,<DSP_REG_Y> */ {"movy.w",{AY_INC_N
,DSP_REG_Y
},{PPI
,MOVY
,HEX_2
}, arch_sh_dsp_up
}
83 movy.w @r6+
r9,y0 ;
!/* *n*m*0**11 movy.w @<REG_N>+r9,<DSP_REG_Y> */ {"movy.w",{AY_PMOD_N
,DSP_REG_Y
},{PPI
,MOVY
,HEX_3
}, arch_sh_dsp_up
}
84 movy.w a1
,@
r6 ;
!/* *n*m*1**01 movy.w <DSP_REG_M>,@<REG_N> */ {"movy.w",{DSP_REG_A_M
,AY_IND_N
},{PPI
,MOVY
,HEX_9
}, arch_sh_dsp_up
}
85 movy.w a1
,@r6+ ;
!/* *n*m*1**10 movy.w <DSP_REG_M>,@<REG_N>+ */ {"movy.w",{DSP_REG_A_M
,AY_INC_N
},{PPI
,MOVY
,HEX_A
}, arch_sh_dsp_up
}
86 movy.w a1
,@r6+
r9 ;
!/* *n*m*1**11 movy.w <DSP_REG_M>,@<REG_N>+r9 */ {"movy.w",{DSP_REG_A_M
,AY_PMOD_N
},{PPI
,MOVY
,HEX_B
}, arch_sh_dsp_up
}
87 pmuls x0
,y0
,m0 ;
!/* 01aaeeffxxyyggnn pmuls Se,Sf,Dg */ {"pmuls",{DSP_REG_E
,DSP_REG_F
,DSP_REG_G
},{PPI
,PMUL
}, arch_sh_dsp_up
}
88 psubc x1
,y0
,m0 ;
!/* 10100000xxyynnnn psubc <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"psubc",{DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPI3
,HEX_A
,HEX_0
}, arch_sh_dsp_up
}
89 paddc x1
,y0
,m0 ;
!/* 10110000xxyynnnn paddc <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"paddc",{DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPI3
,HEX_B
,HEX_0
}, arch_sh_dsp_up
}
90 pcmp x1
,y0 ;
!/* 10000100xxyynnnn pcmp <DSP_REG_X>,<DSP_REG_Y> */ {"pcmp", {DSP_REG_X
,DSP_REG_Y
},{PPI
,PPI3
,HEX_8
,HEX_4
}, arch_sh_dsp_up
}
91 pwsb x1
,y0
,m0 ;
!/* 10100100xxyynnnn pwsb <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"pwsb", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPI3
,HEX_A
,HEX_4
}, arch_sh_dsp_up
}
92 pwad x1
,y0
,m0 ;
!/* 10110100xxyynnnn pwad <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"pwad", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPI3
,HEX_B
,HEX_4
}, arch_sh_dsp_up
}
93 pabs x1
,m0 ;
!/* 10001000xxyynnnn pabs <DSP_REG_X>,<DSP_REG_N> */ {"pabs", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPI3NC
,HEX_8
,HEX_8
}, arch_sh_dsp_up
}
94 pabs y0
,m0 ;
!/* 10101000xxyynnnn pabs <DSP_REG_Y>,<DSP_REG_N> */ {"pabs", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPI3NC
,HEX_A
,HEX_8
}, arch_sh_dsp_up
}
95 prnd x1
,m0 ;
!/* 10011000xxyynnnn prnd <DSP_REG_X>,<DSP_REG_N> */ {"prnd", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPI3NC
,HEX_9
,HEX_8
}, arch_sh_dsp_up
}
96 prnd y0
,m0 ;
!/* 10111000xxyynnnn prnd <DSP_REG_Y>,<DSP_REG_N> */ {"prnd", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPI3NC
,HEX_B
,HEX_8
}, arch_sh_dsp_up
}
97 dct pshl x1
,y0
,m0 ;
!/* 10000001xxyynnnn pshl <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"pshl", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_8
,HEX_1
}, arch_sh_dsp_up
}
98 pshl
#4,m0 ;!/* 00000iiiiiiinnnn pshl #<imm>,<DSP_REG_N> */ {"pshl",{A_IMM,DSP_REG_N},{PPI,PSH,HEX_0}, arch_sh_dsp_up}
99 dct psha x1
,y0
,m0 ;
!/* 10010001xxyynnnn psha <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"psha", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_9
,HEX_1
}, arch_sh_dsp_up
}
100 psha
#4,m0 ;!/* 00010iiiiiiinnnn psha #<imm>,<DSP_REG_N> */ {"psha",{A_IMM,DSP_REG_N},{PPI,PSH,HEX_1}, arch_sh_dsp_up}
101 dct psub x1
,y0
,m0 ;
!/* 10100001xxyynnnn psub <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"psub", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_A
,HEX_1
}, arch_sh_dsp_up
}
102 dct padd x1
,y0
,m0 ;
!/* 10110001xxyynnnn padd <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"padd", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_B
,HEX_1
}, arch_sh_dsp_up
}
103 dct pand x1
,y0
,m0 ;
!/* 10010101xxyynnnn pand <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"pand", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_9
,HEX_5
}, arch_sh_dsp_up
}
104 dct pxor x1
,y0
,m0 ;
!/* 10100101xxyynnnn pxor <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"pxor", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_A
,HEX_5
}, arch_sh_dsp_up
}
105 dct por x1
,y0
,m0 ;
!/* 10110101xxyynnnn por <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */ {"por", {DSP_REG_X
,DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_B
,HEX_5
}, arch_sh_dsp_up
}
106 dct pdec x1
,m0 ;
!/* 10001001xxyynnnn pdec <DSP_REG_X>,<DSP_REG_N> */ {"pdec", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPIC
,HEX_8
,HEX_9
}, arch_sh_dsp_up
}
107 dct pdec y0
,m0 ;
!/* 10101001xxyynnnn pdec <DSP_REG_Y>,<DSP_REG_N> */ {"pdec", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_A
,HEX_9
}, arch_sh_dsp_up
}
108 dct pinc x1
,m0 ;
!/* 10011001xx00nnnn pinc <DSP_REG_X>,<DSP_REG_N> */ {"pinc", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPIC
,HEX_9
,HEX_9
,HEX_XX00
}, arch_sh_dsp_up
}
109 dct pinc y0
,m0 ;
!/* 1011100100yynnnn pinc <DSP_REG_Y>,<DSP_REG_N> */ {"pinc", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_B
,HEX_9
,HEX_00YY
}, arch_sh_dsp_up
}
110 dct pclr m0 ;
!/* 10001101xxyynnnn pclr <DSP_REG_N> */ {"pclr", {DSP_REG_N
},{PPI
,PPIC
,HEX_8
,HEX_D
}, arch_sh_dsp_up
}
111 dct pdmsb x1
,m0 ;
!/* 10011101xx00nnnn pdmsb <DSP_REG_X>,<DSP_REG_N> */ {"pdmsb", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPIC
,HEX_9
,HEX_D
,HEX_XX00
}, arch_sh_dsp_up
}
112 dct pdmsb y0
,m0 ;
!/* 1011110100yynnnn pdmsb <DSP_REG_Y>,<DSP_REG_N> */ {"pdmsb", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_B
,HEX_D
,HEX_00YY
}, arch_sh_dsp_up
}
113 dct pneg x1
,m0 ;
!/* 11001001xxyynnnn pneg <DSP_REG_X>,<DSP_REG_N> */ {"pneg", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPIC
,HEX_C
,HEX_9
}, arch_sh_dsp_up
}
114 dct pneg y0
,m0 ;
!/* 11101001xxyynnnn pneg <DSP_REG_Y>,<DSP_REG_N> */ {"pneg", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_E
,HEX_9
}, arch_sh_dsp_up
}
115 dct pcopy x1
,m0 ;
!/* 11011001xxyynnnn pcopy <DSP_REG_X>,<DSP_REG_N> */ {"pcopy", {DSP_REG_X
,DSP_REG_N
},{PPI
,PPIC
,HEX_D
,HEX_9
}, arch_sh_dsp_up
}
116 dct pcopy y0
,m0 ;
!/* 11111001xxyynnnn pcopy <DSP_REG_Y>,<DSP_REG_N> */ {"pcopy", {DSP_REG_Y
,DSP_REG_N
},{PPI
,PPIC
,HEX_F
,HEX_9
}, arch_sh_dsp_up
}
117 dct psts MACH
,m0 ;
!/* 11001101xxyynnnn psts MACH,<DSP_REG_N> */ {"psts", {A_MACH
,DSP_REG_N
},{PPI
,PPIC
,HEX_C
,HEX_D
}, arch_sh_dsp_up
}
118 dct psts MACL
,m0 ;
!/* 11011101xxyynnnn psts MACL,<DSP_REG_N> */ {"psts", {A_MACL
,DSP_REG_N
},{PPI
,PPIC
,HEX_D
,HEX_D
}, arch_sh_dsp_up
}
119 dct plds m0
,MACH ;
!/* 11101101xxyynnnn plds <DSP_REG_N>,MACH */ {"plds", {DSP_REG_N
,A_MACH
},{PPI
,PPIC
,HEX_E
,HEX_D
}, arch_sh_dsp_up
}
120 dct plds m0
,MACL ;
!/* 11111101xxyynnnn plds <DSP_REG_N>,MACL */ {"plds", {DSP_REG_N
,A_MACL
},{PPI
,PPIC
,HEX_F
,HEX_D
}, arch_sh_dsp_up
}
122 ! Instructions inherited from ancestors
: sh sh2
123 add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
124 add r5,r4 ;
!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_C
}, arch_sh_up
}
125 addc r5,r4 ;
!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_E
}, arch_sh_up
}
126 addv
r5,r4 ;
!/* 0011nnnnmmmm1111 addv <REG_M>,<REG_N>*/{"addv",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_F
}, arch_sh_up
}
127 and #4,R0 ;!/* 11001001i8*1.... and #<imm>,R0 */{"and",{A_IMM,A_R0},{HEX_C,HEX_9,IMM0_8}, arch_sh_up}
128 and r5,r4 ;
!/* 0010nnnnmmmm1001 and <REG_M>,<REG_N> */{"and",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_9
}, arch_sh_up
}
129 and.b #4,@(R0,GBR) ;!/* 11001101i8*1.... and.b #<imm>,@(R0,GBR)*/{"and.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_D,IMM0_8}, arch_sh_up}
130 bra
.+8 ;!/* 1010i12......... bra <bdisp12> */{"bra",{A_BDISP12},{HEX_A,BRANCH_12}, arch_sh_up}
131 bsr
.+8 ;!/* 1011i12......... bsr <bdisp12> */{"bsr",{A_BDISP12},{HEX_B,BRANCH_12}, arch_sh_up}
132 bt .+8 ;!/* 10001001i8p1.... bt <bdisp8> */{"bt",{A_BDISP8},{HEX_8,HEX_9,BRANCH_8}, arch_sh_up}
133 bf .+8 ;!/* 10001011i8p1.... bf <bdisp8> */{"bf",{A_BDISP8},{HEX_8,HEX_B,BRANCH_8}, arch_sh_up}
134 bt.s
.+8 ;!/* 10001101i8p1.... bt.s <bdisp8> */{"bt.s",{A_BDISP8},{HEX_8,HEX_D,BRANCH_8}, arch_sh2_up}
135 bt/s
.+8 ;!/* 10001101i8p1.... bt/s <bdisp8> */{"bt/s",{A_BDISP8},{HEX_8,HEX_D,BRANCH_8}, arch_sh2_up}
136 bf.s
.+8 ;!/* 10001111i8p1.... bf.s <bdisp8> */{"bf.s",{A_BDISP8},{HEX_8,HEX_F,BRANCH_8}, arch_sh2_up}
137 bf/s
.+8 ;!/* 10001111i8p1.... bf/s <bdisp8> */{"bf/s",{A_BDISP8},{HEX_8,HEX_F,BRANCH_8}, arch_sh2_up}
138 clrmac ;
!/* 0000000000101000 clrmac */{"clrmac",{0},{HEX_0
,HEX_0
,HEX_2
,HEX_8
}, arch_sh_up
}
139 clrs ;
!/* 0000000001001000 clrs */{"clrs",{0},{HEX_0
,HEX_0
,HEX_4
,HEX_8
}, arch_sh_up
}
140 clrt ;
!/* 0000000000001000 clrt */{"clrt",{0},{HEX_0
,HEX_0
,HEX_0
,HEX_8
}, arch_sh_up
}
141 cmp/eq
#4,R0 ;!/* 10001000i8*1.... cmp/eq #<imm>,R0 */{"cmp/eq",{A_IMM,A_R0},{HEX_8,HEX_8,IMM0_8}, arch_sh_up}
142 cmp/eq
r5,r4 ;
!/* 0011nnnnmmmm0000 cmp/eq <REG_M>,<REG_N>*/{"cmp/eq",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_0
}, arch_sh_up
}
143 cmp/ge
r5,r4 ;
!/* 0011nnnnmmmm0011 cmp/ge <REG_M>,<REG_N>*/{"cmp/ge",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_3
}, arch_sh_up
}
144 cmp/gt
r5,r4 ;
!/* 0011nnnnmmmm0111 cmp/gt <REG_M>,<REG_N>*/{"cmp/gt",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_7
}, arch_sh_up
}
145 cmp/hi
r5,r4 ;
!/* 0011nnnnmmmm0110 cmp/hi <REG_M>,<REG_N>*/{"cmp/hi",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_6
}, arch_sh_up
}
146 cmp/hs
r5,r4 ;
!/* 0011nnnnmmmm0010 cmp/hs <REG_M>,<REG_N>*/{"cmp/hs",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_2
}, arch_sh_up
}
147 cmp/pl
r4 ;
!/* 0100nnnn00010101 cmp/pl <REG_N> */{"cmp/pl",{A_REG_N
},{HEX_4
,REG_N
,HEX_1
,HEX_5
}, arch_sh_up
}
148 cmp/pz
r4 ;
!/* 0100nnnn00010001 cmp/pz <REG_N> */{"cmp/pz",{A_REG_N
},{HEX_4
,REG_N
,HEX_1
,HEX_1
}, arch_sh_up
}
149 cmp/str
r5,r4 ;
!/* 0010nnnnmmmm1100 cmp/str <REG_M>,<REG_N>*/{"cmp/str",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_C
}, arch_sh_up
}
150 div0s
r5,r4 ;
!/* 0010nnnnmmmm0111 div0s <REG_M>,<REG_N>*/{"div0s",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_7
}, arch_sh_up
}
151 div0u ;
!/* 0000000000011001 div0u */{"div0u",{0},{HEX_0
,HEX_0
,HEX_1
,HEX_9
}, arch_sh_up
}
152 div1
r5,r4 ;
!/* 0011nnnnmmmm0100 div1 <REG_M>,<REG_N>*/{"div1",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_4
}, arch_sh_up
}
153 exts.b r5,r4 ;
!/* 0110nnnnmmmm1110 exts.b <REG_M>,<REG_N>*/{"exts.b",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_E
}, arch_sh_up
}
154 exts.w
r5,r4 ;
!/* 0110nnnnmmmm1111 exts.w <REG_M>,<REG_N>*/{"exts.w",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_F
}, arch_sh_up
}
155 extu.
b r5,r4 ;
!/* 0110nnnnmmmm1100 extu.b <REG_M>,<REG_N>*/{"extu.b",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_C
}, arch_sh_up
}
156 extu.w
r5,r4 ;
!/* 0110nnnnmmmm1101 extu.w <REG_M>,<REG_N>*/{"extu.w",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_D
}, arch_sh_up
}
157 jmp @
r4 ;
!/* 0100nnnn00101011 jmp @<REG_N> */{"jmp",{A_IND_N
},{HEX_4
,REG_N
,HEX_2
,HEX_B
}, arch_sh_up
}
158 jsr @
r4 ;
!/* 0100nnnn00001011 jsr @<REG_N> */{"jsr",{A_IND_N
},{HEX_4
,REG_N
,HEX_0
,HEX_B
}, arch_sh_up
}
159 ldc
r4,SR ;
!/* 0100nnnn00001110 ldc <REG_N>,SR */{"ldc",{A_REG_N
,A_SR
},{HEX_4
,REG_N
,HEX_0
,HEX_E
}, arch_sh_up
}
160 ldc
r4,GBR ;
!/* 0100nnnn00011110 ldc <REG_N>,GBR */{"ldc",{A_REG_N
,A_GBR
},{HEX_4
,REG_N
,HEX_1
,HEX_E
}, arch_sh_up
}
161 ldc
r4,VBR ;
!/* 0100nnnn00101110 ldc <REG_N>,VBR */{"ldc",{A_REG_N
,A_VBR
},{HEX_4
,REG_N
,HEX_2
,HEX_E
}, arch_sh_up
}
162 ldc.
l @r4+
,SR ;
!/* 0100nnnn00000111 ldc.l @<REG_N>+,SR */{"ldc.l",{A_INC_N
,A_SR
},{HEX_4
,REG_N
,HEX_0
,HEX_7
}, arch_sh_up
}
163 ldc.
l @r4+
,GBR ;
!/* 0100nnnn00010111 ldc.l @<REG_N>+,GBR */{"ldc.l",{A_INC_N
,A_GBR
},{HEX_4
,REG_N
,HEX_1
,HEX_7
}, arch_sh_up
}
164 ldc.
l @r4+
,VBR ;
!/* 0100nnnn00100111 ldc.l @<REG_N>+,VBR */{"ldc.l",{A_INC_N
,A_VBR
},{HEX_4
,REG_N
,HEX_2
,HEX_7
}, arch_sh_up
}
165 lds
r4,MACH ;
!/* 0100nnnn00001010 lds <REG_N>,MACH */{"lds",{A_REG_N
,A_MACH
},{HEX_4
,REG_N
,HEX_0
,HEX_A
}, arch_sh_up
}
166 lds
r4,MACL ;
!/* 0100nnnn00011010 lds <REG_N>,MACL */{"lds",{A_REG_N
,A_MACL
},{HEX_4
,REG_N
,HEX_1
,HEX_A
}, arch_sh_up
}
167 lds
r4,PR ;
!/* 0100nnnn00101010 lds <REG_N>,PR */{"lds",{A_REG_N
,A_PR
},{HEX_4
,REG_N
,HEX_2
,HEX_A
}, arch_sh_up
}
168 lds.
l @r4+
,MACH ;
!/* 0100nnnn00000110 lds.l @<REG_N>+,MACH*/{"lds.l",{A_INC_N
,A_MACH
},{HEX_4
,REG_N
,HEX_0
,HEX_6
}, arch_sh_up
}
169 lds.
l @r4+
,MACL ;
!/* 0100nnnn00010110 lds.l @<REG_N>+,MACL*/{"lds.l",{A_INC_N
,A_MACL
},{HEX_4
,REG_N
,HEX_1
,HEX_6
}, arch_sh_up
}
170 lds.
l @r4+
,PR ;
!/* 0100nnnn00100110 lds.l @<REG_N>+,PR */{"lds.l",{A_INC_N
,A_PR
},{HEX_4
,REG_N
,HEX_2
,HEX_6
}, arch_sh_up
}
171 mac.w @r5+
,@r4+ ;
!/* 0100nnnnmmmm1111 mac.w @<REG_M>+,@<REG_N>+*/{"mac.w",{A_INC_M
,A_INC_N
},{HEX_4
,REG_N
,REG_M
,HEX_F
}, arch_sh_up
}
172 mov
#4,r4 ;!/* 1110nnnni8*1.... mov #<imm>,<REG_N> */{"mov",{A_IMM,A_REG_N},{HEX_E,REG_N,IMM0_8}, arch_sh_up}
173 mov
r5,r4 ;
!/* 0110nnnnmmmm0011 mov <REG_M>,<REG_N> */{"mov",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_3
}, arch_sh_up
}
174 mov.
b r5,@
(R0,r4) ;
!/* 0000nnnnmmmm0100 mov.b <REG_M>,@(R0,<REG_N>)*/{"mov.b",{ A_REG_M
,A_IND_R0_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_4
}, arch_sh_up
}
175 mov.
b r5,@
-r4 ;
!/* 0010nnnnmmmm0100 mov.b <REG_M>,@-<REG_N>*/{"mov.b",{ A_REG_M
,A_DEC_N
},{HEX_2
,REG_N
,REG_M
,HEX_4
}, arch_sh_up
}
176 mov.
b r5,@
r4 ;
!/* 0010nnnnmmmm0000 mov.b <REG_M>,@<REG_N>*/{"mov.b",{ A_REG_M
,A_IND_N
},{HEX_2
,REG_N
,REG_M
,HEX_0
}, arch_sh_up
}
177 mov.
b @
(8,r5),R0 ;
!/* 10000100mmmmi4*1 mov.b @(<disp>,<REG_M>),R0*/{"mov.b",{A_DISP_REG_M
,A_R0
},{HEX_8
,HEX_4
,REG_M
,IMM0_4
}, arch_sh_up
}
178 mov.
b @
(8,GBR
),R0 ;
!/* 11000100i8*1.... mov.b @(<disp>,GBR),R0*/{"mov.b",{A_DISP_GBR
,A_R0
},{HEX_C
,HEX_4
,IMM0_8
}, arch_sh_up
}
179 mov.
b @
(R0,r5),r4 ;
!/* 0000nnnnmmmm1100 mov.b @(R0,<REG_M>),<REG_N>*/{"mov.b",{A_IND_R0_REG_M
,A_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_C
}, arch_sh_up
}
180 mov.
b @r5+
,r4 ;
!/* 0110nnnnmmmm0100 mov.b @<REG_M>+,<REG_N>*/{"mov.b",{A_INC_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_4
}, arch_sh_up
}
181 mov.
b @
r5,r4 ;
!/* 0110nnnnmmmm0000 mov.b @<REG_M>,<REG_N>*/{"mov.b",{A_IND_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_0
}, arch_sh_up
}
182 mov.
b R0,@
(8,r5) ;
!/* 10000000mmmmi4*1 mov.b R0,@(<disp>,<REG_M>)*/{"mov.b",{A_R0
,A_DISP_REG_M
},{HEX_8
,HEX_0
,REG_M
,IMM1_4
}, arch_sh_up
}
183 mov.
b R0,@
(8,GBR
) ;
!/* 11000000i8*1.... mov.b R0,@(<disp>,GBR)*/{"mov.b",{A_R0
,A_DISP_GBR
},{HEX_C
,HEX_0
,IMM1_8
}, arch_sh_up
}
184 mov.
l r5,@
(8,r4) ;
!/* 0001nnnnmmmmi4*4 mov.l <REG_M>,@(<disp>,<REG_N>)*/{"mov.l",{ A_REG_M
,A_DISP_REG_N
},{HEX_1
,REG_N
,REG_M
,IMM1_4BY4
}, arch_sh_up
}
185 mov.
l r5,@
(R0,r4) ;
!/* 0000nnnnmmmm0110 mov.l <REG_M>,@(R0,<REG_N>)*/{"mov.l",{ A_REG_M
,A_IND_R0_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_6
}, arch_sh_up
}
186 mov.
l r5,@
-r4 ;
!/* 0010nnnnmmmm0110 mov.l <REG_M>,@-<REG_N>*/{"mov.l",{ A_REG_M
,A_DEC_N
},{HEX_2
,REG_N
,REG_M
,HEX_6
}, arch_sh_up
}
187 mov.
l r5,@
r4 ;
!/* 0010nnnnmmmm0010 mov.l <REG_M>,@<REG_N>*/{"mov.l",{ A_REG_M
,A_IND_N
},{HEX_2
,REG_N
,REG_M
,HEX_2
}, arch_sh_up
}
188 mov.
l @
(8,r5),r4 ;
!/* 0101nnnnmmmmi4*4 mov.l @(<disp>,<REG_M>),<REG_N>*/{"mov.l",{A_DISP_REG_M
,A_REG_N
},{HEX_5
,REG_N
,REG_M
,IMM0_4BY4
}, arch_sh_up
}
189 mov.
l @
(8,GBR
),R0 ;
!/* 11000110i8*4.... mov.l @(<disp>,GBR),R0*/{"mov.l",{A_DISP_GBR
,A_R0
},{HEX_C
,HEX_6
,IMM0_8BY4
}, arch_sh_up
}
190 mov.
l @
(8,PC
),r4 ;
!/* 1101nnnni8p4.... mov.l @(<disp>,PC),<REG_N>*/{"mov.l",{A_DISP_PC
,A_REG_N
},{HEX_D
,REG_N
,PCRELIMM_8BY4
}, arch_sh_up
}
191 mov.
l @
(R0,r5),r4 ;
!/* 0000nnnnmmmm1110 mov.l @(R0,<REG_M>),<REG_N>*/{"mov.l",{A_IND_R0_REG_M
,A_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_E
}, arch_sh_up
}
192 mov.
l @r5+
,r4 ;
!/* 0110nnnnmmmm0110 mov.l @<REG_M>+,<REG_N>*/{"mov.l",{A_INC_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_6
}, arch_sh_up
}
193 mov.
l @
r5,r4 ;
!/* 0110nnnnmmmm0010 mov.l @<REG_M>,<REG_N>*/{"mov.l",{A_IND_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_2
}, arch_sh_up
}
194 mov.
l R0,@
(8,GBR
) ;
!/* 11000010i8*4.... mov.l R0,@(<disp>,GBR)*/{"mov.l",{A_R0
,A_DISP_GBR
},{HEX_C
,HEX_2
,IMM1_8BY4
}, arch_sh_up
}
195 mov.w
r5,@
(R0,r4) ;
!/* 0000nnnnmmmm0101 mov.w <REG_M>,@(R0,<REG_N>)*/{"mov.w",{ A_REG_M
,A_IND_R0_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_5
}, arch_sh_up
}
196 mov.w
r5,@
-r4 ;
!/* 0010nnnnmmmm0101 mov.w <REG_M>,@-<REG_N>*/{"mov.w",{ A_REG_M
,A_DEC_N
},{HEX_2
,REG_N
,REG_M
,HEX_5
}, arch_sh_up
}
197 mov.w
r5,@
r4 ;
!/* 0010nnnnmmmm0001 mov.w <REG_M>,@<REG_N>*/{"mov.w",{ A_REG_M
,A_IND_N
},{HEX_2
,REG_N
,REG_M
,HEX_1
}, arch_sh_up
}
198 mov.w @
(8,r5),R0 ;
!/* 10000101mmmmi4*2 mov.w @(<disp>,<REG_M>),R0*/{"mov.w",{A_DISP_REG_M
,A_R0
},{HEX_8
,HEX_5
,REG_M
,IMM0_4BY2
}, arch_sh_up
}
199 mov.w @
(8,GBR
),R0 ;
!/* 11000101i8*2.... mov.w @(<disp>,GBR),R0*/{"mov.w",{A_DISP_GBR
,A_R0
},{HEX_C
,HEX_5
,IMM0_8BY2
}, arch_sh_up
}
200 mov.w @
(8,PC
),r4 ;
!/* 1001nnnni8p2.... mov.w @(<disp>,PC),<REG_N>*/{"mov.w",{A_DISP_PC
,A_REG_N
},{HEX_9
,REG_N
,PCRELIMM_8BY2
}, arch_sh_up
}
201 mov.w @
(R0,r5),r4 ;
!/* 0000nnnnmmmm1101 mov.w @(R0,<REG_M>),<REG_N>*/{"mov.w",{A_IND_R0_REG_M
,A_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_D
}, arch_sh_up
}
202 mov.w @r5+
,r4 ;
!/* 0110nnnnmmmm0101 mov.w @<REG_M>+,<REG_N>*/{"mov.w",{A_INC_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_5
}, arch_sh_up
}
203 mov.w @
r5,r4 ;
!/* 0110nnnnmmmm0001 mov.w @<REG_M>,<REG_N>*/{"mov.w",{A_IND_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_1
}, arch_sh_up
}
204 mov.w
R0,@
(8,r5) ;
!/* 10000001mmmmi4*2 mov.w R0,@(<disp>,<REG_M>)*/{"mov.w",{A_R0
,A_DISP_REG_M
},{HEX_8
,HEX_1
,REG_M
,IMM1_4BY2
}, arch_sh_up
}
205 mov.w
R0,@
(8,GBR
) ;
!/* 11000001i8*2.... mov.w R0,@(<disp>,GBR)*/{"mov.w",{A_R0
,A_DISP_GBR
},{HEX_C
,HEX_1
,IMM1_8BY2
}, arch_sh_up
}
206 mova @
(8,PC
),R0 ;
!/* 11000111i8p4.... mova @(<disp>,PC),R0*/{"mova",{A_DISP_PC
,A_R0
},{HEX_C
,HEX_7
,PCRELIMM_8BY4
}, arch_sh_up
}
207 movt
r4 ;
!/* 0000nnnn00101001 movt <REG_N> */{"movt",{A_REG_N
},{HEX_0
,REG_N
,HEX_2
,HEX_9
}, arch_sh_up
}
208 muls.w
r5,r4 ;
!/* 0010nnnnmmmm1111 muls.w <REG_M>,<REG_N>*/{"muls.w",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_F
}, arch_sh_up
}
209 muls r5,r4 ;
!/* 0010nnnnmmmm1111 muls <REG_M>,<REG_N>*/{"muls",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_F
}, arch_sh_up
}
210 mul.l r5,r4 ;
!/* 0000nnnnmmmm0111 mul.l <REG_M>,<REG_N>*/{"mul.l",{ A_REG_M
,A_REG_N
},{HEX_0
,REG_N
,REG_M
,HEX_7
}, arch_sh2_up
}
211 mulu.w
r5,r4 ;
!/* 0010nnnnmmmm1110 mulu.w <REG_M>,<REG_N>*/{"mulu.w",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_E
}, arch_sh_up
}
212 mulu
r5,r4 ;
!/* 0010nnnnmmmm1110 mulu <REG_M>,<REG_N>*/{"mulu",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_E
}, arch_sh_up
}
213 neg r5,r4 ;
!/* 0110nnnnmmmm1011 neg <REG_M>,<REG_N> */{"neg",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_B
}, arch_sh_up
}
214 negc
r5,r4 ;
!/* 0110nnnnmmmm1010 negc <REG_M>,<REG_N>*/{"negc",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_A
}, arch_sh_up
}
215 nop ;
!/* 0000000000001001 nop */{"nop",{0},{HEX_0
,HEX_0
,HEX_0
,HEX_9
}, arch_sh_up
}
216 not r5,r4 ;
!/* 0110nnnnmmmm0111 not <REG_M>,<REG_N> */{"not",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_7
}, arch_sh_up
}
217 or #4,R0 ;!/* 11001011i8*1.... or #<imm>,R0 */{"or",{A_IMM,A_R0},{HEX_C,HEX_B,IMM0_8}, arch_sh_up}
218 or r5,r4 ;
!/* 0010nnnnmmmm1011 or <REG_M>,<REG_N> */{"or",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_B
}, arch_sh_up
}
219 or.b #4,@(R0,GBR) ;!/* 11001111i8*1.... or.b #<imm>,@(R0,GBR)*/{"or.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_F,IMM0_8}, arch_sh_up}
220 rotcl
r4 ;
!/* 0100nnnn00100100 rotcl <REG_N> */{"rotcl",{A_REG_N
},{HEX_4
,REG_N
,HEX_2
,HEX_4
}, arch_sh_up
}
221 rotcr
r4 ;
!/* 0100nnnn00100101 rotcr <REG_N> */{"rotcr",{A_REG_N
},{HEX_4
,REG_N
,HEX_2
,HEX_5
}, arch_sh_up
}
222 rotl
r4 ;
!/* 0100nnnn00000100 rotl <REG_N> */{"rotl",{A_REG_N
},{HEX_4
,REG_N
,HEX_0
,HEX_4
}, arch_sh_up
}
223 rotr
r4 ;
!/* 0100nnnn00000101 rotr <REG_N> */{"rotr",{A_REG_N
},{HEX_4
,REG_N
,HEX_0
,HEX_5
}, arch_sh_up
}
224 rte ;
!/* 0000000000101011 rte */{"rte",{0},{HEX_0
,HEX_0
,HEX_2
,HEX_B
}, arch_sh_up
}
225 rts ;
!/* 0000000000001011 rts */{"rts",{0},{HEX_0
,HEX_0
,HEX_0
,HEX_B
}, arch_sh_up
}
226 sets ;
!/* 0000000001011000 sets */{"sets",{0},{HEX_0
,HEX_0
,HEX_5
,HEX_8
}, arch_sh_up
}
227 sett ;
!/* 0000000000011000 sett */{"sett",{0},{HEX_0
,HEX_0
,HEX_1
,HEX_8
}, arch_sh_up
}
228 shal
r4 ;
!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N
},{HEX_4
,REG_N
,HEX_2
,HEX_0
}, arch_sh_up
}
229 shar
r4 ;
!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N
},{HEX_4
,REG_N
,HEX_2
,HEX_1
}, arch_sh_up
}
230 shll
r4 ;
!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N
},{HEX_4
,REG_N
,HEX_0
,HEX_0
}, arch_sh_up
}
231 shll16
r4 ;
!/* 0100nnnn00101000 shll16 <REG_N> */{"shll16",{A_REG_N
},{HEX_4
,REG_N
,HEX_2
,HEX_8
}, arch_sh_up
}
232 shll2
r4 ;
!/* 0100nnnn00001000 shll2 <REG_N> */{"shll2",{A_REG_N
},{HEX_4
,REG_N
,HEX_0
,HEX_8
}, arch_sh_up
}
233 shll8
r4 ;
!/* 0100nnnn00011000 shll8 <REG_N> */{"shll8",{A_REG_N
},{HEX_4
,REG_N
,HEX_1
,HEX_8
}, arch_sh_up
}
234 shlr
r4 ;
!/* 0100nnnn00000001 shlr <REG_N> */{"shlr",{A_REG_N
},{HEX_4
,REG_N
,HEX_0
,HEX_1
}, arch_sh_up
}
235 shlr16
r4 ;
!/* 0100nnnn00101001 shlr16 <REG_N> */{"shlr16",{A_REG_N
},{HEX_4
,REG_N
,HEX_2
,HEX_9
}, arch_sh_up
}
236 shlr2
r4 ;
!/* 0100nnnn00001001 shlr2 <REG_N> */{"shlr2",{A_REG_N
},{HEX_4
,REG_N
,HEX_0
,HEX_9
}, arch_sh_up
}
237 shlr8
r4 ;
!/* 0100nnnn00011001 shlr8 <REG_N> */{"shlr8",{A_REG_N
},{HEX_4
,REG_N
,HEX_1
,HEX_9
}, arch_sh_up
}
238 sleep ;
!/* 0000000000011011 sleep */{"sleep",{0},{HEX_0
,HEX_0
,HEX_1
,HEX_B
}, arch_sh_up
}
239 stc
SR,r4 ;
!/* 0000nnnn00000010 stc SR,<REG_N> */{"stc",{A_SR
,A_REG_N
},{HEX_0
,REG_N
,HEX_0
,HEX_2
}, arch_sh_up
}
240 stc GBR
,r4 ;
!/* 0000nnnn00010010 stc GBR,<REG_N> */{"stc",{A_GBR
,A_REG_N
},{HEX_0
,REG_N
,HEX_1
,HEX_2
}, arch_sh_up
}
241 stc VBR
,r4 ;
!/* 0000nnnn00100010 stc VBR,<REG_N> */{"stc",{A_VBR
,A_REG_N
},{HEX_0
,REG_N
,HEX_2
,HEX_2
}, arch_sh_up
}
242 stc.
l SR,@
-r4 ;
!/* 0100nnnn00000011 stc.l SR,@-<REG_N> */{"stc.l",{A_SR
,A_DEC_N
},{HEX_4
,REG_N
,HEX_0
,HEX_3
}, arch_sh_up
}
243 stc.
l VBR
,@
-r4 ;
!/* 0100nnnn00100011 stc.l VBR,@-<REG_N> */{"stc.l",{A_VBR
,A_DEC_N
},{HEX_4
,REG_N
,HEX_2
,HEX_3
}, arch_sh_up
}
244 stc.
l GBR
,@
-r4 ;
!/* 0100nnnn00010011 stc.l GBR,@-<REG_N> */{"stc.l",{A_GBR
,A_DEC_N
},{HEX_4
,REG_N
,HEX_1
,HEX_3
}, arch_sh_up
}
245 sts MACH
,r4 ;
!/* 0000nnnn00001010 sts MACH,<REG_N> */{"sts",{A_MACH
,A_REG_N
},{HEX_0
,REG_N
,HEX_0
,HEX_A
}, arch_sh_up
}
246 sts MACL
,r4 ;
!/* 0000nnnn00011010 sts MACL,<REG_N> */{"sts",{A_MACL
,A_REG_N
},{HEX_0
,REG_N
,HEX_1
,HEX_A
}, arch_sh_up
}
247 sts PR
,r4 ;
!/* 0000nnnn00101010 sts PR,<REG_N> */{"sts",{A_PR
,A_REG_N
},{HEX_0
,REG_N
,HEX_2
,HEX_A
}, arch_sh_up
}
248 sts.
l MACH
,@
-r4 ;
!/* 0100nnnn00000010 sts.l MACH,@-<REG_N>*/{"sts.l",{A_MACH
,A_DEC_N
},{HEX_4
,REG_N
,HEX_0
,HEX_2
}, arch_sh_up
}
249 sts.
l MACL
,@
-r4 ;
!/* 0100nnnn00010010 sts.l MACL,@-<REG_N>*/{"sts.l",{A_MACL
,A_DEC_N
},{HEX_4
,REG_N
,HEX_1
,HEX_2
}, arch_sh_up
}
250 sts.
l PR
,@
-r4 ;
!/* 0100nnnn00100010 sts.l PR,@-<REG_N> */{"sts.l",{A_PR
,A_DEC_N
},{HEX_4
,REG_N
,HEX_2
,HEX_2
}, arch_sh_up
}
251 sub r5,r4 ;
!/* 0011nnnnmmmm1000 sub <REG_M>,<REG_N> */{"sub",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_8
}, arch_sh_up
}
252 subc r5,r4 ;
!/* 0011nnnnmmmm1010 subc <REG_M>,<REG_N>*/{"subc",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_A
}, arch_sh_up
}
253 subv
r5,r4 ;
!/* 0011nnnnmmmm1011 subv <REG_M>,<REG_N>*/{"subv",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_B
}, arch_sh_up
}
254 swap.
b r5,r4 ;
!/* 0110nnnnmmmm1000 swap.b <REG_M>,<REG_N>*/{"swap.b",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_8
}, arch_sh_up
}
255 swap.w
r5,r4 ;
!/* 0110nnnnmmmm1001 swap.w <REG_M>,<REG_N>*/{"swap.w",{ A_REG_M
,A_REG_N
},{HEX_6
,REG_N
,REG_M
,HEX_9
}, arch_sh_up
}
256 tas.
b @
r4 ;
!/* 0100nnnn00011011 tas.b @<REG_N> */{"tas.b",{A_IND_N
},{HEX_4
,REG_N
,HEX_1
,HEX_B
}, arch_sh_up
}
257 trapa
#4 ;!/* 11000011i8*1.... trapa #<imm> */{"trapa",{A_IMM},{HEX_C,HEX_3,IMM0_8}, arch_sh_up}
258 tst
#4,R0 ;!/* 11001000i8*1.... tst #<imm>,R0 */{"tst",{A_IMM,A_R0},{HEX_C,HEX_8,IMM0_8}, arch_sh_up}
259 tst
r5,r4 ;
!/* 0010nnnnmmmm1000 tst <REG_M>,<REG_N> */{"tst",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_8
}, arch_sh_up
}
260 tst.
b #4,@(R0,GBR) ;!/* 11001100i8*1.... tst.b #<imm>,@(R0,GBR)*/{"tst.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_C,IMM0_8}, arch_sh_up}
261 xor #4,R0 ;!/* 11001010i8*1.... xor #<imm>,R0 */{"xor",{A_IMM,A_R0},{HEX_C,HEX_A,IMM0_8}, arch_sh_up}
262 xor r5,r4 ;
!/* 0010nnnnmmmm1010 xor <REG_M>,<REG_N> */{"xor",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_A
}, arch_sh_up
}
263 xor.b #4,@(R0,GBR) ;!/* 11001110i8*1.... xor.b #<imm>,@(R0,GBR)*/{"xor.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_E,IMM0_8}, arch_sh_up}
264 xtrct
r5,r4 ;
!/* 0010nnnnmmmm1101 xtrct <REG_M>,<REG_N>*/{"xtrct",{ A_REG_M
,A_REG_N
},{HEX_2
,REG_N
,REG_M
,HEX_D
}, arch_sh_up
}
265 dt
r4 ;
!/* 0100nnnn00010000 dt <REG_N> */{"dt",{A_REG_N
},{HEX_4
,REG_N
,HEX_1
,HEX_0
}, arch_sh2_up
}
266 dmuls.
l r5,r4 ;
!/* 0011nnnnmmmm1101 dmuls.l <REG_M>,<REG_N>*/{"dmuls.l",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_D
}, arch_sh2_up
}
267 dmulu.
l r5,r4 ;
!/* 0011nnnnmmmm0101 dmulu.l <REG_M>,<REG_N>*/{"dmulu.l",{ A_REG_M
,A_REG_N
},{HEX_3
,REG_N
,REG_M
,HEX_5
}, arch_sh2_up
}
268 mac.
l @r5+
,@r4+ ;
!/* 0000nnnnmmmm1111 mac.l @<REG_M>+,@<REG_N>+*/{"mac.l",{A_INC_M
,A_INC_N
},{HEX_0
,REG_N
,REG_M
,HEX_F
}, arch_sh2_up
}
269 braf
r4 ;
!/* 0000nnnn00100011 braf <REG_N> */{"braf",{A_REG_N
},{HEX_0
,REG_N
,HEX_2
,HEX_3
}, arch_sh2_up
}
270 bsrf
r4 ;
!/* 0000nnnn00000011 bsrf <REG_N> */{"bsrf",{A_REG_N
},{HEX_0
,REG_N
,HEX_0
,HEX_3
}, arch_sh2_up
}