* cris/cpuv10.h, cris/cpuv32.h, cris/cris-desc.c, cris/cris-opc.h,
[external/binutils.git] / sim / cris / semcrisv10f-switch.c
1 /* Simulator instruction semantics for crisv10f.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2005 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22
23 */
24
25 #ifdef DEFINE_LABELS
26
27   /* The labels have the case they have because the enum of insn types
28      is all uppercase and in the non-stdc case the insn symbol is built
29      into the enum name.  */
30
31   static struct {
32     int index;
33     void *label;
34   } labels[] = {
35     { CRISV10F_INSN_X_INVALID, && case_sem_INSN_X_INVALID },
36     { CRISV10F_INSN_X_AFTER, && case_sem_INSN_X_AFTER },
37     { CRISV10F_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE },
38     { CRISV10F_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN },
39     { CRISV10F_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN },
40     { CRISV10F_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN },
41     { CRISV10F_INSN_NOP, && case_sem_INSN_NOP },
42     { CRISV10F_INSN_MOVE_B_R, && case_sem_INSN_MOVE_B_R },
43     { CRISV10F_INSN_MOVE_W_R, && case_sem_INSN_MOVE_W_R },
44     { CRISV10F_INSN_MOVE_D_R, && case_sem_INSN_MOVE_D_R },
45     { CRISV10F_INSN_MOVEPCR, && case_sem_INSN_MOVEPCR },
46     { CRISV10F_INSN_MOVEQ, && case_sem_INSN_MOVEQ },
47     { CRISV10F_INSN_MOVS_B_R, && case_sem_INSN_MOVS_B_R },
48     { CRISV10F_INSN_MOVS_W_R, && case_sem_INSN_MOVS_W_R },
49     { CRISV10F_INSN_MOVU_B_R, && case_sem_INSN_MOVU_B_R },
50     { CRISV10F_INSN_MOVU_W_R, && case_sem_INSN_MOVU_W_R },
51     { CRISV10F_INSN_MOVECBR, && case_sem_INSN_MOVECBR },
52     { CRISV10F_INSN_MOVECWR, && case_sem_INSN_MOVECWR },
53     { CRISV10F_INSN_MOVECDR, && case_sem_INSN_MOVECDR },
54     { CRISV10F_INSN_MOVSCBR, && case_sem_INSN_MOVSCBR },
55     { CRISV10F_INSN_MOVSCWR, && case_sem_INSN_MOVSCWR },
56     { CRISV10F_INSN_MOVUCBR, && case_sem_INSN_MOVUCBR },
57     { CRISV10F_INSN_MOVUCWR, && case_sem_INSN_MOVUCWR },
58     { CRISV10F_INSN_ADDQ, && case_sem_INSN_ADDQ },
59     { CRISV10F_INSN_SUBQ, && case_sem_INSN_SUBQ },
60     { CRISV10F_INSN_CMP_R_B_R, && case_sem_INSN_CMP_R_B_R },
61     { CRISV10F_INSN_CMP_R_W_R, && case_sem_INSN_CMP_R_W_R },
62     { CRISV10F_INSN_CMP_R_D_R, && case_sem_INSN_CMP_R_D_R },
63     { CRISV10F_INSN_CMP_M_B_M, && case_sem_INSN_CMP_M_B_M },
64     { CRISV10F_INSN_CMP_M_W_M, && case_sem_INSN_CMP_M_W_M },
65     { CRISV10F_INSN_CMP_M_D_M, && case_sem_INSN_CMP_M_D_M },
66     { CRISV10F_INSN_CMPCBR, && case_sem_INSN_CMPCBR },
67     { CRISV10F_INSN_CMPCWR, && case_sem_INSN_CMPCWR },
68     { CRISV10F_INSN_CMPCDR, && case_sem_INSN_CMPCDR },
69     { CRISV10F_INSN_CMPQ, && case_sem_INSN_CMPQ },
70     { CRISV10F_INSN_CMPS_M_B_M, && case_sem_INSN_CMPS_M_B_M },
71     { CRISV10F_INSN_CMPS_M_W_M, && case_sem_INSN_CMPS_M_W_M },
72     { CRISV10F_INSN_CMPSCBR, && case_sem_INSN_CMPSCBR },
73     { CRISV10F_INSN_CMPSCWR, && case_sem_INSN_CMPSCWR },
74     { CRISV10F_INSN_CMPU_M_B_M, && case_sem_INSN_CMPU_M_B_M },
75     { CRISV10F_INSN_CMPU_M_W_M, && case_sem_INSN_CMPU_M_W_M },
76     { CRISV10F_INSN_CMPUCBR, && case_sem_INSN_CMPUCBR },
77     { CRISV10F_INSN_CMPUCWR, && case_sem_INSN_CMPUCWR },
78     { CRISV10F_INSN_MOVE_M_B_M, && case_sem_INSN_MOVE_M_B_M },
79     { CRISV10F_INSN_MOVE_M_W_M, && case_sem_INSN_MOVE_M_W_M },
80     { CRISV10F_INSN_MOVE_M_D_M, && case_sem_INSN_MOVE_M_D_M },
81     { CRISV10F_INSN_MOVS_M_B_M, && case_sem_INSN_MOVS_M_B_M },
82     { CRISV10F_INSN_MOVS_M_W_M, && case_sem_INSN_MOVS_M_W_M },
83     { CRISV10F_INSN_MOVU_M_B_M, && case_sem_INSN_MOVU_M_B_M },
84     { CRISV10F_INSN_MOVU_M_W_M, && case_sem_INSN_MOVU_M_W_M },
85     { CRISV10F_INSN_MOVE_R_SPRV10, && case_sem_INSN_MOVE_R_SPRV10 },
86     { CRISV10F_INSN_MOVE_SPR_RV10, && case_sem_INSN_MOVE_SPR_RV10 },
87     { CRISV10F_INSN_RET_TYPE, && case_sem_INSN_RET_TYPE },
88     { CRISV10F_INSN_MOVE_M_SPRV10, && case_sem_INSN_MOVE_M_SPRV10 },
89     { CRISV10F_INSN_MOVE_C_SPRV10_P5, && case_sem_INSN_MOVE_C_SPRV10_P5 },
90     { CRISV10F_INSN_MOVE_C_SPRV10_P9, && case_sem_INSN_MOVE_C_SPRV10_P9 },
91     { CRISV10F_INSN_MOVE_C_SPRV10_P10, && case_sem_INSN_MOVE_C_SPRV10_P10 },
92     { CRISV10F_INSN_MOVE_C_SPRV10_P11, && case_sem_INSN_MOVE_C_SPRV10_P11 },
93     { CRISV10F_INSN_MOVE_C_SPRV10_P12, && case_sem_INSN_MOVE_C_SPRV10_P12 },
94     { CRISV10F_INSN_MOVE_C_SPRV10_P13, && case_sem_INSN_MOVE_C_SPRV10_P13 },
95     { CRISV10F_INSN_MOVE_C_SPRV10_P7, && case_sem_INSN_MOVE_C_SPRV10_P7 },
96     { CRISV10F_INSN_MOVE_C_SPRV10_P14, && case_sem_INSN_MOVE_C_SPRV10_P14 },
97     { CRISV10F_INSN_MOVE_C_SPRV10_P15, && case_sem_INSN_MOVE_C_SPRV10_P15 },
98     { CRISV10F_INSN_MOVE_SPR_MV10, && case_sem_INSN_MOVE_SPR_MV10 },
99     { CRISV10F_INSN_SBFS, && case_sem_INSN_SBFS },
100     { CRISV10F_INSN_MOVEM_R_M, && case_sem_INSN_MOVEM_R_M },
101     { CRISV10F_INSN_MOVEM_M_R, && case_sem_INSN_MOVEM_M_R },
102     { CRISV10F_INSN_MOVEM_M_PC, && case_sem_INSN_MOVEM_M_PC },
103     { CRISV10F_INSN_ADD_B_R, && case_sem_INSN_ADD_B_R },
104     { CRISV10F_INSN_ADD_W_R, && case_sem_INSN_ADD_W_R },
105     { CRISV10F_INSN_ADD_D_R, && case_sem_INSN_ADD_D_R },
106     { CRISV10F_INSN_ADD_M_B_M, && case_sem_INSN_ADD_M_B_M },
107     { CRISV10F_INSN_ADD_M_W_M, && case_sem_INSN_ADD_M_W_M },
108     { CRISV10F_INSN_ADD_M_D_M, && case_sem_INSN_ADD_M_D_M },
109     { CRISV10F_INSN_ADDCBR, && case_sem_INSN_ADDCBR },
110     { CRISV10F_INSN_ADDCWR, && case_sem_INSN_ADDCWR },
111     { CRISV10F_INSN_ADDCDR, && case_sem_INSN_ADDCDR },
112     { CRISV10F_INSN_ADDCPC, && case_sem_INSN_ADDCPC },
113     { CRISV10F_INSN_ADDS_B_R, && case_sem_INSN_ADDS_B_R },
114     { CRISV10F_INSN_ADDS_W_R, && case_sem_INSN_ADDS_W_R },
115     { CRISV10F_INSN_ADDS_M_B_M, && case_sem_INSN_ADDS_M_B_M },
116     { CRISV10F_INSN_ADDS_M_W_M, && case_sem_INSN_ADDS_M_W_M },
117     { CRISV10F_INSN_ADDSCBR, && case_sem_INSN_ADDSCBR },
118     { CRISV10F_INSN_ADDSCWR, && case_sem_INSN_ADDSCWR },
119     { CRISV10F_INSN_ADDSPCPC, && case_sem_INSN_ADDSPCPC },
120     { CRISV10F_INSN_ADDU_B_R, && case_sem_INSN_ADDU_B_R },
121     { CRISV10F_INSN_ADDU_W_R, && case_sem_INSN_ADDU_W_R },
122     { CRISV10F_INSN_ADDU_M_B_M, && case_sem_INSN_ADDU_M_B_M },
123     { CRISV10F_INSN_ADDU_M_W_M, && case_sem_INSN_ADDU_M_W_M },
124     { CRISV10F_INSN_ADDUCBR, && case_sem_INSN_ADDUCBR },
125     { CRISV10F_INSN_ADDUCWR, && case_sem_INSN_ADDUCWR },
126     { CRISV10F_INSN_SUB_B_R, && case_sem_INSN_SUB_B_R },
127     { CRISV10F_INSN_SUB_W_R, && case_sem_INSN_SUB_W_R },
128     { CRISV10F_INSN_SUB_D_R, && case_sem_INSN_SUB_D_R },
129     { CRISV10F_INSN_SUB_M_B_M, && case_sem_INSN_SUB_M_B_M },
130     { CRISV10F_INSN_SUB_M_W_M, && case_sem_INSN_SUB_M_W_M },
131     { CRISV10F_INSN_SUB_M_D_M, && case_sem_INSN_SUB_M_D_M },
132     { CRISV10F_INSN_SUBCBR, && case_sem_INSN_SUBCBR },
133     { CRISV10F_INSN_SUBCWR, && case_sem_INSN_SUBCWR },
134     { CRISV10F_INSN_SUBCDR, && case_sem_INSN_SUBCDR },
135     { CRISV10F_INSN_SUBS_B_R, && case_sem_INSN_SUBS_B_R },
136     { CRISV10F_INSN_SUBS_W_R, && case_sem_INSN_SUBS_W_R },
137     { CRISV10F_INSN_SUBS_M_B_M, && case_sem_INSN_SUBS_M_B_M },
138     { CRISV10F_INSN_SUBS_M_W_M, && case_sem_INSN_SUBS_M_W_M },
139     { CRISV10F_INSN_SUBSCBR, && case_sem_INSN_SUBSCBR },
140     { CRISV10F_INSN_SUBSCWR, && case_sem_INSN_SUBSCWR },
141     { CRISV10F_INSN_SUBU_B_R, && case_sem_INSN_SUBU_B_R },
142     { CRISV10F_INSN_SUBU_W_R, && case_sem_INSN_SUBU_W_R },
143     { CRISV10F_INSN_SUBU_M_B_M, && case_sem_INSN_SUBU_M_B_M },
144     { CRISV10F_INSN_SUBU_M_W_M, && case_sem_INSN_SUBU_M_W_M },
145     { CRISV10F_INSN_SUBUCBR, && case_sem_INSN_SUBUCBR },
146     { CRISV10F_INSN_SUBUCWR, && case_sem_INSN_SUBUCWR },
147     { CRISV10F_INSN_ADDI_B_R, && case_sem_INSN_ADDI_B_R },
148     { CRISV10F_INSN_ADDI_W_R, && case_sem_INSN_ADDI_W_R },
149     { CRISV10F_INSN_ADDI_D_R, && case_sem_INSN_ADDI_D_R },
150     { CRISV10F_INSN_NEG_B_R, && case_sem_INSN_NEG_B_R },
151     { CRISV10F_INSN_NEG_W_R, && case_sem_INSN_NEG_W_R },
152     { CRISV10F_INSN_NEG_D_R, && case_sem_INSN_NEG_D_R },
153     { CRISV10F_INSN_TEST_M_B_M, && case_sem_INSN_TEST_M_B_M },
154     { CRISV10F_INSN_TEST_M_W_M, && case_sem_INSN_TEST_M_W_M },
155     { CRISV10F_INSN_TEST_M_D_M, && case_sem_INSN_TEST_M_D_M },
156     { CRISV10F_INSN_MOVE_R_M_B_M, && case_sem_INSN_MOVE_R_M_B_M },
157     { CRISV10F_INSN_MOVE_R_M_W_M, && case_sem_INSN_MOVE_R_M_W_M },
158     { CRISV10F_INSN_MOVE_R_M_D_M, && case_sem_INSN_MOVE_R_M_D_M },
159     { CRISV10F_INSN_MULS_B, && case_sem_INSN_MULS_B },
160     { CRISV10F_INSN_MULS_W, && case_sem_INSN_MULS_W },
161     { CRISV10F_INSN_MULS_D, && case_sem_INSN_MULS_D },
162     { CRISV10F_INSN_MULU_B, && case_sem_INSN_MULU_B },
163     { CRISV10F_INSN_MULU_W, && case_sem_INSN_MULU_W },
164     { CRISV10F_INSN_MULU_D, && case_sem_INSN_MULU_D },
165     { CRISV10F_INSN_MSTEP, && case_sem_INSN_MSTEP },
166     { CRISV10F_INSN_DSTEP, && case_sem_INSN_DSTEP },
167     { CRISV10F_INSN_ABS, && case_sem_INSN_ABS },
168     { CRISV10F_INSN_AND_B_R, && case_sem_INSN_AND_B_R },
169     { CRISV10F_INSN_AND_W_R, && case_sem_INSN_AND_W_R },
170     { CRISV10F_INSN_AND_D_R, && case_sem_INSN_AND_D_R },
171     { CRISV10F_INSN_AND_M_B_M, && case_sem_INSN_AND_M_B_M },
172     { CRISV10F_INSN_AND_M_W_M, && case_sem_INSN_AND_M_W_M },
173     { CRISV10F_INSN_AND_M_D_M, && case_sem_INSN_AND_M_D_M },
174     { CRISV10F_INSN_ANDCBR, && case_sem_INSN_ANDCBR },
175     { CRISV10F_INSN_ANDCWR, && case_sem_INSN_ANDCWR },
176     { CRISV10F_INSN_ANDCDR, && case_sem_INSN_ANDCDR },
177     { CRISV10F_INSN_ANDQ, && case_sem_INSN_ANDQ },
178     { CRISV10F_INSN_ORR_B_R, && case_sem_INSN_ORR_B_R },
179     { CRISV10F_INSN_ORR_W_R, && case_sem_INSN_ORR_W_R },
180     { CRISV10F_INSN_ORR_D_R, && case_sem_INSN_ORR_D_R },
181     { CRISV10F_INSN_OR_M_B_M, && case_sem_INSN_OR_M_B_M },
182     { CRISV10F_INSN_OR_M_W_M, && case_sem_INSN_OR_M_W_M },
183     { CRISV10F_INSN_OR_M_D_M, && case_sem_INSN_OR_M_D_M },
184     { CRISV10F_INSN_ORCBR, && case_sem_INSN_ORCBR },
185     { CRISV10F_INSN_ORCWR, && case_sem_INSN_ORCWR },
186     { CRISV10F_INSN_ORCDR, && case_sem_INSN_ORCDR },
187     { CRISV10F_INSN_ORQ, && case_sem_INSN_ORQ },
188     { CRISV10F_INSN_XOR, && case_sem_INSN_XOR },
189     { CRISV10F_INSN_SWAP, && case_sem_INSN_SWAP },
190     { CRISV10F_INSN_ASRR_B_R, && case_sem_INSN_ASRR_B_R },
191     { CRISV10F_INSN_ASRR_W_R, && case_sem_INSN_ASRR_W_R },
192     { CRISV10F_INSN_ASRR_D_R, && case_sem_INSN_ASRR_D_R },
193     { CRISV10F_INSN_ASRQ, && case_sem_INSN_ASRQ },
194     { CRISV10F_INSN_LSRR_B_R, && case_sem_INSN_LSRR_B_R },
195     { CRISV10F_INSN_LSRR_W_R, && case_sem_INSN_LSRR_W_R },
196     { CRISV10F_INSN_LSRR_D_R, && case_sem_INSN_LSRR_D_R },
197     { CRISV10F_INSN_LSRQ, && case_sem_INSN_LSRQ },
198     { CRISV10F_INSN_LSLR_B_R, && case_sem_INSN_LSLR_B_R },
199     { CRISV10F_INSN_LSLR_W_R, && case_sem_INSN_LSLR_W_R },
200     { CRISV10F_INSN_LSLR_D_R, && case_sem_INSN_LSLR_D_R },
201     { CRISV10F_INSN_LSLQ, && case_sem_INSN_LSLQ },
202     { CRISV10F_INSN_BTST, && case_sem_INSN_BTST },
203     { CRISV10F_INSN_BTSTQ, && case_sem_INSN_BTSTQ },
204     { CRISV10F_INSN_SETF, && case_sem_INSN_SETF },
205     { CRISV10F_INSN_CLEARF, && case_sem_INSN_CLEARF },
206     { CRISV10F_INSN_BCC_B, && case_sem_INSN_BCC_B },
207     { CRISV10F_INSN_BA_B, && case_sem_INSN_BA_B },
208     { CRISV10F_INSN_BCC_W, && case_sem_INSN_BCC_W },
209     { CRISV10F_INSN_BA_W, && case_sem_INSN_BA_W },
210     { CRISV10F_INSN_JUMP_R, && case_sem_INSN_JUMP_R },
211     { CRISV10F_INSN_JUMP_M, && case_sem_INSN_JUMP_M },
212     { CRISV10F_INSN_JUMP_C, && case_sem_INSN_JUMP_C },
213     { CRISV10F_INSN_BREAK, && case_sem_INSN_BREAK },
214     { CRISV10F_INSN_BOUND_R_B_R, && case_sem_INSN_BOUND_R_B_R },
215     { CRISV10F_INSN_BOUND_R_W_R, && case_sem_INSN_BOUND_R_W_R },
216     { CRISV10F_INSN_BOUND_R_D_R, && case_sem_INSN_BOUND_R_D_R },
217     { CRISV10F_INSN_BOUND_M_B_M, && case_sem_INSN_BOUND_M_B_M },
218     { CRISV10F_INSN_BOUND_M_W_M, && case_sem_INSN_BOUND_M_W_M },
219     { CRISV10F_INSN_BOUND_M_D_M, && case_sem_INSN_BOUND_M_D_M },
220     { CRISV10F_INSN_BOUND_CB, && case_sem_INSN_BOUND_CB },
221     { CRISV10F_INSN_BOUND_CW, && case_sem_INSN_BOUND_CW },
222     { CRISV10F_INSN_BOUND_CD, && case_sem_INSN_BOUND_CD },
223     { CRISV10F_INSN_SCC, && case_sem_INSN_SCC },
224     { CRISV10F_INSN_LZ, && case_sem_INSN_LZ },
225     { CRISV10F_INSN_ADDOQ, && case_sem_INSN_ADDOQ },
226     { CRISV10F_INSN_BDAPQPC, && case_sem_INSN_BDAPQPC },
227     { CRISV10F_INSN_BDAP_32_PC, && case_sem_INSN_BDAP_32_PC },
228     { CRISV10F_INSN_MOVE_M_PCPLUS_P0, && case_sem_INSN_MOVE_M_PCPLUS_P0 },
229     { CRISV10F_INSN_MOVE_M_SPPLUS_P8, && case_sem_INSN_MOVE_M_SPPLUS_P8 },
230     { CRISV10F_INSN_ADDO_M_B_M, && case_sem_INSN_ADDO_M_B_M },
231     { CRISV10F_INSN_ADDO_M_W_M, && case_sem_INSN_ADDO_M_W_M },
232     { CRISV10F_INSN_ADDO_M_D_M, && case_sem_INSN_ADDO_M_D_M },
233     { CRISV10F_INSN_ADDO_CB, && case_sem_INSN_ADDO_CB },
234     { CRISV10F_INSN_ADDO_CW, && case_sem_INSN_ADDO_CW },
235     { CRISV10F_INSN_ADDO_CD, && case_sem_INSN_ADDO_CD },
236     { CRISV10F_INSN_DIP_M, && case_sem_INSN_DIP_M },
237     { CRISV10F_INSN_DIP_C, && case_sem_INSN_DIP_C },
238     { CRISV10F_INSN_ADDI_ACR_B_R, && case_sem_INSN_ADDI_ACR_B_R },
239     { CRISV10F_INSN_ADDI_ACR_W_R, && case_sem_INSN_ADDI_ACR_W_R },
240     { CRISV10F_INSN_ADDI_ACR_D_R, && case_sem_INSN_ADDI_ACR_D_R },
241     { CRISV10F_INSN_BIAP_PC_B_R, && case_sem_INSN_BIAP_PC_B_R },
242     { CRISV10F_INSN_BIAP_PC_W_R, && case_sem_INSN_BIAP_PC_W_R },
243     { CRISV10F_INSN_BIAP_PC_D_R, && case_sem_INSN_BIAP_PC_D_R },
244     { 0, 0 }
245   };
246   int i;
247
248   for (i = 0; labels[i].label != 0; ++i)
249     {
250 #if FAST_P
251       CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label;
252 #else
253       CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label;
254 #endif
255     }
256
257 #undef DEFINE_LABELS
258 #endif /* DEFINE_LABELS */
259
260 #ifdef DEFINE_SWITCH
261
262 /* If hyper-fast [well not unnecessarily slow] execution is selected, turn
263    off frills like tracing and profiling.  */
264 /* FIXME: A better way would be to have TRACE_RESULT check for something
265    that can cause it to be optimized out.  Another way would be to emit
266    special handlers into the instruction "stream".  */
267
268 #if FAST_P
269 #undef TRACE_RESULT
270 #define TRACE_RESULT(cpu, abuf, name, type, val)
271 #endif
272
273 #undef GET_ATTR
274 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
275 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
276 #else
277 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
278 #endif
279
280 {
281
282 #if WITH_SCACHE_PBB
283
284 /* Branch to next handler without going around main loop.  */
285 #define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case
286 SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
287
288 #else /* ! WITH_SCACHE_PBB */
289
290 #define NEXT(vpc) BREAK (sem)
291 #ifdef __GNUC__
292 #if FAST_P
293   SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab)
294 #else
295   SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab)
296 #endif
297 #else
298   SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num)
299 #endif
300
301 #endif /* ! WITH_SCACHE_PBB */
302
303     {
304
305   CASE (sem, INSN_X_INVALID) : /* --invalid-- */
306 {
307   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
309 #define FLD(f) abuf->fields.fmt_empty.f
310   int UNUSED written = 0;
311   IADDR UNUSED pc = abuf->addr;
312   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
313
314   {
315     /* Update the recorded pc in the cpu state struct.
316        Only necessary for WITH_SCACHE case, but to avoid the
317        conditional compilation ....  */
318     SET_H_PC (pc);
319     /* Virtual insns have zero size.  Overwrite vpc with address of next insn
320        using the default-insn-bitsize spec.  When executing insns in parallel
321        we may want to queue the fault and continue execution.  */
322     vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
323     vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
324   }
325
326 #undef FLD
327 }
328   NEXT (vpc);
329
330   CASE (sem, INSN_X_AFTER) : /* --after-- */
331 {
332   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
333   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
334 #define FLD(f) abuf->fields.fmt_empty.f
335   int UNUSED written = 0;
336   IADDR UNUSED pc = abuf->addr;
337   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
338
339   {
340 #if WITH_SCACHE_PBB_CRISV10F
341     crisv10f_pbb_after (current_cpu, sem_arg);
342 #endif
343   }
344
345 #undef FLD
346 }
347   NEXT (vpc);
348
349   CASE (sem, INSN_X_BEFORE) : /* --before-- */
350 {
351   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
352   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
353 #define FLD(f) abuf->fields.fmt_empty.f
354   int UNUSED written = 0;
355   IADDR UNUSED pc = abuf->addr;
356   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
357
358   {
359 #if WITH_SCACHE_PBB_CRISV10F
360     crisv10f_pbb_before (current_cpu, sem_arg);
361 #endif
362   }
363
364 #undef FLD
365 }
366   NEXT (vpc);
367
368   CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */
369 {
370   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
371   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
372 #define FLD(f) abuf->fields.fmt_empty.f
373   int UNUSED written = 0;
374   IADDR UNUSED pc = abuf->addr;
375   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
376
377   {
378 #if WITH_SCACHE_PBB_CRISV10F
379 #ifdef DEFINE_SWITCH
380     vpc = crisv10f_pbb_cti_chain (current_cpu, sem_arg,
381                                pbb_br_type, pbb_br_npc);
382     BREAK (sem);
383 #else
384     /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
385     vpc = crisv10f_pbb_cti_chain (current_cpu, sem_arg,
386                                CPU_PBB_BR_TYPE (current_cpu),
387                                CPU_PBB_BR_NPC (current_cpu));
388 #endif
389 #endif
390   }
391
392 #undef FLD
393 }
394   NEXT (vpc);
395
396   CASE (sem, INSN_X_CHAIN) : /* --chain-- */
397 {
398   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
399   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
400 #define FLD(f) abuf->fields.fmt_empty.f
401   int UNUSED written = 0;
402   IADDR UNUSED pc = abuf->addr;
403   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
404
405   {
406 #if WITH_SCACHE_PBB_CRISV10F
407     vpc = crisv10f_pbb_chain (current_cpu, sem_arg);
408 #ifdef DEFINE_SWITCH
409     BREAK (sem);
410 #endif
411 #endif
412   }
413
414 #undef FLD
415 }
416   NEXT (vpc);
417
418   CASE (sem, INSN_X_BEGIN) : /* --begin-- */
419 {
420   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
421   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
422 #define FLD(f) abuf->fields.fmt_empty.f
423   int UNUSED written = 0;
424   IADDR UNUSED pc = abuf->addr;
425   vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
426
427   {
428 #if WITH_SCACHE_PBB_CRISV10F
429 #if defined DEFINE_SWITCH || defined FAST_P
430     /* In the switch case FAST_P is a constant, allowing several optimizations
431        in any called inline functions.  */
432     vpc = crisv10f_pbb_begin (current_cpu, FAST_P);
433 #else
434 #if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
435     vpc = crisv10f_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
436 #else
437     vpc = crisv10f_pbb_begin (current_cpu, 0);
438 #endif
439 #endif
440 #endif
441   }
442
443 #undef FLD
444 }
445   NEXT (vpc);
446
447   CASE (sem, INSN_NOP) : /* nop */
448 {
449   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
450   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
451 #define FLD(f) abuf->fields.fmt_empty.f
452   int UNUSED written = 0;
453   IADDR UNUSED pc = abuf->addr;
454   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
455
456 {
457   {
458     BI opval = 0;
459     CPU (h_xbit) = opval;
460     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
461   }
462   {
463     BI opval = 0;
464     SET_H_INSN_PREFIXED_P (opval);
465     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
466   }
467 }
468
469 #undef FLD
470 }
471   NEXT (vpc);
472
473   CASE (sem, INSN_MOVE_B_R) : /* move.b move.m ${Rs},${Rd} */
474 {
475   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
476   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
477 #define FLD(f) abuf->fields.sfmt_add_b_r.f
478   int UNUSED written = 0;
479   IADDR UNUSED pc = abuf->addr;
480   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
481
482 {
483   QI tmp_newval;
484   tmp_newval = GET_H_GR (FLD (f_operand1));
485 {
486   SI tmp_oldregval;
487   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
488   {
489     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
490     SET_H_GR (FLD (f_operand2), opval);
491     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
492   }
493 }
494 {
495   {
496     BI opval = LTQI (tmp_newval, 0);
497     CPU (h_nbit) = opval;
498     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
499   }
500   {
501     BI opval = ANDIF (EQQI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
502     CPU (h_zbit) = opval;
503     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
504   }
505 SET_H_CBIT_MOVE (0);
506 SET_H_VBIT_MOVE (0);
507 {
508   {
509     BI opval = 0;
510     CPU (h_xbit) = opval;
511     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
512   }
513   {
514     BI opval = 0;
515     SET_H_INSN_PREFIXED_P (opval);
516     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
517   }
518 }
519 }
520 }
521
522 #undef FLD
523 }
524   NEXT (vpc);
525
526   CASE (sem, INSN_MOVE_W_R) : /* move.w move.m ${Rs},${Rd} */
527 {
528   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
529   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
530 #define FLD(f) abuf->fields.sfmt_add_b_r.f
531   int UNUSED written = 0;
532   IADDR UNUSED pc = abuf->addr;
533   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
534
535 {
536   HI tmp_newval;
537   tmp_newval = GET_H_GR (FLD (f_operand1));
538 {
539   SI tmp_oldregval;
540   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
541   {
542     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
543     SET_H_GR (FLD (f_operand2), opval);
544     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
545   }
546 }
547 {
548   {
549     BI opval = LTHI (tmp_newval, 0);
550     CPU (h_nbit) = opval;
551     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
552   }
553   {
554     BI opval = ANDIF (EQHI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
555     CPU (h_zbit) = opval;
556     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
557   }
558 SET_H_CBIT_MOVE (0);
559 SET_H_VBIT_MOVE (0);
560 {
561   {
562     BI opval = 0;
563     CPU (h_xbit) = opval;
564     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
565   }
566   {
567     BI opval = 0;
568     SET_H_INSN_PREFIXED_P (opval);
569     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
570   }
571 }
572 }
573 }
574
575 #undef FLD
576 }
577   NEXT (vpc);
578
579   CASE (sem, INSN_MOVE_D_R) : /* move.d move.m ${Rs},${Rd} */
580 {
581   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
582   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
583 #define FLD(f) abuf->fields.sfmt_add_b_r.f
584   int UNUSED written = 0;
585   IADDR UNUSED pc = abuf->addr;
586   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
587
588 {
589   SI tmp_newval;
590   tmp_newval = GET_H_GR (FLD (f_operand1));
591   {
592     SI opval = tmp_newval;
593     SET_H_GR (FLD (f_operand2), opval);
594     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
595   }
596 {
597   {
598     BI opval = LTSI (tmp_newval, 0);
599     CPU (h_nbit) = opval;
600     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
601   }
602   {
603     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
604     CPU (h_zbit) = opval;
605     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
606   }
607 SET_H_CBIT_MOVE (0);
608 SET_H_VBIT_MOVE (0);
609 {
610   {
611     BI opval = 0;
612     CPU (h_xbit) = opval;
613     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
614   }
615   {
616     BI opval = 0;
617     SET_H_INSN_PREFIXED_P (opval);
618     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
619   }
620 }
621 }
622 }
623
624 #undef FLD
625 }
626   NEXT (vpc);
627
628   CASE (sem, INSN_MOVEPCR) : /* move.d PC,${Rd} */
629 {
630   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
631   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
632 #define FLD(f) abuf->fields.sfmt_moveq.f
633   int UNUSED written = 0;
634   IADDR UNUSED pc = abuf->addr;
635   SEM_BRANCH_INIT
636   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
637
638 {
639   SI tmp_pcval;
640   tmp_pcval = ADDSI (pc, 2);
641   {
642     SI opval = tmp_pcval;
643     SET_H_GR (FLD (f_operand2), opval);
644     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
645   }
646 {
647   {
648     BI opval = LTSI (tmp_pcval, 0);
649     CPU (h_nbit) = opval;
650     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
651   }
652   {
653     BI opval = ANDIF (EQSI (tmp_pcval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
654     CPU (h_zbit) = opval;
655     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
656   }
657 SET_H_CBIT_MOVE (0);
658 SET_H_VBIT_MOVE (0);
659 {
660   {
661     BI opval = 0;
662     CPU (h_xbit) = opval;
663     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
664   }
665   {
666     BI opval = 0;
667     SET_H_INSN_PREFIXED_P (opval);
668     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
669   }
670 }
671 }
672 }
673
674   SEM_BRANCH_FINI (vpc);
675 #undef FLD
676 }
677   NEXT (vpc);
678
679   CASE (sem, INSN_MOVEQ) : /* moveq $i,$Rd */
680 {
681   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
682   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
683 #define FLD(f) abuf->fields.sfmt_moveq.f
684   int UNUSED written = 0;
685   IADDR UNUSED pc = abuf->addr;
686   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
687
688 {
689   SI tmp_newval;
690   tmp_newval = FLD (f_s6);
691   {
692     SI opval = tmp_newval;
693     SET_H_GR (FLD (f_operand2), opval);
694     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
695   }
696 {
697 SET_H_NBIT_MOVE (LTSI (tmp_newval, 0));
698 SET_H_ZBIT_MOVE (ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1))));
699 SET_H_CBIT_MOVE (0);
700 SET_H_VBIT_MOVE (0);
701 {
702   {
703     BI opval = 0;
704     CPU (h_xbit) = opval;
705     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
706   }
707   {
708     BI opval = 0;
709     SET_H_INSN_PREFIXED_P (opval);
710     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
711   }
712 }
713 }
714 }
715
716 #undef FLD
717 }
718   NEXT (vpc);
719
720   CASE (sem, INSN_MOVS_B_R) : /* movs.b movs.m ${Rs},${Rd} */
721 {
722   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
723   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
724 #define FLD(f) abuf->fields.sfmt_muls_b.f
725   int UNUSED written = 0;
726   IADDR UNUSED pc = abuf->addr;
727   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
728
729 {
730   QI tmp_newval;
731   tmp_newval = GET_H_GR (FLD (f_operand1));
732   {
733     SI opval = EXTQISI (tmp_newval);
734     SET_H_GR (FLD (f_operand2), opval);
735     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
736   }
737 {
738   {
739     BI opval = LTSI (tmp_newval, 0);
740     CPU (h_nbit) = opval;
741     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
742   }
743   {
744     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
745     CPU (h_zbit) = opval;
746     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
747   }
748 SET_H_CBIT_MOVE (0);
749 SET_H_VBIT_MOVE (0);
750 {
751   {
752     BI opval = 0;
753     CPU (h_xbit) = opval;
754     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
755   }
756   {
757     BI opval = 0;
758     SET_H_INSN_PREFIXED_P (opval);
759     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
760   }
761 }
762 }
763 }
764
765 #undef FLD
766 }
767   NEXT (vpc);
768
769   CASE (sem, INSN_MOVS_W_R) : /* movs.w movs.m ${Rs},${Rd} */
770 {
771   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
772   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
773 #define FLD(f) abuf->fields.sfmt_muls_b.f
774   int UNUSED written = 0;
775   IADDR UNUSED pc = abuf->addr;
776   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
777
778 {
779   HI tmp_newval;
780   tmp_newval = GET_H_GR (FLD (f_operand1));
781   {
782     SI opval = EXTHISI (tmp_newval);
783     SET_H_GR (FLD (f_operand2), opval);
784     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
785   }
786 {
787   {
788     BI opval = LTSI (tmp_newval, 0);
789     CPU (h_nbit) = opval;
790     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
791   }
792   {
793     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
794     CPU (h_zbit) = opval;
795     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
796   }
797 SET_H_CBIT_MOVE (0);
798 SET_H_VBIT_MOVE (0);
799 {
800   {
801     BI opval = 0;
802     CPU (h_xbit) = opval;
803     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
804   }
805   {
806     BI opval = 0;
807     SET_H_INSN_PREFIXED_P (opval);
808     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
809   }
810 }
811 }
812 }
813
814 #undef FLD
815 }
816   NEXT (vpc);
817
818   CASE (sem, INSN_MOVU_B_R) : /* movu.b movu.m ${Rs},${Rd} */
819 {
820   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
821   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
822 #define FLD(f) abuf->fields.sfmt_muls_b.f
823   int UNUSED written = 0;
824   IADDR UNUSED pc = abuf->addr;
825   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
826
827 {
828   QI tmp_newval;
829   tmp_newval = GET_H_GR (FLD (f_operand1));
830   {
831     SI opval = ZEXTQISI (tmp_newval);
832     SET_H_GR (FLD (f_operand2), opval);
833     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
834   }
835 {
836   {
837     BI opval = LTSI (tmp_newval, 0);
838     CPU (h_nbit) = opval;
839     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
840   }
841   {
842     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
843     CPU (h_zbit) = opval;
844     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
845   }
846 SET_H_CBIT_MOVE (0);
847 SET_H_VBIT_MOVE (0);
848 {
849   {
850     BI opval = 0;
851     CPU (h_xbit) = opval;
852     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
853   }
854   {
855     BI opval = 0;
856     SET_H_INSN_PREFIXED_P (opval);
857     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
858   }
859 }
860 }
861 }
862
863 #undef FLD
864 }
865   NEXT (vpc);
866
867   CASE (sem, INSN_MOVU_W_R) : /* movu.w movu.m ${Rs},${Rd} */
868 {
869   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
870   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
871 #define FLD(f) abuf->fields.sfmt_muls_b.f
872   int UNUSED written = 0;
873   IADDR UNUSED pc = abuf->addr;
874   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
875
876 {
877   HI tmp_newval;
878   tmp_newval = GET_H_GR (FLD (f_operand1));
879   {
880     SI opval = ZEXTHISI (tmp_newval);
881     SET_H_GR (FLD (f_operand2), opval);
882     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
883   }
884 {
885   {
886     BI opval = LTSI (tmp_newval, 0);
887     CPU (h_nbit) = opval;
888     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
889   }
890   {
891     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
892     CPU (h_zbit) = opval;
893     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
894   }
895 SET_H_CBIT_MOVE (0);
896 SET_H_VBIT_MOVE (0);
897 {
898   {
899     BI opval = 0;
900     CPU (h_xbit) = opval;
901     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
902   }
903   {
904     BI opval = 0;
905     SET_H_INSN_PREFIXED_P (opval);
906     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
907   }
908 }
909 }
910 }
911
912 #undef FLD
913 }
914   NEXT (vpc);
915
916   CASE (sem, INSN_MOVECBR) : /* move.b ${sconst8},${Rd} */
917 {
918   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
919   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
920 #define FLD(f) abuf->fields.sfmt_addcbr.f
921   int UNUSED written = 0;
922   IADDR UNUSED pc = abuf->addr;
923   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
924
925 {
926   QI tmp_newval;
927   tmp_newval = FLD (f_indir_pc__byte);
928 {
929   SI tmp_oldregval;
930   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
931   {
932     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
933     SET_H_GR (FLD (f_operand2), opval);
934     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
935   }
936 }
937 {
938   {
939     BI opval = LTQI (tmp_newval, 0);
940     CPU (h_nbit) = opval;
941     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
942   }
943   {
944     BI opval = ANDIF (EQQI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
945     CPU (h_zbit) = opval;
946     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
947   }
948 SET_H_CBIT_MOVE (0);
949 SET_H_VBIT_MOVE (0);
950 {
951   {
952     BI opval = 0;
953     CPU (h_xbit) = opval;
954     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
955   }
956   {
957     BI opval = 0;
958     SET_H_INSN_PREFIXED_P (opval);
959     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
960   }
961 }
962 }
963 }
964
965 #undef FLD
966 }
967   NEXT (vpc);
968
969   CASE (sem, INSN_MOVECWR) : /* move.w ${sconst16},${Rd} */
970 {
971   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
972   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
973 #define FLD(f) abuf->fields.sfmt_addcwr.f
974   int UNUSED written = 0;
975   IADDR UNUSED pc = abuf->addr;
976   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
977
978 {
979   HI tmp_newval;
980   tmp_newval = FLD (f_indir_pc__word);
981 {
982   SI tmp_oldregval;
983   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
984   {
985     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
986     SET_H_GR (FLD (f_operand2), opval);
987     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
988   }
989 }
990 {
991   {
992     BI opval = LTHI (tmp_newval, 0);
993     CPU (h_nbit) = opval;
994     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
995   }
996   {
997     BI opval = ANDIF (EQHI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
998     CPU (h_zbit) = opval;
999     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1000   }
1001 SET_H_CBIT_MOVE (0);
1002 SET_H_VBIT_MOVE (0);
1003 {
1004   {
1005     BI opval = 0;
1006     CPU (h_xbit) = opval;
1007     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1008   }
1009   {
1010     BI opval = 0;
1011     SET_H_INSN_PREFIXED_P (opval);
1012     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1013   }
1014 }
1015 }
1016 }
1017
1018 #undef FLD
1019 }
1020   NEXT (vpc);
1021
1022   CASE (sem, INSN_MOVECDR) : /* move.d ${const32},${Rd} */
1023 {
1024   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1025   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1026 #define FLD(f) abuf->fields.sfmt_bound_cd.f
1027   int UNUSED written = 0;
1028   IADDR UNUSED pc = abuf->addr;
1029   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
1030
1031 {
1032   SI tmp_newval;
1033   tmp_newval = FLD (f_indir_pc__dword);
1034   {
1035     SI opval = tmp_newval;
1036     SET_H_GR (FLD (f_operand2), opval);
1037     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1038   }
1039 {
1040   {
1041     BI opval = LTSI (tmp_newval, 0);
1042     CPU (h_nbit) = opval;
1043     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1044   }
1045   {
1046     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1047     CPU (h_zbit) = opval;
1048     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1049   }
1050 SET_H_CBIT_MOVE (0);
1051 SET_H_VBIT_MOVE (0);
1052 {
1053   {
1054     BI opval = 0;
1055     CPU (h_xbit) = opval;
1056     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1057   }
1058   {
1059     BI opval = 0;
1060     SET_H_INSN_PREFIXED_P (opval);
1061     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1062   }
1063 }
1064 }
1065 }
1066
1067 #undef FLD
1068 }
1069   NEXT (vpc);
1070
1071   CASE (sem, INSN_MOVSCBR) : /* movs.b ${sconst8},${Rd} */
1072 {
1073   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1074   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1075 #define FLD(f) abuf->fields.sfmt_bound_cb.f
1076   int UNUSED written = 0;
1077   IADDR UNUSED pc = abuf->addr;
1078   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1079
1080 {
1081   SI tmp_newval;
1082   tmp_newval = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
1083   {
1084     SI opval = tmp_newval;
1085     SET_H_GR (FLD (f_operand2), opval);
1086     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1087   }
1088 {
1089   {
1090     BI opval = LTSI (tmp_newval, 0);
1091     CPU (h_nbit) = opval;
1092     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1093   }
1094   {
1095     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1096     CPU (h_zbit) = opval;
1097     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1098   }
1099 SET_H_CBIT_MOVE (0);
1100 SET_H_VBIT_MOVE (0);
1101 {
1102   {
1103     BI opval = 0;
1104     CPU (h_xbit) = opval;
1105     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1106   }
1107   {
1108     BI opval = 0;
1109     SET_H_INSN_PREFIXED_P (opval);
1110     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1111   }
1112 }
1113 }
1114 }
1115
1116 #undef FLD
1117 }
1118   NEXT (vpc);
1119
1120   CASE (sem, INSN_MOVSCWR) : /* movs.w ${sconst16},${Rd} */
1121 {
1122   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1123   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1124 #define FLD(f) abuf->fields.sfmt_bound_cw.f
1125   int UNUSED written = 0;
1126   IADDR UNUSED pc = abuf->addr;
1127   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1128
1129 {
1130   SI tmp_newval;
1131   tmp_newval = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
1132   {
1133     SI opval = tmp_newval;
1134     SET_H_GR (FLD (f_operand2), opval);
1135     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1136   }
1137 {
1138   {
1139     BI opval = LTSI (tmp_newval, 0);
1140     CPU (h_nbit) = opval;
1141     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1142   }
1143   {
1144     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1145     CPU (h_zbit) = opval;
1146     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1147   }
1148 SET_H_CBIT_MOVE (0);
1149 SET_H_VBIT_MOVE (0);
1150 {
1151   {
1152     BI opval = 0;
1153     CPU (h_xbit) = opval;
1154     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1155   }
1156   {
1157     BI opval = 0;
1158     SET_H_INSN_PREFIXED_P (opval);
1159     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1160   }
1161 }
1162 }
1163 }
1164
1165 #undef FLD
1166 }
1167   NEXT (vpc);
1168
1169   CASE (sem, INSN_MOVUCBR) : /* movu.b ${uconst8},${Rd} */
1170 {
1171   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1172   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1173 #define FLD(f) abuf->fields.sfmt_bound_cb.f
1174   int UNUSED written = 0;
1175   IADDR UNUSED pc = abuf->addr;
1176   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1177
1178 {
1179   SI tmp_newval;
1180   tmp_newval = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
1181   {
1182     SI opval = tmp_newval;
1183     SET_H_GR (FLD (f_operand2), opval);
1184     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1185   }
1186 {
1187   {
1188     BI opval = LTSI (tmp_newval, 0);
1189     CPU (h_nbit) = opval;
1190     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1191   }
1192   {
1193     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1194     CPU (h_zbit) = opval;
1195     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1196   }
1197 SET_H_CBIT_MOVE (0);
1198 SET_H_VBIT_MOVE (0);
1199 {
1200   {
1201     BI opval = 0;
1202     CPU (h_xbit) = opval;
1203     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1204   }
1205   {
1206     BI opval = 0;
1207     SET_H_INSN_PREFIXED_P (opval);
1208     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1209   }
1210 }
1211 }
1212 }
1213
1214 #undef FLD
1215 }
1216   NEXT (vpc);
1217
1218   CASE (sem, INSN_MOVUCWR) : /* movu.w ${uconst16},${Rd} */
1219 {
1220   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1221   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1222 #define FLD(f) abuf->fields.sfmt_bound_cw.f
1223   int UNUSED written = 0;
1224   IADDR UNUSED pc = abuf->addr;
1225   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1226
1227 {
1228   SI tmp_newval;
1229   tmp_newval = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
1230   {
1231     SI opval = tmp_newval;
1232     SET_H_GR (FLD (f_operand2), opval);
1233     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1234   }
1235 {
1236   {
1237     BI opval = LTSI (tmp_newval, 0);
1238     CPU (h_nbit) = opval;
1239     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1240   }
1241   {
1242     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1243     CPU (h_zbit) = opval;
1244     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1245   }
1246 SET_H_CBIT_MOVE (0);
1247 SET_H_VBIT_MOVE (0);
1248 {
1249   {
1250     BI opval = 0;
1251     CPU (h_xbit) = opval;
1252     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1253   }
1254   {
1255     BI opval = 0;
1256     SET_H_INSN_PREFIXED_P (opval);
1257     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1258   }
1259 }
1260 }
1261 }
1262
1263 #undef FLD
1264 }
1265   NEXT (vpc);
1266
1267   CASE (sem, INSN_ADDQ) : /* addq $j,$Rd */
1268 {
1269   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1270   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1271 #define FLD(f) abuf->fields.sfmt_addq.f
1272   int UNUSED written = 0;
1273   IADDR UNUSED pc = abuf->addr;
1274   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1275
1276 {
1277   SI tmp_tmpopd;
1278   SI tmp_tmpops;
1279   BI tmp_carry;
1280   SI tmp_newval;
1281   tmp_tmpops = FLD (f_u6);
1282   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1283   tmp_carry = CPU (h_cbit);
1284   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1285   {
1286     SI opval = tmp_newval;
1287     SET_H_GR (FLD (f_operand2), opval);
1288     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1289   }
1290 {
1291   {
1292     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
1293     CPU (h_cbit) = opval;
1294     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1295   }
1296   {
1297     BI opval = LTSI (tmp_newval, 0);
1298     CPU (h_nbit) = opval;
1299     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1300   }
1301   {
1302     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1303     CPU (h_zbit) = opval;
1304     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1305   }
1306   {
1307     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
1308     CPU (h_vbit) = opval;
1309     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1310   }
1311 {
1312   {
1313     BI opval = 0;
1314     CPU (h_xbit) = opval;
1315     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1316   }
1317   {
1318     BI opval = 0;
1319     SET_H_INSN_PREFIXED_P (opval);
1320     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1321   }
1322 }
1323 }
1324 }
1325
1326 #undef FLD
1327 }
1328   NEXT (vpc);
1329
1330   CASE (sem, INSN_SUBQ) : /* subq $j,$Rd */
1331 {
1332   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1333   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1334 #define FLD(f) abuf->fields.sfmt_addq.f
1335   int UNUSED written = 0;
1336   IADDR UNUSED pc = abuf->addr;
1337   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1338
1339 {
1340   SI tmp_tmpopd;
1341   SI tmp_tmpops;
1342   BI tmp_carry;
1343   SI tmp_newval;
1344   tmp_tmpops = FLD (f_u6);
1345   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1346   tmp_carry = CPU (h_cbit);
1347   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1348   {
1349     SI opval = tmp_newval;
1350     SET_H_GR (FLD (f_operand2), opval);
1351     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1352   }
1353 {
1354   {
1355     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
1356     CPU (h_cbit) = opval;
1357     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1358   }
1359   {
1360     BI opval = LTSI (tmp_newval, 0);
1361     CPU (h_nbit) = opval;
1362     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1363   }
1364   {
1365     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1366     CPU (h_zbit) = opval;
1367     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1368   }
1369   {
1370     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
1371     CPU (h_vbit) = opval;
1372     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1373   }
1374 {
1375   {
1376     BI opval = 0;
1377     CPU (h_xbit) = opval;
1378     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1379   }
1380   {
1381     BI opval = 0;
1382     SET_H_INSN_PREFIXED_P (opval);
1383     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1384   }
1385 }
1386 }
1387 }
1388
1389 #undef FLD
1390 }
1391   NEXT (vpc);
1392
1393   CASE (sem, INSN_CMP_R_B_R) : /* cmp-r.b $Rs,$Rd */
1394 {
1395   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1396   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1397 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1398   int UNUSED written = 0;
1399   IADDR UNUSED pc = abuf->addr;
1400   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1401
1402 {
1403   QI tmp_tmpopd;
1404   QI tmp_tmpops;
1405   BI tmp_carry;
1406   QI tmp_newval;
1407   tmp_tmpops = GET_H_GR (FLD (f_operand1));
1408   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1409   tmp_carry = CPU (h_cbit);
1410   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1411 ((void) 0); /*nop*/
1412 {
1413   {
1414     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
1415     CPU (h_cbit) = opval;
1416     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1417   }
1418   {
1419     BI opval = LTQI (tmp_newval, 0);
1420     CPU (h_nbit) = opval;
1421     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1422   }
1423   {
1424     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1425     CPU (h_zbit) = opval;
1426     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1427   }
1428   {
1429     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
1430     CPU (h_vbit) = opval;
1431     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1432   }
1433 {
1434   {
1435     BI opval = 0;
1436     CPU (h_xbit) = opval;
1437     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1438   }
1439   {
1440     BI opval = 0;
1441     SET_H_INSN_PREFIXED_P (opval);
1442     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1443   }
1444 }
1445 }
1446 }
1447
1448 #undef FLD
1449 }
1450   NEXT (vpc);
1451
1452   CASE (sem, INSN_CMP_R_W_R) : /* cmp-r.w $Rs,$Rd */
1453 {
1454   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1455   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1456 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1457   int UNUSED written = 0;
1458   IADDR UNUSED pc = abuf->addr;
1459   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1460
1461 {
1462   HI tmp_tmpopd;
1463   HI tmp_tmpops;
1464   BI tmp_carry;
1465   HI tmp_newval;
1466   tmp_tmpops = GET_H_GR (FLD (f_operand1));
1467   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1468   tmp_carry = CPU (h_cbit);
1469   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1470 ((void) 0); /*nop*/
1471 {
1472   {
1473     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
1474     CPU (h_cbit) = opval;
1475     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1476   }
1477   {
1478     BI opval = LTHI (tmp_newval, 0);
1479     CPU (h_nbit) = opval;
1480     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1481   }
1482   {
1483     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1484     CPU (h_zbit) = opval;
1485     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1486   }
1487   {
1488     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
1489     CPU (h_vbit) = opval;
1490     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1491   }
1492 {
1493   {
1494     BI opval = 0;
1495     CPU (h_xbit) = opval;
1496     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1497   }
1498   {
1499     BI opval = 0;
1500     SET_H_INSN_PREFIXED_P (opval);
1501     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1502   }
1503 }
1504 }
1505 }
1506
1507 #undef FLD
1508 }
1509   NEXT (vpc);
1510
1511   CASE (sem, INSN_CMP_R_D_R) : /* cmp-r.d $Rs,$Rd */
1512 {
1513   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1514   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1515 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1516   int UNUSED written = 0;
1517   IADDR UNUSED pc = abuf->addr;
1518   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1519
1520 {
1521   SI tmp_tmpopd;
1522   SI tmp_tmpops;
1523   BI tmp_carry;
1524   SI tmp_newval;
1525   tmp_tmpops = GET_H_GR (FLD (f_operand1));
1526   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1527   tmp_carry = CPU (h_cbit);
1528   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1529 ((void) 0); /*nop*/
1530 {
1531   {
1532     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
1533     CPU (h_cbit) = opval;
1534     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1535   }
1536   {
1537     BI opval = LTSI (tmp_newval, 0);
1538     CPU (h_nbit) = opval;
1539     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1540   }
1541   {
1542     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1543     CPU (h_zbit) = opval;
1544     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1545   }
1546   {
1547     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
1548     CPU (h_vbit) = opval;
1549     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1550   }
1551 {
1552   {
1553     BI opval = 0;
1554     CPU (h_xbit) = opval;
1555     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1556   }
1557   {
1558     BI opval = 0;
1559     SET_H_INSN_PREFIXED_P (opval);
1560     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1561   }
1562 }
1563 }
1564 }
1565
1566 #undef FLD
1567 }
1568   NEXT (vpc);
1569
1570   CASE (sem, INSN_CMP_M_B_M) : /* cmp-m.b [${Rs}${inc}],${Rd} */
1571 {
1572   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1573   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1574 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
1575   int UNUSED written = 0;
1576   IADDR UNUSED pc = abuf->addr;
1577   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1578
1579 {
1580   QI tmp_tmpopd;
1581   QI tmp_tmpops;
1582   BI tmp_carry;
1583   QI tmp_newval;
1584   tmp_tmpops = ({   SI tmp_addr;
1585   QI tmp_tmp_mem;
1586   BI tmp_postinc;
1587   tmp_postinc = FLD (f_memmode);
1588 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
1589 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
1590 ; if (NEBI (tmp_postinc, 0)) {
1591 {
1592 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1593   tmp_addr = ADDSI (tmp_addr, 1);
1594 }
1595   {
1596     SI opval = tmp_addr;
1597     SET_H_GR (FLD (f_operand1), opval);
1598     written |= (1 << 9);
1599     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1600   }
1601 }
1602 }
1603 ; tmp_tmp_mem; });
1604   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1605   tmp_carry = CPU (h_cbit);
1606   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1607 ((void) 0); /*nop*/
1608 {
1609   {
1610     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
1611     CPU (h_cbit) = opval;
1612     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1613   }
1614   {
1615     BI opval = LTQI (tmp_newval, 0);
1616     CPU (h_nbit) = opval;
1617     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1618   }
1619   {
1620     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1621     CPU (h_zbit) = opval;
1622     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1623   }
1624   {
1625     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
1626     CPU (h_vbit) = opval;
1627     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1628   }
1629 {
1630   {
1631     BI opval = 0;
1632     CPU (h_xbit) = opval;
1633     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1634   }
1635   {
1636     BI opval = 0;
1637     SET_H_INSN_PREFIXED_P (opval);
1638     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1639   }
1640 }
1641 }
1642 }
1643
1644   abuf->written = written;
1645 #undef FLD
1646 }
1647   NEXT (vpc);
1648
1649   CASE (sem, INSN_CMP_M_W_M) : /* cmp-m.w [${Rs}${inc}],${Rd} */
1650 {
1651   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1652   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1653 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
1654   int UNUSED written = 0;
1655   IADDR UNUSED pc = abuf->addr;
1656   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1657
1658 {
1659   HI tmp_tmpopd;
1660   HI tmp_tmpops;
1661   BI tmp_carry;
1662   HI tmp_newval;
1663   tmp_tmpops = ({   SI tmp_addr;
1664   HI tmp_tmp_mem;
1665   BI tmp_postinc;
1666   tmp_postinc = FLD (f_memmode);
1667 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
1668 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
1669 ; if (NEBI (tmp_postinc, 0)) {
1670 {
1671 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1672   tmp_addr = ADDSI (tmp_addr, 2);
1673 }
1674   {
1675     SI opval = tmp_addr;
1676     SET_H_GR (FLD (f_operand1), opval);
1677     written |= (1 << 9);
1678     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1679   }
1680 }
1681 }
1682 ; tmp_tmp_mem; });
1683   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1684   tmp_carry = CPU (h_cbit);
1685   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1686 ((void) 0); /*nop*/
1687 {
1688   {
1689     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
1690     CPU (h_cbit) = opval;
1691     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1692   }
1693   {
1694     BI opval = LTHI (tmp_newval, 0);
1695     CPU (h_nbit) = opval;
1696     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1697   }
1698   {
1699     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1700     CPU (h_zbit) = opval;
1701     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1702   }
1703   {
1704     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
1705     CPU (h_vbit) = opval;
1706     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1707   }
1708 {
1709   {
1710     BI opval = 0;
1711     CPU (h_xbit) = opval;
1712     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1713   }
1714   {
1715     BI opval = 0;
1716     SET_H_INSN_PREFIXED_P (opval);
1717     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1718   }
1719 }
1720 }
1721 }
1722
1723   abuf->written = written;
1724 #undef FLD
1725 }
1726   NEXT (vpc);
1727
1728   CASE (sem, INSN_CMP_M_D_M) : /* cmp-m.d [${Rs}${inc}],${Rd} */
1729 {
1730   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1732 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
1733   int UNUSED written = 0;
1734   IADDR UNUSED pc = abuf->addr;
1735   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1736
1737 {
1738   SI tmp_tmpopd;
1739   SI tmp_tmpops;
1740   BI tmp_carry;
1741   SI tmp_newval;
1742   tmp_tmpops = ({   SI tmp_addr;
1743   SI tmp_tmp_mem;
1744   BI tmp_postinc;
1745   tmp_postinc = FLD (f_memmode);
1746 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
1747 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
1748 ; if (NEBI (tmp_postinc, 0)) {
1749 {
1750 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1751   tmp_addr = ADDSI (tmp_addr, 4);
1752 }
1753   {
1754     SI opval = tmp_addr;
1755     SET_H_GR (FLD (f_operand1), opval);
1756     written |= (1 << 9);
1757     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1758   }
1759 }
1760 }
1761 ; tmp_tmp_mem; });
1762   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1763   tmp_carry = CPU (h_cbit);
1764   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1765 ((void) 0); /*nop*/
1766 {
1767   {
1768     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
1769     CPU (h_cbit) = opval;
1770     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1771   }
1772   {
1773     BI opval = LTSI (tmp_newval, 0);
1774     CPU (h_nbit) = opval;
1775     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1776   }
1777   {
1778     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1779     CPU (h_zbit) = opval;
1780     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1781   }
1782   {
1783     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
1784     CPU (h_vbit) = opval;
1785     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1786   }
1787 {
1788   {
1789     BI opval = 0;
1790     CPU (h_xbit) = opval;
1791     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1792   }
1793   {
1794     BI opval = 0;
1795     SET_H_INSN_PREFIXED_P (opval);
1796     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1797   }
1798 }
1799 }
1800 }
1801
1802   abuf->written = written;
1803 #undef FLD
1804 }
1805   NEXT (vpc);
1806
1807   CASE (sem, INSN_CMPCBR) : /* cmp.b $sconst8,$Rd */
1808 {
1809   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1810   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1811 #define FLD(f) abuf->fields.sfmt_bound_cb.f
1812   int UNUSED written = 0;
1813   IADDR UNUSED pc = abuf->addr;
1814   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1815
1816 {
1817   QI tmp_tmpopd;
1818   QI tmp_tmpops;
1819   BI tmp_carry;
1820   QI tmp_newval;
1821   tmp_tmpops = TRUNCSIQI (FLD (f_indir_pc__byte));
1822   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1823   tmp_carry = CPU (h_cbit);
1824   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1825 ((void) 0); /*nop*/
1826 {
1827   {
1828     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
1829     CPU (h_cbit) = opval;
1830     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1831   }
1832   {
1833     BI opval = LTQI (tmp_newval, 0);
1834     CPU (h_nbit) = opval;
1835     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1836   }
1837   {
1838     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1839     CPU (h_zbit) = opval;
1840     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1841   }
1842   {
1843     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
1844     CPU (h_vbit) = opval;
1845     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1846   }
1847 {
1848   {
1849     BI opval = 0;
1850     CPU (h_xbit) = opval;
1851     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1852   }
1853   {
1854     BI opval = 0;
1855     SET_H_INSN_PREFIXED_P (opval);
1856     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1857   }
1858 }
1859 }
1860 }
1861
1862 #undef FLD
1863 }
1864   NEXT (vpc);
1865
1866   CASE (sem, INSN_CMPCWR) : /* cmp.w $sconst16,$Rd */
1867 {
1868   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1869   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1870 #define FLD(f) abuf->fields.sfmt_bound_cw.f
1871   int UNUSED written = 0;
1872   IADDR UNUSED pc = abuf->addr;
1873   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1874
1875 {
1876   HI tmp_tmpopd;
1877   HI tmp_tmpops;
1878   BI tmp_carry;
1879   HI tmp_newval;
1880   tmp_tmpops = TRUNCSIHI (FLD (f_indir_pc__word));
1881   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1882   tmp_carry = CPU (h_cbit);
1883   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1884 ((void) 0); /*nop*/
1885 {
1886   {
1887     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
1888     CPU (h_cbit) = opval;
1889     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1890   }
1891   {
1892     BI opval = LTHI (tmp_newval, 0);
1893     CPU (h_nbit) = opval;
1894     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1895   }
1896   {
1897     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1898     CPU (h_zbit) = opval;
1899     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1900   }
1901   {
1902     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
1903     CPU (h_vbit) = opval;
1904     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1905   }
1906 {
1907   {
1908     BI opval = 0;
1909     CPU (h_xbit) = opval;
1910     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1911   }
1912   {
1913     BI opval = 0;
1914     SET_H_INSN_PREFIXED_P (opval);
1915     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1916   }
1917 }
1918 }
1919 }
1920
1921 #undef FLD
1922 }
1923   NEXT (vpc);
1924
1925   CASE (sem, INSN_CMPCDR) : /* cmp.d $const32,$Rd */
1926 {
1927   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1929 #define FLD(f) abuf->fields.sfmt_bound_cd.f
1930   int UNUSED written = 0;
1931   IADDR UNUSED pc = abuf->addr;
1932   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
1933
1934 {
1935   SI tmp_tmpopd;
1936   SI tmp_tmpops;
1937   BI tmp_carry;
1938   SI tmp_newval;
1939   tmp_tmpops = FLD (f_indir_pc__dword);
1940   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1941   tmp_carry = CPU (h_cbit);
1942   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1943 ((void) 0); /*nop*/
1944 {
1945   {
1946     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
1947     CPU (h_cbit) = opval;
1948     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1949   }
1950   {
1951     BI opval = LTSI (tmp_newval, 0);
1952     CPU (h_nbit) = opval;
1953     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1954   }
1955   {
1956     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1957     CPU (h_zbit) = opval;
1958     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1959   }
1960   {
1961     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
1962     CPU (h_vbit) = opval;
1963     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1964   }
1965 {
1966   {
1967     BI opval = 0;
1968     CPU (h_xbit) = opval;
1969     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1970   }
1971   {
1972     BI opval = 0;
1973     SET_H_INSN_PREFIXED_P (opval);
1974     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1975   }
1976 }
1977 }
1978 }
1979
1980 #undef FLD
1981 }
1982   NEXT (vpc);
1983
1984   CASE (sem, INSN_CMPQ) : /* cmpq $i,$Rd */
1985 {
1986   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1988 #define FLD(f) abuf->fields.sfmt_andq.f
1989   int UNUSED written = 0;
1990   IADDR UNUSED pc = abuf->addr;
1991   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1992
1993 {
1994   SI tmp_tmpopd;
1995   SI tmp_tmpops;
1996   BI tmp_carry;
1997   SI tmp_newval;
1998   tmp_tmpops = FLD (f_s6);
1999   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2000   tmp_carry = CPU (h_cbit);
2001   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2002 ((void) 0); /*nop*/
2003 {
2004   {
2005     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2006     CPU (h_cbit) = opval;
2007     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2008   }
2009   {
2010     BI opval = LTSI (tmp_newval, 0);
2011     CPU (h_nbit) = opval;
2012     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2013   }
2014   {
2015     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2016     CPU (h_zbit) = opval;
2017     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2018   }
2019   {
2020     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2021     CPU (h_vbit) = opval;
2022     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2023   }
2024 {
2025   {
2026     BI opval = 0;
2027     CPU (h_xbit) = opval;
2028     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2029   }
2030   {
2031     BI opval = 0;
2032     SET_H_INSN_PREFIXED_P (opval);
2033     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2034   }
2035 }
2036 }
2037 }
2038
2039 #undef FLD
2040 }
2041   NEXT (vpc);
2042
2043   CASE (sem, INSN_CMPS_M_B_M) : /* cmps-m.b [${Rs}${inc}],$Rd */
2044 {
2045   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2046   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2047 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2048   int UNUSED written = 0;
2049   IADDR UNUSED pc = abuf->addr;
2050   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2051
2052 {
2053   SI tmp_tmpopd;
2054   SI tmp_tmpops;
2055   BI tmp_carry;
2056   SI tmp_newval;
2057   tmp_tmpops = EXTQISI (({   SI tmp_addr;
2058   QI tmp_tmp_mem;
2059   BI tmp_postinc;
2060   tmp_postinc = FLD (f_memmode);
2061 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2062 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2063 ; if (NEBI (tmp_postinc, 0)) {
2064 {
2065 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2066   tmp_addr = ADDSI (tmp_addr, 1);
2067 }
2068   {
2069     SI opval = tmp_addr;
2070     SET_H_GR (FLD (f_operand1), opval);
2071     written |= (1 << 9);
2072     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2073   }
2074 }
2075 }
2076 ; tmp_tmp_mem; }));
2077   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2078   tmp_carry = CPU (h_cbit);
2079   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2080 ((void) 0); /*nop*/
2081 {
2082   {
2083     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2084     CPU (h_cbit) = opval;
2085     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2086   }
2087   {
2088     BI opval = LTSI (tmp_newval, 0);
2089     CPU (h_nbit) = opval;
2090     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2091   }
2092   {
2093     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2094     CPU (h_zbit) = opval;
2095     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2096   }
2097   {
2098     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2099     CPU (h_vbit) = opval;
2100     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2101   }
2102 {
2103   {
2104     BI opval = 0;
2105     CPU (h_xbit) = opval;
2106     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2107   }
2108   {
2109     BI opval = 0;
2110     SET_H_INSN_PREFIXED_P (opval);
2111     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2112   }
2113 }
2114 }
2115 }
2116
2117   abuf->written = written;
2118 #undef FLD
2119 }
2120   NEXT (vpc);
2121
2122   CASE (sem, INSN_CMPS_M_W_M) : /* cmps-m.w [${Rs}${inc}],$Rd */
2123 {
2124   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2125   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2126 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2127   int UNUSED written = 0;
2128   IADDR UNUSED pc = abuf->addr;
2129   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2130
2131 {
2132   SI tmp_tmpopd;
2133   SI tmp_tmpops;
2134   BI tmp_carry;
2135   SI tmp_newval;
2136   tmp_tmpops = EXTHISI (({   SI tmp_addr;
2137   HI tmp_tmp_mem;
2138   BI tmp_postinc;
2139   tmp_postinc = FLD (f_memmode);
2140 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2141 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2142 ; if (NEBI (tmp_postinc, 0)) {
2143 {
2144 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2145   tmp_addr = ADDSI (tmp_addr, 2);
2146 }
2147   {
2148     SI opval = tmp_addr;
2149     SET_H_GR (FLD (f_operand1), opval);
2150     written |= (1 << 9);
2151     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2152   }
2153 }
2154 }
2155 ; tmp_tmp_mem; }));
2156   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2157   tmp_carry = CPU (h_cbit);
2158   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2159 ((void) 0); /*nop*/
2160 {
2161   {
2162     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2163     CPU (h_cbit) = opval;
2164     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2165   }
2166   {
2167     BI opval = LTSI (tmp_newval, 0);
2168     CPU (h_nbit) = opval;
2169     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2170   }
2171   {
2172     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2173     CPU (h_zbit) = opval;
2174     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2175   }
2176   {
2177     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2178     CPU (h_vbit) = opval;
2179     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2180   }
2181 {
2182   {
2183     BI opval = 0;
2184     CPU (h_xbit) = opval;
2185     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2186   }
2187   {
2188     BI opval = 0;
2189     SET_H_INSN_PREFIXED_P (opval);
2190     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2191   }
2192 }
2193 }
2194 }
2195
2196   abuf->written = written;
2197 #undef FLD
2198 }
2199   NEXT (vpc);
2200
2201   CASE (sem, INSN_CMPSCBR) : /* [${Rs}${inc}],$Rd */
2202 {
2203   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2204   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2205 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2206   int UNUSED written = 0;
2207   IADDR UNUSED pc = abuf->addr;
2208   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2209
2210 {
2211   SI tmp_tmpopd;
2212   SI tmp_tmpops;
2213   BI tmp_carry;
2214   SI tmp_newval;
2215   tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
2216   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2217   tmp_carry = CPU (h_cbit);
2218   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2219 ((void) 0); /*nop*/
2220 {
2221   {
2222     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2223     CPU (h_cbit) = opval;
2224     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2225   }
2226   {
2227     BI opval = LTSI (tmp_newval, 0);
2228     CPU (h_nbit) = opval;
2229     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2230   }
2231   {
2232     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2233     CPU (h_zbit) = opval;
2234     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2235   }
2236   {
2237     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2238     CPU (h_vbit) = opval;
2239     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2240   }
2241 {
2242   {
2243     BI opval = 0;
2244     CPU (h_xbit) = opval;
2245     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2246   }
2247   {
2248     BI opval = 0;
2249     SET_H_INSN_PREFIXED_P (opval);
2250     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2251   }
2252 }
2253 }
2254 }
2255
2256 #undef FLD
2257 }
2258   NEXT (vpc);
2259
2260   CASE (sem, INSN_CMPSCWR) : /* [${Rs}${inc}],$Rd */
2261 {
2262   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2263   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2264 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2265   int UNUSED written = 0;
2266   IADDR UNUSED pc = abuf->addr;
2267   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2268
2269 {
2270   SI tmp_tmpopd;
2271   SI tmp_tmpops;
2272   BI tmp_carry;
2273   SI tmp_newval;
2274   tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
2275   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2276   tmp_carry = CPU (h_cbit);
2277   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2278 ((void) 0); /*nop*/
2279 {
2280   {
2281     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2282     CPU (h_cbit) = opval;
2283     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2284   }
2285   {
2286     BI opval = LTSI (tmp_newval, 0);
2287     CPU (h_nbit) = opval;
2288     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2289   }
2290   {
2291     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2292     CPU (h_zbit) = opval;
2293     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2294   }
2295   {
2296     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2297     CPU (h_vbit) = opval;
2298     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2299   }
2300 {
2301   {
2302     BI opval = 0;
2303     CPU (h_xbit) = opval;
2304     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2305   }
2306   {
2307     BI opval = 0;
2308     SET_H_INSN_PREFIXED_P (opval);
2309     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2310   }
2311 }
2312 }
2313 }
2314
2315 #undef FLD
2316 }
2317   NEXT (vpc);
2318
2319   CASE (sem, INSN_CMPU_M_B_M) : /* cmpu-m.b [${Rs}${inc}],$Rd */
2320 {
2321   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2322   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2323 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2324   int UNUSED written = 0;
2325   IADDR UNUSED pc = abuf->addr;
2326   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2327
2328 {
2329   SI tmp_tmpopd;
2330   SI tmp_tmpops;
2331   BI tmp_carry;
2332   SI tmp_newval;
2333   tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
2334   QI tmp_tmp_mem;
2335   BI tmp_postinc;
2336   tmp_postinc = FLD (f_memmode);
2337 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2338 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2339 ; if (NEBI (tmp_postinc, 0)) {
2340 {
2341 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2342   tmp_addr = ADDSI (tmp_addr, 1);
2343 }
2344   {
2345     SI opval = tmp_addr;
2346     SET_H_GR (FLD (f_operand1), opval);
2347     written |= (1 << 9);
2348     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2349   }
2350 }
2351 }
2352 ; tmp_tmp_mem; }));
2353   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2354   tmp_carry = CPU (h_cbit);
2355   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2356 ((void) 0); /*nop*/
2357 {
2358   {
2359     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2360     CPU (h_cbit) = opval;
2361     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2362   }
2363   {
2364     BI opval = LTSI (tmp_newval, 0);
2365     CPU (h_nbit) = opval;
2366     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2367   }
2368   {
2369     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2370     CPU (h_zbit) = opval;
2371     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2372   }
2373   {
2374     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2375     CPU (h_vbit) = opval;
2376     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2377   }
2378 {
2379   {
2380     BI opval = 0;
2381     CPU (h_xbit) = opval;
2382     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2383   }
2384   {
2385     BI opval = 0;
2386     SET_H_INSN_PREFIXED_P (opval);
2387     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2388   }
2389 }
2390 }
2391 }
2392
2393   abuf->written = written;
2394 #undef FLD
2395 }
2396   NEXT (vpc);
2397
2398   CASE (sem, INSN_CMPU_M_W_M) : /* cmpu-m.w [${Rs}${inc}],$Rd */
2399 {
2400   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2401   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2402 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2403   int UNUSED written = 0;
2404   IADDR UNUSED pc = abuf->addr;
2405   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2406
2407 {
2408   SI tmp_tmpopd;
2409   SI tmp_tmpops;
2410   BI tmp_carry;
2411   SI tmp_newval;
2412   tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
2413   HI tmp_tmp_mem;
2414   BI tmp_postinc;
2415   tmp_postinc = FLD (f_memmode);
2416 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2417 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2418 ; if (NEBI (tmp_postinc, 0)) {
2419 {
2420 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2421   tmp_addr = ADDSI (tmp_addr, 2);
2422 }
2423   {
2424     SI opval = tmp_addr;
2425     SET_H_GR (FLD (f_operand1), opval);
2426     written |= (1 << 9);
2427     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2428   }
2429 }
2430 }
2431 ; tmp_tmp_mem; }));
2432   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2433   tmp_carry = CPU (h_cbit);
2434   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2435 ((void) 0); /*nop*/
2436 {
2437   {
2438     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2439     CPU (h_cbit) = opval;
2440     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2441   }
2442   {
2443     BI opval = LTSI (tmp_newval, 0);
2444     CPU (h_nbit) = opval;
2445     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2446   }
2447   {
2448     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2449     CPU (h_zbit) = opval;
2450     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2451   }
2452   {
2453     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2454     CPU (h_vbit) = opval;
2455     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2456   }
2457 {
2458   {
2459     BI opval = 0;
2460     CPU (h_xbit) = opval;
2461     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2462   }
2463   {
2464     BI opval = 0;
2465     SET_H_INSN_PREFIXED_P (opval);
2466     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2467   }
2468 }
2469 }
2470 }
2471
2472   abuf->written = written;
2473 #undef FLD
2474 }
2475   NEXT (vpc);
2476
2477   CASE (sem, INSN_CMPUCBR) : /* [${Rs}${inc}],$Rd */
2478 {
2479   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2480   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2481 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2482   int UNUSED written = 0;
2483   IADDR UNUSED pc = abuf->addr;
2484   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2485
2486 {
2487   SI tmp_tmpopd;
2488   SI tmp_tmpops;
2489   BI tmp_carry;
2490   SI tmp_newval;
2491   tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
2492   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2493   tmp_carry = CPU (h_cbit);
2494   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2495 ((void) 0); /*nop*/
2496 {
2497   {
2498     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2499     CPU (h_cbit) = opval;
2500     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2501   }
2502   {
2503     BI opval = LTSI (tmp_newval, 0);
2504     CPU (h_nbit) = opval;
2505     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2506   }
2507   {
2508     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2509     CPU (h_zbit) = opval;
2510     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2511   }
2512   {
2513     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2514     CPU (h_vbit) = opval;
2515     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2516   }
2517 {
2518   {
2519     BI opval = 0;
2520     CPU (h_xbit) = opval;
2521     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2522   }
2523   {
2524     BI opval = 0;
2525     SET_H_INSN_PREFIXED_P (opval);
2526     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2527   }
2528 }
2529 }
2530 }
2531
2532 #undef FLD
2533 }
2534   NEXT (vpc);
2535
2536   CASE (sem, INSN_CMPUCWR) : /* [${Rs}${inc}],$Rd */
2537 {
2538   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2539   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2540 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2541   int UNUSED written = 0;
2542   IADDR UNUSED pc = abuf->addr;
2543   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2544
2545 {
2546   SI tmp_tmpopd;
2547   SI tmp_tmpops;
2548   BI tmp_carry;
2549   SI tmp_newval;
2550   tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
2551   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2552   tmp_carry = CPU (h_cbit);
2553   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2554 ((void) 0); /*nop*/
2555 {
2556   {
2557     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
2558     CPU (h_cbit) = opval;
2559     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2560   }
2561   {
2562     BI opval = LTSI (tmp_newval, 0);
2563     CPU (h_nbit) = opval;
2564     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2565   }
2566   {
2567     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2568     CPU (h_zbit) = opval;
2569     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2570   }
2571   {
2572     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
2573     CPU (h_vbit) = opval;
2574     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2575   }
2576 {
2577   {
2578     BI opval = 0;
2579     CPU (h_xbit) = opval;
2580     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2581   }
2582   {
2583     BI opval = 0;
2584     SET_H_INSN_PREFIXED_P (opval);
2585     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2586   }
2587 }
2588 }
2589 }
2590
2591 #undef FLD
2592 }
2593   NEXT (vpc);
2594
2595   CASE (sem, INSN_MOVE_M_B_M) : /* move-m.b [${Rs}${inc}],${Rd} */
2596 {
2597   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2598   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2599 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2600   int UNUSED written = 0;
2601   IADDR UNUSED pc = abuf->addr;
2602   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2603
2604 {
2605   SI tmp_tmp;
2606   tmp_tmp = ({   SI tmp_addr;
2607   QI tmp_tmp_mem;
2608   BI tmp_postinc;
2609   tmp_postinc = FLD (f_memmode);
2610 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2611 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2612 ; if (NEBI (tmp_postinc, 0)) {
2613 {
2614 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2615   tmp_addr = ADDSI (tmp_addr, 1);
2616 }
2617   {
2618     SI opval = tmp_addr;
2619     SET_H_GR (FLD (f_operand1), opval);
2620     written |= (1 << 10);
2621     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2622   }
2623 }
2624 }
2625 ; tmp_tmp_mem; });
2626 {
2627   SI tmp_oldregval;
2628   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
2629   {
2630     SI opval = ORSI (ANDSI (tmp_tmp, 255), ANDSI (tmp_oldregval, 0xffffff00));
2631     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2632     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2633   }
2634 }
2635 {
2636   {
2637     BI opval = LTQI (tmp_tmp, 0);
2638     CPU (h_nbit) = opval;
2639     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2640   }
2641   {
2642     BI opval = ANDIF (EQQI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2643     CPU (h_zbit) = opval;
2644     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2645   }
2646 SET_H_CBIT_MOVE (0);
2647 SET_H_VBIT_MOVE (0);
2648 {
2649   {
2650     BI opval = 0;
2651     CPU (h_xbit) = opval;
2652     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2653   }
2654   {
2655     BI opval = 0;
2656     SET_H_INSN_PREFIXED_P (opval);
2657     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2658   }
2659 }
2660 }
2661 }
2662
2663   abuf->written = written;
2664 #undef FLD
2665 }
2666   NEXT (vpc);
2667
2668   CASE (sem, INSN_MOVE_M_W_M) : /* move-m.w [${Rs}${inc}],${Rd} */
2669 {
2670   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2671   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2672 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2673   int UNUSED written = 0;
2674   IADDR UNUSED pc = abuf->addr;
2675   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2676
2677 {
2678   SI tmp_tmp;
2679   tmp_tmp = ({   SI tmp_addr;
2680   HI tmp_tmp_mem;
2681   BI tmp_postinc;
2682   tmp_postinc = FLD (f_memmode);
2683 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2684 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2685 ; if (NEBI (tmp_postinc, 0)) {
2686 {
2687 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2688   tmp_addr = ADDSI (tmp_addr, 2);
2689 }
2690   {
2691     SI opval = tmp_addr;
2692     SET_H_GR (FLD (f_operand1), opval);
2693     written |= (1 << 10);
2694     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2695   }
2696 }
2697 }
2698 ; tmp_tmp_mem; });
2699 {
2700   SI tmp_oldregval;
2701   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
2702   {
2703     SI opval = ORSI (ANDSI (tmp_tmp, 65535), ANDSI (tmp_oldregval, 0xffff0000));
2704     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2705     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2706   }
2707 }
2708 {
2709   {
2710     BI opval = LTHI (tmp_tmp, 0);
2711     CPU (h_nbit) = opval;
2712     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2713   }
2714   {
2715     BI opval = ANDIF (EQHI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2716     CPU (h_zbit) = opval;
2717     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2718   }
2719 SET_H_CBIT_MOVE (0);
2720 SET_H_VBIT_MOVE (0);
2721 {
2722   {
2723     BI opval = 0;
2724     CPU (h_xbit) = opval;
2725     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2726   }
2727   {
2728     BI opval = 0;
2729     SET_H_INSN_PREFIXED_P (opval);
2730     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2731   }
2732 }
2733 }
2734 }
2735
2736   abuf->written = written;
2737 #undef FLD
2738 }
2739   NEXT (vpc);
2740
2741   CASE (sem, INSN_MOVE_M_D_M) : /* move-m.d [${Rs}${inc}],${Rd} */
2742 {
2743   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2744   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2745 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2746   int UNUSED written = 0;
2747   IADDR UNUSED pc = abuf->addr;
2748   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2749
2750 {
2751   SI tmp_tmp;
2752   tmp_tmp = ({   SI tmp_addr;
2753   SI tmp_tmp_mem;
2754   BI tmp_postinc;
2755   tmp_postinc = FLD (f_memmode);
2756 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2757 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
2758 ; if (NEBI (tmp_postinc, 0)) {
2759 {
2760 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2761   tmp_addr = ADDSI (tmp_addr, 4);
2762 }
2763   {
2764     SI opval = tmp_addr;
2765     SET_H_GR (FLD (f_operand1), opval);
2766     written |= (1 << 9);
2767     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2768   }
2769 }
2770 }
2771 ; tmp_tmp_mem; });
2772   {
2773     SI opval = tmp_tmp;
2774     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2775     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2776   }
2777 {
2778   {
2779     BI opval = LTSI (tmp_tmp, 0);
2780     CPU (h_nbit) = opval;
2781     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2782   }
2783   {
2784     BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2785     CPU (h_zbit) = opval;
2786     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2787   }
2788 SET_H_CBIT_MOVE (0);
2789 SET_H_VBIT_MOVE (0);
2790 {
2791   {
2792     BI opval = 0;
2793     CPU (h_xbit) = opval;
2794     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2795   }
2796   {
2797     BI opval = 0;
2798     SET_H_INSN_PREFIXED_P (opval);
2799     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2800   }
2801 }
2802 }
2803 }
2804
2805   abuf->written = written;
2806 #undef FLD
2807 }
2808   NEXT (vpc);
2809
2810   CASE (sem, INSN_MOVS_M_B_M) : /* movs-m.b [${Rs}${inc}],${Rd} */
2811 {
2812   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2814 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2815   int UNUSED written = 0;
2816   IADDR UNUSED pc = abuf->addr;
2817   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2818
2819 {
2820   SI tmp_tmp;
2821   tmp_tmp = EXTQISI (({   SI tmp_addr;
2822   QI tmp_tmp_mem;
2823   BI tmp_postinc;
2824   tmp_postinc = FLD (f_memmode);
2825 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2826 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2827 ; if (NEBI (tmp_postinc, 0)) {
2828 {
2829 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2830   tmp_addr = ADDSI (tmp_addr, 1);
2831 }
2832   {
2833     SI opval = tmp_addr;
2834     SET_H_GR (FLD (f_operand1), opval);
2835     written |= (1 << 8);
2836     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2837   }
2838 }
2839 }
2840 ; tmp_tmp_mem; }));
2841 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2842   {
2843     SI opval = tmp_tmp;
2844     SET_H_GR (FLD (f_operand1), opval);
2845     written |= (1 << 8);
2846     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2847   }
2848 } else {
2849   {
2850     SI opval = tmp_tmp;
2851     SET_H_GR (FLD (f_operand2), opval);
2852     written |= (1 << 7);
2853     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2854   }
2855 }
2856 {
2857   {
2858     BI opval = LTSI (tmp_tmp, 0);
2859     CPU (h_nbit) = opval;
2860     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2861   }
2862   {
2863     BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2864     CPU (h_zbit) = opval;
2865     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2866   }
2867 SET_H_CBIT_MOVE (0);
2868 SET_H_VBIT_MOVE (0);
2869 {
2870   {
2871     BI opval = 0;
2872     CPU (h_xbit) = opval;
2873     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2874   }
2875   {
2876     BI opval = 0;
2877     SET_H_INSN_PREFIXED_P (opval);
2878     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2879   }
2880 }
2881 }
2882 }
2883
2884   abuf->written = written;
2885 #undef FLD
2886 }
2887   NEXT (vpc);
2888
2889   CASE (sem, INSN_MOVS_M_W_M) : /* movs-m.w [${Rs}${inc}],${Rd} */
2890 {
2891   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2892   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2893 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2894   int UNUSED written = 0;
2895   IADDR UNUSED pc = abuf->addr;
2896   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2897
2898 {
2899   SI tmp_tmp;
2900   tmp_tmp = EXTHISI (({   SI tmp_addr;
2901   HI tmp_tmp_mem;
2902   BI tmp_postinc;
2903   tmp_postinc = FLD (f_memmode);
2904 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2905 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2906 ; if (NEBI (tmp_postinc, 0)) {
2907 {
2908 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2909   tmp_addr = ADDSI (tmp_addr, 2);
2910 }
2911   {
2912     SI opval = tmp_addr;
2913     SET_H_GR (FLD (f_operand1), opval);
2914     written |= (1 << 8);
2915     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2916   }
2917 }
2918 }
2919 ; tmp_tmp_mem; }));
2920 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2921   {
2922     SI opval = tmp_tmp;
2923     SET_H_GR (FLD (f_operand1), opval);
2924     written |= (1 << 8);
2925     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2926   }
2927 } else {
2928   {
2929     SI opval = tmp_tmp;
2930     SET_H_GR (FLD (f_operand2), opval);
2931     written |= (1 << 7);
2932     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2933   }
2934 }
2935 {
2936   {
2937     BI opval = LTSI (tmp_tmp, 0);
2938     CPU (h_nbit) = opval;
2939     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2940   }
2941   {
2942     BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2943     CPU (h_zbit) = opval;
2944     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2945   }
2946 SET_H_CBIT_MOVE (0);
2947 SET_H_VBIT_MOVE (0);
2948 {
2949   {
2950     BI opval = 0;
2951     CPU (h_xbit) = opval;
2952     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2953   }
2954   {
2955     BI opval = 0;
2956     SET_H_INSN_PREFIXED_P (opval);
2957     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2958   }
2959 }
2960 }
2961 }
2962
2963   abuf->written = written;
2964 #undef FLD
2965 }
2966   NEXT (vpc);
2967
2968   CASE (sem, INSN_MOVU_M_B_M) : /* movu-m.b [${Rs}${inc}],${Rd} */
2969 {
2970   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2971   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2972 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2973   int UNUSED written = 0;
2974   IADDR UNUSED pc = abuf->addr;
2975   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2976
2977 {
2978   SI tmp_tmp;
2979   tmp_tmp = ZEXTQISI (({   SI tmp_addr;
2980   QI tmp_tmp_mem;
2981   BI tmp_postinc;
2982   tmp_postinc = FLD (f_memmode);
2983 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2984 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2985 ; if (NEBI (tmp_postinc, 0)) {
2986 {
2987 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2988   tmp_addr = ADDSI (tmp_addr, 1);
2989 }
2990   {
2991     SI opval = tmp_addr;
2992     SET_H_GR (FLD (f_operand1), opval);
2993     written |= (1 << 8);
2994     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2995   }
2996 }
2997 }
2998 ; tmp_tmp_mem; }));
2999 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
3000   {
3001     SI opval = tmp_tmp;
3002     SET_H_GR (FLD (f_operand1), opval);
3003     written |= (1 << 8);
3004     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3005   }
3006 } else {
3007   {
3008     SI opval = tmp_tmp;
3009     SET_H_GR (FLD (f_operand2), opval);
3010     written |= (1 << 7);
3011     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3012   }
3013 }
3014 {
3015   {
3016     BI opval = LTSI (tmp_tmp, 0);
3017     CPU (h_nbit) = opval;
3018     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
3019   }
3020   {
3021     BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
3022     CPU (h_zbit) = opval;
3023     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
3024   }
3025 SET_H_CBIT_MOVE (0);
3026 SET_H_VBIT_MOVE (0);
3027 {
3028   {
3029     BI opval = 0;
3030     CPU (h_xbit) = opval;
3031     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3032   }
3033   {
3034     BI opval = 0;
3035     SET_H_INSN_PREFIXED_P (opval);
3036     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3037   }
3038 }
3039 }
3040 }
3041
3042   abuf->written = written;
3043 #undef FLD
3044 }
3045   NEXT (vpc);
3046
3047   CASE (sem, INSN_MOVU_M_W_M) : /* movu-m.w [${Rs}${inc}],${Rd} */
3048 {
3049   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3050   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3051 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3052   int UNUSED written = 0;
3053   IADDR UNUSED pc = abuf->addr;
3054   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3055
3056 {
3057   SI tmp_tmp;
3058   tmp_tmp = ZEXTHISI (({   SI tmp_addr;
3059   HI tmp_tmp_mem;
3060   BI tmp_postinc;
3061   tmp_postinc = FLD (f_memmode);
3062 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3063 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
3064 ; if (NEBI (tmp_postinc, 0)) {
3065 {
3066 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3067   tmp_addr = ADDSI (tmp_addr, 2);
3068 }
3069   {
3070     SI opval = tmp_addr;
3071     SET_H_GR (FLD (f_operand1), opval);
3072     written |= (1 << 8);
3073     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3074   }
3075 }
3076 }
3077 ; tmp_tmp_mem; }));
3078 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
3079   {
3080     SI opval = tmp_tmp;
3081     SET_H_GR (FLD (f_operand1), opval);
3082     written |= (1 << 8);
3083     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3084   }
3085 } else {
3086   {
3087     SI opval = tmp_tmp;
3088     SET_H_GR (FLD (f_operand2), opval);
3089     written |= (1 << 7);
3090     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3091   }
3092 }
3093 {
3094   {
3095     BI opval = LTSI (tmp_tmp, 0);
3096     CPU (h_nbit) = opval;
3097     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
3098   }
3099   {
3100     BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
3101     CPU (h_zbit) = opval;
3102     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
3103   }
3104 SET_H_CBIT_MOVE (0);
3105 SET_H_VBIT_MOVE (0);
3106 {
3107   {
3108     BI opval = 0;
3109     CPU (h_xbit) = opval;
3110     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3111   }
3112   {
3113     BI opval = 0;
3114     SET_H_INSN_PREFIXED_P (opval);
3115     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3116   }
3117 }
3118 }
3119 }
3120
3121   abuf->written = written;
3122 #undef FLD
3123 }
3124   NEXT (vpc);
3125
3126   CASE (sem, INSN_MOVE_R_SPRV10) : /* move ${Rs},${Pd} */
3127 {
3128   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3129   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3130 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3131   int UNUSED written = 0;
3132   IADDR UNUSED pc = abuf->addr;
3133   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3134
3135 {
3136   SI tmp_tmp;
3137   SI tmp_rno;
3138   tmp_tmp = GET_H_GR (FLD (f_operand1));
3139   tmp_rno = FLD (f_operand2);
3140 if (ORIF (ORIF (EQSI (tmp_rno, 0), EQSI (tmp_rno, 1)), ORIF (EQSI (tmp_rno, 4), EQSI (tmp_rno, 8)))) {
3141 cgen_rtx_error (current_cpu, "move-r-spr: trying to set a read-only special register");
3142 }
3143  else {
3144   {
3145     SI opval = tmp_tmp;
3146     SET_H_SR (FLD (f_operand2), opval);
3147     written |= (1 << 2);
3148     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3149   }
3150 }
3151 {
3152   {
3153     BI opval = 0;
3154     CPU (h_xbit) = opval;
3155     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3156   }
3157   {
3158     BI opval = 0;
3159     SET_H_INSN_PREFIXED_P (opval);
3160     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3161   }
3162 }
3163 }
3164
3165   abuf->written = written;
3166 #undef FLD
3167 }
3168   NEXT (vpc);
3169
3170   CASE (sem, INSN_MOVE_SPR_RV10) : /* move ${Ps},${Rd-sfield} */
3171 {
3172   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3173   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3174 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3175   int UNUSED written = 0;
3176   IADDR UNUSED pc = abuf->addr;
3177   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3178
3179 {
3180   SI tmp_grno;
3181   SI tmp_prno;
3182   SI tmp_newval;
3183   tmp_prno = FLD (f_operand2);
3184   tmp_newval = GET_H_SR (FLD (f_operand2));
3185 if (EQSI (tmp_prno, 5)) {
3186 {
3187   SI tmp_oldregval;
3188   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3189   {
3190     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
3191     SET_H_GR (FLD (f_operand1), opval);
3192     written |= (1 << 4);
3193     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3194   }
3195 }
3196 }
3197  else if (EQSI (tmp_prno, 9)) {
3198   {
3199     SI opval = tmp_newval;
3200     SET_H_GR (FLD (f_operand1), opval);
3201     written |= (1 << 4);
3202     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3203   }
3204 }
3205  else if (EQSI (tmp_prno, 10)) {
3206   {
3207     SI opval = tmp_newval;
3208     SET_H_GR (FLD (f_operand1), opval);
3209     written |= (1 << 4);
3210     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3211   }
3212 }
3213  else if (EQSI (tmp_prno, 11)) {
3214   {
3215     SI opval = tmp_newval;
3216     SET_H_GR (FLD (f_operand1), opval);
3217     written |= (1 << 4);
3218     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3219   }
3220 }
3221  else if (EQSI (tmp_prno, 12)) {
3222   {
3223     SI opval = tmp_newval;
3224     SET_H_GR (FLD (f_operand1), opval);
3225     written |= (1 << 4);
3226     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3227   }
3228 }
3229  else if (EQSI (tmp_prno, 13)) {
3230   {
3231     SI opval = tmp_newval;
3232     SET_H_GR (FLD (f_operand1), opval);
3233     written |= (1 << 4);
3234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3235   }
3236 }
3237  else if (EQSI (tmp_prno, 0)) {
3238 {
3239   SI tmp_oldregval;
3240   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3241   {
3242     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3243     SET_H_GR (FLD (f_operand1), opval);
3244     written |= (1 << 4);
3245     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3246   }
3247 }
3248 }
3249  else if (EQSI (tmp_prno, 1)) {
3250 {
3251   SI tmp_oldregval;
3252   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3253   {
3254     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3255     SET_H_GR (FLD (f_operand1), opval);
3256     written |= (1 << 4);
3257     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3258   }
3259 }
3260 }
3261  else if (EQSI (tmp_prno, 4)) {
3262 {
3263   SI tmp_oldregval;
3264   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3265   {
3266     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
3267     SET_H_GR (FLD (f_operand1), opval);
3268     written |= (1 << 4);
3269     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3270   }
3271 }
3272 }
3273  else if (EQSI (tmp_prno, 8)) {
3274   {
3275     SI opval = tmp_newval;
3276     SET_H_GR (FLD (f_operand1), opval);
3277     written |= (1 << 4);
3278     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3279   }
3280 }
3281  else if (EQSI (tmp_prno, 7)) {
3282   {
3283     SI opval = tmp_newval;
3284     SET_H_GR (FLD (f_operand1), opval);
3285     written |= (1 << 4);
3286     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3287   }
3288 }
3289  else if (EQSI (tmp_prno, 14)) {
3290   {
3291     SI opval = tmp_newval;
3292     SET_H_GR (FLD (f_operand1), opval);
3293     written |= (1 << 4);
3294     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3295   }
3296 }
3297  else if (EQSI (tmp_prno, 15)) {
3298   {
3299     SI opval = tmp_newval;
3300     SET_H_GR (FLD (f_operand1), opval);
3301     written |= (1 << 4);
3302     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3303   }
3304 }
3305  else {
3306 cgen_rtx_error (current_cpu, "move-spr-r from unimplemented register");
3307 }
3308 {
3309   {
3310     BI opval = 0;
3311     CPU (h_xbit) = opval;
3312     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3313   }
3314   {
3315     BI opval = 0;
3316     SET_H_INSN_PREFIXED_P (opval);
3317     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3318   }
3319 }
3320 }
3321
3322   abuf->written = written;
3323 #undef FLD
3324 }
3325   NEXT (vpc);
3326
3327   CASE (sem, INSN_RET_TYPE) : /* ret/reti/retb */
3328 {
3329   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3330   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3331 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3332   int UNUSED written = 0;
3333   IADDR UNUSED pc = abuf->addr;
3334   SEM_BRANCH_INIT
3335   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3336
3337 {
3338   SI tmp_retaddr;
3339   tmp_retaddr = GET_H_SR (FLD (f_operand2));
3340 {
3341   {
3342     BI opval = 0;
3343     CPU (h_xbit) = opval;
3344     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3345   }
3346   {
3347     BI opval = 0;
3348     SET_H_INSN_PREFIXED_P (opval);
3349     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3350   }
3351 }
3352 {
3353   {
3354     USI opval = tmp_retaddr;
3355     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
3356     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
3357   }
3358 }
3359 }
3360
3361   SEM_BRANCH_FINI (vpc);
3362 #undef FLD
3363 }
3364   NEXT (vpc);
3365
3366   CASE (sem, INSN_MOVE_M_SPRV10) : /* move [${Rs}${inc}],${Pd} */
3367 {
3368   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3369   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3370 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3371   int UNUSED written = 0;
3372   IADDR UNUSED pc = abuf->addr;
3373   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3374
3375 {
3376   SI tmp_rno;
3377   SI tmp_newval;
3378   tmp_rno = FLD (f_operand2);
3379 if (EQSI (tmp_rno, 5)) {
3380   tmp_newval = EXTHISI (({   SI tmp_addr;
3381   HI tmp_tmp_mem;
3382   BI tmp_postinc;
3383   tmp_postinc = FLD (f_memmode);
3384 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3385 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
3386 ; if (NEBI (tmp_postinc, 0)) {
3387 {
3388 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3389   tmp_addr = ADDSI (tmp_addr, 2);
3390 }
3391   {
3392     SI opval = tmp_addr;
3393     SET_H_GR (FLD (f_operand1), opval);
3394     written |= (1 << 8);
3395     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3396   }
3397 }
3398 }
3399 ; tmp_tmp_mem; }));
3400 }
3401  else if (EQSI (tmp_rno, 9)) {
3402   tmp_newval = ({   SI tmp_addr;
3403   SI tmp_tmp_mem;
3404   BI tmp_postinc;
3405   tmp_postinc = FLD (f_memmode);
3406 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3407 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3408 ; if (NEBI (tmp_postinc, 0)) {
3409 {
3410 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3411   tmp_addr = ADDSI (tmp_addr, 4);
3412 }
3413   {
3414     SI opval = tmp_addr;
3415     SET_H_GR (FLD (f_operand1), opval);
3416     written |= (1 << 8);
3417     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3418   }
3419 }
3420 }
3421 ; tmp_tmp_mem; });
3422 }
3423  else if (EQSI (tmp_rno, 10)) {
3424   tmp_newval = ({   SI tmp_addr;
3425   SI tmp_tmp_mem;
3426   BI tmp_postinc;
3427   tmp_postinc = FLD (f_memmode);
3428 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3429 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3430 ; if (NEBI (tmp_postinc, 0)) {
3431 {
3432 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3433   tmp_addr = ADDSI (tmp_addr, 4);
3434 }
3435   {
3436     SI opval = tmp_addr;
3437     SET_H_GR (FLD (f_operand1), opval);
3438     written |= (1 << 8);
3439     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3440   }
3441 }
3442 }
3443 ; tmp_tmp_mem; });
3444 }
3445  else if (EQSI (tmp_rno, 11)) {
3446   tmp_newval = ({   SI tmp_addr;
3447   SI tmp_tmp_mem;
3448   BI tmp_postinc;
3449   tmp_postinc = FLD (f_memmode);
3450 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3451 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3452 ; if (NEBI (tmp_postinc, 0)) {
3453 {
3454 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3455   tmp_addr = ADDSI (tmp_addr, 4);
3456 }
3457   {
3458     SI opval = tmp_addr;
3459     SET_H_GR (FLD (f_operand1), opval);
3460     written |= (1 << 8);
3461     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3462   }
3463 }
3464 }
3465 ; tmp_tmp_mem; });
3466 }
3467  else if (EQSI (tmp_rno, 12)) {
3468   tmp_newval = ({   SI tmp_addr;
3469   SI tmp_tmp_mem;
3470   BI tmp_postinc;
3471   tmp_postinc = FLD (f_memmode);
3472 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3473 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3474 ; if (NEBI (tmp_postinc, 0)) {
3475 {
3476 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3477   tmp_addr = ADDSI (tmp_addr, 4);
3478 }
3479   {
3480     SI opval = tmp_addr;
3481     SET_H_GR (FLD (f_operand1), opval);
3482     written |= (1 << 8);
3483     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3484   }
3485 }
3486 }
3487 ; tmp_tmp_mem; });
3488 }
3489  else if (EQSI (tmp_rno, 13)) {
3490   tmp_newval = ({   SI tmp_addr;
3491   SI tmp_tmp_mem;
3492   BI tmp_postinc;
3493   tmp_postinc = FLD (f_memmode);
3494 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3495 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3496 ; if (NEBI (tmp_postinc, 0)) {
3497 {
3498 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3499   tmp_addr = ADDSI (tmp_addr, 4);
3500 }
3501   {
3502     SI opval = tmp_addr;
3503     SET_H_GR (FLD (f_operand1), opval);
3504     written |= (1 << 8);
3505     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3506   }
3507 }
3508 }
3509 ; tmp_tmp_mem; });
3510 }
3511  else if (EQSI (tmp_rno, 7)) {
3512   tmp_newval = ({   SI tmp_addr;
3513   SI tmp_tmp_mem;
3514   BI tmp_postinc;
3515   tmp_postinc = FLD (f_memmode);
3516 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3517 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3518 ; if (NEBI (tmp_postinc, 0)) {
3519 {
3520 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3521   tmp_addr = ADDSI (tmp_addr, 4);
3522 }
3523   {
3524     SI opval = tmp_addr;
3525     SET_H_GR (FLD (f_operand1), opval);
3526     written |= (1 << 8);
3527     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3528   }
3529 }
3530 }
3531 ; tmp_tmp_mem; });
3532 }
3533  else if (EQSI (tmp_rno, 14)) {
3534   tmp_newval = ({   SI tmp_addr;
3535   SI tmp_tmp_mem;
3536   BI tmp_postinc;
3537   tmp_postinc = FLD (f_memmode);
3538 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3539 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3540 ; if (NEBI (tmp_postinc, 0)) {
3541 {
3542 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3543   tmp_addr = ADDSI (tmp_addr, 4);
3544 }
3545   {
3546     SI opval = tmp_addr;
3547     SET_H_GR (FLD (f_operand1), opval);
3548     written |= (1 << 8);
3549     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3550   }
3551 }
3552 }
3553 ; tmp_tmp_mem; });
3554 }
3555  else if (EQSI (tmp_rno, 15)) {
3556   tmp_newval = ({   SI tmp_addr;
3557   SI tmp_tmp_mem;
3558   BI tmp_postinc;
3559   tmp_postinc = FLD (f_memmode);
3560 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3561 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3562 ; if (NEBI (tmp_postinc, 0)) {
3563 {
3564 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3565   tmp_addr = ADDSI (tmp_addr, 4);
3566 }
3567   {
3568     SI opval = tmp_addr;
3569     SET_H_GR (FLD (f_operand1), opval);
3570     written |= (1 << 8);
3571     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3572   }
3573 }
3574 }
3575 ; tmp_tmp_mem; });
3576 }
3577  else {
3578 cgen_rtx_error (current_cpu, "Trying to set unimplemented special register");
3579 }
3580   {
3581     SI opval = tmp_newval;
3582     SET_H_SR (FLD (f_operand2), opval);
3583     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3584   }
3585 {
3586   {
3587     BI opval = 0;
3588     CPU (h_xbit) = opval;
3589     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3590   }
3591   {
3592     BI opval = 0;
3593     SET_H_INSN_PREFIXED_P (opval);
3594     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3595   }
3596 }
3597 }
3598
3599   abuf->written = written;
3600 #undef FLD
3601 }
3602   NEXT (vpc);
3603
3604   CASE (sem, INSN_MOVE_C_SPRV10_P5) : /* move ${sconst16},${Pd} */
3605 {
3606   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3607   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3608 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
3609   int UNUSED written = 0;
3610   IADDR UNUSED pc = abuf->addr;
3611   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3612
3613 {
3614   {
3615     SI opval = FLD (f_indir_pc__word);
3616     SET_H_SR (FLD (f_operand2), opval);
3617     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3618   }
3619 {
3620   {
3621     BI opval = 0;
3622     CPU (h_xbit) = opval;
3623     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3624   }
3625   {
3626     BI opval = 0;
3627     SET_H_INSN_PREFIXED_P (opval);
3628     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3629   }
3630 }
3631 }
3632
3633 #undef FLD
3634 }
3635   NEXT (vpc);
3636
3637   CASE (sem, INSN_MOVE_C_SPRV10_P9) : /* move ${const32},${Pd} */
3638 {
3639   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3640   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3641 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3642   int UNUSED written = 0;
3643   IADDR UNUSED pc = abuf->addr;
3644   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3645
3646 {
3647   {
3648     SI opval = FLD (f_indir_pc__dword);
3649     SET_H_SR (FLD (f_operand2), opval);
3650     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3651   }
3652 {
3653   {
3654     BI opval = 0;
3655     CPU (h_xbit) = opval;
3656     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3657   }
3658   {
3659     BI opval = 0;
3660     SET_H_INSN_PREFIXED_P (opval);
3661     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3662   }
3663 }
3664 }
3665
3666 #undef FLD
3667 }
3668   NEXT (vpc);
3669
3670   CASE (sem, INSN_MOVE_C_SPRV10_P10) : /* move ${const32},${Pd} */
3671 {
3672   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3673   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3674 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3675   int UNUSED written = 0;
3676   IADDR UNUSED pc = abuf->addr;
3677   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3678
3679 {
3680   {
3681     SI opval = FLD (f_indir_pc__dword);
3682     SET_H_SR (FLD (f_operand2), opval);
3683     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3684   }
3685 {
3686   {
3687     BI opval = 0;
3688     CPU (h_xbit) = opval;
3689     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3690   }
3691   {
3692     BI opval = 0;
3693     SET_H_INSN_PREFIXED_P (opval);
3694     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3695   }
3696 }
3697 }
3698
3699 #undef FLD
3700 }
3701   NEXT (vpc);
3702
3703   CASE (sem, INSN_MOVE_C_SPRV10_P11) : /* move ${const32},${Pd} */
3704 {
3705   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3706   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3707 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3708   int UNUSED written = 0;
3709   IADDR UNUSED pc = abuf->addr;
3710   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3711
3712 {
3713   {
3714     SI opval = FLD (f_indir_pc__dword);
3715     SET_H_SR (FLD (f_operand2), opval);
3716     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3717   }
3718 {
3719   {
3720     BI opval = 0;
3721     CPU (h_xbit) = opval;
3722     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3723   }
3724   {
3725     BI opval = 0;
3726     SET_H_INSN_PREFIXED_P (opval);
3727     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3728   }
3729 }
3730 }
3731
3732 #undef FLD
3733 }
3734   NEXT (vpc);
3735
3736   CASE (sem, INSN_MOVE_C_SPRV10_P12) : /* move ${const32},${Pd} */
3737 {
3738   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3740 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3741   int UNUSED written = 0;
3742   IADDR UNUSED pc = abuf->addr;
3743   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3744
3745 {
3746   {
3747     SI opval = FLD (f_indir_pc__dword);
3748     SET_H_SR (FLD (f_operand2), opval);
3749     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3750   }
3751 {
3752   {
3753     BI opval = 0;
3754     CPU (h_xbit) = opval;
3755     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3756   }
3757   {
3758     BI opval = 0;
3759     SET_H_INSN_PREFIXED_P (opval);
3760     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3761   }
3762 }
3763 }
3764
3765 #undef FLD
3766 }
3767   NEXT (vpc);
3768
3769   CASE (sem, INSN_MOVE_C_SPRV10_P13) : /* move ${const32},${Pd} */
3770 {
3771   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3772   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3773 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3774   int UNUSED written = 0;
3775   IADDR UNUSED pc = abuf->addr;
3776   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3777
3778 {
3779   {
3780     SI opval = FLD (f_indir_pc__dword);
3781     SET_H_SR (FLD (f_operand2), opval);
3782     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3783   }
3784 {
3785   {
3786     BI opval = 0;
3787     CPU (h_xbit) = opval;
3788     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3789   }
3790   {
3791     BI opval = 0;
3792     SET_H_INSN_PREFIXED_P (opval);
3793     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3794   }
3795 }
3796 }
3797
3798 #undef FLD
3799 }
3800   NEXT (vpc);
3801
3802   CASE (sem, INSN_MOVE_C_SPRV10_P7) : /* move ${const32},${Pd} */
3803 {
3804   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3805   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3806 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3807   int UNUSED written = 0;
3808   IADDR UNUSED pc = abuf->addr;
3809   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3810
3811 {
3812   {
3813     SI opval = FLD (f_indir_pc__dword);
3814     SET_H_SR (FLD (f_operand2), opval);
3815     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3816   }
3817 {
3818   {
3819     BI opval = 0;
3820     CPU (h_xbit) = opval;
3821     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3822   }
3823   {
3824     BI opval = 0;
3825     SET_H_INSN_PREFIXED_P (opval);
3826     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3827   }
3828 }
3829 }
3830
3831 #undef FLD
3832 }
3833   NEXT (vpc);
3834
3835   CASE (sem, INSN_MOVE_C_SPRV10_P14) : /* move ${const32},${Pd} */
3836 {
3837   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3838   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3839 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3840   int UNUSED written = 0;
3841   IADDR UNUSED pc = abuf->addr;
3842   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3843
3844 {
3845   {
3846     SI opval = FLD (f_indir_pc__dword);
3847     SET_H_SR (FLD (f_operand2), opval);
3848     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3849   }
3850 {
3851   {
3852     BI opval = 0;
3853     CPU (h_xbit) = opval;
3854     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3855   }
3856   {
3857     BI opval = 0;
3858     SET_H_INSN_PREFIXED_P (opval);
3859     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3860   }
3861 }
3862 }
3863
3864 #undef FLD
3865 }
3866   NEXT (vpc);
3867
3868   CASE (sem, INSN_MOVE_C_SPRV10_P15) : /* move ${const32},${Pd} */
3869 {
3870   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3871   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3872 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3873   int UNUSED written = 0;
3874   IADDR UNUSED pc = abuf->addr;
3875   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3876
3877 {
3878   {
3879     SI opval = FLD (f_indir_pc__dword);
3880     SET_H_SR (FLD (f_operand2), opval);
3881     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3882   }
3883 {
3884   {
3885     BI opval = 0;
3886     CPU (h_xbit) = opval;
3887     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3888   }
3889   {
3890     BI opval = 0;
3891     SET_H_INSN_PREFIXED_P (opval);
3892     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3893   }
3894 }
3895 }
3896
3897 #undef FLD
3898 }
3899   NEXT (vpc);
3900
3901   CASE (sem, INSN_MOVE_SPR_MV10) : /* move ${Ps},[${Rd-sfield}${inc}] */
3902 {
3903   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3904   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3905 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3906   int UNUSED written = 0;
3907   IADDR UNUSED pc = abuf->addr;
3908   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3909
3910 {
3911   SI tmp_rno;
3912   tmp_rno = FLD (f_operand2);
3913 if (EQSI (tmp_rno, 5)) {
3914 {
3915   SI tmp_addr;
3916   BI tmp_postinc;
3917   tmp_postinc = FLD (f_memmode);
3918   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3919 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
3920 if (EQBI (CPU (h_pbit), 0)) {
3921 {
3922   {
3923     HI opval = GET_H_SR (FLD (f_operand2));
3924     SETMEMHI (current_cpu, pc, tmp_addr, opval);
3925     written |= (1 << 11);
3926     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
3927   }
3928   {
3929     BI opval = CPU (h_pbit);
3930     CPU (h_cbit) = opval;
3931     written |= (1 << 10);
3932     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3933   }
3934 }
3935 } else {
3936   {
3937     BI opval = 1;
3938     CPU (h_cbit) = opval;
3939     written |= (1 << 10);
3940     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3941   }
3942 }
3943 } else {
3944   {
3945     HI opval = GET_H_SR (FLD (f_operand2));
3946     SETMEMHI (current_cpu, pc, tmp_addr, opval);
3947     written |= (1 << 11);
3948     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
3949   }
3950 }
3951 if (NEBI (tmp_postinc, 0)) {
3952 {
3953 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3954   tmp_addr = ADDSI (tmp_addr, 2);
3955 }
3956   {
3957     SI opval = tmp_addr;
3958     SET_H_GR (FLD (f_operand1), opval);
3959     written |= (1 << 9);
3960     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3961   }
3962 }
3963 }
3964 }
3965 }
3966  else if (EQSI (tmp_rno, 9)) {
3967 {
3968   SI tmp_addr;
3969   BI tmp_postinc;
3970   tmp_postinc = FLD (f_memmode);
3971   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3972 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
3973 if (EQBI (CPU (h_pbit), 0)) {
3974 {
3975   {
3976     SI opval = GET_H_SR (FLD (f_operand2));
3977     SETMEMSI (current_cpu, pc, tmp_addr, opval);
3978     written |= (1 << 13);
3979     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
3980   }
3981   {
3982     BI opval = CPU (h_pbit);
3983     CPU (h_cbit) = opval;
3984     written |= (1 << 10);
3985     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3986   }
3987 }
3988 } else {
3989   {
3990     BI opval = 1;
3991     CPU (h_cbit) = opval;
3992     written |= (1 << 10);
3993     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3994   }
3995 }
3996 } else {
3997   {
3998     SI opval = GET_H_SR (FLD (f_operand2));
3999     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4000     written |= (1 << 13);
4001     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4002   }
4003 }
4004 if (NEBI (tmp_postinc, 0)) {
4005 {
4006 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4007   tmp_addr = ADDSI (tmp_addr, 4);
4008 }
4009   {
4010     SI opval = tmp_addr;
4011     SET_H_GR (FLD (f_operand1), opval);
4012     written |= (1 << 9);
4013     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4014   }
4015 }
4016 }
4017 }
4018 }
4019  else if (EQSI (tmp_rno, 10)) {
4020 {
4021   SI tmp_addr;
4022   BI tmp_postinc;
4023   tmp_postinc = FLD (f_memmode);
4024   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4025 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4026 if (EQBI (CPU (h_pbit), 0)) {
4027 {
4028   {
4029     SI opval = GET_H_SR (FLD (f_operand2));
4030     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4031     written |= (1 << 13);
4032     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4033   }
4034   {
4035     BI opval = CPU (h_pbit);
4036     CPU (h_cbit) = opval;
4037     written |= (1 << 10);
4038     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4039   }
4040 }
4041 } else {
4042   {
4043     BI opval = 1;
4044     CPU (h_cbit) = opval;
4045     written |= (1 << 10);
4046     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4047   }
4048 }
4049 } else {
4050   {
4051     SI opval = GET_H_SR (FLD (f_operand2));
4052     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4053     written |= (1 << 13);
4054     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4055   }
4056 }
4057 if (NEBI (tmp_postinc, 0)) {
4058 {
4059 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4060   tmp_addr = ADDSI (tmp_addr, 4);
4061 }
4062   {
4063     SI opval = tmp_addr;
4064     SET_H_GR (FLD (f_operand1), opval);
4065     written |= (1 << 9);
4066     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4067   }
4068 }
4069 }
4070 }
4071 }
4072  else if (EQSI (tmp_rno, 11)) {
4073 {
4074   SI tmp_addr;
4075   BI tmp_postinc;
4076   tmp_postinc = FLD (f_memmode);
4077   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4078 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4079 if (EQBI (CPU (h_pbit), 0)) {
4080 {
4081   {
4082     SI opval = GET_H_SR (FLD (f_operand2));
4083     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4084     written |= (1 << 13);
4085     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4086   }
4087   {
4088     BI opval = CPU (h_pbit);
4089     CPU (h_cbit) = opval;
4090     written |= (1 << 10);
4091     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4092   }
4093 }
4094 } else {
4095   {
4096     BI opval = 1;
4097     CPU (h_cbit) = opval;
4098     written |= (1 << 10);
4099     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4100   }
4101 }
4102 } else {
4103   {
4104     SI opval = GET_H_SR (FLD (f_operand2));
4105     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4106     written |= (1 << 13);
4107     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4108   }
4109 }
4110 if (NEBI (tmp_postinc, 0)) {
4111 {
4112 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4113   tmp_addr = ADDSI (tmp_addr, 4);
4114 }
4115   {
4116     SI opval = tmp_addr;
4117     SET_H_GR (FLD (f_operand1), opval);
4118     written |= (1 << 9);
4119     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4120   }
4121 }
4122 }
4123 }
4124 }
4125  else if (EQSI (tmp_rno, 12)) {
4126 {
4127   SI tmp_addr;
4128   BI tmp_postinc;
4129   tmp_postinc = FLD (f_memmode);
4130   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4131 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4132 if (EQBI (CPU (h_pbit), 0)) {
4133 {
4134   {
4135     SI opval = GET_H_SR (FLD (f_operand2));
4136     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4137     written |= (1 << 13);
4138     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4139   }
4140   {
4141     BI opval = CPU (h_pbit);
4142     CPU (h_cbit) = opval;
4143     written |= (1 << 10);
4144     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4145   }
4146 }
4147 } else {
4148   {
4149     BI opval = 1;
4150     CPU (h_cbit) = opval;
4151     written |= (1 << 10);
4152     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4153   }
4154 }
4155 } else {
4156   {
4157     SI opval = GET_H_SR (FLD (f_operand2));
4158     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4159     written |= (1 << 13);
4160     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4161   }
4162 }
4163 if (NEBI (tmp_postinc, 0)) {
4164 {
4165 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4166   tmp_addr = ADDSI (tmp_addr, 4);
4167 }
4168   {
4169     SI opval = tmp_addr;
4170     SET_H_GR (FLD (f_operand1), opval);
4171     written |= (1 << 9);
4172     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4173   }
4174 }
4175 }
4176 }
4177 }
4178  else if (EQSI (tmp_rno, 13)) {
4179 {
4180   SI tmp_addr;
4181   BI tmp_postinc;
4182   tmp_postinc = FLD (f_memmode);
4183   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4184 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4185 if (EQBI (CPU (h_pbit), 0)) {
4186 {
4187   {
4188     SI opval = GET_H_SR (FLD (f_operand2));
4189     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4190     written |= (1 << 13);
4191     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4192   }
4193   {
4194     BI opval = CPU (h_pbit);
4195     CPU (h_cbit) = opval;
4196     written |= (1 << 10);
4197     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4198   }
4199 }
4200 } else {
4201   {
4202     BI opval = 1;
4203     CPU (h_cbit) = opval;
4204     written |= (1 << 10);
4205     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4206   }
4207 }
4208 } else {
4209   {
4210     SI opval = GET_H_SR (FLD (f_operand2));
4211     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4212     written |= (1 << 13);
4213     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4214   }
4215 }
4216 if (NEBI (tmp_postinc, 0)) {
4217 {
4218 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4219   tmp_addr = ADDSI (tmp_addr, 4);
4220 }
4221   {
4222     SI opval = tmp_addr;
4223     SET_H_GR (FLD (f_operand1), opval);
4224     written |= (1 << 9);
4225     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4226   }
4227 }
4228 }
4229 }
4230 }
4231  else if (EQSI (tmp_rno, 0)) {
4232 {
4233   SI tmp_addr;
4234   BI tmp_postinc;
4235   tmp_postinc = FLD (f_memmode);
4236   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4237 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4238 if (EQBI (CPU (h_pbit), 0)) {
4239 {
4240   {
4241     QI opval = GET_H_SR (FLD (f_operand2));
4242     SETMEMQI (current_cpu, pc, tmp_addr, opval);
4243     written |= (1 << 12);
4244     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4245   }
4246   {
4247     BI opval = CPU (h_pbit);
4248     CPU (h_cbit) = opval;
4249     written |= (1 << 10);
4250     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4251   }
4252 }
4253 } else {
4254   {
4255     BI opval = 1;
4256     CPU (h_cbit) = opval;
4257     written |= (1 << 10);
4258     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4259   }
4260 }
4261 } else {
4262   {
4263     QI opval = GET_H_SR (FLD (f_operand2));
4264     SETMEMQI (current_cpu, pc, tmp_addr, opval);
4265     written |= (1 << 12);
4266     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4267   }
4268 }
4269 if (NEBI (tmp_postinc, 0)) {
4270 {
4271 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4272   tmp_addr = ADDSI (tmp_addr, 1);
4273 }
4274   {
4275     SI opval = tmp_addr;
4276     SET_H_GR (FLD (f_operand1), opval);
4277     written |= (1 << 9);
4278     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4279   }
4280 }
4281 }
4282 }
4283 }
4284  else if (EQSI (tmp_rno, 1)) {
4285 {
4286   SI tmp_addr;
4287   BI tmp_postinc;
4288   tmp_postinc = FLD (f_memmode);
4289   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4290 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4291 if (EQBI (CPU (h_pbit), 0)) {
4292 {
4293   {
4294     QI opval = GET_H_SR (FLD (f_operand2));
4295     SETMEMQI (current_cpu, pc, tmp_addr, opval);
4296     written |= (1 << 12);
4297     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4298   }
4299   {
4300     BI opval = CPU (h_pbit);
4301     CPU (h_cbit) = opval;
4302     written |= (1 << 10);
4303     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4304   }
4305 }
4306 } else {
4307   {
4308     BI opval = 1;
4309     CPU (h_cbit) = opval;
4310     written |= (1 << 10);
4311     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4312   }
4313 }
4314 } else {
4315   {
4316     QI opval = GET_H_SR (FLD (f_operand2));
4317     SETMEMQI (current_cpu, pc, tmp_addr, opval);
4318     written |= (1 << 12);
4319     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4320   }
4321 }
4322 if (NEBI (tmp_postinc, 0)) {
4323 {
4324 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4325   tmp_addr = ADDSI (tmp_addr, 1);
4326 }
4327   {
4328     SI opval = tmp_addr;
4329     SET_H_GR (FLD (f_operand1), opval);
4330     written |= (1 << 9);
4331     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4332   }
4333 }
4334 }
4335 }
4336 }
4337  else if (EQSI (tmp_rno, 4)) {
4338 {
4339   SI tmp_addr;
4340   BI tmp_postinc;
4341   tmp_postinc = FLD (f_memmode);
4342   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4343 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4344 if (EQBI (CPU (h_pbit), 0)) {
4345 {
4346   {
4347     HI opval = GET_H_SR (FLD (f_operand2));
4348     SETMEMHI (current_cpu, pc, tmp_addr, opval);
4349     written |= (1 << 11);
4350     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4351   }
4352   {
4353     BI opval = CPU (h_pbit);
4354     CPU (h_cbit) = opval;
4355     written |= (1 << 10);
4356     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4357   }
4358 }
4359 } else {
4360   {
4361     BI opval = 1;
4362     CPU (h_cbit) = opval;
4363     written |= (1 << 10);
4364     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4365   }
4366 }
4367 } else {
4368   {
4369     HI opval = GET_H_SR (FLD (f_operand2));
4370     SETMEMHI (current_cpu, pc, tmp_addr, opval);
4371     written |= (1 << 11);
4372     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4373   }
4374 }
4375 if (NEBI (tmp_postinc, 0)) {
4376 {
4377 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4378   tmp_addr = ADDSI (tmp_addr, 2);
4379 }
4380   {
4381     SI opval = tmp_addr;
4382     SET_H_GR (FLD (f_operand1), opval);
4383     written |= (1 << 9);
4384     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4385   }
4386 }
4387 }
4388 }
4389 }
4390  else if (EQSI (tmp_rno, 8)) {
4391 {
4392   SI tmp_addr;
4393   BI tmp_postinc;
4394   tmp_postinc = FLD (f_memmode);
4395   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4396 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4397 if (EQBI (CPU (h_pbit), 0)) {
4398 {
4399   {
4400     SI opval = GET_H_SR (FLD (f_operand2));
4401     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4402     written |= (1 << 13);
4403     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4404   }
4405   {
4406     BI opval = CPU (h_pbit);
4407     CPU (h_cbit) = opval;
4408     written |= (1 << 10);
4409     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4410   }
4411 }
4412 } else {
4413   {
4414     BI opval = 1;
4415     CPU (h_cbit) = opval;
4416     written |= (1 << 10);
4417     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4418   }
4419 }
4420 } else {
4421   {
4422     SI opval = GET_H_SR (FLD (f_operand2));
4423     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4424     written |= (1 << 13);
4425     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4426   }
4427 }
4428 if (NEBI (tmp_postinc, 0)) {
4429 {
4430 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4431   tmp_addr = ADDSI (tmp_addr, 4);
4432 }
4433   {
4434     SI opval = tmp_addr;
4435     SET_H_GR (FLD (f_operand1), opval);
4436     written |= (1 << 9);
4437     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4438   }
4439 }
4440 }
4441 }
4442 }
4443  else if (EQSI (tmp_rno, 7)) {
4444 {
4445   SI tmp_addr;
4446   BI tmp_postinc;
4447   tmp_postinc = FLD (f_memmode);
4448   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4449 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4450 if (EQBI (CPU (h_pbit), 0)) {
4451 {
4452   {
4453     SI opval = GET_H_SR (FLD (f_operand2));
4454     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4455     written |= (1 << 13);
4456     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4457   }
4458   {
4459     BI opval = CPU (h_pbit);
4460     CPU (h_cbit) = opval;
4461     written |= (1 << 10);
4462     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4463   }
4464 }
4465 } else {
4466   {
4467     BI opval = 1;
4468     CPU (h_cbit) = opval;
4469     written |= (1 << 10);
4470     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4471   }
4472 }
4473 } else {
4474   {
4475     SI opval = GET_H_SR (FLD (f_operand2));
4476     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4477     written |= (1 << 13);
4478     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4479   }
4480 }
4481 if (NEBI (tmp_postinc, 0)) {
4482 {
4483 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4484   tmp_addr = ADDSI (tmp_addr, 4);
4485 }
4486   {
4487     SI opval = tmp_addr;
4488     SET_H_GR (FLD (f_operand1), opval);
4489     written |= (1 << 9);
4490     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4491   }
4492 }
4493 }
4494 }
4495 }
4496  else if (EQSI (tmp_rno, 14)) {
4497 {
4498   SI tmp_addr;
4499   BI tmp_postinc;
4500   tmp_postinc = FLD (f_memmode);
4501   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4502 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4503 if (EQBI (CPU (h_pbit), 0)) {
4504 {
4505   {
4506     SI opval = GET_H_SR (FLD (f_operand2));
4507     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4508     written |= (1 << 13);
4509     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4510   }
4511   {
4512     BI opval = CPU (h_pbit);
4513     CPU (h_cbit) = opval;
4514     written |= (1 << 10);
4515     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4516   }
4517 }
4518 } else {
4519   {
4520     BI opval = 1;
4521     CPU (h_cbit) = opval;
4522     written |= (1 << 10);
4523     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4524   }
4525 }
4526 } else {
4527   {
4528     SI opval = GET_H_SR (FLD (f_operand2));
4529     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4530     written |= (1 << 13);
4531     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4532   }
4533 }
4534 if (NEBI (tmp_postinc, 0)) {
4535 {
4536 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4537   tmp_addr = ADDSI (tmp_addr, 4);
4538 }
4539   {
4540     SI opval = tmp_addr;
4541     SET_H_GR (FLD (f_operand1), opval);
4542     written |= (1 << 9);
4543     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4544   }
4545 }
4546 }
4547 }
4548 }
4549  else if (EQSI (tmp_rno, 15)) {
4550 {
4551   SI tmp_addr;
4552   BI tmp_postinc;
4553   tmp_postinc = FLD (f_memmode);
4554   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4555 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4556 if (EQBI (CPU (h_pbit), 0)) {
4557 {
4558   {
4559     SI opval = GET_H_SR (FLD (f_operand2));
4560     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4561     written |= (1 << 13);
4562     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4563   }
4564   {
4565     BI opval = CPU (h_pbit);
4566     CPU (h_cbit) = opval;
4567     written |= (1 << 10);
4568     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4569   }
4570 }
4571 } else {
4572   {
4573     BI opval = 1;
4574     CPU (h_cbit) = opval;
4575     written |= (1 << 10);
4576     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4577   }
4578 }
4579 } else {
4580   {
4581     SI opval = GET_H_SR (FLD (f_operand2));
4582     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4583     written |= (1 << 13);
4584     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4585   }
4586 }
4587 if (NEBI (tmp_postinc, 0)) {
4588 {
4589 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4590   tmp_addr = ADDSI (tmp_addr, 4);
4591 }
4592   {
4593     SI opval = tmp_addr;
4594     SET_H_GR (FLD (f_operand1), opval);
4595     written |= (1 << 9);
4596     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4597   }
4598 }
4599 }
4600 }
4601 }
4602  else {
4603 cgen_rtx_error (current_cpu, "write from unimplemented special register");
4604 }
4605 {
4606   {
4607     BI opval = 0;
4608     CPU (h_xbit) = opval;
4609     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4610   }
4611   {
4612     BI opval = 0;
4613     SET_H_INSN_PREFIXED_P (opval);
4614     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4615   }
4616 }
4617 }
4618
4619   abuf->written = written;
4620 #undef FLD
4621 }
4622   NEXT (vpc);
4623
4624   CASE (sem, INSN_SBFS) : /* sbfs [${Rd-sfield}${inc}] */
4625 {
4626   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4627   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4628 #define FLD(f) abuf->fields.fmt_empty.f
4629   int UNUSED written = 0;
4630   IADDR UNUSED pc = abuf->addr;
4631   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4632
4633 cgen_rtx_error (current_cpu, "SBFS isn't implemented");
4634
4635 #undef FLD
4636 }
4637   NEXT (vpc);
4638
4639   CASE (sem, INSN_MOVEM_R_M) : /* movem ${Rs-dfield},[${Rd-sfield}${inc}] */
4640 {
4641   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4642   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4643 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
4644   int UNUSED written = 0;
4645   IADDR UNUSED pc = abuf->addr;
4646   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4647
4648 {
4649   SI tmp_addr;
4650   BI tmp_postinc;
4651   tmp_postinc = FLD (f_memmode);
4652 {
4653   SI tmp_dummy;
4654   tmp_dummy = GET_H_GR (FLD (f_operand2));
4655 }
4656   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4657 {
4658 if (GESI (FLD (f_operand2), 15)) {
4659 {
4660   SI tmp_tmp;
4661   tmp_tmp = GET_H_GR (((UINT) 15));
4662   {
4663     SI opval = tmp_tmp;
4664     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4665     written |= (1 << 23);
4666     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4667   }
4668   tmp_addr = ADDSI (tmp_addr, 4);
4669 }
4670 }
4671 if (GESI (FLD (f_operand2), 14)) {
4672 {
4673   SI tmp_tmp;
4674   tmp_tmp = GET_H_GR (((UINT) 14));
4675   {
4676     SI opval = tmp_tmp;
4677     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4678     written |= (1 << 23);
4679     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4680   }
4681   tmp_addr = ADDSI (tmp_addr, 4);
4682 }
4683 }
4684 if (GESI (FLD (f_operand2), 13)) {
4685 {
4686   SI tmp_tmp;
4687   tmp_tmp = GET_H_GR (((UINT) 13));
4688   {
4689     SI opval = tmp_tmp;
4690     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4691     written |= (1 << 23);
4692     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4693   }
4694   tmp_addr = ADDSI (tmp_addr, 4);
4695 }
4696 }
4697 if (GESI (FLD (f_operand2), 12)) {
4698 {
4699   SI tmp_tmp;
4700   tmp_tmp = GET_H_GR (((UINT) 12));
4701   {
4702     SI opval = tmp_tmp;
4703     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4704     written |= (1 << 23);
4705     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4706   }
4707   tmp_addr = ADDSI (tmp_addr, 4);
4708 }
4709 }
4710 if (GESI (FLD (f_operand2), 11)) {
4711 {
4712   SI tmp_tmp;
4713   tmp_tmp = GET_H_GR (((UINT) 11));
4714   {
4715     SI opval = tmp_tmp;
4716     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4717     written |= (1 << 23);
4718     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4719   }
4720   tmp_addr = ADDSI (tmp_addr, 4);
4721 }
4722 }
4723 if (GESI (FLD (f_operand2), 10)) {
4724 {
4725   SI tmp_tmp;
4726   tmp_tmp = GET_H_GR (((UINT) 10));
4727   {
4728     SI opval = tmp_tmp;
4729     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4730     written |= (1 << 23);
4731     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4732   }
4733   tmp_addr = ADDSI (tmp_addr, 4);
4734 }
4735 }
4736 if (GESI (FLD (f_operand2), 9)) {
4737 {
4738   SI tmp_tmp;
4739   tmp_tmp = GET_H_GR (((UINT) 9));
4740   {
4741     SI opval = tmp_tmp;
4742     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4743     written |= (1 << 23);
4744     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4745   }
4746   tmp_addr = ADDSI (tmp_addr, 4);
4747 }
4748 }
4749 if (GESI (FLD (f_operand2), 8)) {
4750 {
4751   SI tmp_tmp;
4752   tmp_tmp = GET_H_GR (((UINT) 8));
4753   {
4754     SI opval = tmp_tmp;
4755     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4756     written |= (1 << 23);
4757     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4758   }
4759   tmp_addr = ADDSI (tmp_addr, 4);
4760 }
4761 }
4762 if (GESI (FLD (f_operand2), 7)) {
4763 {
4764   SI tmp_tmp;
4765   tmp_tmp = GET_H_GR (((UINT) 7));
4766   {
4767     SI opval = tmp_tmp;
4768     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4769     written |= (1 << 23);
4770     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4771   }
4772   tmp_addr = ADDSI (tmp_addr, 4);
4773 }
4774 }
4775 if (GESI (FLD (f_operand2), 6)) {
4776 {
4777   SI tmp_tmp;
4778   tmp_tmp = GET_H_GR (((UINT) 6));
4779   {
4780     SI opval = tmp_tmp;
4781     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4782     written |= (1 << 23);
4783     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4784   }
4785   tmp_addr = ADDSI (tmp_addr, 4);
4786 }
4787 }
4788 if (GESI (FLD (f_operand2), 5)) {
4789 {
4790   SI tmp_tmp;
4791   tmp_tmp = GET_H_GR (((UINT) 5));
4792   {
4793     SI opval = tmp_tmp;
4794     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4795     written |= (1 << 23);
4796     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4797   }
4798   tmp_addr = ADDSI (tmp_addr, 4);
4799 }
4800 }
4801 if (GESI (FLD (f_operand2), 4)) {
4802 {
4803   SI tmp_tmp;
4804   tmp_tmp = GET_H_GR (((UINT) 4));
4805   {
4806     SI opval = tmp_tmp;
4807     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4808     written |= (1 << 23);
4809     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4810   }
4811   tmp_addr = ADDSI (tmp_addr, 4);
4812 }
4813 }
4814 if (GESI (FLD (f_operand2), 3)) {
4815 {
4816   SI tmp_tmp;
4817   tmp_tmp = GET_H_GR (((UINT) 3));
4818   {
4819     SI opval = tmp_tmp;
4820     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4821     written |= (1 << 23);
4822     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4823   }
4824   tmp_addr = ADDSI (tmp_addr, 4);
4825 }
4826 }
4827 if (GESI (FLD (f_operand2), 2)) {
4828 {
4829   SI tmp_tmp;
4830   tmp_tmp = GET_H_GR (((UINT) 2));
4831   {
4832     SI opval = tmp_tmp;
4833     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4834     written |= (1 << 23);
4835     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4836   }
4837   tmp_addr = ADDSI (tmp_addr, 4);
4838 }
4839 }
4840 if (GESI (FLD (f_operand2), 1)) {
4841 {
4842   SI tmp_tmp;
4843   tmp_tmp = GET_H_GR (((UINT) 1));
4844   {
4845     SI opval = tmp_tmp;
4846     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4847     written |= (1 << 23);
4848     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4849   }
4850   tmp_addr = ADDSI (tmp_addr, 4);
4851 }
4852 }
4853 if (GESI (FLD (f_operand2), 0)) {
4854 {
4855   SI tmp_tmp;
4856   tmp_tmp = GET_H_GR (((UINT) 0));
4857   {
4858     SI opval = tmp_tmp;
4859     SETMEMSI (current_cpu, pc, tmp_addr, opval);
4860     written |= (1 << 23);
4861     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4862   }
4863   tmp_addr = ADDSI (tmp_addr, 4);
4864 }
4865 }
4866 }
4867 if (NEBI (tmp_postinc, 0)) {
4868   {
4869     SI opval = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (tmp_addr) : (CPU (h_prefixreg_pre_v32)));
4870     SET_H_GR (FLD (f_operand1), opval);
4871     written |= (1 << 22);
4872     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4873   }
4874 }
4875 {
4876   {
4877     BI opval = 0;
4878     CPU (h_xbit) = opval;
4879     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4880   }
4881   {
4882     BI opval = 0;
4883     SET_H_INSN_PREFIXED_P (opval);
4884     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4885   }
4886 }
4887 }
4888
4889   abuf->written = written;
4890 #undef FLD
4891 }
4892   NEXT (vpc);
4893
4894   CASE (sem, INSN_MOVEM_M_R) : /* movem [${Rs}${inc}],${Rd} */
4895 {
4896   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4897   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4898 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4899   int UNUSED written = 0;
4900   IADDR UNUSED pc = abuf->addr;
4901   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4902
4903 {
4904   SI tmp_addr;
4905   BI tmp_postinc;
4906   tmp_postinc = FLD (f_memmode);
4907   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4908 {
4909   SI tmp_dummy;
4910   tmp_dummy = GET_H_GR (FLD (f_operand2));
4911 }
4912 {
4913 if (GESI (FLD (f_operand2), 14)) {
4914 {
4915   SI tmp_tmp;
4916   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4917   {
4918     SI opval = tmp_tmp;
4919     SET_H_GR (((UINT) 14), opval);
4920     written |= (1 << 14);
4921     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4922   }
4923   tmp_addr = ADDSI (tmp_addr, 4);
4924 }
4925 }
4926 if (GESI (FLD (f_operand2), 13)) {
4927 {
4928   SI tmp_tmp;
4929   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4930   {
4931     SI opval = tmp_tmp;
4932     SET_H_GR (((UINT) 13), opval);
4933     written |= (1 << 13);
4934     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4935   }
4936   tmp_addr = ADDSI (tmp_addr, 4);
4937 }
4938 }
4939 if (GESI (FLD (f_operand2), 12)) {
4940 {
4941   SI tmp_tmp;
4942   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4943   {
4944     SI opval = tmp_tmp;
4945     SET_H_GR (((UINT) 12), opval);
4946     written |= (1 << 12);
4947     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4948   }
4949   tmp_addr = ADDSI (tmp_addr, 4);
4950 }
4951 }
4952 if (GESI (FLD (f_operand2), 11)) {
4953 {
4954   SI tmp_tmp;
4955   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4956   {
4957     SI opval = tmp_tmp;
4958     SET_H_GR (((UINT) 11), opval);
4959     written |= (1 << 11);
4960     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4961   }
4962   tmp_addr = ADDSI (tmp_addr, 4);
4963 }
4964 }
4965 if (GESI (FLD (f_operand2), 10)) {
4966 {
4967   SI tmp_tmp;
4968   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4969   {
4970     SI opval = tmp_tmp;
4971     SET_H_GR (((UINT) 10), opval);
4972     written |= (1 << 10);
4973     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4974   }
4975   tmp_addr = ADDSI (tmp_addr, 4);
4976 }
4977 }
4978 if (GESI (FLD (f_operand2), 9)) {
4979 {
4980   SI tmp_tmp;
4981   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4982   {
4983     SI opval = tmp_tmp;
4984     SET_H_GR (((UINT) 9), opval);
4985     written |= (1 << 22);
4986     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4987   }
4988   tmp_addr = ADDSI (tmp_addr, 4);
4989 }
4990 }
4991 if (GESI (FLD (f_operand2), 8)) {
4992 {
4993   SI tmp_tmp;
4994   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4995   {
4996     SI opval = tmp_tmp;
4997     SET_H_GR (((UINT) 8), opval);
4998     written |= (1 << 21);
4999     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5000   }
5001   tmp_addr = ADDSI (tmp_addr, 4);
5002 }
5003 }
5004 if (GESI (FLD (f_operand2), 7)) {
5005 {
5006   SI tmp_tmp;
5007   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5008   {
5009     SI opval = tmp_tmp;
5010     SET_H_GR (((UINT) 7), opval);
5011     written |= (1 << 20);
5012     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5013   }
5014   tmp_addr = ADDSI (tmp_addr, 4);
5015 }
5016 }
5017 if (GESI (FLD (f_operand2), 6)) {
5018 {
5019   SI tmp_tmp;
5020   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5021   {
5022     SI opval = tmp_tmp;
5023     SET_H_GR (((UINT) 6), opval);
5024     written |= (1 << 19);
5025     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5026   }
5027   tmp_addr = ADDSI (tmp_addr, 4);
5028 }
5029 }
5030 if (GESI (FLD (f_operand2), 5)) {
5031 {
5032   SI tmp_tmp;
5033   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5034   {
5035     SI opval = tmp_tmp;
5036     SET_H_GR (((UINT) 5), opval);
5037     written |= (1 << 18);
5038     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5039   }
5040   tmp_addr = ADDSI (tmp_addr, 4);
5041 }
5042 }
5043 if (GESI (FLD (f_operand2), 4)) {
5044 {
5045   SI tmp_tmp;
5046   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5047   {
5048     SI opval = tmp_tmp;
5049     SET_H_GR (((UINT) 4), opval);
5050     written |= (1 << 17);
5051     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5052   }
5053   tmp_addr = ADDSI (tmp_addr, 4);
5054 }
5055 }
5056 if (GESI (FLD (f_operand2), 3)) {
5057 {
5058   SI tmp_tmp;
5059   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5060   {
5061     SI opval = tmp_tmp;
5062     SET_H_GR (((UINT) 3), opval);
5063     written |= (1 << 16);
5064     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5065   }
5066   tmp_addr = ADDSI (tmp_addr, 4);
5067 }
5068 }
5069 if (GESI (FLD (f_operand2), 2)) {
5070 {
5071   SI tmp_tmp;
5072   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5073   {
5074     SI opval = tmp_tmp;
5075     SET_H_GR (((UINT) 2), opval);
5076     written |= (1 << 15);
5077     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5078   }
5079   tmp_addr = ADDSI (tmp_addr, 4);
5080 }
5081 }
5082 if (GESI (FLD (f_operand2), 1)) {
5083 {
5084   SI tmp_tmp;
5085   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5086   {
5087     SI opval = tmp_tmp;
5088     SET_H_GR (((UINT) 1), opval);
5089     written |= (1 << 9);
5090     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5091   }
5092   tmp_addr = ADDSI (tmp_addr, 4);
5093 }
5094 }
5095 if (GESI (FLD (f_operand2), 0)) {
5096 {
5097   SI tmp_tmp;
5098   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5099   {
5100     SI opval = tmp_tmp;
5101     SET_H_GR (((UINT) 0), opval);
5102     written |= (1 << 8);
5103     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5104   }
5105   tmp_addr = ADDSI (tmp_addr, 4);
5106 }
5107 }
5108 }
5109 if (NEBI (tmp_postinc, 0)) {
5110   {
5111     SI opval = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (tmp_addr) : (CPU (h_prefixreg_pre_v32)));
5112     SET_H_GR (FLD (f_operand1), opval);
5113     written |= (1 << 7);
5114     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5115   }
5116 }
5117 {
5118   {
5119     BI opval = 0;
5120     CPU (h_xbit) = opval;
5121     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5122   }
5123   {
5124     BI opval = 0;
5125     SET_H_INSN_PREFIXED_P (opval);
5126     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5127   }
5128 }
5129 }
5130
5131   abuf->written = written;
5132 #undef FLD
5133 }
5134   NEXT (vpc);
5135
5136   CASE (sem, INSN_MOVEM_M_PC) : /* movem [${Rs}${inc}],${Rd} */
5137 {
5138   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5139   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5140 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
5141   int UNUSED written = 0;
5142   IADDR UNUSED pc = abuf->addr;
5143   SEM_BRANCH_INIT
5144   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5145
5146 {
5147   SI tmp_addr;
5148   BI tmp_postinc;
5149   tmp_postinc = FLD (f_memmode);
5150   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5151 {
5152   {
5153     USI opval = GETMEMSI (current_cpu, pc, tmp_addr);
5154     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
5155     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
5156   }
5157   tmp_addr = ADDSI (tmp_addr, 4);
5158 {
5159   SI tmp_tmp;
5160   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5161   {
5162     SI opval = tmp_tmp;
5163     SET_H_GR (((UINT) 14), opval);
5164     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5165   }
5166   tmp_addr = ADDSI (tmp_addr, 4);
5167 }
5168 {
5169   SI tmp_tmp;
5170   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5171   {
5172     SI opval = tmp_tmp;
5173     SET_H_GR (((UINT) 13), opval);
5174     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5175   }
5176   tmp_addr = ADDSI (tmp_addr, 4);
5177 }
5178 {
5179   SI tmp_tmp;
5180   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5181   {
5182     SI opval = tmp_tmp;
5183     SET_H_GR (((UINT) 12), opval);
5184     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5185   }
5186   tmp_addr = ADDSI (tmp_addr, 4);
5187 }
5188 {
5189   SI tmp_tmp;
5190   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5191   {
5192     SI opval = tmp_tmp;
5193     SET_H_GR (((UINT) 11), opval);
5194     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5195   }
5196   tmp_addr = ADDSI (tmp_addr, 4);
5197 }
5198 {
5199   SI tmp_tmp;
5200   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5201   {
5202     SI opval = tmp_tmp;
5203     SET_H_GR (((UINT) 10), opval);
5204     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5205   }
5206   tmp_addr = ADDSI (tmp_addr, 4);
5207 }
5208 {
5209   SI tmp_tmp;
5210   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5211   {
5212     SI opval = tmp_tmp;
5213     SET_H_GR (((UINT) 9), opval);
5214     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5215   }
5216   tmp_addr = ADDSI (tmp_addr, 4);
5217 }
5218 {
5219   SI tmp_tmp;
5220   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5221   {
5222     SI opval = tmp_tmp;
5223     SET_H_GR (((UINT) 8), opval);
5224     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5225   }
5226   tmp_addr = ADDSI (tmp_addr, 4);
5227 }
5228 {
5229   SI tmp_tmp;
5230   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5231   {
5232     SI opval = tmp_tmp;
5233     SET_H_GR (((UINT) 7), opval);
5234     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5235   }
5236   tmp_addr = ADDSI (tmp_addr, 4);
5237 }
5238 {
5239   SI tmp_tmp;
5240   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5241   {
5242     SI opval = tmp_tmp;
5243     SET_H_GR (((UINT) 6), opval);
5244     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5245   }
5246   tmp_addr = ADDSI (tmp_addr, 4);
5247 }
5248 {
5249   SI tmp_tmp;
5250   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5251   {
5252     SI opval = tmp_tmp;
5253     SET_H_GR (((UINT) 5), opval);
5254     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5255   }
5256   tmp_addr = ADDSI (tmp_addr, 4);
5257 }
5258 {
5259   SI tmp_tmp;
5260   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5261   {
5262     SI opval = tmp_tmp;
5263     SET_H_GR (((UINT) 4), opval);
5264     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5265   }
5266   tmp_addr = ADDSI (tmp_addr, 4);
5267 }
5268 {
5269   SI tmp_tmp;
5270   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5271   {
5272     SI opval = tmp_tmp;
5273     SET_H_GR (((UINT) 3), opval);
5274     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5275   }
5276   tmp_addr = ADDSI (tmp_addr, 4);
5277 }
5278 {
5279   SI tmp_tmp;
5280   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5281   {
5282     SI opval = tmp_tmp;
5283     SET_H_GR (((UINT) 2), opval);
5284     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5285   }
5286   tmp_addr = ADDSI (tmp_addr, 4);
5287 }
5288 {
5289   SI tmp_tmp;
5290   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5291   {
5292     SI opval = tmp_tmp;
5293     SET_H_GR (((UINT) 1), opval);
5294     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5295   }
5296   tmp_addr = ADDSI (tmp_addr, 4);
5297 }
5298 {
5299   SI tmp_tmp;
5300   tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5301   {
5302     SI opval = tmp_tmp;
5303     SET_H_GR (((UINT) 0), opval);
5304     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5305   }
5306   tmp_addr = ADDSI (tmp_addr, 4);
5307 }
5308 }
5309 if (NEBI (tmp_postinc, 0)) {
5310   {
5311     SI opval = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (tmp_addr) : (CPU (h_prefixreg_pre_v32)));
5312     SET_H_GR (FLD (f_operand1), opval);
5313     written |= (1 << 5);
5314     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5315   }
5316 }
5317 {
5318   {
5319     BI opval = 0;
5320     CPU (h_xbit) = opval;
5321     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5322   }
5323   {
5324     BI opval = 0;
5325     SET_H_INSN_PREFIXED_P (opval);
5326     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5327   }
5328 }
5329 }
5330
5331   abuf->written = written;
5332   SEM_BRANCH_FINI (vpc);
5333 #undef FLD
5334 }
5335   NEXT (vpc);
5336
5337   CASE (sem, INSN_ADD_B_R) : /* add.b $Rs,$Rd */
5338 {
5339   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5340   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5341 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5342   int UNUSED written = 0;
5343   IADDR UNUSED pc = abuf->addr;
5344   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5345
5346 {
5347   QI tmp_tmpopd;
5348   QI tmp_tmpops;
5349   BI tmp_carry;
5350   QI tmp_newval;
5351   tmp_tmpops = GET_H_GR (FLD (f_operand1));
5352   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5353   tmp_carry = CPU (h_cbit);
5354   tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5355 {
5356   SI tmp_oldregval;
5357   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5358   {
5359     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5360     SET_H_GR (FLD (f_operand2), opval);
5361     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5362   }
5363 }
5364 {
5365   {
5366     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), ORIF (ANDIF (LTQI (tmp_tmpopd, 0), GEQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_newval, 0))));
5367     CPU (h_cbit) = opval;
5368     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5369   }
5370   {
5371     BI opval = LTQI (tmp_newval, 0);
5372     CPU (h_nbit) = opval;
5373     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5374   }
5375   {
5376     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5377     CPU (h_zbit) = opval;
5378     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5379   }
5380   {
5381     BI opval = ORIF (ANDIF (ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (GEQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
5382     CPU (h_vbit) = opval;
5383     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5384   }
5385 {
5386   {
5387     BI opval = 0;
5388     CPU (h_xbit) = opval;
5389     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5390   }
5391   {
5392     BI opval = 0;
5393     SET_H_INSN_PREFIXED_P (opval);
5394     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5395   }
5396 }
5397 }
5398 }
5399
5400 #undef FLD
5401 }
5402   NEXT (vpc);
5403
5404   CASE (sem, INSN_ADD_W_R) : /* add.w $Rs,$Rd */
5405 {
5406   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5407   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5408 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5409   int UNUSED written = 0;
5410   IADDR UNUSED pc = abuf->addr;
5411   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5412
5413 {
5414   HI tmp_tmpopd;
5415   HI tmp_tmpops;
5416   BI tmp_carry;
5417   HI tmp_newval;
5418   tmp_tmpops = GET_H_GR (FLD (f_operand1));
5419   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5420   tmp_carry = CPU (h_cbit);
5421   tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5422 {
5423   SI tmp_oldregval;
5424   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5425   {
5426     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5427     SET_H_GR (FLD (f_operand2), opval);
5428     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5429   }
5430 }
5431 {
5432   {
5433     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), ORIF (ANDIF (LTHI (tmp_tmpopd, 0), GEHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_newval, 0))));
5434     CPU (h_cbit) = opval;
5435     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5436   }
5437   {
5438     BI opval = LTHI (tmp_newval, 0);
5439     CPU (h_nbit) = opval;
5440     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5441   }
5442   {
5443     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5444     CPU (h_zbit) = opval;
5445     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5446   }
5447   {
5448     BI opval = ORIF (ANDIF (ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (GEHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
5449     CPU (h_vbit) = opval;
5450     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5451   }
5452 {
5453   {
5454     BI opval = 0;
5455     CPU (h_xbit) = opval;
5456     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5457   }
5458   {
5459     BI opval = 0;
5460     SET_H_INSN_PREFIXED_P (opval);
5461     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5462   }
5463 }
5464 }
5465 }
5466
5467 #undef FLD
5468 }
5469   NEXT (vpc);
5470
5471   CASE (sem, INSN_ADD_D_R) : /* add.d $Rs,$Rd */
5472 {
5473   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5474   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5475 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5476   int UNUSED written = 0;
5477   IADDR UNUSED pc = abuf->addr;
5478   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5479
5480 {
5481   SI tmp_tmpopd;
5482   SI tmp_tmpops;
5483   BI tmp_carry;
5484   SI tmp_newval;
5485   tmp_tmpops = GET_H_GR (FLD (f_operand1));
5486   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5487   tmp_carry = CPU (h_cbit);
5488   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5489   {
5490     SI opval = tmp_newval;
5491     SET_H_GR (FLD (f_operand2), opval);
5492     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5493   }
5494 {
5495   {
5496     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
5497     CPU (h_cbit) = opval;
5498     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5499   }
5500   {
5501     BI opval = LTSI (tmp_newval, 0);
5502     CPU (h_nbit) = opval;
5503     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5504   }
5505   {
5506     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5507     CPU (h_zbit) = opval;
5508     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5509   }
5510   {
5511     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
5512     CPU (h_vbit) = opval;
5513     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5514   }
5515 {
5516   {
5517     BI opval = 0;
5518     CPU (h_xbit) = opval;
5519     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5520   }
5521   {
5522     BI opval = 0;
5523     SET_H_INSN_PREFIXED_P (opval);
5524     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5525   }
5526 }
5527 }
5528 }
5529
5530 #undef FLD
5531 }
5532   NEXT (vpc);
5533
5534   CASE (sem, INSN_ADD_M_B_M) : /* add-m.b [${Rs}${inc}],${Rd} */
5535 {
5536   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5537   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5538 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5539   int UNUSED written = 0;
5540   IADDR UNUSED pc = abuf->addr;
5541   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5542
5543 {
5544   QI tmp_tmpopd;
5545   QI tmp_tmpops;
5546   BI tmp_carry;
5547   QI tmp_newval;
5548   tmp_tmpops = ({   SI tmp_addr;
5549   QI tmp_tmp_mem;
5550   BI tmp_postinc;
5551   tmp_postinc = FLD (f_memmode);
5552 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5553 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
5554 ; if (NEBI (tmp_postinc, 0)) {
5555 {
5556 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5557   tmp_addr = ADDSI (tmp_addr, 1);
5558 }
5559   {
5560     SI opval = tmp_addr;
5561     SET_H_GR (FLD (f_operand1), opval);
5562     written |= (1 << 12);
5563     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5564   }
5565 }
5566 }
5567 ; tmp_tmp_mem; });
5568   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5569   tmp_carry = CPU (h_cbit);
5570   tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5571 {
5572   SI tmp_oldregval;
5573   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
5574   {
5575     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5576     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5577     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5578   }
5579 }
5580 {
5581   {
5582     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), ORIF (ANDIF (LTQI (tmp_tmpopd, 0), GEQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_newval, 0))));
5583     CPU (h_cbit) = opval;
5584     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5585   }
5586   {
5587     BI opval = LTQI (tmp_newval, 0);
5588     CPU (h_nbit) = opval;
5589     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5590   }
5591   {
5592     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5593     CPU (h_zbit) = opval;
5594     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5595   }
5596   {
5597     BI opval = ORIF (ANDIF (ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (GEQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
5598     CPU (h_vbit) = opval;
5599     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5600   }
5601 {
5602   {
5603     BI opval = 0;
5604     CPU (h_xbit) = opval;
5605     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5606   }
5607   {
5608     BI opval = 0;
5609     SET_H_INSN_PREFIXED_P (opval);
5610     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5611   }
5612 }
5613 }
5614 }
5615
5616   abuf->written = written;
5617 #undef FLD
5618 }
5619   NEXT (vpc);
5620
5621   CASE (sem, INSN_ADD_M_W_M) : /* add-m.w [${Rs}${inc}],${Rd} */
5622 {
5623   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5624   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5625 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5626   int UNUSED written = 0;
5627   IADDR UNUSED pc = abuf->addr;
5628   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5629
5630 {
5631   HI tmp_tmpopd;
5632   HI tmp_tmpops;
5633   BI tmp_carry;
5634   HI tmp_newval;
5635   tmp_tmpops = ({   SI tmp_addr;
5636   HI tmp_tmp_mem;
5637   BI tmp_postinc;
5638   tmp_postinc = FLD (f_memmode);
5639 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5640 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
5641 ; if (NEBI (tmp_postinc, 0)) {
5642 {
5643 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5644   tmp_addr = ADDSI (tmp_addr, 2);
5645 }
5646   {
5647     SI opval = tmp_addr;
5648     SET_H_GR (FLD (f_operand1), opval);
5649     written |= (1 << 12);
5650     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5651   }
5652 }
5653 }
5654 ; tmp_tmp_mem; });
5655   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5656   tmp_carry = CPU (h_cbit);
5657   tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5658 {
5659   SI tmp_oldregval;
5660   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
5661   {
5662     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5663     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5664     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5665   }
5666 }
5667 {
5668   {
5669     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), ORIF (ANDIF (LTHI (tmp_tmpopd, 0), GEHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_newval, 0))));
5670     CPU (h_cbit) = opval;
5671     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5672   }
5673   {
5674     BI opval = LTHI (tmp_newval, 0);
5675     CPU (h_nbit) = opval;
5676     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5677   }
5678   {
5679     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5680     CPU (h_zbit) = opval;
5681     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5682   }
5683   {
5684     BI opval = ORIF (ANDIF (ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (GEHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
5685     CPU (h_vbit) = opval;
5686     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5687   }
5688 {
5689   {
5690     BI opval = 0;
5691     CPU (h_xbit) = opval;
5692     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5693   }
5694   {
5695     BI opval = 0;
5696     SET_H_INSN_PREFIXED_P (opval);
5697     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5698   }
5699 }
5700 }
5701 }
5702
5703   abuf->written = written;
5704 #undef FLD
5705 }
5706   NEXT (vpc);
5707
5708   CASE (sem, INSN_ADD_M_D_M) : /* add-m.d [${Rs}${inc}],${Rd} */
5709 {
5710   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5711   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5712 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5713   int UNUSED written = 0;
5714   IADDR UNUSED pc = abuf->addr;
5715   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5716
5717 {
5718   SI tmp_tmpopd;
5719   SI tmp_tmpops;
5720   BI tmp_carry;
5721   SI tmp_newval;
5722   tmp_tmpops = ({   SI tmp_addr;
5723   SI tmp_tmp_mem;
5724   BI tmp_postinc;
5725   tmp_postinc = FLD (f_memmode);
5726 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5727 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
5728 ; if (NEBI (tmp_postinc, 0)) {
5729 {
5730 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5731   tmp_addr = ADDSI (tmp_addr, 4);
5732 }
5733   {
5734     SI opval = tmp_addr;
5735     SET_H_GR (FLD (f_operand1), opval);
5736     written |= (1 << 11);
5737     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5738   }
5739 }
5740 }
5741 ; tmp_tmp_mem; });
5742   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5743   tmp_carry = CPU (h_cbit);
5744   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5745   {
5746     SI opval = tmp_newval;
5747     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5748     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5749   }
5750 {
5751   {
5752     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
5753     CPU (h_cbit) = opval;
5754     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5755   }
5756   {
5757     BI opval = LTSI (tmp_newval, 0);
5758     CPU (h_nbit) = opval;
5759     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5760   }
5761   {
5762     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5763     CPU (h_zbit) = opval;
5764     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5765   }
5766   {
5767     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
5768     CPU (h_vbit) = opval;
5769     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5770   }
5771 {
5772   {
5773     BI opval = 0;
5774     CPU (h_xbit) = opval;
5775     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5776   }
5777   {
5778     BI opval = 0;
5779     SET_H_INSN_PREFIXED_P (opval);
5780     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5781   }
5782 }
5783 }
5784 }
5785
5786   abuf->written = written;
5787 #undef FLD
5788 }
5789   NEXT (vpc);
5790
5791   CASE (sem, INSN_ADDCBR) : /* add.b ${sconst8}],${Rd} */
5792 {
5793   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5794   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5795 #define FLD(f) abuf->fields.sfmt_addcbr.f
5796   int UNUSED written = 0;
5797   IADDR UNUSED pc = abuf->addr;
5798   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5799
5800 {
5801   QI tmp_tmpopd;
5802   QI tmp_tmpops;
5803   BI tmp_carry;
5804   QI tmp_newval;
5805   tmp_tmpops = FLD (f_indir_pc__byte);
5806   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5807   tmp_carry = CPU (h_cbit);
5808   tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5809 {
5810   SI tmp_oldregval;
5811   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5812   {
5813     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5814     SET_H_GR (FLD (f_operand2), opval);
5815     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5816   }
5817 }
5818 {
5819   {
5820     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), ORIF (ANDIF (LTQI (tmp_tmpopd, 0), GEQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_newval, 0))));
5821     CPU (h_cbit) = opval;
5822     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5823   }
5824   {
5825     BI opval = LTQI (tmp_newval, 0);
5826     CPU (h_nbit) = opval;
5827     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5828   }
5829   {
5830     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5831     CPU (h_zbit) = opval;
5832     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5833   }
5834   {
5835     BI opval = ORIF (ANDIF (ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (GEQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
5836     CPU (h_vbit) = opval;
5837     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5838   }
5839 {
5840   {
5841     BI opval = 0;
5842     CPU (h_xbit) = opval;
5843     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5844   }
5845   {
5846     BI opval = 0;
5847     SET_H_INSN_PREFIXED_P (opval);
5848     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5849   }
5850 }
5851 }
5852 }
5853
5854 #undef FLD
5855 }
5856   NEXT (vpc);
5857
5858   CASE (sem, INSN_ADDCWR) : /* add.w ${sconst16}],${Rd} */
5859 {
5860   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5861   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5862 #define FLD(f) abuf->fields.sfmt_addcwr.f
5863   int UNUSED written = 0;
5864   IADDR UNUSED pc = abuf->addr;
5865   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5866
5867 {
5868   HI tmp_tmpopd;
5869   HI tmp_tmpops;
5870   BI tmp_carry;
5871   HI tmp_newval;
5872   tmp_tmpops = FLD (f_indir_pc__word);
5873   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5874   tmp_carry = CPU (h_cbit);
5875   tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5876 {
5877   SI tmp_oldregval;
5878   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5879   {
5880     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5881     SET_H_GR (FLD (f_operand2), opval);
5882     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5883   }
5884 }
5885 {
5886   {
5887     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), ORIF (ANDIF (LTHI (tmp_tmpopd, 0), GEHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_newval, 0))));
5888     CPU (h_cbit) = opval;
5889     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5890   }
5891   {
5892     BI opval = LTHI (tmp_newval, 0);
5893     CPU (h_nbit) = opval;
5894     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5895   }
5896   {
5897     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5898     CPU (h_zbit) = opval;
5899     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5900   }
5901   {
5902     BI opval = ORIF (ANDIF (ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (GEHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
5903     CPU (h_vbit) = opval;
5904     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5905   }
5906 {
5907   {
5908     BI opval = 0;
5909     CPU (h_xbit) = opval;
5910     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5911   }
5912   {
5913     BI opval = 0;
5914     SET_H_INSN_PREFIXED_P (opval);
5915     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5916   }
5917 }
5918 }
5919 }
5920
5921 #undef FLD
5922 }
5923   NEXT (vpc);
5924
5925   CASE (sem, INSN_ADDCDR) : /* add.d ${const32}],${Rd} */
5926 {
5927   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5928   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5929 #define FLD(f) abuf->fields.sfmt_addcdr.f
5930   int UNUSED written = 0;
5931   IADDR UNUSED pc = abuf->addr;
5932   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
5933
5934 {
5935   SI tmp_tmpopd;
5936   SI tmp_tmpops;
5937   BI tmp_carry;
5938   SI tmp_newval;
5939   tmp_tmpops = FLD (f_indir_pc__dword);
5940   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5941   tmp_carry = CPU (h_cbit);
5942   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5943   {
5944     SI opval = tmp_newval;
5945     SET_H_GR (FLD (f_operand2), opval);
5946     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5947   }
5948 {
5949   {
5950     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
5951     CPU (h_cbit) = opval;
5952     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5953   }
5954   {
5955     BI opval = LTSI (tmp_newval, 0);
5956     CPU (h_nbit) = opval;
5957     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5958   }
5959   {
5960     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5961     CPU (h_zbit) = opval;
5962     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5963   }
5964   {
5965     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
5966     CPU (h_vbit) = opval;
5967     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5968   }
5969 {
5970   {
5971     BI opval = 0;
5972     CPU (h_xbit) = opval;
5973     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5974   }
5975   {
5976     BI opval = 0;
5977     SET_H_INSN_PREFIXED_P (opval);
5978     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5979   }
5980 }
5981 }
5982 }
5983
5984 #undef FLD
5985 }
5986   NEXT (vpc);
5987
5988   CASE (sem, INSN_ADDCPC) : /* add.d ${sconst32},PC */
5989 {
5990   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5991   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5992 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5993   int UNUSED written = 0;
5994   IADDR UNUSED pc = abuf->addr;
5995   SEM_BRANCH_INIT
5996   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
5997
5998 {
5999   SI tmp_newpc;
6000   SI tmp_oldpc;
6001   SI tmp_offs;
6002   tmp_offs = FLD (f_indir_pc__dword);
6003   tmp_oldpc = ADDSI (pc, 6);
6004   tmp_newpc = ADDSI (tmp_oldpc, tmp_offs);
6005   {
6006     USI opval = tmp_newpc;
6007     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
6008     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
6009   }
6010 {
6011   {
6012     BI opval = ORIF (ANDIF (LTSI (tmp_offs, 0), LTSI (tmp_oldpc, 0)), ORIF (ANDIF (LTSI (tmp_oldpc, 0), GESI (tmp_newpc, 0)), ANDIF (LTSI (tmp_offs, 0), GESI (tmp_newpc, 0))));
6013     CPU (h_cbit) = opval;
6014     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6015   }
6016   {
6017     BI opval = LTSI (tmp_newpc, 0);
6018     CPU (h_nbit) = opval;
6019     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6020   }
6021   {
6022     BI opval = ANDIF (EQSI (tmp_newpc, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6023     CPU (h_zbit) = opval;
6024     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6025   }
6026   {
6027     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_offs, 0), LTSI (tmp_oldpc, 0)), GESI (tmp_newpc, 0)), ANDIF (ANDIF (GESI (tmp_offs, 0), GESI (tmp_oldpc, 0)), LTSI (tmp_newpc, 0)));
6028     CPU (h_vbit) = opval;
6029     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6030   }
6031 {
6032   {
6033     BI opval = 0;
6034     CPU (h_xbit) = opval;
6035     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6036   }
6037   {
6038     BI opval = 0;
6039     SET_H_INSN_PREFIXED_P (opval);
6040     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6041   }
6042 }
6043 }
6044 }
6045
6046   SEM_BRANCH_FINI (vpc);
6047 #undef FLD
6048 }
6049   NEXT (vpc);
6050
6051   CASE (sem, INSN_ADDS_B_R) : /* adds.b $Rs,$Rd */
6052 {
6053   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6054   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6055 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6056   int UNUSED written = 0;
6057   IADDR UNUSED pc = abuf->addr;
6058   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6059
6060 {
6061   SI tmp_tmpopd;
6062   SI tmp_tmpops;
6063   BI tmp_carry;
6064   SI tmp_newval;
6065   tmp_tmpops = EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
6066   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6067   tmp_carry = CPU (h_cbit);
6068   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6069   {
6070     SI opval = tmp_newval;
6071     SET_H_GR (FLD (f_operand2), opval);
6072     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6073   }
6074 {
6075   {
6076     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6077     CPU (h_cbit) = opval;
6078     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6079   }
6080   {
6081     BI opval = LTSI (tmp_newval, 0);
6082     CPU (h_nbit) = opval;
6083     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6084   }
6085   {
6086     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6087     CPU (h_zbit) = opval;
6088     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6089   }
6090   {
6091     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6092     CPU (h_vbit) = opval;
6093     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6094   }
6095 {
6096   {
6097     BI opval = 0;
6098     CPU (h_xbit) = opval;
6099     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6100   }
6101   {
6102     BI opval = 0;
6103     SET_H_INSN_PREFIXED_P (opval);
6104     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6105   }
6106 }
6107 }
6108 }
6109
6110 #undef FLD
6111 }
6112   NEXT (vpc);
6113
6114   CASE (sem, INSN_ADDS_W_R) : /* adds.w $Rs,$Rd */
6115 {
6116   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6117   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6118 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6119   int UNUSED written = 0;
6120   IADDR UNUSED pc = abuf->addr;
6121   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6122
6123 {
6124   SI tmp_tmpopd;
6125   SI tmp_tmpops;
6126   BI tmp_carry;
6127   SI tmp_newval;
6128   tmp_tmpops = EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
6129   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6130   tmp_carry = CPU (h_cbit);
6131   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6132   {
6133     SI opval = tmp_newval;
6134     SET_H_GR (FLD (f_operand2), opval);
6135     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6136   }
6137 {
6138   {
6139     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6140     CPU (h_cbit) = opval;
6141     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6142   }
6143   {
6144     BI opval = LTSI (tmp_newval, 0);
6145     CPU (h_nbit) = opval;
6146     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6147   }
6148   {
6149     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6150     CPU (h_zbit) = opval;
6151     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6152   }
6153   {
6154     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6155     CPU (h_vbit) = opval;
6156     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6157   }
6158 {
6159   {
6160     BI opval = 0;
6161     CPU (h_xbit) = opval;
6162     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6163   }
6164   {
6165     BI opval = 0;
6166     SET_H_INSN_PREFIXED_P (opval);
6167     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6168   }
6169 }
6170 }
6171 }
6172
6173 #undef FLD
6174 }
6175   NEXT (vpc);
6176
6177   CASE (sem, INSN_ADDS_M_B_M) : /* adds-m.b [${Rs}${inc}],$Rd */
6178 {
6179   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6180   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6181 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6182   int UNUSED written = 0;
6183   IADDR UNUSED pc = abuf->addr;
6184   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6185
6186 {
6187   SI tmp_tmpopd;
6188   SI tmp_tmpops;
6189   BI tmp_carry;
6190   SI tmp_newval;
6191   tmp_tmpops = EXTQISI (({   SI tmp_addr;
6192   QI tmp_tmp_mem;
6193   BI tmp_postinc;
6194   tmp_postinc = FLD (f_memmode);
6195 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6196 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
6197 ; if (NEBI (tmp_postinc, 0)) {
6198 {
6199 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6200   tmp_addr = ADDSI (tmp_addr, 1);
6201 }
6202   {
6203     SI opval = tmp_addr;
6204     SET_H_GR (FLD (f_operand1), opval);
6205     written |= (1 << 11);
6206     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6207   }
6208 }
6209 }
6210 ; tmp_tmp_mem; }));
6211   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6212   tmp_carry = CPU (h_cbit);
6213   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6214   {
6215     SI opval = tmp_newval;
6216     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6217     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6218   }
6219 {
6220   {
6221     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6222     CPU (h_cbit) = opval;
6223     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6224   }
6225   {
6226     BI opval = LTSI (tmp_newval, 0);
6227     CPU (h_nbit) = opval;
6228     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6229   }
6230   {
6231     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6232     CPU (h_zbit) = opval;
6233     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6234   }
6235   {
6236     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6237     CPU (h_vbit) = opval;
6238     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6239   }
6240 {
6241   {
6242     BI opval = 0;
6243     CPU (h_xbit) = opval;
6244     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6245   }
6246   {
6247     BI opval = 0;
6248     SET_H_INSN_PREFIXED_P (opval);
6249     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6250   }
6251 }
6252 }
6253 }
6254
6255   abuf->written = written;
6256 #undef FLD
6257 }
6258   NEXT (vpc);
6259
6260   CASE (sem, INSN_ADDS_M_W_M) : /* adds-m.w [${Rs}${inc}],$Rd */
6261 {
6262   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6263   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6264 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6265   int UNUSED written = 0;
6266   IADDR UNUSED pc = abuf->addr;
6267   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6268
6269 {
6270   SI tmp_tmpopd;
6271   SI tmp_tmpops;
6272   BI tmp_carry;
6273   SI tmp_newval;
6274   tmp_tmpops = EXTHISI (({   SI tmp_addr;
6275   HI tmp_tmp_mem;
6276   BI tmp_postinc;
6277   tmp_postinc = FLD (f_memmode);
6278 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6279 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
6280 ; if (NEBI (tmp_postinc, 0)) {
6281 {
6282 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6283   tmp_addr = ADDSI (tmp_addr, 2);
6284 }
6285   {
6286     SI opval = tmp_addr;
6287     SET_H_GR (FLD (f_operand1), opval);
6288     written |= (1 << 11);
6289     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6290   }
6291 }
6292 }
6293 ; tmp_tmp_mem; }));
6294   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6295   tmp_carry = CPU (h_cbit);
6296   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6297   {
6298     SI opval = tmp_newval;
6299     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6300     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6301   }
6302 {
6303   {
6304     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6305     CPU (h_cbit) = opval;
6306     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6307   }
6308   {
6309     BI opval = LTSI (tmp_newval, 0);
6310     CPU (h_nbit) = opval;
6311     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6312   }
6313   {
6314     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6315     CPU (h_zbit) = opval;
6316     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6317   }
6318   {
6319     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6320     CPU (h_vbit) = opval;
6321     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6322   }
6323 {
6324   {
6325     BI opval = 0;
6326     CPU (h_xbit) = opval;
6327     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6328   }
6329   {
6330     BI opval = 0;
6331     SET_H_INSN_PREFIXED_P (opval);
6332     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6333   }
6334 }
6335 }
6336 }
6337
6338   abuf->written = written;
6339 #undef FLD
6340 }
6341   NEXT (vpc);
6342
6343   CASE (sem, INSN_ADDSCBR) : /* [${Rs}${inc}],$Rd */
6344 {
6345   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6346   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6347 #define FLD(f) abuf->fields.sfmt_addcbr.f
6348   int UNUSED written = 0;
6349   IADDR UNUSED pc = abuf->addr;
6350   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6351
6352 {
6353   SI tmp_tmpopd;
6354   SI tmp_tmpops;
6355   BI tmp_carry;
6356   SI tmp_newval;
6357   tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
6358   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6359   tmp_carry = CPU (h_cbit);
6360   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6361   {
6362     SI opval = tmp_newval;
6363     SET_H_GR (FLD (f_operand2), opval);
6364     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6365   }
6366 {
6367   {
6368     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6369     CPU (h_cbit) = opval;
6370     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6371   }
6372   {
6373     BI opval = LTSI (tmp_newval, 0);
6374     CPU (h_nbit) = opval;
6375     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6376   }
6377   {
6378     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6379     CPU (h_zbit) = opval;
6380     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6381   }
6382   {
6383     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6384     CPU (h_vbit) = opval;
6385     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6386   }
6387 {
6388   {
6389     BI opval = 0;
6390     CPU (h_xbit) = opval;
6391     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6392   }
6393   {
6394     BI opval = 0;
6395     SET_H_INSN_PREFIXED_P (opval);
6396     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6397   }
6398 }
6399 }
6400 }
6401
6402 #undef FLD
6403 }
6404   NEXT (vpc);
6405
6406   CASE (sem, INSN_ADDSCWR) : /* [${Rs}${inc}],$Rd */
6407 {
6408   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6409   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6410 #define FLD(f) abuf->fields.sfmt_addcwr.f
6411   int UNUSED written = 0;
6412   IADDR UNUSED pc = abuf->addr;
6413   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6414
6415 {
6416   SI tmp_tmpopd;
6417   SI tmp_tmpops;
6418   BI tmp_carry;
6419   SI tmp_newval;
6420   tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
6421   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6422   tmp_carry = CPU (h_cbit);
6423   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6424   {
6425     SI opval = tmp_newval;
6426     SET_H_GR (FLD (f_operand2), opval);
6427     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6428   }
6429 {
6430   {
6431     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6432     CPU (h_cbit) = opval;
6433     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6434   }
6435   {
6436     BI opval = LTSI (tmp_newval, 0);
6437     CPU (h_nbit) = opval;
6438     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6439   }
6440   {
6441     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6442     CPU (h_zbit) = opval;
6443     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6444   }
6445   {
6446     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6447     CPU (h_vbit) = opval;
6448     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6449   }
6450 {
6451   {
6452     BI opval = 0;
6453     CPU (h_xbit) = opval;
6454     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6455   }
6456   {
6457     BI opval = 0;
6458     SET_H_INSN_PREFIXED_P (opval);
6459     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6460   }
6461 }
6462 }
6463 }
6464
6465 #undef FLD
6466 }
6467   NEXT (vpc);
6468
6469   CASE (sem, INSN_ADDSPCPC) : /* adds.w [PC],PC */
6470 {
6471   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6472   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6473 #define FLD(f) abuf->fields.fmt_empty.f
6474   int UNUSED written = 0;
6475   IADDR UNUSED pc = abuf->addr;
6476   SEM_BRANCH_INIT
6477   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6478
6479 {
6480   SI tmp_newpc;
6481   SI tmp_oldpc;
6482   HI tmp_offs;
6483 if (NOTBI (GET_H_INSN_PREFIXED_P ())) {
6484 cgen_rtx_error (current_cpu, "Unexpected adds.w [PC],PC without prefix");
6485 }
6486   tmp_offs = GETMEMHI (current_cpu, pc, CPU (h_prefixreg_pre_v32));
6487   tmp_oldpc = ADDSI (pc, 2);
6488   tmp_newpc = ADDSI (tmp_oldpc, tmp_offs);
6489   {
6490     USI opval = tmp_newpc;
6491     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
6492     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
6493   }
6494 {
6495   {
6496     BI opval = ORIF (ANDIF (LTSI (EXTHISI (tmp_offs), 0), LTSI (tmp_oldpc, 0)), ORIF (ANDIF (LTSI (tmp_oldpc, 0), GESI (tmp_newpc, 0)), ANDIF (LTSI (EXTHISI (tmp_offs), 0), GESI (tmp_newpc, 0))));
6497     CPU (h_cbit) = opval;
6498     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6499   }
6500   {
6501     BI opval = LTSI (tmp_newpc, 0);
6502     CPU (h_nbit) = opval;
6503     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6504   }
6505   {
6506     BI opval = ANDIF (EQSI (tmp_newpc, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6507     CPU (h_zbit) = opval;
6508     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6509   }
6510   {
6511     BI opval = ORIF (ANDIF (ANDIF (LTSI (EXTHISI (tmp_offs), 0), LTSI (tmp_oldpc, 0)), GESI (tmp_newpc, 0)), ANDIF (ANDIF (GESI (EXTHISI (tmp_offs), 0), GESI (tmp_oldpc, 0)), LTSI (tmp_newpc, 0)));
6512     CPU (h_vbit) = opval;
6513     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6514   }
6515 {
6516   {
6517     BI opval = 0;
6518     CPU (h_xbit) = opval;
6519     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6520   }
6521   {
6522     BI opval = 0;
6523     SET_H_INSN_PREFIXED_P (opval);
6524     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6525   }
6526 }
6527 }
6528 }
6529
6530   SEM_BRANCH_FINI (vpc);
6531 #undef FLD
6532 }
6533   NEXT (vpc);
6534
6535   CASE (sem, INSN_ADDU_B_R) : /* addu.b $Rs,$Rd */
6536 {
6537   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6538   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6539 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6540   int UNUSED written = 0;
6541   IADDR UNUSED pc = abuf->addr;
6542   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6543
6544 {
6545   SI tmp_tmpopd;
6546   SI tmp_tmpops;
6547   BI tmp_carry;
6548   SI tmp_newval;
6549   tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
6550   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6551   tmp_carry = CPU (h_cbit);
6552   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6553   {
6554     SI opval = tmp_newval;
6555     SET_H_GR (FLD (f_operand2), opval);
6556     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6557   }
6558 {
6559   {
6560     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6561     CPU (h_cbit) = opval;
6562     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6563   }
6564   {
6565     BI opval = LTSI (tmp_newval, 0);
6566     CPU (h_nbit) = opval;
6567     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6568   }
6569   {
6570     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6571     CPU (h_zbit) = opval;
6572     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6573   }
6574   {
6575     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6576     CPU (h_vbit) = opval;
6577     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6578   }
6579 {
6580   {
6581     BI opval = 0;
6582     CPU (h_xbit) = opval;
6583     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6584   }
6585   {
6586     BI opval = 0;
6587     SET_H_INSN_PREFIXED_P (opval);
6588     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6589   }
6590 }
6591 }
6592 }
6593
6594 #undef FLD
6595 }
6596   NEXT (vpc);
6597
6598   CASE (sem, INSN_ADDU_W_R) : /* addu.w $Rs,$Rd */
6599 {
6600   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6601   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6602 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6603   int UNUSED written = 0;
6604   IADDR UNUSED pc = abuf->addr;
6605   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6606
6607 {
6608   SI tmp_tmpopd;
6609   SI tmp_tmpops;
6610   BI tmp_carry;
6611   SI tmp_newval;
6612   tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
6613   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6614   tmp_carry = CPU (h_cbit);
6615   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6616   {
6617     SI opval = tmp_newval;
6618     SET_H_GR (FLD (f_operand2), opval);
6619     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6620   }
6621 {
6622   {
6623     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6624     CPU (h_cbit) = opval;
6625     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6626   }
6627   {
6628     BI opval = LTSI (tmp_newval, 0);
6629     CPU (h_nbit) = opval;
6630     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6631   }
6632   {
6633     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6634     CPU (h_zbit) = opval;
6635     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6636   }
6637   {
6638     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6639     CPU (h_vbit) = opval;
6640     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6641   }
6642 {
6643   {
6644     BI opval = 0;
6645     CPU (h_xbit) = opval;
6646     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6647   }
6648   {
6649     BI opval = 0;
6650     SET_H_INSN_PREFIXED_P (opval);
6651     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6652   }
6653 }
6654 }
6655 }
6656
6657 #undef FLD
6658 }
6659   NEXT (vpc);
6660
6661   CASE (sem, INSN_ADDU_M_B_M) : /* addu-m.b [${Rs}${inc}],$Rd */
6662 {
6663   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6664   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6665 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6666   int UNUSED written = 0;
6667   IADDR UNUSED pc = abuf->addr;
6668   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6669
6670 {
6671   SI tmp_tmpopd;
6672   SI tmp_tmpops;
6673   BI tmp_carry;
6674   SI tmp_newval;
6675   tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
6676   QI tmp_tmp_mem;
6677   BI tmp_postinc;
6678   tmp_postinc = FLD (f_memmode);
6679 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6680 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
6681 ; if (NEBI (tmp_postinc, 0)) {
6682 {
6683 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6684   tmp_addr = ADDSI (tmp_addr, 1);
6685 }
6686   {
6687     SI opval = tmp_addr;
6688     SET_H_GR (FLD (f_operand1), opval);
6689     written |= (1 << 11);
6690     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6691   }
6692 }
6693 }
6694 ; tmp_tmp_mem; }));
6695   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6696   tmp_carry = CPU (h_cbit);
6697   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6698   {
6699     SI opval = tmp_newval;
6700     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6701     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6702   }
6703 {
6704   {
6705     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6706     CPU (h_cbit) = opval;
6707     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6708   }
6709   {
6710     BI opval = LTSI (tmp_newval, 0);
6711     CPU (h_nbit) = opval;
6712     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6713   }
6714   {
6715     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6716     CPU (h_zbit) = opval;
6717     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6718   }
6719   {
6720     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6721     CPU (h_vbit) = opval;
6722     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6723   }
6724 {
6725   {
6726     BI opval = 0;
6727     CPU (h_xbit) = opval;
6728     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6729   }
6730   {
6731     BI opval = 0;
6732     SET_H_INSN_PREFIXED_P (opval);
6733     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6734   }
6735 }
6736 }
6737 }
6738
6739   abuf->written = written;
6740 #undef FLD
6741 }
6742   NEXT (vpc);
6743
6744   CASE (sem, INSN_ADDU_M_W_M) : /* addu-m.w [${Rs}${inc}],$Rd */
6745 {
6746   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6747   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6748 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6749   int UNUSED written = 0;
6750   IADDR UNUSED pc = abuf->addr;
6751   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6752
6753 {
6754   SI tmp_tmpopd;
6755   SI tmp_tmpops;
6756   BI tmp_carry;
6757   SI tmp_newval;
6758   tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
6759   HI tmp_tmp_mem;
6760   BI tmp_postinc;
6761   tmp_postinc = FLD (f_memmode);
6762 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6763 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
6764 ; if (NEBI (tmp_postinc, 0)) {
6765 {
6766 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6767   tmp_addr = ADDSI (tmp_addr, 2);
6768 }
6769   {
6770     SI opval = tmp_addr;
6771     SET_H_GR (FLD (f_operand1), opval);
6772     written |= (1 << 11);
6773     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6774   }
6775 }
6776 }
6777 ; tmp_tmp_mem; }));
6778   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6779   tmp_carry = CPU (h_cbit);
6780   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6781   {
6782     SI opval = tmp_newval;
6783     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6784     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6785   }
6786 {
6787   {
6788     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6789     CPU (h_cbit) = opval;
6790     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6791   }
6792   {
6793     BI opval = LTSI (tmp_newval, 0);
6794     CPU (h_nbit) = opval;
6795     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6796   }
6797   {
6798     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6799     CPU (h_zbit) = opval;
6800     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6801   }
6802   {
6803     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6804     CPU (h_vbit) = opval;
6805     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6806   }
6807 {
6808   {
6809     BI opval = 0;
6810     CPU (h_xbit) = opval;
6811     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6812   }
6813   {
6814     BI opval = 0;
6815     SET_H_INSN_PREFIXED_P (opval);
6816     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6817   }
6818 }
6819 }
6820 }
6821
6822   abuf->written = written;
6823 #undef FLD
6824 }
6825   NEXT (vpc);
6826
6827   CASE (sem, INSN_ADDUCBR) : /* [${Rs}${inc}],$Rd */
6828 {
6829   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6830   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6831 #define FLD(f) abuf->fields.sfmt_addcbr.f
6832   int UNUSED written = 0;
6833   IADDR UNUSED pc = abuf->addr;
6834   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6835
6836 {
6837   SI tmp_tmpopd;
6838   SI tmp_tmpops;
6839   BI tmp_carry;
6840   SI tmp_newval;
6841   tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
6842   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6843   tmp_carry = CPU (h_cbit);
6844   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6845   {
6846     SI opval = tmp_newval;
6847     SET_H_GR (FLD (f_operand2), opval);
6848     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6849   }
6850 {
6851   {
6852     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6853     CPU (h_cbit) = opval;
6854     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6855   }
6856   {
6857     BI opval = LTSI (tmp_newval, 0);
6858     CPU (h_nbit) = opval;
6859     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6860   }
6861   {
6862     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6863     CPU (h_zbit) = opval;
6864     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6865   }
6866   {
6867     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6868     CPU (h_vbit) = opval;
6869     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6870   }
6871 {
6872   {
6873     BI opval = 0;
6874     CPU (h_xbit) = opval;
6875     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6876   }
6877   {
6878     BI opval = 0;
6879     SET_H_INSN_PREFIXED_P (opval);
6880     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6881   }
6882 }
6883 }
6884 }
6885
6886 #undef FLD
6887 }
6888   NEXT (vpc);
6889
6890   CASE (sem, INSN_ADDUCWR) : /* [${Rs}${inc}],$Rd */
6891 {
6892   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6893   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6894 #define FLD(f) abuf->fields.sfmt_addcwr.f
6895   int UNUSED written = 0;
6896   IADDR UNUSED pc = abuf->addr;
6897   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6898
6899 {
6900   SI tmp_tmpopd;
6901   SI tmp_tmpops;
6902   BI tmp_carry;
6903   SI tmp_newval;
6904   tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
6905   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6906   tmp_carry = CPU (h_cbit);
6907   tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6908   {
6909     SI opval = tmp_newval;
6910     SET_H_GR (FLD (f_operand2), opval);
6911     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6912   }
6913 {
6914   {
6915     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), ORIF (ANDIF (LTSI (tmp_tmpopd, 0), GESI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_newval, 0))));
6916     CPU (h_cbit) = opval;
6917     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6918   }
6919   {
6920     BI opval = LTSI (tmp_newval, 0);
6921     CPU (h_nbit) = opval;
6922     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6923   }
6924   {
6925     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6926     CPU (h_zbit) = opval;
6927     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6928   }
6929   {
6930     BI opval = ORIF (ANDIF (ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (GESI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
6931     CPU (h_vbit) = opval;
6932     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6933   }
6934 {
6935   {
6936     BI opval = 0;
6937     CPU (h_xbit) = opval;
6938     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6939   }
6940   {
6941     BI opval = 0;
6942     SET_H_INSN_PREFIXED_P (opval);
6943     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6944   }
6945 }
6946 }
6947 }
6948
6949 #undef FLD
6950 }
6951   NEXT (vpc);
6952
6953   CASE (sem, INSN_SUB_B_R) : /* sub.b $Rs,$Rd */
6954 {
6955   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6956   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6957 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6958   int UNUSED written = 0;
6959   IADDR UNUSED pc = abuf->addr;
6960   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6961
6962 {
6963   QI tmp_tmpopd;
6964   QI tmp_tmpops;
6965   BI tmp_carry;
6966   QI tmp_newval;
6967   tmp_tmpops = GET_H_GR (FLD (f_operand1));
6968   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6969   tmp_carry = CPU (h_cbit);
6970   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6971 {
6972   SI tmp_oldregval;
6973   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
6974   {
6975     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
6976     SET_H_GR (FLD (f_operand2), opval);
6977     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6978   }
6979 }
6980 {
6981   {
6982     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
6983     CPU (h_cbit) = opval;
6984     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6985   }
6986   {
6987     BI opval = LTQI (tmp_newval, 0);
6988     CPU (h_nbit) = opval;
6989     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6990   }
6991   {
6992     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6993     CPU (h_zbit) = opval;
6994     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6995   }
6996   {
6997     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
6998     CPU (h_vbit) = opval;
6999     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7000   }
7001 {
7002   {
7003     BI opval = 0;
7004     CPU (h_xbit) = opval;
7005     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7006   }
7007   {
7008     BI opval = 0;
7009     SET_H_INSN_PREFIXED_P (opval);
7010     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7011   }
7012 }
7013 }
7014 }
7015
7016 #undef FLD
7017 }
7018   NEXT (vpc);
7019
7020   CASE (sem, INSN_SUB_W_R) : /* sub.w $Rs,$Rd */
7021 {
7022   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7023   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7024 #define FLD(f) abuf->fields.sfmt_add_b_r.f
7025   int UNUSED written = 0;
7026   IADDR UNUSED pc = abuf->addr;
7027   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7028
7029 {
7030   HI tmp_tmpopd;
7031   HI tmp_tmpops;
7032   BI tmp_carry;
7033   HI tmp_newval;
7034   tmp_tmpops = GET_H_GR (FLD (f_operand1));
7035   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7036   tmp_carry = CPU (h_cbit);
7037   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7038 {
7039   SI tmp_oldregval;
7040   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
7041   {
7042     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7043     SET_H_GR (FLD (f_operand2), opval);
7044     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7045   }
7046 }
7047 {
7048   {
7049     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
7050     CPU (h_cbit) = opval;
7051     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7052   }
7053   {
7054     BI opval = LTHI (tmp_newval, 0);
7055     CPU (h_nbit) = opval;
7056     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7057   }
7058   {
7059     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7060     CPU (h_zbit) = opval;
7061     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7062   }
7063   {
7064     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
7065     CPU (h_vbit) = opval;
7066     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7067   }
7068 {
7069   {
7070     BI opval = 0;
7071     CPU (h_xbit) = opval;
7072     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7073   }
7074   {
7075     BI opval = 0;
7076     SET_H_INSN_PREFIXED_P (opval);
7077     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7078   }
7079 }
7080 }
7081 }
7082
7083 #undef FLD
7084 }
7085   NEXT (vpc);
7086
7087   CASE (sem, INSN_SUB_D_R) : /* sub.d $Rs,$Rd */
7088 {
7089   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7090   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7091 #define FLD(f) abuf->fields.sfmt_add_b_r.f
7092   int UNUSED written = 0;
7093   IADDR UNUSED pc = abuf->addr;
7094   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7095
7096 {
7097   SI tmp_tmpopd;
7098   SI tmp_tmpops;
7099   BI tmp_carry;
7100   SI tmp_newval;
7101   tmp_tmpops = GET_H_GR (FLD (f_operand1));
7102   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7103   tmp_carry = CPU (h_cbit);
7104   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7105   {
7106     SI opval = tmp_newval;
7107     SET_H_GR (FLD (f_operand2), opval);
7108     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7109   }
7110 {
7111   {
7112     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7113     CPU (h_cbit) = opval;
7114     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7115   }
7116   {
7117     BI opval = LTSI (tmp_newval, 0);
7118     CPU (h_nbit) = opval;
7119     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7120   }
7121   {
7122     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7123     CPU (h_zbit) = opval;
7124     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7125   }
7126   {
7127     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7128     CPU (h_vbit) = opval;
7129     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7130   }
7131 {
7132   {
7133     BI opval = 0;
7134     CPU (h_xbit) = opval;
7135     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7136   }
7137   {
7138     BI opval = 0;
7139     SET_H_INSN_PREFIXED_P (opval);
7140     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7141   }
7142 }
7143 }
7144 }
7145
7146 #undef FLD
7147 }
7148   NEXT (vpc);
7149
7150   CASE (sem, INSN_SUB_M_B_M) : /* sub-m.b [${Rs}${inc}],${Rd} */
7151 {
7152   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7154 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7155   int UNUSED written = 0;
7156   IADDR UNUSED pc = abuf->addr;
7157   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7158
7159 {
7160   QI tmp_tmpopd;
7161   QI tmp_tmpops;
7162   BI tmp_carry;
7163   QI tmp_newval;
7164   tmp_tmpops = ({   SI tmp_addr;
7165   QI tmp_tmp_mem;
7166   BI tmp_postinc;
7167   tmp_postinc = FLD (f_memmode);
7168 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7169 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
7170 ; if (NEBI (tmp_postinc, 0)) {
7171 {
7172 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7173   tmp_addr = ADDSI (tmp_addr, 1);
7174 }
7175   {
7176     SI opval = tmp_addr;
7177     SET_H_GR (FLD (f_operand1), opval);
7178     written |= (1 << 12);
7179     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7180   }
7181 }
7182 }
7183 ; tmp_tmp_mem; });
7184   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7185   tmp_carry = CPU (h_cbit);
7186   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7187 {
7188   SI tmp_oldregval;
7189   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
7190   {
7191     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
7192     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7193     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7194   }
7195 }
7196 {
7197   {
7198     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
7199     CPU (h_cbit) = opval;
7200     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7201   }
7202   {
7203     BI opval = LTQI (tmp_newval, 0);
7204     CPU (h_nbit) = opval;
7205     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7206   }
7207   {
7208     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7209     CPU (h_zbit) = opval;
7210     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7211   }
7212   {
7213     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
7214     CPU (h_vbit) = opval;
7215     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7216   }
7217 {
7218   {
7219     BI opval = 0;
7220     CPU (h_xbit) = opval;
7221     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7222   }
7223   {
7224     BI opval = 0;
7225     SET_H_INSN_PREFIXED_P (opval);
7226     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7227   }
7228 }
7229 }
7230 }
7231
7232   abuf->written = written;
7233 #undef FLD
7234 }
7235   NEXT (vpc);
7236
7237   CASE (sem, INSN_SUB_M_W_M) : /* sub-m.w [${Rs}${inc}],${Rd} */
7238 {
7239   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7240   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7241 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7242   int UNUSED written = 0;
7243   IADDR UNUSED pc = abuf->addr;
7244   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7245
7246 {
7247   HI tmp_tmpopd;
7248   HI tmp_tmpops;
7249   BI tmp_carry;
7250   HI tmp_newval;
7251   tmp_tmpops = ({   SI tmp_addr;
7252   HI tmp_tmp_mem;
7253   BI tmp_postinc;
7254   tmp_postinc = FLD (f_memmode);
7255 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7256 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
7257 ; if (NEBI (tmp_postinc, 0)) {
7258 {
7259 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7260   tmp_addr = ADDSI (tmp_addr, 2);
7261 }
7262   {
7263     SI opval = tmp_addr;
7264     SET_H_GR (FLD (f_operand1), opval);
7265     written |= (1 << 12);
7266     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7267   }
7268 }
7269 }
7270 ; tmp_tmp_mem; });
7271   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7272   tmp_carry = CPU (h_cbit);
7273   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7274 {
7275   SI tmp_oldregval;
7276   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
7277   {
7278     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7279     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7280     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7281   }
7282 }
7283 {
7284   {
7285     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
7286     CPU (h_cbit) = opval;
7287     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7288   }
7289   {
7290     BI opval = LTHI (tmp_newval, 0);
7291     CPU (h_nbit) = opval;
7292     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7293   }
7294   {
7295     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7296     CPU (h_zbit) = opval;
7297     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7298   }
7299   {
7300     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
7301     CPU (h_vbit) = opval;
7302     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7303   }
7304 {
7305   {
7306     BI opval = 0;
7307     CPU (h_xbit) = opval;
7308     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7309   }
7310   {
7311     BI opval = 0;
7312     SET_H_INSN_PREFIXED_P (opval);
7313     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7314   }
7315 }
7316 }
7317 }
7318
7319   abuf->written = written;
7320 #undef FLD
7321 }
7322   NEXT (vpc);
7323
7324   CASE (sem, INSN_SUB_M_D_M) : /* sub-m.d [${Rs}${inc}],${Rd} */
7325 {
7326   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7327   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7328 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7329   int UNUSED written = 0;
7330   IADDR UNUSED pc = abuf->addr;
7331   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7332
7333 {
7334   SI tmp_tmpopd;
7335   SI tmp_tmpops;
7336   BI tmp_carry;
7337   SI tmp_newval;
7338   tmp_tmpops = ({   SI tmp_addr;
7339   SI tmp_tmp_mem;
7340   BI tmp_postinc;
7341   tmp_postinc = FLD (f_memmode);
7342 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7343 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
7344 ; if (NEBI (tmp_postinc, 0)) {
7345 {
7346 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7347   tmp_addr = ADDSI (tmp_addr, 4);
7348 }
7349   {
7350     SI opval = tmp_addr;
7351     SET_H_GR (FLD (f_operand1), opval);
7352     written |= (1 << 11);
7353     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7354   }
7355 }
7356 }
7357 ; tmp_tmp_mem; });
7358   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7359   tmp_carry = CPU (h_cbit);
7360   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7361   {
7362     SI opval = tmp_newval;
7363     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7364     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7365   }
7366 {
7367   {
7368     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7369     CPU (h_cbit) = opval;
7370     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7371   }
7372   {
7373     BI opval = LTSI (tmp_newval, 0);
7374     CPU (h_nbit) = opval;
7375     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7376   }
7377   {
7378     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7379     CPU (h_zbit) = opval;
7380     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7381   }
7382   {
7383     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7384     CPU (h_vbit) = opval;
7385     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7386   }
7387 {
7388   {
7389     BI opval = 0;
7390     CPU (h_xbit) = opval;
7391     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7392   }
7393   {
7394     BI opval = 0;
7395     SET_H_INSN_PREFIXED_P (opval);
7396     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7397   }
7398 }
7399 }
7400 }
7401
7402   abuf->written = written;
7403 #undef FLD
7404 }
7405   NEXT (vpc);
7406
7407   CASE (sem, INSN_SUBCBR) : /* sub.b ${sconst8}],${Rd} */
7408 {
7409   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7411 #define FLD(f) abuf->fields.sfmt_addcbr.f
7412   int UNUSED written = 0;
7413   IADDR UNUSED pc = abuf->addr;
7414   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7415
7416 {
7417   QI tmp_tmpopd;
7418   QI tmp_tmpops;
7419   BI tmp_carry;
7420   QI tmp_newval;
7421   tmp_tmpops = FLD (f_indir_pc__byte);
7422   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7423   tmp_carry = CPU (h_cbit);
7424   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7425 {
7426   SI tmp_oldregval;
7427   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
7428   {
7429     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
7430     SET_H_GR (FLD (f_operand2), opval);
7431     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7432   }
7433 }
7434 {
7435   {
7436     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
7437     CPU (h_cbit) = opval;
7438     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7439   }
7440   {
7441     BI opval = LTQI (tmp_newval, 0);
7442     CPU (h_nbit) = opval;
7443     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7444   }
7445   {
7446     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7447     CPU (h_zbit) = opval;
7448     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7449   }
7450   {
7451     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
7452     CPU (h_vbit) = opval;
7453     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7454   }
7455 {
7456   {
7457     BI opval = 0;
7458     CPU (h_xbit) = opval;
7459     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7460   }
7461   {
7462     BI opval = 0;
7463     SET_H_INSN_PREFIXED_P (opval);
7464     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7465   }
7466 }
7467 }
7468 }
7469
7470 #undef FLD
7471 }
7472   NEXT (vpc);
7473
7474   CASE (sem, INSN_SUBCWR) : /* sub.w ${sconst16}],${Rd} */
7475 {
7476   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7477   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7478 #define FLD(f) abuf->fields.sfmt_addcwr.f
7479   int UNUSED written = 0;
7480   IADDR UNUSED pc = abuf->addr;
7481   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7482
7483 {
7484   HI tmp_tmpopd;
7485   HI tmp_tmpops;
7486   BI tmp_carry;
7487   HI tmp_newval;
7488   tmp_tmpops = FLD (f_indir_pc__word);
7489   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7490   tmp_carry = CPU (h_cbit);
7491   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7492 {
7493   SI tmp_oldregval;
7494   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
7495   {
7496     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7497     SET_H_GR (FLD (f_operand2), opval);
7498     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7499   }
7500 }
7501 {
7502   {
7503     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
7504     CPU (h_cbit) = opval;
7505     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7506   }
7507   {
7508     BI opval = LTHI (tmp_newval, 0);
7509     CPU (h_nbit) = opval;
7510     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7511   }
7512   {
7513     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7514     CPU (h_zbit) = opval;
7515     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7516   }
7517   {
7518     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
7519     CPU (h_vbit) = opval;
7520     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7521   }
7522 {
7523   {
7524     BI opval = 0;
7525     CPU (h_xbit) = opval;
7526     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7527   }
7528   {
7529     BI opval = 0;
7530     SET_H_INSN_PREFIXED_P (opval);
7531     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7532   }
7533 }
7534 }
7535 }
7536
7537 #undef FLD
7538 }
7539   NEXT (vpc);
7540
7541   CASE (sem, INSN_SUBCDR) : /* sub.d ${const32}],${Rd} */
7542 {
7543   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7544   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7545 #define FLD(f) abuf->fields.sfmt_addcdr.f
7546   int UNUSED written = 0;
7547   IADDR UNUSED pc = abuf->addr;
7548   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
7549
7550 {
7551   SI tmp_tmpopd;
7552   SI tmp_tmpops;
7553   BI tmp_carry;
7554   SI tmp_newval;
7555   tmp_tmpops = FLD (f_indir_pc__dword);
7556   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7557   tmp_carry = CPU (h_cbit);
7558   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7559   {
7560     SI opval = tmp_newval;
7561     SET_H_GR (FLD (f_operand2), opval);
7562     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7563   }
7564 {
7565   {
7566     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7567     CPU (h_cbit) = opval;
7568     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7569   }
7570   {
7571     BI opval = LTSI (tmp_newval, 0);
7572     CPU (h_nbit) = opval;
7573     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7574   }
7575   {
7576     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7577     CPU (h_zbit) = opval;
7578     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7579   }
7580   {
7581     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7582     CPU (h_vbit) = opval;
7583     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7584   }
7585 {
7586   {
7587     BI opval = 0;
7588     CPU (h_xbit) = opval;
7589     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7590   }
7591   {
7592     BI opval = 0;
7593     SET_H_INSN_PREFIXED_P (opval);
7594     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7595   }
7596 }
7597 }
7598 }
7599
7600 #undef FLD
7601 }
7602   NEXT (vpc);
7603
7604   CASE (sem, INSN_SUBS_B_R) : /* subs.b $Rs,$Rd */
7605 {
7606   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7607   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7608 #define FLD(f) abuf->fields.sfmt_add_b_r.f
7609   int UNUSED written = 0;
7610   IADDR UNUSED pc = abuf->addr;
7611   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7612
7613 {
7614   SI tmp_tmpopd;
7615   SI tmp_tmpops;
7616   BI tmp_carry;
7617   SI tmp_newval;
7618   tmp_tmpops = EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
7619   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7620   tmp_carry = CPU (h_cbit);
7621   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7622   {
7623     SI opval = tmp_newval;
7624     SET_H_GR (FLD (f_operand2), opval);
7625     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7626   }
7627 {
7628   {
7629     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7630     CPU (h_cbit) = opval;
7631     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7632   }
7633   {
7634     BI opval = LTSI (tmp_newval, 0);
7635     CPU (h_nbit) = opval;
7636     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7637   }
7638   {
7639     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7640     CPU (h_zbit) = opval;
7641     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7642   }
7643   {
7644     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7645     CPU (h_vbit) = opval;
7646     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7647   }
7648 {
7649   {
7650     BI opval = 0;
7651     CPU (h_xbit) = opval;
7652     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7653   }
7654   {
7655     BI opval = 0;
7656     SET_H_INSN_PREFIXED_P (opval);
7657     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7658   }
7659 }
7660 }
7661 }
7662
7663 #undef FLD
7664 }
7665   NEXT (vpc);
7666
7667   CASE (sem, INSN_SUBS_W_R) : /* subs.w $Rs,$Rd */
7668 {
7669   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7670   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7671 #define FLD(f) abuf->fields.sfmt_add_b_r.f
7672   int UNUSED written = 0;
7673   IADDR UNUSED pc = abuf->addr;
7674   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7675
7676 {
7677   SI tmp_tmpopd;
7678   SI tmp_tmpops;
7679   BI tmp_carry;
7680   SI tmp_newval;
7681   tmp_tmpops = EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
7682   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7683   tmp_carry = CPU (h_cbit);
7684   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7685   {
7686     SI opval = tmp_newval;
7687     SET_H_GR (FLD (f_operand2), opval);
7688     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7689   }
7690 {
7691   {
7692     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7693     CPU (h_cbit) = opval;
7694     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7695   }
7696   {
7697     BI opval = LTSI (tmp_newval, 0);
7698     CPU (h_nbit) = opval;
7699     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7700   }
7701   {
7702     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7703     CPU (h_zbit) = opval;
7704     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7705   }
7706   {
7707     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7708     CPU (h_vbit) = opval;
7709     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7710   }
7711 {
7712   {
7713     BI opval = 0;
7714     CPU (h_xbit) = opval;
7715     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7716   }
7717   {
7718     BI opval = 0;
7719     SET_H_INSN_PREFIXED_P (opval);
7720     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7721   }
7722 }
7723 }
7724 }
7725
7726 #undef FLD
7727 }
7728   NEXT (vpc);
7729
7730   CASE (sem, INSN_SUBS_M_B_M) : /* subs-m.b [${Rs}${inc}],$Rd */
7731 {
7732   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7733   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7734 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7735   int UNUSED written = 0;
7736   IADDR UNUSED pc = abuf->addr;
7737   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7738
7739 {
7740   SI tmp_tmpopd;
7741   SI tmp_tmpops;
7742   BI tmp_carry;
7743   SI tmp_newval;
7744   tmp_tmpops = EXTQISI (({   SI tmp_addr;
7745   QI tmp_tmp_mem;
7746   BI tmp_postinc;
7747   tmp_postinc = FLD (f_memmode);
7748 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7749 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
7750 ; if (NEBI (tmp_postinc, 0)) {
7751 {
7752 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7753   tmp_addr = ADDSI (tmp_addr, 1);
7754 }
7755   {
7756     SI opval = tmp_addr;
7757     SET_H_GR (FLD (f_operand1), opval);
7758     written |= (1 << 11);
7759     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7760   }
7761 }
7762 }
7763 ; tmp_tmp_mem; }));
7764   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7765   tmp_carry = CPU (h_cbit);
7766   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7767   {
7768     SI opval = tmp_newval;
7769     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7770     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7771   }
7772 {
7773   {
7774     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7775     CPU (h_cbit) = opval;
7776     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7777   }
7778   {
7779     BI opval = LTSI (tmp_newval, 0);
7780     CPU (h_nbit) = opval;
7781     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7782   }
7783   {
7784     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7785     CPU (h_zbit) = opval;
7786     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7787   }
7788   {
7789     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7790     CPU (h_vbit) = opval;
7791     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7792   }
7793 {
7794   {
7795     BI opval = 0;
7796     CPU (h_xbit) = opval;
7797     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7798   }
7799   {
7800     BI opval = 0;
7801     SET_H_INSN_PREFIXED_P (opval);
7802     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7803   }
7804 }
7805 }
7806 }
7807
7808   abuf->written = written;
7809 #undef FLD
7810 }
7811   NEXT (vpc);
7812
7813   CASE (sem, INSN_SUBS_M_W_M) : /* subs-m.w [${Rs}${inc}],$Rd */
7814 {
7815   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7816   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7817 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7818   int UNUSED written = 0;
7819   IADDR UNUSED pc = abuf->addr;
7820   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7821
7822 {
7823   SI tmp_tmpopd;
7824   SI tmp_tmpops;
7825   BI tmp_carry;
7826   SI tmp_newval;
7827   tmp_tmpops = EXTHISI (({   SI tmp_addr;
7828   HI tmp_tmp_mem;
7829   BI tmp_postinc;
7830   tmp_postinc = FLD (f_memmode);
7831 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7832 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
7833 ; if (NEBI (tmp_postinc, 0)) {
7834 {
7835 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7836   tmp_addr = ADDSI (tmp_addr, 2);
7837 }
7838   {
7839     SI opval = tmp_addr;
7840     SET_H_GR (FLD (f_operand1), opval);
7841     written |= (1 << 11);
7842     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7843   }
7844 }
7845 }
7846 ; tmp_tmp_mem; }));
7847   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7848   tmp_carry = CPU (h_cbit);
7849   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7850   {
7851     SI opval = tmp_newval;
7852     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7853     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7854   }
7855 {
7856   {
7857     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7858     CPU (h_cbit) = opval;
7859     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7860   }
7861   {
7862     BI opval = LTSI (tmp_newval, 0);
7863     CPU (h_nbit) = opval;
7864     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7865   }
7866   {
7867     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7868     CPU (h_zbit) = opval;
7869     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7870   }
7871   {
7872     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7873     CPU (h_vbit) = opval;
7874     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7875   }
7876 {
7877   {
7878     BI opval = 0;
7879     CPU (h_xbit) = opval;
7880     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7881   }
7882   {
7883     BI opval = 0;
7884     SET_H_INSN_PREFIXED_P (opval);
7885     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7886   }
7887 }
7888 }
7889 }
7890
7891   abuf->written = written;
7892 #undef FLD
7893 }
7894   NEXT (vpc);
7895
7896   CASE (sem, INSN_SUBSCBR) : /* [${Rs}${inc}],$Rd */
7897 {
7898   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7899   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7900 #define FLD(f) abuf->fields.sfmt_addcbr.f
7901   int UNUSED written = 0;
7902   IADDR UNUSED pc = abuf->addr;
7903   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7904
7905 {
7906   SI tmp_tmpopd;
7907   SI tmp_tmpops;
7908   BI tmp_carry;
7909   SI tmp_newval;
7910   tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
7911   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7912   tmp_carry = CPU (h_cbit);
7913   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7914   {
7915     SI opval = tmp_newval;
7916     SET_H_GR (FLD (f_operand2), opval);
7917     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7918   }
7919 {
7920   {
7921     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7922     CPU (h_cbit) = opval;
7923     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7924   }
7925   {
7926     BI opval = LTSI (tmp_newval, 0);
7927     CPU (h_nbit) = opval;
7928     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7929   }
7930   {
7931     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7932     CPU (h_zbit) = opval;
7933     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7934   }
7935   {
7936     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
7937     CPU (h_vbit) = opval;
7938     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7939   }
7940 {
7941   {
7942     BI opval = 0;
7943     CPU (h_xbit) = opval;
7944     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7945   }
7946   {
7947     BI opval = 0;
7948     SET_H_INSN_PREFIXED_P (opval);
7949     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7950   }
7951 }
7952 }
7953 }
7954
7955 #undef FLD
7956 }
7957   NEXT (vpc);
7958
7959   CASE (sem, INSN_SUBSCWR) : /* [${Rs}${inc}],$Rd */
7960 {
7961   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7962   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7963 #define FLD(f) abuf->fields.sfmt_addcwr.f
7964   int UNUSED written = 0;
7965   IADDR UNUSED pc = abuf->addr;
7966   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7967
7968 {
7969   SI tmp_tmpopd;
7970   SI tmp_tmpops;
7971   BI tmp_carry;
7972   SI tmp_newval;
7973   tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
7974   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7975   tmp_carry = CPU (h_cbit);
7976   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7977   {
7978     SI opval = tmp_newval;
7979     SET_H_GR (FLD (f_operand2), opval);
7980     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7981   }
7982 {
7983   {
7984     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
7985     CPU (h_cbit) = opval;
7986     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7987   }
7988   {
7989     BI opval = LTSI (tmp_newval, 0);
7990     CPU (h_nbit) = opval;
7991     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7992   }
7993   {
7994     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7995     CPU (h_zbit) = opval;
7996     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7997   }
7998   {
7999     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8000     CPU (h_vbit) = opval;
8001     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8002   }
8003 {
8004   {
8005     BI opval = 0;
8006     CPU (h_xbit) = opval;
8007     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8008   }
8009   {
8010     BI opval = 0;
8011     SET_H_INSN_PREFIXED_P (opval);
8012     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8013   }
8014 }
8015 }
8016 }
8017
8018 #undef FLD
8019 }
8020   NEXT (vpc);
8021
8022   CASE (sem, INSN_SUBU_B_R) : /* subu.b $Rs,$Rd */
8023 {
8024   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8025   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8026 #define FLD(f) abuf->fields.sfmt_add_b_r.f
8027   int UNUSED written = 0;
8028   IADDR UNUSED pc = abuf->addr;
8029   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8030
8031 {
8032   SI tmp_tmpopd;
8033   SI tmp_tmpops;
8034   BI tmp_carry;
8035   SI tmp_newval;
8036   tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
8037   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8038   tmp_carry = CPU (h_cbit);
8039   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8040   {
8041     SI opval = tmp_newval;
8042     SET_H_GR (FLD (f_operand2), opval);
8043     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8044   }
8045 {
8046   {
8047     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8048     CPU (h_cbit) = opval;
8049     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8050   }
8051   {
8052     BI opval = LTSI (tmp_newval, 0);
8053     CPU (h_nbit) = opval;
8054     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8055   }
8056   {
8057     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8058     CPU (h_zbit) = opval;
8059     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8060   }
8061   {
8062     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8063     CPU (h_vbit) = opval;
8064     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8065   }
8066 {
8067   {
8068     BI opval = 0;
8069     CPU (h_xbit) = opval;
8070     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8071   }
8072   {
8073     BI opval = 0;
8074     SET_H_INSN_PREFIXED_P (opval);
8075     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8076   }
8077 }
8078 }
8079 }
8080
8081 #undef FLD
8082 }
8083   NEXT (vpc);
8084
8085   CASE (sem, INSN_SUBU_W_R) : /* subu.w $Rs,$Rd */
8086 {
8087   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8088   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8089 #define FLD(f) abuf->fields.sfmt_add_b_r.f
8090   int UNUSED written = 0;
8091   IADDR UNUSED pc = abuf->addr;
8092   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8093
8094 {
8095   SI tmp_tmpopd;
8096   SI tmp_tmpops;
8097   BI tmp_carry;
8098   SI tmp_newval;
8099   tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
8100   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8101   tmp_carry = CPU (h_cbit);
8102   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8103   {
8104     SI opval = tmp_newval;
8105     SET_H_GR (FLD (f_operand2), opval);
8106     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8107   }
8108 {
8109   {
8110     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8111     CPU (h_cbit) = opval;
8112     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8113   }
8114   {
8115     BI opval = LTSI (tmp_newval, 0);
8116     CPU (h_nbit) = opval;
8117     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8118   }
8119   {
8120     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8121     CPU (h_zbit) = opval;
8122     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8123   }
8124   {
8125     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8126     CPU (h_vbit) = opval;
8127     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8128   }
8129 {
8130   {
8131     BI opval = 0;
8132     CPU (h_xbit) = opval;
8133     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8134   }
8135   {
8136     BI opval = 0;
8137     SET_H_INSN_PREFIXED_P (opval);
8138     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8139   }
8140 }
8141 }
8142 }
8143
8144 #undef FLD
8145 }
8146   NEXT (vpc);
8147
8148   CASE (sem, INSN_SUBU_M_B_M) : /* subu-m.b [${Rs}${inc}],$Rd */
8149 {
8150   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8151   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8152 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
8153   int UNUSED written = 0;
8154   IADDR UNUSED pc = abuf->addr;
8155   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8156
8157 {
8158   SI tmp_tmpopd;
8159   SI tmp_tmpops;
8160   BI tmp_carry;
8161   SI tmp_newval;
8162   tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
8163   QI tmp_tmp_mem;
8164   BI tmp_postinc;
8165   tmp_postinc = FLD (f_memmode);
8166 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8167 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
8168 ; if (NEBI (tmp_postinc, 0)) {
8169 {
8170 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8171   tmp_addr = ADDSI (tmp_addr, 1);
8172 }
8173   {
8174     SI opval = tmp_addr;
8175     SET_H_GR (FLD (f_operand1), opval);
8176     written |= (1 << 11);
8177     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8178   }
8179 }
8180 }
8181 ; tmp_tmp_mem; }));
8182   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8183   tmp_carry = CPU (h_cbit);
8184   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8185   {
8186     SI opval = tmp_newval;
8187     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
8188     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8189   }
8190 {
8191   {
8192     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8193     CPU (h_cbit) = opval;
8194     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8195   }
8196   {
8197     BI opval = LTSI (tmp_newval, 0);
8198     CPU (h_nbit) = opval;
8199     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8200   }
8201   {
8202     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8203     CPU (h_zbit) = opval;
8204     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8205   }
8206   {
8207     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8208     CPU (h_vbit) = opval;
8209     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8210   }
8211 {
8212   {
8213     BI opval = 0;
8214     CPU (h_xbit) = opval;
8215     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8216   }
8217   {
8218     BI opval = 0;
8219     SET_H_INSN_PREFIXED_P (opval);
8220     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8221   }
8222 }
8223 }
8224 }
8225
8226   abuf->written = written;
8227 #undef FLD
8228 }
8229   NEXT (vpc);
8230
8231   CASE (sem, INSN_SUBU_M_W_M) : /* subu-m.w [${Rs}${inc}],$Rd */
8232 {
8233   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8235 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
8236   int UNUSED written = 0;
8237   IADDR UNUSED pc = abuf->addr;
8238   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8239
8240 {
8241   SI tmp_tmpopd;
8242   SI tmp_tmpops;
8243   BI tmp_carry;
8244   SI tmp_newval;
8245   tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
8246   HI tmp_tmp_mem;
8247   BI tmp_postinc;
8248   tmp_postinc = FLD (f_memmode);
8249 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8250 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
8251 ; if (NEBI (tmp_postinc, 0)) {
8252 {
8253 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8254   tmp_addr = ADDSI (tmp_addr, 2);
8255 }
8256   {
8257     SI opval = tmp_addr;
8258     SET_H_GR (FLD (f_operand1), opval);
8259     written |= (1 << 11);
8260     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8261   }
8262 }
8263 }
8264 ; tmp_tmp_mem; }));
8265   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8266   tmp_carry = CPU (h_cbit);
8267   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8268   {
8269     SI opval = tmp_newval;
8270     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
8271     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8272   }
8273 {
8274   {
8275     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8276     CPU (h_cbit) = opval;
8277     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8278   }
8279   {
8280     BI opval = LTSI (tmp_newval, 0);
8281     CPU (h_nbit) = opval;
8282     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8283   }
8284   {
8285     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8286     CPU (h_zbit) = opval;
8287     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8288   }
8289   {
8290     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8291     CPU (h_vbit) = opval;
8292     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8293   }
8294 {
8295   {
8296     BI opval = 0;
8297     CPU (h_xbit) = opval;
8298     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8299   }
8300   {
8301     BI opval = 0;
8302     SET_H_INSN_PREFIXED_P (opval);
8303     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8304   }
8305 }
8306 }
8307 }
8308
8309   abuf->written = written;
8310 #undef FLD
8311 }
8312   NEXT (vpc);
8313
8314   CASE (sem, INSN_SUBUCBR) : /* [${Rs}${inc}],$Rd */
8315 {
8316   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8317   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8318 #define FLD(f) abuf->fields.sfmt_addcbr.f
8319   int UNUSED written = 0;
8320   IADDR UNUSED pc = abuf->addr;
8321   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8322
8323 {
8324   SI tmp_tmpopd;
8325   SI tmp_tmpops;
8326   BI tmp_carry;
8327   SI tmp_newval;
8328   tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
8329   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8330   tmp_carry = CPU (h_cbit);
8331   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8332   {
8333     SI opval = tmp_newval;
8334     SET_H_GR (FLD (f_operand2), opval);
8335     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8336   }
8337 {
8338   {
8339     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8340     CPU (h_cbit) = opval;
8341     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8342   }
8343   {
8344     BI opval = LTSI (tmp_newval, 0);
8345     CPU (h_nbit) = opval;
8346     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8347   }
8348   {
8349     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8350     CPU (h_zbit) = opval;
8351     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8352   }
8353   {
8354     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8355     CPU (h_vbit) = opval;
8356     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8357   }
8358 {
8359   {
8360     BI opval = 0;
8361     CPU (h_xbit) = opval;
8362     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8363   }
8364   {
8365     BI opval = 0;
8366     SET_H_INSN_PREFIXED_P (opval);
8367     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8368   }
8369 }
8370 }
8371 }
8372
8373 #undef FLD
8374 }
8375   NEXT (vpc);
8376
8377   CASE (sem, INSN_SUBUCWR) : /* [${Rs}${inc}],$Rd */
8378 {
8379   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8380   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8381 #define FLD(f) abuf->fields.sfmt_addcwr.f
8382   int UNUSED written = 0;
8383   IADDR UNUSED pc = abuf->addr;
8384   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8385
8386 {
8387   SI tmp_tmpopd;
8388   SI tmp_tmpops;
8389   BI tmp_carry;
8390   SI tmp_newval;
8391   tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
8392   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8393   tmp_carry = CPU (h_cbit);
8394   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8395   {
8396     SI opval = tmp_newval;
8397     SET_H_GR (FLD (f_operand2), opval);
8398     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8399   }
8400 {
8401   {
8402     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8403     CPU (h_cbit) = opval;
8404     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8405   }
8406   {
8407     BI opval = LTSI (tmp_newval, 0);
8408     CPU (h_nbit) = opval;
8409     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8410   }
8411   {
8412     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8413     CPU (h_zbit) = opval;
8414     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8415   }
8416   {
8417     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8418     CPU (h_vbit) = opval;
8419     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8420   }
8421 {
8422   {
8423     BI opval = 0;
8424     CPU (h_xbit) = opval;
8425     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8426   }
8427   {
8428     BI opval = 0;
8429     SET_H_INSN_PREFIXED_P (opval);
8430     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8431   }
8432 }
8433 }
8434 }
8435
8436 #undef FLD
8437 }
8438   NEXT (vpc);
8439
8440   CASE (sem, INSN_ADDI_B_R) : /* addi.b ${Rs-dfield}.m,${Rd-sfield} */
8441 {
8442   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8443   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8444 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8445   int UNUSED written = 0;
8446   IADDR UNUSED pc = abuf->addr;
8447   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8448
8449 {
8450   {
8451     SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 1));
8452     SET_H_GR (FLD (f_operand1), opval);
8453     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8454   }
8455 {
8456   {
8457     BI opval = 0;
8458     CPU (h_xbit) = opval;
8459     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8460   }
8461   {
8462     BI opval = 0;
8463     SET_H_INSN_PREFIXED_P (opval);
8464     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8465   }
8466 }
8467 }
8468
8469 #undef FLD
8470 }
8471   NEXT (vpc);
8472
8473   CASE (sem, INSN_ADDI_W_R) : /* addi.w ${Rs-dfield}.m,${Rd-sfield} */
8474 {
8475   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8476   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8477 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8478   int UNUSED written = 0;
8479   IADDR UNUSED pc = abuf->addr;
8480   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8481
8482 {
8483   {
8484     SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 2));
8485     SET_H_GR (FLD (f_operand1), opval);
8486     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8487   }
8488 {
8489   {
8490     BI opval = 0;
8491     CPU (h_xbit) = opval;
8492     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8493   }
8494   {
8495     BI opval = 0;
8496     SET_H_INSN_PREFIXED_P (opval);
8497     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8498   }
8499 }
8500 }
8501
8502 #undef FLD
8503 }
8504   NEXT (vpc);
8505
8506   CASE (sem, INSN_ADDI_D_R) : /* addi.d ${Rs-dfield}.m,${Rd-sfield} */
8507 {
8508   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8510 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8511   int UNUSED written = 0;
8512   IADDR UNUSED pc = abuf->addr;
8513   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8514
8515 {
8516   {
8517     SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 4));
8518     SET_H_GR (FLD (f_operand1), opval);
8519     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8520   }
8521 {
8522   {
8523     BI opval = 0;
8524     CPU (h_xbit) = opval;
8525     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8526   }
8527   {
8528     BI opval = 0;
8529     SET_H_INSN_PREFIXED_P (opval);
8530     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8531   }
8532 }
8533 }
8534
8535 #undef FLD
8536 }
8537   NEXT (vpc);
8538
8539   CASE (sem, INSN_NEG_B_R) : /* neg.b $Rs,$Rd */
8540 {
8541   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8542   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8543 #define FLD(f) abuf->fields.sfmt_add_b_r.f
8544   int UNUSED written = 0;
8545   IADDR UNUSED pc = abuf->addr;
8546   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8547
8548 {
8549   QI tmp_tmpopd;
8550   QI tmp_tmpops;
8551   BI tmp_carry;
8552   QI tmp_newval;
8553   tmp_tmpops = GET_H_GR (FLD (f_operand1));
8554   tmp_tmpopd = 0;
8555   tmp_carry = CPU (h_cbit);
8556   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8557 {
8558   SI tmp_oldregval;
8559   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
8560   {
8561     SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
8562     SET_H_GR (FLD (f_operand2), opval);
8563     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8564   }
8565 }
8566 {
8567   {
8568     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
8569     CPU (h_cbit) = opval;
8570     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8571   }
8572   {
8573     BI opval = LTQI (tmp_newval, 0);
8574     CPU (h_nbit) = opval;
8575     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8576   }
8577   {
8578     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8579     CPU (h_zbit) = opval;
8580     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8581   }
8582   {
8583     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
8584     CPU (h_vbit) = opval;
8585     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8586   }
8587 {
8588   {
8589     BI opval = 0;
8590     CPU (h_xbit) = opval;
8591     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8592   }
8593   {
8594     BI opval = 0;
8595     SET_H_INSN_PREFIXED_P (opval);
8596     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8597   }
8598 }
8599 }
8600 }
8601
8602 #undef FLD
8603 }
8604   NEXT (vpc);
8605
8606   CASE (sem, INSN_NEG_W_R) : /* neg.w $Rs,$Rd */
8607 {
8608   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8609   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8610 #define FLD(f) abuf->fields.sfmt_add_b_r.f
8611   int UNUSED written = 0;
8612   IADDR UNUSED pc = abuf->addr;
8613   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8614
8615 {
8616   HI tmp_tmpopd;
8617   HI tmp_tmpops;
8618   BI tmp_carry;
8619   HI tmp_newval;
8620   tmp_tmpops = GET_H_GR (FLD (f_operand1));
8621   tmp_tmpopd = 0;
8622   tmp_carry = CPU (h_cbit);
8623   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8624 {
8625   SI tmp_oldregval;
8626   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
8627   {
8628     SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
8629     SET_H_GR (FLD (f_operand2), opval);
8630     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8631   }
8632 }
8633 {
8634   {
8635     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
8636     CPU (h_cbit) = opval;
8637     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8638   }
8639   {
8640     BI opval = LTHI (tmp_newval, 0);
8641     CPU (h_nbit) = opval;
8642     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8643   }
8644   {
8645     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8646     CPU (h_zbit) = opval;
8647     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8648   }
8649   {
8650     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
8651     CPU (h_vbit) = opval;
8652     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8653   }
8654 {
8655   {
8656     BI opval = 0;
8657     CPU (h_xbit) = opval;
8658     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8659   }
8660   {
8661     BI opval = 0;
8662     SET_H_INSN_PREFIXED_P (opval);
8663     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8664   }
8665 }
8666 }
8667 }
8668
8669 #undef FLD
8670 }
8671   NEXT (vpc);
8672
8673   CASE (sem, INSN_NEG_D_R) : /* neg.d $Rs,$Rd */
8674 {
8675   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8676   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8677 #define FLD(f) abuf->fields.sfmt_add_b_r.f
8678   int UNUSED written = 0;
8679   IADDR UNUSED pc = abuf->addr;
8680   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8681
8682 {
8683   SI tmp_tmpopd;
8684   SI tmp_tmpops;
8685   BI tmp_carry;
8686   SI tmp_newval;
8687   tmp_tmpops = GET_H_GR (FLD (f_operand1));
8688   tmp_tmpopd = 0;
8689   tmp_carry = CPU (h_cbit);
8690   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8691   {
8692     SI opval = tmp_newval;
8693     SET_H_GR (FLD (f_operand2), opval);
8694     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8695   }
8696 {
8697   {
8698     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8699     CPU (h_cbit) = opval;
8700     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8701   }
8702   {
8703     BI opval = LTSI (tmp_newval, 0);
8704     CPU (h_nbit) = opval;
8705     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8706   }
8707   {
8708     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8709     CPU (h_zbit) = opval;
8710     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8711   }
8712   {
8713     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8714     CPU (h_vbit) = opval;
8715     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8716   }
8717 {
8718   {
8719     BI opval = 0;
8720     CPU (h_xbit) = opval;
8721     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8722   }
8723   {
8724     BI opval = 0;
8725     SET_H_INSN_PREFIXED_P (opval);
8726     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8727   }
8728 }
8729 }
8730 }
8731
8732 #undef FLD
8733 }
8734   NEXT (vpc);
8735
8736   CASE (sem, INSN_TEST_M_B_M) : /* test-m.b [${Rs}${inc}] */
8737 {
8738   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8739   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8740 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
8741   int UNUSED written = 0;
8742   IADDR UNUSED pc = abuf->addr;
8743   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8744
8745 {
8746   QI tmp_tmpd;
8747   tmp_tmpd = ({   SI tmp_addr;
8748   QI tmp_tmp_mem;
8749   BI tmp_postinc;
8750   tmp_postinc = FLD (f_memmode);
8751 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8752 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
8753 ; if (NEBI (tmp_postinc, 0)) {
8754 {
8755 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8756   tmp_addr = ADDSI (tmp_addr, 1);
8757 }
8758   {
8759     SI opval = tmp_addr;
8760     SET_H_GR (FLD (f_operand1), opval);
8761     written |= (1 << 8);
8762     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8763   }
8764 }
8765 }
8766 ; tmp_tmp_mem; });
8767 {
8768   QI tmp_tmpopd;
8769   QI tmp_tmpops;
8770   BI tmp_carry;
8771   QI tmp_newval;
8772   tmp_tmpops = 0;
8773   tmp_tmpopd = tmp_tmpd;
8774   tmp_carry = CPU (h_cbit);
8775   tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8776 ((void) 0); /*nop*/
8777 {
8778   {
8779     BI opval = ORIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), ORIF (ANDIF (GEQI (tmp_tmpopd, 0), LTQI (tmp_newval, 0)), ANDIF (LTQI (tmp_tmpops, 0), LTQI (tmp_newval, 0))));
8780     CPU (h_cbit) = opval;
8781     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8782   }
8783   {
8784     BI opval = LTQI (tmp_newval, 0);
8785     CPU (h_nbit) = opval;
8786     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8787   }
8788   {
8789     BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8790     CPU (h_zbit) = opval;
8791     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8792   }
8793   {
8794     BI opval = ORIF (ANDIF (ANDIF (GEQI (tmp_tmpops, 0), LTQI (tmp_tmpopd, 0)), GEQI (tmp_newval, 0)), ANDIF (ANDIF (LTQI (tmp_tmpops, 0), GEQI (tmp_tmpopd, 0)), LTQI (tmp_newval, 0)));
8795     CPU (h_vbit) = opval;
8796     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8797   }
8798 {
8799   {
8800     BI opval = 0;
8801     CPU (h_xbit) = opval;
8802     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8803   }
8804   {
8805     BI opval = 0;
8806     SET_H_INSN_PREFIXED_P (opval);
8807     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8808   }
8809 }
8810 }
8811 }
8812 }
8813
8814   abuf->written = written;
8815 #undef FLD
8816 }
8817   NEXT (vpc);
8818
8819   CASE (sem, INSN_TEST_M_W_M) : /* test-m.w [${Rs}${inc}] */
8820 {
8821   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8822   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8823 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
8824   int UNUSED written = 0;
8825   IADDR UNUSED pc = abuf->addr;
8826   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8827
8828 {
8829   HI tmp_tmpd;
8830   tmp_tmpd = ({   SI tmp_addr;
8831   HI tmp_tmp_mem;
8832   BI tmp_postinc;
8833   tmp_postinc = FLD (f_memmode);
8834 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8835 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
8836 ; if (NEBI (tmp_postinc, 0)) {
8837 {
8838 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8839   tmp_addr = ADDSI (tmp_addr, 2);
8840 }
8841   {
8842     SI opval = tmp_addr;
8843     SET_H_GR (FLD (f_operand1), opval);
8844     written |= (1 << 8);
8845     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8846   }
8847 }
8848 }
8849 ; tmp_tmp_mem; });
8850 {
8851   HI tmp_tmpopd;
8852   HI tmp_tmpops;
8853   BI tmp_carry;
8854   HI tmp_newval;
8855   tmp_tmpops = 0;
8856   tmp_tmpopd = tmp_tmpd;
8857   tmp_carry = CPU (h_cbit);
8858   tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8859 ((void) 0); /*nop*/
8860 {
8861   {
8862     BI opval = ORIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), ORIF (ANDIF (GEHI (tmp_tmpopd, 0), LTHI (tmp_newval, 0)), ANDIF (LTHI (tmp_tmpops, 0), LTHI (tmp_newval, 0))));
8863     CPU (h_cbit) = opval;
8864     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8865   }
8866   {
8867     BI opval = LTHI (tmp_newval, 0);
8868     CPU (h_nbit) = opval;
8869     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8870   }
8871   {
8872     BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8873     CPU (h_zbit) = opval;
8874     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8875   }
8876   {
8877     BI opval = ORIF (ANDIF (ANDIF (GEHI (tmp_tmpops, 0), LTHI (tmp_tmpopd, 0)), GEHI (tmp_newval, 0)), ANDIF (ANDIF (LTHI (tmp_tmpops, 0), GEHI (tmp_tmpopd, 0)), LTHI (tmp_newval, 0)));
8878     CPU (h_vbit) = opval;
8879     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8880   }
8881 {
8882   {
8883     BI opval = 0;
8884     CPU (h_xbit) = opval;
8885     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8886   }
8887   {
8888     BI opval = 0;
8889     SET_H_INSN_PREFIXED_P (opval);
8890     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8891   }
8892 }
8893 }
8894 }
8895 }
8896
8897   abuf->written = written;
8898 #undef FLD
8899 }
8900   NEXT (vpc);
8901
8902   CASE (sem, INSN_TEST_M_D_M) : /* test-m.d [${Rs}${inc}] */
8903 {
8904   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8905   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8906 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
8907   int UNUSED written = 0;
8908   IADDR UNUSED pc = abuf->addr;
8909   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8910
8911 {
8912   SI tmp_tmpd;
8913   tmp_tmpd = ({   SI tmp_addr;
8914   SI tmp_tmp_mem;
8915   BI tmp_postinc;
8916   tmp_postinc = FLD (f_memmode);
8917 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8918 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
8919 ; if (NEBI (tmp_postinc, 0)) {
8920 {
8921 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8922   tmp_addr = ADDSI (tmp_addr, 4);
8923 }
8924   {
8925     SI opval = tmp_addr;
8926     SET_H_GR (FLD (f_operand1), opval);
8927     written |= (1 << 8);
8928     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8929   }
8930 }
8931 }
8932 ; tmp_tmp_mem; });
8933 {
8934   SI tmp_tmpopd;
8935   SI tmp_tmpops;
8936   BI tmp_carry;
8937   SI tmp_newval;
8938   tmp_tmpops = 0;
8939   tmp_tmpopd = tmp_tmpd;
8940   tmp_carry = CPU (h_cbit);
8941   tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8942 ((void) 0); /*nop*/
8943 {
8944   {
8945     BI opval = ORIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), ORIF (ANDIF (GESI (tmp_tmpopd, 0), LTSI (tmp_newval, 0)), ANDIF (LTSI (tmp_tmpops, 0), LTSI (tmp_newval, 0))));
8946     CPU (h_cbit) = opval;
8947     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8948   }
8949   {
8950     BI opval = LTSI (tmp_newval, 0);
8951     CPU (h_nbit) = opval;
8952     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8953   }
8954   {
8955     BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8956     CPU (h_zbit) = opval;
8957     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8958   }
8959   {
8960     BI opval = ORIF (ANDIF (ANDIF (GESI (tmp_tmpops, 0), LTSI (tmp_tmpopd, 0)), GESI (tmp_newval, 0)), ANDIF (ANDIF (LTSI (tmp_tmpops, 0), GESI (tmp_tmpopd, 0)), LTSI (tmp_newval, 0)));
8961     CPU (h_vbit) = opval;
8962     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8963   }
8964 {
8965   {
8966     BI opval = 0;
8967     CPU (h_xbit) = opval;
8968     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8969   }
8970   {
8971     BI opval = 0;
8972     SET_H_INSN_PREFIXED_P (opval);
8973     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8974   }
8975 }
8976 }
8977 }
8978 }
8979
8980   abuf->written = written;
8981 #undef FLD
8982 }
8983   NEXT (vpc);
8984
8985   CASE (sem, INSN_MOVE_R_M_B_M) : /* move-r-m.b ${Rs-dfield},[${Rd-sfield}${inc}] */
8986 {
8987   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8988   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8989 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8990   int UNUSED written = 0;
8991   IADDR UNUSED pc = abuf->addr;
8992   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8993
8994 {
8995   QI tmp_tmpd;
8996   tmp_tmpd = GET_H_GR (FLD (f_operand2));
8997 {
8998   SI tmp_addr;
8999   BI tmp_postinc;
9000   tmp_postinc = FLD (f_memmode);
9001   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9002 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9003 if (EQBI (CPU (h_pbit), 0)) {
9004 {
9005   {
9006     QI opval = tmp_tmpd;
9007     SETMEMQI (current_cpu, pc, tmp_addr, opval);
9008     written |= (1 << 10);
9009     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9010   }
9011   {
9012     BI opval = CPU (h_pbit);
9013     CPU (h_cbit) = opval;
9014     written |= (1 << 9);
9015     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9016   }
9017 }
9018 } else {
9019   {
9020     BI opval = 1;
9021     CPU (h_cbit) = opval;
9022     written |= (1 << 9);
9023     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9024   }
9025 }
9026 } else {
9027   {
9028     QI opval = tmp_tmpd;
9029     SETMEMQI (current_cpu, pc, tmp_addr, opval);
9030     written |= (1 << 10);
9031     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9032   }
9033 }
9034 if (NEBI (tmp_postinc, 0)) {
9035 {
9036 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9037   tmp_addr = ADDSI (tmp_addr, 1);
9038 }
9039   {
9040     SI opval = tmp_addr;
9041     SET_H_GR (FLD (f_operand1), opval);
9042     written |= (1 << 8);
9043     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9044   }
9045 }
9046 }
9047 }
9048 {
9049   {
9050     BI opval = 0;
9051     CPU (h_xbit) = opval;
9052     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9053   }
9054   {
9055     BI opval = 0;
9056     SET_H_INSN_PREFIXED_P (opval);
9057     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9058   }
9059 }
9060 }
9061
9062   abuf->written = written;
9063 #undef FLD
9064 }
9065   NEXT (vpc);
9066
9067   CASE (sem, INSN_MOVE_R_M_W_M) : /* move-r-m.w ${Rs-dfield},[${Rd-sfield}${inc}] */
9068 {
9069   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9070   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9071 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
9072   int UNUSED written = 0;
9073   IADDR UNUSED pc = abuf->addr;
9074   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9075
9076 {
9077   HI tmp_tmpd;
9078   tmp_tmpd = GET_H_GR (FLD (f_operand2));
9079 {
9080   SI tmp_addr;
9081   BI tmp_postinc;
9082   tmp_postinc = FLD (f_memmode);
9083   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9084 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9085 if (EQBI (CPU (h_pbit), 0)) {
9086 {
9087   {
9088     HI opval = tmp_tmpd;
9089     SETMEMHI (current_cpu, pc, tmp_addr, opval);
9090     written |= (1 << 10);
9091     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9092   }
9093   {
9094     BI opval = CPU (h_pbit);
9095     CPU (h_cbit) = opval;
9096     written |= (1 << 9);
9097     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9098   }
9099 }
9100 } else {
9101   {
9102     BI opval = 1;
9103     CPU (h_cbit) = opval;
9104     written |= (1 << 9);
9105     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9106   }
9107 }
9108 } else {
9109   {
9110     HI opval = tmp_tmpd;
9111     SETMEMHI (current_cpu, pc, tmp_addr, opval);
9112     written |= (1 << 10);
9113     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9114   }
9115 }
9116 if (NEBI (tmp_postinc, 0)) {
9117 {
9118 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9119   tmp_addr = ADDSI (tmp_addr, 2);
9120 }
9121   {
9122     SI opval = tmp_addr;
9123     SET_H_GR (FLD (f_operand1), opval);
9124     written |= (1 << 8);
9125     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9126   }
9127 }
9128 }
9129 }
9130 {
9131   {
9132     BI opval = 0;
9133     CPU (h_xbit) = opval;
9134     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9135   }
9136   {
9137     BI opval = 0;
9138     SET_H_INSN_PREFIXED_P (opval);
9139     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9140   }
9141 }
9142 }
9143
9144   abuf->written = written;
9145 #undef FLD
9146 }
9147   NEXT (vpc);
9148
9149   CASE (sem, INSN_MOVE_R_M_D_M) : /* move-r-m.d ${Rs-dfield},[${Rd-sfield}${inc}] */
9150 {
9151   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9152   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9153 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
9154   int UNUSED written = 0;
9155   IADDR UNUSED pc = abuf->addr;
9156   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9157
9158 {
9159   SI tmp_tmpd;
9160   tmp_tmpd = GET_H_GR (FLD (f_operand2));
9161 {
9162   SI tmp_addr;
9163   BI tmp_postinc;
9164   tmp_postinc = FLD (f_memmode);
9165   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9166 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9167 if (EQBI (CPU (h_pbit), 0)) {
9168 {
9169   {
9170     SI opval = tmp_tmpd;
9171     SETMEMSI (current_cpu, pc, tmp_addr, opval);
9172     written |= (1 << 10);
9173     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9174   }
9175   {
9176     BI opval = CPU (h_pbit);
9177     CPU (h_cbit) = opval;
9178     written |= (1 << 9);
9179     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9180   }
9181 }
9182 } else {
9183   {
9184     BI opval = 1;
9185     CPU (h_cbit) = opval;
9186     written |= (1 << 9);
9187     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9188   }
9189 }
9190 } else {
9191   {
9192     SI opval = tmp_tmpd;
9193     SETMEMSI (current_cpu, pc, tmp_addr, opval);
9194     written |= (1 << 10);
9195     TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9196   }
9197 }
9198 if (NEBI (tmp_postinc, 0)) {
9199 {
9200 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9201   tmp_addr = ADDSI (tmp_addr, 4);
9202 }
9203   {
9204     SI opval = tmp_addr;
9205     SET_H_GR (FLD (f_operand1), opval);
9206     written |= (1 << 8);
9207     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9208   }
9209 }
9210 }
9211 }
9212 {
9213   {
9214     BI opval = 0;
9215     CPU (h_xbit) = opval;
9216     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9217   }
9218   {
9219     BI opval = 0;
9220     SET_H_INSN_PREFIXED_P (opval);
9221     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9222   }
9223 }
9224 }
9225
9226   abuf->written = written;
9227 #undef FLD
9228 }
9229   NEXT (vpc);
9230
9231   CASE (sem, INSN_MULS_B) : /* muls.b $Rs,$Rd */
9232 {
9233   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9234   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9235 #define FLD(f) abuf->fields.sfmt_muls_b.f
9236   int UNUSED written = 0;
9237   IADDR UNUSED pc = abuf->addr;
9238   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9239
9240 {
9241   DI tmp_src1;
9242   DI tmp_src2;
9243   DI tmp_tmpr;
9244   tmp_src1 = EXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
9245   tmp_src2 = EXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand2))));
9246   tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9247   {
9248     SI opval = TRUNCDISI (tmp_tmpr);
9249     SET_H_GR (FLD (f_operand2), opval);
9250     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9251   }
9252   {
9253     SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9254     SET_H_SR (((UINT) 7), opval);
9255     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9256   }
9257 {
9258   {
9259     BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9260     CPU (h_cbit) = opval;
9261     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9262   }
9263   {
9264     BI opval = LTDI (tmp_tmpr, 0);
9265     CPU (h_nbit) = opval;
9266     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9267   }
9268   {
9269     BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9270     CPU (h_zbit) = opval;
9271     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9272   }
9273   {
9274     BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9275     CPU (h_vbit) = opval;
9276     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9277   }
9278 {
9279   {
9280     BI opval = 0;
9281     CPU (h_xbit) = opval;
9282     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9283   }
9284   {
9285     BI opval = 0;
9286     SET_H_INSN_PREFIXED_P (opval);
9287     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9288   }
9289 }
9290 }
9291 }
9292
9293 #undef FLD
9294 }
9295   NEXT (vpc);
9296
9297   CASE (sem, INSN_MULS_W) : /* muls.w $Rs,$Rd */
9298 {
9299   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9300   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9301 #define FLD(f) abuf->fields.sfmt_muls_b.f
9302   int UNUSED written = 0;
9303   IADDR UNUSED pc = abuf->addr;
9304   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9305
9306 {
9307   DI tmp_src1;
9308   DI tmp_src2;
9309   DI tmp_tmpr;
9310   tmp_src1 = EXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
9311   tmp_src2 = EXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand2))));
9312   tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9313   {
9314     SI opval = TRUNCDISI (tmp_tmpr);
9315     SET_H_GR (FLD (f_operand2), opval);
9316     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9317   }
9318   {
9319     SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9320     SET_H_SR (((UINT) 7), opval);
9321     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9322   }
9323 {
9324   {
9325     BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9326     CPU (h_cbit) = opval;
9327     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9328   }
9329   {
9330     BI opval = LTDI (tmp_tmpr, 0);
9331     CPU (h_nbit) = opval;
9332     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9333   }
9334   {
9335     BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9336     CPU (h_zbit) = opval;
9337     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9338   }
9339   {
9340     BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9341     CPU (h_vbit) = opval;
9342     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9343   }
9344 {
9345   {
9346     BI opval = 0;
9347     CPU (h_xbit) = opval;
9348     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9349   }
9350   {
9351     BI opval = 0;
9352     SET_H_INSN_PREFIXED_P (opval);
9353     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9354   }
9355 }
9356 }
9357 }
9358
9359 #undef FLD
9360 }
9361   NEXT (vpc);
9362
9363   CASE (sem, INSN_MULS_D) : /* muls.d $Rs,$Rd */
9364 {
9365   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9366   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9367 #define FLD(f) abuf->fields.sfmt_muls_b.f
9368   int UNUSED written = 0;
9369   IADDR UNUSED pc = abuf->addr;
9370   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9371
9372 {
9373   DI tmp_src1;
9374   DI tmp_src2;
9375   DI tmp_tmpr;
9376   tmp_src1 = EXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand1))));
9377   tmp_src2 = EXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand2))));
9378   tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9379   {
9380     SI opval = TRUNCDISI (tmp_tmpr);
9381     SET_H_GR (FLD (f_operand2), opval);
9382     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9383   }
9384   {
9385     SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9386     SET_H_SR (((UINT) 7), opval);
9387     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9388   }
9389 {
9390   {
9391     BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9392     CPU (h_cbit) = opval;
9393     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9394   }
9395   {
9396     BI opval = LTDI (tmp_tmpr, 0);
9397     CPU (h_nbit) = opval;
9398     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9399   }
9400   {
9401     BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9402     CPU (h_zbit) = opval;
9403     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9404   }
9405   {
9406     BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9407     CPU (h_vbit) = opval;
9408     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9409   }
9410 {
9411   {
9412     BI opval = 0;
9413     CPU (h_xbit) = opval;
9414     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9415   }
9416   {
9417     BI opval = 0;
9418     SET_H_INSN_PREFIXED_P (opval);
9419     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9420   }
9421 }
9422 }
9423 }
9424
9425 #undef FLD
9426 }
9427   NEXT (vpc);
9428
9429   CASE (sem, INSN_MULU_B) : /* mulu.b $Rs,$Rd */
9430 {
9431   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9432   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9433 #define FLD(f) abuf->fields.sfmt_muls_b.f
9434   int UNUSED written = 0;
9435   IADDR UNUSED pc = abuf->addr;
9436   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9437
9438 {
9439   DI tmp_src1;
9440   DI tmp_src2;
9441   DI tmp_tmpr;
9442   tmp_src1 = ZEXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
9443   tmp_src2 = ZEXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand2))));
9444   tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9445   {
9446     SI opval = TRUNCDISI (tmp_tmpr);
9447     SET_H_GR (FLD (f_operand2), opval);
9448     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9449   }
9450   {
9451     SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9452     SET_H_SR (((UINT) 7), opval);
9453     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9454   }
9455 {
9456   {
9457     BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9458     CPU (h_cbit) = opval;
9459     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9460   }
9461   {
9462     BI opval = LTDI (tmp_tmpr, 0);
9463     CPU (h_nbit) = opval;
9464     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9465   }
9466   {
9467     BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9468     CPU (h_zbit) = opval;
9469     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9470   }
9471   {
9472     BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9473     CPU (h_vbit) = opval;
9474     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9475   }
9476 {
9477   {
9478     BI opval = 0;
9479     CPU (h_xbit) = opval;
9480     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9481   }
9482   {
9483     BI opval = 0;
9484     SET_H_INSN_PREFIXED_P (opval);
9485     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9486   }
9487 }
9488 }
9489 }
9490
9491 #undef FLD
9492 }
9493   NEXT (vpc);
9494
9495   CASE (sem, INSN_MULU_W) : /* mulu.w $Rs,$Rd */
9496 {
9497   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9498   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9499 #define FLD(f) abuf->fields.sfmt_muls_b.f
9500   int UNUSED written = 0;
9501   IADDR UNUSED pc = abuf->addr;
9502   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9503
9504 {
9505   DI tmp_src1;
9506   DI tmp_src2;
9507   DI tmp_tmpr;
9508   tmp_src1 = ZEXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
9509   tmp_src2 = ZEXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand2))));
9510   tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9511   {
9512     SI opval = TRUNCDISI (tmp_tmpr);
9513     SET_H_GR (FLD (f_operand2), opval);
9514     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9515   }
9516   {
9517     SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9518     SET_H_SR (((UINT) 7), opval);
9519     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9520   }
9521 {
9522   {
9523     BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9524     CPU (h_cbit) = opval;
9525     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9526   }
9527   {
9528     BI opval = LTDI (tmp_tmpr, 0);
9529     CPU (h_nbit) = opval;
9530     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9531   }
9532   {
9533     BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9534     CPU (h_zbit) = opval;
9535     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9536   }
9537   {
9538     BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9539     CPU (h_vbit) = opval;
9540     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9541   }
9542 {
9543   {
9544     BI opval = 0;
9545     CPU (h_xbit) = opval;
9546     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9547   }
9548   {
9549     BI opval = 0;
9550     SET_H_INSN_PREFIXED_P (opval);
9551     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9552   }
9553 }
9554 }
9555 }
9556
9557 #undef FLD
9558 }
9559   NEXT (vpc);
9560
9561   CASE (sem, INSN_MULU_D) : /* mulu.d $Rs,$Rd */
9562 {
9563   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9564   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9565 #define FLD(f) abuf->fields.sfmt_muls_b.f
9566   int UNUSED written = 0;
9567   IADDR UNUSED pc = abuf->addr;
9568   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9569
9570 {
9571   DI tmp_src1;
9572   DI tmp_src2;
9573   DI tmp_tmpr;
9574   tmp_src1 = ZEXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand1))));
9575   tmp_src2 = ZEXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand2))));
9576   tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9577   {
9578     SI opval = TRUNCDISI (tmp_tmpr);
9579     SET_H_GR (FLD (f_operand2), opval);
9580     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9581   }
9582   {
9583     SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9584     SET_H_SR (((UINT) 7), opval);
9585     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9586   }
9587 {
9588   {
9589     BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9590     CPU (h_cbit) = opval;
9591     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9592   }
9593   {
9594     BI opval = LTDI (tmp_tmpr, 0);
9595     CPU (h_nbit) = opval;
9596     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9597   }
9598   {
9599     BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9600     CPU (h_zbit) = opval;
9601     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9602   }
9603   {
9604     BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9605     CPU (h_vbit) = opval;
9606     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9607   }
9608 {
9609   {
9610     BI opval = 0;
9611     CPU (h_xbit) = opval;
9612     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9613   }
9614   {
9615     BI opval = 0;
9616     SET_H_INSN_PREFIXED_P (opval);
9617     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9618   }
9619 }
9620 }
9621 }
9622
9623 #undef FLD
9624 }
9625   NEXT (vpc);
9626
9627   CASE (sem, INSN_MSTEP) : /* mstep $Rs,$Rd */
9628 {
9629   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9630   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9631 #define FLD(f) abuf->fields.sfmt_muls_b.f
9632   int UNUSED written = 0;
9633   IADDR UNUSED pc = abuf->addr;
9634   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9635
9636 {
9637   SI tmp_tmpd;
9638   SI tmp_tmps;
9639   tmp_tmps = GET_H_GR (FLD (f_operand1));
9640   tmp_tmpd = ADDSI (SLLSI (GET_H_GR (FLD (f_operand2)), 1), ((CPU (h_nbit)) ? (tmp_tmps) : (0)));
9641   {
9642     SI opval = tmp_tmpd;
9643     SET_H_GR (FLD (f_operand2), opval);
9644     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9645   }
9646 {
9647   {
9648     BI opval = LTSI (tmp_tmpd, 0);
9649     CPU (h_nbit) = opval;
9650     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9651   }
9652   {
9653     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9654     CPU (h_zbit) = opval;
9655     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9656   }
9657 SET_H_CBIT_MOVE (0);
9658 SET_H_VBIT_MOVE (0);
9659 {
9660   {
9661     BI opval = 0;
9662     CPU (h_xbit) = opval;
9663     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9664   }
9665   {
9666     BI opval = 0;
9667     SET_H_INSN_PREFIXED_P (opval);
9668     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9669   }
9670 }
9671 }
9672 }
9673
9674 #undef FLD
9675 }
9676   NEXT (vpc);
9677
9678   CASE (sem, INSN_DSTEP) : /* dstep $Rs,$Rd */
9679 {
9680   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9681   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9682 #define FLD(f) abuf->fields.sfmt_muls_b.f
9683   int UNUSED written = 0;
9684   IADDR UNUSED pc = abuf->addr;
9685   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9686
9687 {
9688   SI tmp_tmp;
9689   SI tmp_tmps;
9690   SI tmp_tmpd;
9691   tmp_tmps = GET_H_GR (FLD (f_operand1));
9692   tmp_tmp = SLLSI (GET_H_GR (FLD (f_operand2)), 1);
9693   tmp_tmpd = ((GEUSI (tmp_tmp, tmp_tmps)) ? (SUBSI (tmp_tmp, tmp_tmps)) : (tmp_tmp));
9694   {
9695     SI opval = tmp_tmpd;
9696     SET_H_GR (FLD (f_operand2), opval);
9697     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9698   }
9699 {
9700   {
9701     BI opval = LTSI (tmp_tmpd, 0);
9702     CPU (h_nbit) = opval;
9703     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9704   }
9705   {
9706     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9707     CPU (h_zbit) = opval;
9708     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9709   }
9710 SET_H_CBIT_MOVE (0);
9711 SET_H_VBIT_MOVE (0);
9712 {
9713   {
9714     BI opval = 0;
9715     CPU (h_xbit) = opval;
9716     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9717   }
9718   {
9719     BI opval = 0;
9720     SET_H_INSN_PREFIXED_P (opval);
9721     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9722   }
9723 }
9724 }
9725 }
9726
9727 #undef FLD
9728 }
9729   NEXT (vpc);
9730
9731   CASE (sem, INSN_ABS) : /* abs $Rs,$Rd */
9732 {
9733   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9734   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9735 #define FLD(f) abuf->fields.sfmt_muls_b.f
9736   int UNUSED written = 0;
9737   IADDR UNUSED pc = abuf->addr;
9738   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9739
9740 {
9741   SI tmp_tmpd;
9742   tmp_tmpd = ABSSI (GET_H_GR (FLD (f_operand1)));
9743   {
9744     SI opval = tmp_tmpd;
9745     SET_H_GR (FLD (f_operand2), opval);
9746     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9747   }
9748 {
9749   {
9750     BI opval = LTSI (tmp_tmpd, 0);
9751     CPU (h_nbit) = opval;
9752     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9753   }
9754   {
9755     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9756     CPU (h_zbit) = opval;
9757     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9758   }
9759 SET_H_CBIT_MOVE (0);
9760 SET_H_VBIT_MOVE (0);
9761 {
9762   {
9763     BI opval = 0;
9764     CPU (h_xbit) = opval;
9765     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9766   }
9767   {
9768     BI opval = 0;
9769     SET_H_INSN_PREFIXED_P (opval);
9770     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9771   }
9772 }
9773 }
9774 }
9775
9776 #undef FLD
9777 }
9778   NEXT (vpc);
9779
9780   CASE (sem, INSN_AND_B_R) : /* and.b $Rs,$Rd */
9781 {
9782   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9783   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9784 #define FLD(f) abuf->fields.sfmt_add_b_r.f
9785   int UNUSED written = 0;
9786   IADDR UNUSED pc = abuf->addr;
9787   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9788
9789 {
9790   QI tmp_tmpd;
9791   tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
9792 {
9793   SI tmp_oldregval;
9794   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
9795   {
9796     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
9797     SET_H_GR (FLD (f_operand2), opval);
9798     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9799   }
9800 }
9801 {
9802   {
9803     BI opval = LTQI (tmp_tmpd, 0);
9804     CPU (h_nbit) = opval;
9805     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9806   }
9807   {
9808     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9809     CPU (h_zbit) = opval;
9810     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9811   }
9812 SET_H_CBIT_MOVE (0);
9813 SET_H_VBIT_MOVE (0);
9814 {
9815   {
9816     BI opval = 0;
9817     CPU (h_xbit) = opval;
9818     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9819   }
9820   {
9821     BI opval = 0;
9822     SET_H_INSN_PREFIXED_P (opval);
9823     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9824   }
9825 }
9826 }
9827 }
9828
9829 #undef FLD
9830 }
9831   NEXT (vpc);
9832
9833   CASE (sem, INSN_AND_W_R) : /* and.w $Rs,$Rd */
9834 {
9835   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9836   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9837 #define FLD(f) abuf->fields.sfmt_add_b_r.f
9838   int UNUSED written = 0;
9839   IADDR UNUSED pc = abuf->addr;
9840   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9841
9842 {
9843   HI tmp_tmpd;
9844   tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
9845 {
9846   SI tmp_oldregval;
9847   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
9848   {
9849     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
9850     SET_H_GR (FLD (f_operand2), opval);
9851     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9852   }
9853 }
9854 {
9855   {
9856     BI opval = LTHI (tmp_tmpd, 0);
9857     CPU (h_nbit) = opval;
9858     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9859   }
9860   {
9861     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9862     CPU (h_zbit) = opval;
9863     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9864   }
9865 SET_H_CBIT_MOVE (0);
9866 SET_H_VBIT_MOVE (0);
9867 {
9868   {
9869     BI opval = 0;
9870     CPU (h_xbit) = opval;
9871     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9872   }
9873   {
9874     BI opval = 0;
9875     SET_H_INSN_PREFIXED_P (opval);
9876     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9877   }
9878 }
9879 }
9880 }
9881
9882 #undef FLD
9883 }
9884   NEXT (vpc);
9885
9886   CASE (sem, INSN_AND_D_R) : /* and.d $Rs,$Rd */
9887 {
9888   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9889   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9890 #define FLD(f) abuf->fields.sfmt_add_b_r.f
9891   int UNUSED written = 0;
9892   IADDR UNUSED pc = abuf->addr;
9893   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9894
9895 {
9896   SI tmp_tmpd;
9897   tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
9898   {
9899     SI opval = tmp_tmpd;
9900     SET_H_GR (FLD (f_operand2), opval);
9901     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9902   }
9903 {
9904   {
9905     BI opval = LTSI (tmp_tmpd, 0);
9906     CPU (h_nbit) = opval;
9907     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9908   }
9909   {
9910     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9911     CPU (h_zbit) = opval;
9912     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9913   }
9914 SET_H_CBIT_MOVE (0);
9915 SET_H_VBIT_MOVE (0);
9916 {
9917   {
9918     BI opval = 0;
9919     CPU (h_xbit) = opval;
9920     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9921   }
9922   {
9923     BI opval = 0;
9924     SET_H_INSN_PREFIXED_P (opval);
9925     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9926   }
9927 }
9928 }
9929 }
9930
9931 #undef FLD
9932 }
9933   NEXT (vpc);
9934
9935   CASE (sem, INSN_AND_M_B_M) : /* and-m.b [${Rs}${inc}],${Rd} */
9936 {
9937   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9938   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9939 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
9940   int UNUSED written = 0;
9941   IADDR UNUSED pc = abuf->addr;
9942   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9943
9944 {
9945   QI tmp_tmpd;
9946   tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
9947   QI tmp_tmp_mem;
9948   BI tmp_postinc;
9949   tmp_postinc = FLD (f_memmode);
9950 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9951 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
9952 ; if (NEBI (tmp_postinc, 0)) {
9953 {
9954 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9955   tmp_addr = ADDSI (tmp_addr, 1);
9956 }
9957   {
9958     SI opval = tmp_addr;
9959     SET_H_GR (FLD (f_operand1), opval);
9960     written |= (1 << 11);
9961     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9962   }
9963 }
9964 }
9965 ; tmp_tmp_mem; }));
9966 {
9967   SI tmp_oldregval;
9968   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
9969   {
9970     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
9971     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
9972     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9973   }
9974 }
9975 {
9976   {
9977     BI opval = LTQI (tmp_tmpd, 0);
9978     CPU (h_nbit) = opval;
9979     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9980   }
9981   {
9982     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9983     CPU (h_zbit) = opval;
9984     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9985   }
9986 SET_H_CBIT_MOVE (0);
9987 SET_H_VBIT_MOVE (0);
9988 {
9989   {
9990     BI opval = 0;
9991     CPU (h_xbit) = opval;
9992     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9993   }
9994   {
9995     BI opval = 0;
9996     SET_H_INSN_PREFIXED_P (opval);
9997     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9998   }
9999 }
10000 }
10001 }
10002
10003   abuf->written = written;
10004 #undef FLD
10005 }
10006   NEXT (vpc);
10007
10008   CASE (sem, INSN_AND_M_W_M) : /* and-m.w [${Rs}${inc}],${Rd} */
10009 {
10010   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10011   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10012 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10013   int UNUSED written = 0;
10014   IADDR UNUSED pc = abuf->addr;
10015   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10016
10017 {
10018   HI tmp_tmpd;
10019   tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10020   HI tmp_tmp_mem;
10021   BI tmp_postinc;
10022   tmp_postinc = FLD (f_memmode);
10023 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10024 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
10025 ; if (NEBI (tmp_postinc, 0)) {
10026 {
10027 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10028   tmp_addr = ADDSI (tmp_addr, 2);
10029 }
10030   {
10031     SI opval = tmp_addr;
10032     SET_H_GR (FLD (f_operand1), opval);
10033     written |= (1 << 11);
10034     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10035   }
10036 }
10037 }
10038 ; tmp_tmp_mem; }));
10039 {
10040   SI tmp_oldregval;
10041   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10042   {
10043     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10044     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10045     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10046   }
10047 }
10048 {
10049   {
10050     BI opval = LTHI (tmp_tmpd, 0);
10051     CPU (h_nbit) = opval;
10052     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10053   }
10054   {
10055     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10056     CPU (h_zbit) = opval;
10057     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10058   }
10059 SET_H_CBIT_MOVE (0);
10060 SET_H_VBIT_MOVE (0);
10061 {
10062   {
10063     BI opval = 0;
10064     CPU (h_xbit) = opval;
10065     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10066   }
10067   {
10068     BI opval = 0;
10069     SET_H_INSN_PREFIXED_P (opval);
10070     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10071   }
10072 }
10073 }
10074 }
10075
10076   abuf->written = written;
10077 #undef FLD
10078 }
10079   NEXT (vpc);
10080
10081   CASE (sem, INSN_AND_M_D_M) : /* and-m.d [${Rs}${inc}],${Rd} */
10082 {
10083   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10084   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10085 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10086   int UNUSED written = 0;
10087   IADDR UNUSED pc = abuf->addr;
10088   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10089
10090 {
10091   SI tmp_tmpd;
10092   tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10093   SI tmp_tmp_mem;
10094   BI tmp_postinc;
10095   tmp_postinc = FLD (f_memmode);
10096 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10097 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
10098 ; if (NEBI (tmp_postinc, 0)) {
10099 {
10100 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10101   tmp_addr = ADDSI (tmp_addr, 4);
10102 }
10103   {
10104     SI opval = tmp_addr;
10105     SET_H_GR (FLD (f_operand1), opval);
10106     written |= (1 << 10);
10107     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10108   }
10109 }
10110 }
10111 ; tmp_tmp_mem; }));
10112   {
10113     SI opval = tmp_tmpd;
10114     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10115     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10116   }
10117 {
10118   {
10119     BI opval = LTSI (tmp_tmpd, 0);
10120     CPU (h_nbit) = opval;
10121     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10122   }
10123   {
10124     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10125     CPU (h_zbit) = opval;
10126     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10127   }
10128 SET_H_CBIT_MOVE (0);
10129 SET_H_VBIT_MOVE (0);
10130 {
10131   {
10132     BI opval = 0;
10133     CPU (h_xbit) = opval;
10134     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10135   }
10136   {
10137     BI opval = 0;
10138     SET_H_INSN_PREFIXED_P (opval);
10139     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10140   }
10141 }
10142 }
10143 }
10144
10145   abuf->written = written;
10146 #undef FLD
10147 }
10148   NEXT (vpc);
10149
10150   CASE (sem, INSN_ANDCBR) : /* and.b ${sconst8}],${Rd} */
10151 {
10152   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10153   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10154 #define FLD(f) abuf->fields.sfmt_addcbr.f
10155   int UNUSED written = 0;
10156   IADDR UNUSED pc = abuf->addr;
10157   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10158
10159 {
10160   QI tmp_tmpd;
10161   tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__byte));
10162 {
10163   SI tmp_oldregval;
10164   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10165   {
10166     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10167     SET_H_GR (FLD (f_operand2), opval);
10168     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10169   }
10170 }
10171 {
10172   {
10173     BI opval = LTQI (tmp_tmpd, 0);
10174     CPU (h_nbit) = opval;
10175     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10176   }
10177   {
10178     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10179     CPU (h_zbit) = opval;
10180     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10181   }
10182 SET_H_CBIT_MOVE (0);
10183 SET_H_VBIT_MOVE (0);
10184 {
10185   {
10186     BI opval = 0;
10187     CPU (h_xbit) = opval;
10188     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10189   }
10190   {
10191     BI opval = 0;
10192     SET_H_INSN_PREFIXED_P (opval);
10193     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10194   }
10195 }
10196 }
10197 }
10198
10199 #undef FLD
10200 }
10201   NEXT (vpc);
10202
10203   CASE (sem, INSN_ANDCWR) : /* and.w ${sconst16}],${Rd} */
10204 {
10205   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10206   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10207 #define FLD(f) abuf->fields.sfmt_addcwr.f
10208   int UNUSED written = 0;
10209   IADDR UNUSED pc = abuf->addr;
10210   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10211
10212 {
10213   HI tmp_tmpd;
10214   tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__word));
10215 {
10216   SI tmp_oldregval;
10217   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10218   {
10219     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10220     SET_H_GR (FLD (f_operand2), opval);
10221     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10222   }
10223 }
10224 {
10225   {
10226     BI opval = LTHI (tmp_tmpd, 0);
10227     CPU (h_nbit) = opval;
10228     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10229   }
10230   {
10231     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10232     CPU (h_zbit) = opval;
10233     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10234   }
10235 SET_H_CBIT_MOVE (0);
10236 SET_H_VBIT_MOVE (0);
10237 {
10238   {
10239     BI opval = 0;
10240     CPU (h_xbit) = opval;
10241     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10242   }
10243   {
10244     BI opval = 0;
10245     SET_H_INSN_PREFIXED_P (opval);
10246     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10247   }
10248 }
10249 }
10250 }
10251
10252 #undef FLD
10253 }
10254   NEXT (vpc);
10255
10256   CASE (sem, INSN_ANDCDR) : /* and.d ${const32}],${Rd} */
10257 {
10258   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10259   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10260 #define FLD(f) abuf->fields.sfmt_addcdr.f
10261   int UNUSED written = 0;
10262   IADDR UNUSED pc = abuf->addr;
10263   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
10264
10265 {
10266   SI tmp_tmpd;
10267   tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
10268   {
10269     SI opval = tmp_tmpd;
10270     SET_H_GR (FLD (f_operand2), opval);
10271     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10272   }
10273 {
10274   {
10275     BI opval = LTSI (tmp_tmpd, 0);
10276     CPU (h_nbit) = opval;
10277     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10278   }
10279   {
10280     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10281     CPU (h_zbit) = opval;
10282     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10283   }
10284 SET_H_CBIT_MOVE (0);
10285 SET_H_VBIT_MOVE (0);
10286 {
10287   {
10288     BI opval = 0;
10289     CPU (h_xbit) = opval;
10290     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10291   }
10292   {
10293     BI opval = 0;
10294     SET_H_INSN_PREFIXED_P (opval);
10295     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10296   }
10297 }
10298 }
10299 }
10300
10301 #undef FLD
10302 }
10303   NEXT (vpc);
10304
10305   CASE (sem, INSN_ANDQ) : /* andq $i,$Rd */
10306 {
10307   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10308   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10309 #define FLD(f) abuf->fields.sfmt_andq.f
10310   int UNUSED written = 0;
10311   IADDR UNUSED pc = abuf->addr;
10312   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10313
10314 {
10315   SI tmp_tmpd;
10316   tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), FLD (f_s6));
10317   {
10318     SI opval = tmp_tmpd;
10319     SET_H_GR (FLD (f_operand2), opval);
10320     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10321   }
10322 {
10323   {
10324     BI opval = LTSI (tmp_tmpd, 0);
10325     CPU (h_nbit) = opval;
10326     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10327   }
10328   {
10329     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10330     CPU (h_zbit) = opval;
10331     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10332   }
10333 SET_H_CBIT_MOVE (0);
10334 SET_H_VBIT_MOVE (0);
10335 {
10336   {
10337     BI opval = 0;
10338     CPU (h_xbit) = opval;
10339     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10340   }
10341   {
10342     BI opval = 0;
10343     SET_H_INSN_PREFIXED_P (opval);
10344     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10345   }
10346 }
10347 }
10348 }
10349
10350 #undef FLD
10351 }
10352   NEXT (vpc);
10353
10354   CASE (sem, INSN_ORR_B_R) : /* orr.b $Rs,$Rd */
10355 {
10356   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10357   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10358 #define FLD(f) abuf->fields.sfmt_add_b_r.f
10359   int UNUSED written = 0;
10360   IADDR UNUSED pc = abuf->addr;
10361   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10362
10363 {
10364   QI tmp_tmpd;
10365   tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10366 {
10367   SI tmp_oldregval;
10368   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10369   {
10370     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10371     SET_H_GR (FLD (f_operand2), opval);
10372     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10373   }
10374 }
10375 {
10376   {
10377     BI opval = LTQI (tmp_tmpd, 0);
10378     CPU (h_nbit) = opval;
10379     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10380   }
10381   {
10382     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10383     CPU (h_zbit) = opval;
10384     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10385   }
10386 SET_H_CBIT_MOVE (0);
10387 SET_H_VBIT_MOVE (0);
10388 {
10389   {
10390     BI opval = 0;
10391     CPU (h_xbit) = opval;
10392     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10393   }
10394   {
10395     BI opval = 0;
10396     SET_H_INSN_PREFIXED_P (opval);
10397     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10398   }
10399 }
10400 }
10401 }
10402
10403 #undef FLD
10404 }
10405   NEXT (vpc);
10406
10407   CASE (sem, INSN_ORR_W_R) : /* orr.w $Rs,$Rd */
10408 {
10409   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10410   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10411 #define FLD(f) abuf->fields.sfmt_add_b_r.f
10412   int UNUSED written = 0;
10413   IADDR UNUSED pc = abuf->addr;
10414   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10415
10416 {
10417   HI tmp_tmpd;
10418   tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10419 {
10420   SI tmp_oldregval;
10421   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10422   {
10423     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10424     SET_H_GR (FLD (f_operand2), opval);
10425     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10426   }
10427 }
10428 {
10429   {
10430     BI opval = LTHI (tmp_tmpd, 0);
10431     CPU (h_nbit) = opval;
10432     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10433   }
10434   {
10435     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10436     CPU (h_zbit) = opval;
10437     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10438   }
10439 SET_H_CBIT_MOVE (0);
10440 SET_H_VBIT_MOVE (0);
10441 {
10442   {
10443     BI opval = 0;
10444     CPU (h_xbit) = opval;
10445     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10446   }
10447   {
10448     BI opval = 0;
10449     SET_H_INSN_PREFIXED_P (opval);
10450     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10451   }
10452 }
10453 }
10454 }
10455
10456 #undef FLD
10457 }
10458   NEXT (vpc);
10459
10460   CASE (sem, INSN_ORR_D_R) : /* orr.d $Rs,$Rd */
10461 {
10462   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10463   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10464 #define FLD(f) abuf->fields.sfmt_add_b_r.f
10465   int UNUSED written = 0;
10466   IADDR UNUSED pc = abuf->addr;
10467   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10468
10469 {
10470   SI tmp_tmpd;
10471   tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10472   {
10473     SI opval = tmp_tmpd;
10474     SET_H_GR (FLD (f_operand2), opval);
10475     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10476   }
10477 {
10478   {
10479     BI opval = LTSI (tmp_tmpd, 0);
10480     CPU (h_nbit) = opval;
10481     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10482   }
10483   {
10484     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10485     CPU (h_zbit) = opval;
10486     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10487   }
10488 SET_H_CBIT_MOVE (0);
10489 SET_H_VBIT_MOVE (0);
10490 {
10491   {
10492     BI opval = 0;
10493     CPU (h_xbit) = opval;
10494     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10495   }
10496   {
10497     BI opval = 0;
10498     SET_H_INSN_PREFIXED_P (opval);
10499     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10500   }
10501 }
10502 }
10503 }
10504
10505 #undef FLD
10506 }
10507   NEXT (vpc);
10508
10509   CASE (sem, INSN_OR_M_B_M) : /* or-m.b [${Rs}${inc}],${Rd} */
10510 {
10511   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10512   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10513 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10514   int UNUSED written = 0;
10515   IADDR UNUSED pc = abuf->addr;
10516   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10517
10518 {
10519   QI tmp_tmpd;
10520   tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10521   QI tmp_tmp_mem;
10522   BI tmp_postinc;
10523   tmp_postinc = FLD (f_memmode);
10524 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10525 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
10526 ; if (NEBI (tmp_postinc, 0)) {
10527 {
10528 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10529   tmp_addr = ADDSI (tmp_addr, 1);
10530 }
10531   {
10532     SI opval = tmp_addr;
10533     SET_H_GR (FLD (f_operand1), opval);
10534     written |= (1 << 11);
10535     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10536   }
10537 }
10538 }
10539 ; tmp_tmp_mem; }));
10540 {
10541   SI tmp_oldregval;
10542   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10543   {
10544     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10545     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10546     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10547   }
10548 }
10549 {
10550   {
10551     BI opval = LTQI (tmp_tmpd, 0);
10552     CPU (h_nbit) = opval;
10553     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10554   }
10555   {
10556     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10557     CPU (h_zbit) = opval;
10558     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10559   }
10560 SET_H_CBIT_MOVE (0);
10561 SET_H_VBIT_MOVE (0);
10562 {
10563   {
10564     BI opval = 0;
10565     CPU (h_xbit) = opval;
10566     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10567   }
10568   {
10569     BI opval = 0;
10570     SET_H_INSN_PREFIXED_P (opval);
10571     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10572   }
10573 }
10574 }
10575 }
10576
10577   abuf->written = written;
10578 #undef FLD
10579 }
10580   NEXT (vpc);
10581
10582   CASE (sem, INSN_OR_M_W_M) : /* or-m.w [${Rs}${inc}],${Rd} */
10583 {
10584   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10585   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10586 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10587   int UNUSED written = 0;
10588   IADDR UNUSED pc = abuf->addr;
10589   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10590
10591 {
10592   HI tmp_tmpd;
10593   tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10594   HI tmp_tmp_mem;
10595   BI tmp_postinc;
10596   tmp_postinc = FLD (f_memmode);
10597 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10598 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
10599 ; if (NEBI (tmp_postinc, 0)) {
10600 {
10601 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10602   tmp_addr = ADDSI (tmp_addr, 2);
10603 }
10604   {
10605     SI opval = tmp_addr;
10606     SET_H_GR (FLD (f_operand1), opval);
10607     written |= (1 << 11);
10608     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10609   }
10610 }
10611 }
10612 ; tmp_tmp_mem; }));
10613 {
10614   SI tmp_oldregval;
10615   tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10616   {
10617     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10618     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10619     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10620   }
10621 }
10622 {
10623   {
10624     BI opval = LTHI (tmp_tmpd, 0);
10625     CPU (h_nbit) = opval;
10626     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10627   }
10628   {
10629     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10630     CPU (h_zbit) = opval;
10631     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10632   }
10633 SET_H_CBIT_MOVE (0);
10634 SET_H_VBIT_MOVE (0);
10635 {
10636   {
10637     BI opval = 0;
10638     CPU (h_xbit) = opval;
10639     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10640   }
10641   {
10642     BI opval = 0;
10643     SET_H_INSN_PREFIXED_P (opval);
10644     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10645   }
10646 }
10647 }
10648 }
10649
10650   abuf->written = written;
10651 #undef FLD
10652 }
10653   NEXT (vpc);
10654
10655   CASE (sem, INSN_OR_M_D_M) : /* or-m.d [${Rs}${inc}],${Rd} */
10656 {
10657   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10658   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10659 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10660   int UNUSED written = 0;
10661   IADDR UNUSED pc = abuf->addr;
10662   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10663
10664 {
10665   SI tmp_tmpd;
10666   tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10667   SI tmp_tmp_mem;
10668   BI tmp_postinc;
10669   tmp_postinc = FLD (f_memmode);
10670 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10671 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
10672 ; if (NEBI (tmp_postinc, 0)) {
10673 {
10674 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10675   tmp_addr = ADDSI (tmp_addr, 4);
10676 }
10677   {
10678     SI opval = tmp_addr;
10679     SET_H_GR (FLD (f_operand1), opval);
10680     written |= (1 << 10);
10681     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10682   }
10683 }
10684 }
10685 ; tmp_tmp_mem; }));
10686   {
10687     SI opval = tmp_tmpd;
10688     SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10689     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10690   }
10691 {
10692   {
10693     BI opval = LTSI (tmp_tmpd, 0);
10694     CPU (h_nbit) = opval;
10695     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10696   }
10697   {
10698     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10699     CPU (h_zbit) = opval;
10700     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10701   }
10702 SET_H_CBIT_MOVE (0);
10703 SET_H_VBIT_MOVE (0);
10704 {
10705   {
10706     BI opval = 0;
10707     CPU (h_xbit) = opval;
10708     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10709   }
10710   {
10711     BI opval = 0;
10712     SET_H_INSN_PREFIXED_P (opval);
10713     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10714   }
10715 }
10716 }
10717 }
10718
10719   abuf->written = written;
10720 #undef FLD
10721 }
10722   NEXT (vpc);
10723
10724   CASE (sem, INSN_ORCBR) : /* or.b ${sconst8}],${Rd} */
10725 {
10726   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10727   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10728 #define FLD(f) abuf->fields.sfmt_addcbr.f
10729   int UNUSED written = 0;
10730   IADDR UNUSED pc = abuf->addr;
10731   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10732
10733 {
10734   QI tmp_tmpd;
10735   tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__byte));
10736 {
10737   SI tmp_oldregval;
10738   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10739   {
10740     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10741     SET_H_GR (FLD (f_operand2), opval);
10742     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10743   }
10744 }
10745 {
10746   {
10747     BI opval = LTQI (tmp_tmpd, 0);
10748     CPU (h_nbit) = opval;
10749     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10750   }
10751   {
10752     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10753     CPU (h_zbit) = opval;
10754     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10755   }
10756 SET_H_CBIT_MOVE (0);
10757 SET_H_VBIT_MOVE (0);
10758 {
10759   {
10760     BI opval = 0;
10761     CPU (h_xbit) = opval;
10762     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10763   }
10764   {
10765     BI opval = 0;
10766     SET_H_INSN_PREFIXED_P (opval);
10767     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10768   }
10769 }
10770 }
10771 }
10772
10773 #undef FLD
10774 }
10775   NEXT (vpc);
10776
10777   CASE (sem, INSN_ORCWR) : /* or.w ${sconst16}],${Rd} */
10778 {
10779   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10780   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10781 #define FLD(f) abuf->fields.sfmt_addcwr.f
10782   int UNUSED written = 0;
10783   IADDR UNUSED pc = abuf->addr;
10784   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10785
10786 {
10787   HI tmp_tmpd;
10788   tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__word));
10789 {
10790   SI tmp_oldregval;
10791   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10792   {
10793     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10794     SET_H_GR (FLD (f_operand2), opval);
10795     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10796   }
10797 }
10798 {
10799   {
10800     BI opval = LTHI (tmp_tmpd, 0);
10801     CPU (h_nbit) = opval;
10802     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10803   }
10804   {
10805     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10806     CPU (h_zbit) = opval;
10807     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10808   }
10809 SET_H_CBIT_MOVE (0);
10810 SET_H_VBIT_MOVE (0);
10811 {
10812   {
10813     BI opval = 0;
10814     CPU (h_xbit) = opval;
10815     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10816   }
10817   {
10818     BI opval = 0;
10819     SET_H_INSN_PREFIXED_P (opval);
10820     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10821   }
10822 }
10823 }
10824 }
10825
10826 #undef FLD
10827 }
10828   NEXT (vpc);
10829
10830   CASE (sem, INSN_ORCDR) : /* or.d ${const32}],${Rd} */
10831 {
10832   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10833   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10834 #define FLD(f) abuf->fields.sfmt_addcdr.f
10835   int UNUSED written = 0;
10836   IADDR UNUSED pc = abuf->addr;
10837   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
10838
10839 {
10840   SI tmp_tmpd;
10841   tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
10842   {
10843     SI opval = tmp_tmpd;
10844     SET_H_GR (FLD (f_operand2), opval);
10845     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10846   }
10847 {
10848   {
10849     BI opval = LTSI (tmp_tmpd, 0);
10850     CPU (h_nbit) = opval;
10851     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10852   }
10853   {
10854     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10855     CPU (h_zbit) = opval;
10856     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10857   }
10858 SET_H_CBIT_MOVE (0);
10859 SET_H_VBIT_MOVE (0);
10860 {
10861   {
10862     BI opval = 0;
10863     CPU (h_xbit) = opval;
10864     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10865   }
10866   {
10867     BI opval = 0;
10868     SET_H_INSN_PREFIXED_P (opval);
10869     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10870   }
10871 }
10872 }
10873 }
10874
10875 #undef FLD
10876 }
10877   NEXT (vpc);
10878
10879   CASE (sem, INSN_ORQ) : /* orq $i,$Rd */
10880 {
10881   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10882   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10883 #define FLD(f) abuf->fields.sfmt_andq.f
10884   int UNUSED written = 0;
10885   IADDR UNUSED pc = abuf->addr;
10886   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10887
10888 {
10889   SI tmp_tmpd;
10890   tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), FLD (f_s6));
10891   {
10892     SI opval = tmp_tmpd;
10893     SET_H_GR (FLD (f_operand2), opval);
10894     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10895   }
10896 {
10897   {
10898     BI opval = LTSI (tmp_tmpd, 0);
10899     CPU (h_nbit) = opval;
10900     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10901   }
10902   {
10903     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10904     CPU (h_zbit) = opval;
10905     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10906   }
10907 SET_H_CBIT_MOVE (0);
10908 SET_H_VBIT_MOVE (0);
10909 {
10910   {
10911     BI opval = 0;
10912     CPU (h_xbit) = opval;
10913     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10914   }
10915   {
10916     BI opval = 0;
10917     SET_H_INSN_PREFIXED_P (opval);
10918     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10919   }
10920 }
10921 }
10922 }
10923
10924 #undef FLD
10925 }
10926   NEXT (vpc);
10927
10928   CASE (sem, INSN_XOR) : /* xor $Rs,$Rd */
10929 {
10930   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10931   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10932 #define FLD(f) abuf->fields.sfmt_muls_b.f
10933   int UNUSED written = 0;
10934   IADDR UNUSED pc = abuf->addr;
10935   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10936
10937 {
10938   SI tmp_tmpd;
10939   tmp_tmpd = XORSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10940   {
10941     SI opval = tmp_tmpd;
10942     SET_H_GR (FLD (f_operand2), opval);
10943     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10944   }
10945 {
10946   {
10947     BI opval = LTSI (tmp_tmpd, 0);
10948     CPU (h_nbit) = opval;
10949     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10950   }
10951   {
10952     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10953     CPU (h_zbit) = opval;
10954     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10955   }
10956 SET_H_CBIT_MOVE (0);
10957 SET_H_VBIT_MOVE (0);
10958 {
10959   {
10960     BI opval = 0;
10961     CPU (h_xbit) = opval;
10962     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10963   }
10964   {
10965     BI opval = 0;
10966     SET_H_INSN_PREFIXED_P (opval);
10967     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10968   }
10969 }
10970 }
10971 }
10972
10973 #undef FLD
10974 }
10975   NEXT (vpc);
10976
10977   CASE (sem, INSN_SWAP) : /* swap${swapoption} ${Rs} */
10978 {
10979   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10980   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10981 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
10982   int UNUSED written = 0;
10983   IADDR UNUSED pc = abuf->addr;
10984   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10985
10986 {
10987   SI tmp_tmps;
10988   SI tmp_tmpd;
10989   tmp_tmps = GET_H_GR (FLD (f_operand1));
10990   tmp_tmpd = ({   SI tmp_tmpcode;
10991   SI tmp_tmpval;
10992   SI tmp_tmpres;
10993   tmp_tmpcode = FLD (f_operand2);
10994 ;   tmp_tmpval = tmp_tmps;
10995 ; if (EQSI (tmp_tmpcode, 0)) {
10996   tmp_tmpres = (cgen_rtx_error (current_cpu, "SWAP without swap modifier isn't implemented"), 0);
10997 }
10998  else if (EQSI (tmp_tmpcode, 1)) {
10999   tmp_tmpres = ({   SI tmp_tmpr;
11000   tmp_tmpr = tmp_tmpval;
11001 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11002 }
11003  else if (EQSI (tmp_tmpcode, 2)) {
11004   tmp_tmpres = ({   SI tmp_tmpb;
11005   tmp_tmpb = tmp_tmpval;
11006 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11007 }
11008  else if (EQSI (tmp_tmpcode, 3)) {
11009   tmp_tmpres = ({   SI tmp_tmpr;
11010   tmp_tmpr = ({   SI tmp_tmpb;
11011   tmp_tmpb = tmp_tmpval;
11012 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11013 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11014 }
11015  else if (EQSI (tmp_tmpcode, 4)) {
11016   tmp_tmpres = ({   SI tmp_tmpb;
11017   tmp_tmpb = tmp_tmpval;
11018 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11019 }
11020  else if (EQSI (tmp_tmpcode, 5)) {
11021   tmp_tmpres = ({   SI tmp_tmpr;
11022   tmp_tmpr = ({   SI tmp_tmpb;
11023   tmp_tmpb = tmp_tmpval;
11024 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11025 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11026 }
11027  else if (EQSI (tmp_tmpcode, 6)) {
11028   tmp_tmpres = ({   SI tmp_tmpb;
11029   tmp_tmpb = ({   SI tmp_tmpb;
11030   tmp_tmpb = tmp_tmpval;
11031 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11032 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11033 }
11034  else if (EQSI (tmp_tmpcode, 7)) {
11035   tmp_tmpres = ({   SI tmp_tmpr;
11036   tmp_tmpr = ({   SI tmp_tmpb;
11037   tmp_tmpb = ({   SI tmp_tmpb;
11038   tmp_tmpb = tmp_tmpval;
11039 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11040 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11041 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11042 }
11043  else if (EQSI (tmp_tmpcode, 8)) {
11044   tmp_tmpres = INVSI (tmp_tmpval);
11045 }
11046  else if (EQSI (tmp_tmpcode, 9)) {
11047   tmp_tmpres = ({   SI tmp_tmpr;
11048   tmp_tmpr = INVSI (tmp_tmpval);
11049 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11050 }
11051  else if (EQSI (tmp_tmpcode, 10)) {
11052   tmp_tmpres = ({   SI tmp_tmpb;
11053   tmp_tmpb = INVSI (tmp_tmpval);
11054 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11055 }
11056  else if (EQSI (tmp_tmpcode, 11)) {
11057   tmp_tmpres = ({   SI tmp_tmpr;
11058   tmp_tmpr = ({   SI tmp_tmpb;
11059   tmp_tmpb = INVSI (tmp_tmpval);
11060 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11061 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11062 }
11063  else if (EQSI (tmp_tmpcode, 12)) {
11064   tmp_tmpres = ({   SI tmp_tmpb;
11065   tmp_tmpb = INVSI (tmp_tmpval);
11066 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11067 }
11068  else if (EQSI (tmp_tmpcode, 13)) {
11069   tmp_tmpres = ({   SI tmp_tmpr;
11070   tmp_tmpr = ({   SI tmp_tmpb;
11071   tmp_tmpb = INVSI (tmp_tmpval);
11072 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11073 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11074 }
11075  else if (EQSI (tmp_tmpcode, 14)) {
11076   tmp_tmpres = ({   SI tmp_tmpb;
11077   tmp_tmpb = ({   SI tmp_tmpb;
11078   tmp_tmpb = INVSI (tmp_tmpval);
11079 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11080 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11081 }
11082  else if (EQSI (tmp_tmpcode, 15)) {
11083   tmp_tmpres = ({   SI tmp_tmpr;
11084   tmp_tmpr = ({   SI tmp_tmpb;
11085   tmp_tmpb = ({   SI tmp_tmpb;
11086   tmp_tmpb = INVSI (tmp_tmpval);
11087 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11088 ; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11089 ; ORSI (SLLSI (ANDSI (tmp_tmpr, 16843009), 7), ORSI (SLLSI (ANDSI (tmp_tmpr, 33686018), 5), ORSI (SLLSI (ANDSI (tmp_tmpr, 67372036), 3), ORSI (SLLSI (ANDSI (tmp_tmpr, 134744072), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 269488144), 1), ORSI (SRLSI (ANDSI (tmp_tmpr, 538976288), 3), ORSI (SRLSI (ANDSI (tmp_tmpr, 1077952576), 5), SRLSI (ANDSI (tmp_tmpr, 0x80808080), 7)))))))); });
11090 }
11091 ; tmp_tmpres; });
11092   {
11093     SI opval = tmp_tmpd;
11094     SET_H_GR (FLD (f_operand1), opval);
11095     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11096   }
11097 {
11098   {
11099     BI opval = LTSI (tmp_tmpd, 0);
11100     CPU (h_nbit) = opval;
11101     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11102   }
11103   {
11104     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11105     CPU (h_zbit) = opval;
11106     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11107   }
11108 SET_H_CBIT_MOVE (0);
11109 SET_H_VBIT_MOVE (0);
11110 {
11111   {
11112     BI opval = 0;
11113     CPU (h_xbit) = opval;
11114     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11115   }
11116   {
11117     BI opval = 0;
11118     SET_H_INSN_PREFIXED_P (opval);
11119     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11120   }
11121 }
11122 }
11123 }
11124
11125 #undef FLD
11126 }
11127   NEXT (vpc);
11128
11129   CASE (sem, INSN_ASRR_B_R) : /* asrr.b $Rs,$Rd */
11130 {
11131   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11132   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11133 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11134   int UNUSED written = 0;
11135   IADDR UNUSED pc = abuf->addr;
11136   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11137
11138 {
11139   QI tmp_tmpd;
11140   SI tmp_cnt1;
11141   SI tmp_cnt2;
11142   tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11143   tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11144   tmp_tmpd = SRASI (EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11145 {
11146   SI tmp_oldregval;
11147   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11148   {
11149     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11150     SET_H_GR (FLD (f_operand2), opval);
11151     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11152   }
11153 }
11154 {
11155   {
11156     BI opval = LTQI (tmp_tmpd, 0);
11157     CPU (h_nbit) = opval;
11158     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11159   }
11160   {
11161     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11162     CPU (h_zbit) = opval;
11163     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11164   }
11165 SET_H_CBIT_MOVE (0);
11166 SET_H_VBIT_MOVE (0);
11167 {
11168   {
11169     BI opval = 0;
11170     CPU (h_xbit) = opval;
11171     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11172   }
11173   {
11174     BI opval = 0;
11175     SET_H_INSN_PREFIXED_P (opval);
11176     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11177   }
11178 }
11179 }
11180 }
11181
11182 #undef FLD
11183 }
11184   NEXT (vpc);
11185
11186   CASE (sem, INSN_ASRR_W_R) : /* asrr.w $Rs,$Rd */
11187 {
11188   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11189   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11190 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11191   int UNUSED written = 0;
11192   IADDR UNUSED pc = abuf->addr;
11193   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11194
11195 {
11196   HI tmp_tmpd;
11197   SI tmp_cnt1;
11198   SI tmp_cnt2;
11199   tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11200   tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11201   tmp_tmpd = SRASI (EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11202 {
11203   SI tmp_oldregval;
11204   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11205   {
11206     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11207     SET_H_GR (FLD (f_operand2), opval);
11208     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11209   }
11210 }
11211 {
11212   {
11213     BI opval = LTHI (tmp_tmpd, 0);
11214     CPU (h_nbit) = opval;
11215     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11216   }
11217   {
11218     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11219     CPU (h_zbit) = opval;
11220     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11221   }
11222 SET_H_CBIT_MOVE (0);
11223 SET_H_VBIT_MOVE (0);
11224 {
11225   {
11226     BI opval = 0;
11227     CPU (h_xbit) = opval;
11228     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11229   }
11230   {
11231     BI opval = 0;
11232     SET_H_INSN_PREFIXED_P (opval);
11233     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11234   }
11235 }
11236 }
11237 }
11238
11239 #undef FLD
11240 }
11241   NEXT (vpc);
11242
11243   CASE (sem, INSN_ASRR_D_R) : /* asrr.d $Rs,$Rd */
11244 {
11245   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11246   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11247 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11248   int UNUSED written = 0;
11249   IADDR UNUSED pc = abuf->addr;
11250   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11251
11252 {
11253   SI tmp_tmpd;
11254   SI tmp_cnt1;
11255   SI tmp_cnt2;
11256   tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11257   tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11258   tmp_tmpd = SRASI (EXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11259   {
11260     SI opval = tmp_tmpd;
11261     SET_H_GR (FLD (f_operand2), opval);
11262     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11263   }
11264 {
11265   {
11266     BI opval = LTSI (tmp_tmpd, 0);
11267     CPU (h_nbit) = opval;
11268     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11269   }
11270   {
11271     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11272     CPU (h_zbit) = opval;
11273     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11274   }
11275 SET_H_CBIT_MOVE (0);
11276 SET_H_VBIT_MOVE (0);
11277 {
11278   {
11279     BI opval = 0;
11280     CPU (h_xbit) = opval;
11281     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11282   }
11283   {
11284     BI opval = 0;
11285     SET_H_INSN_PREFIXED_P (opval);
11286     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11287   }
11288 }
11289 }
11290 }
11291
11292 #undef FLD
11293 }
11294   NEXT (vpc);
11295
11296   CASE (sem, INSN_ASRQ) : /* asrq $c,${Rd} */
11297 {
11298   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11299   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11300 #define FLD(f) abuf->fields.sfmt_asrq.f
11301   int UNUSED written = 0;
11302   IADDR UNUSED pc = abuf->addr;
11303   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11304
11305 {
11306   SI tmp_tmpd;
11307   tmp_tmpd = SRASI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11308   {
11309     SI opval = tmp_tmpd;
11310     SET_H_GR (FLD (f_operand2), opval);
11311     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11312   }
11313 {
11314   {
11315     BI opval = LTSI (tmp_tmpd, 0);
11316     CPU (h_nbit) = opval;
11317     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11318   }
11319   {
11320     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11321     CPU (h_zbit) = opval;
11322     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11323   }
11324 SET_H_CBIT_MOVE (0);
11325 SET_H_VBIT_MOVE (0);
11326 {
11327   {
11328     BI opval = 0;
11329     CPU (h_xbit) = opval;
11330     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11331   }
11332   {
11333     BI opval = 0;
11334     SET_H_INSN_PREFIXED_P (opval);
11335     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11336   }
11337 }
11338 }
11339 }
11340
11341 #undef FLD
11342 }
11343   NEXT (vpc);
11344
11345   CASE (sem, INSN_LSRR_B_R) : /* lsrr.b $Rs,$Rd */
11346 {
11347   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11348   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11349 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11350   int UNUSED written = 0;
11351   IADDR UNUSED pc = abuf->addr;
11352   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11353
11354 {
11355   SI tmp_tmpd;
11356   SI tmp_cnt;
11357   tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11358   tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11359 {
11360   SI tmp_oldregval;
11361   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11362   {
11363     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11364     SET_H_GR (FLD (f_operand2), opval);
11365     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11366   }
11367 }
11368 {
11369   {
11370     BI opval = LTQI (tmp_tmpd, 0);
11371     CPU (h_nbit) = opval;
11372     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11373   }
11374   {
11375     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11376     CPU (h_zbit) = opval;
11377     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11378   }
11379 SET_H_CBIT_MOVE (0);
11380 SET_H_VBIT_MOVE (0);
11381 {
11382   {
11383     BI opval = 0;
11384     CPU (h_xbit) = opval;
11385     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11386   }
11387   {
11388     BI opval = 0;
11389     SET_H_INSN_PREFIXED_P (opval);
11390     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11391   }
11392 }
11393 }
11394 }
11395
11396 #undef FLD
11397 }
11398   NEXT (vpc);
11399
11400   CASE (sem, INSN_LSRR_W_R) : /* lsrr.w $Rs,$Rd */
11401 {
11402   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11403   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11404 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11405   int UNUSED written = 0;
11406   IADDR UNUSED pc = abuf->addr;
11407   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11408
11409 {
11410   SI tmp_tmpd;
11411   SI tmp_cnt;
11412   tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11413   tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11414 {
11415   SI tmp_oldregval;
11416   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11417   {
11418     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11419     SET_H_GR (FLD (f_operand2), opval);
11420     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11421   }
11422 }
11423 {
11424   {
11425     BI opval = LTHI (tmp_tmpd, 0);
11426     CPU (h_nbit) = opval;
11427     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11428   }
11429   {
11430     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11431     CPU (h_zbit) = opval;
11432     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11433   }
11434 SET_H_CBIT_MOVE (0);
11435 SET_H_VBIT_MOVE (0);
11436 {
11437   {
11438     BI opval = 0;
11439     CPU (h_xbit) = opval;
11440     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11441   }
11442   {
11443     BI opval = 0;
11444     SET_H_INSN_PREFIXED_P (opval);
11445     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11446   }
11447 }
11448 }
11449 }
11450
11451 #undef FLD
11452 }
11453   NEXT (vpc);
11454
11455   CASE (sem, INSN_LSRR_D_R) : /* lsrr.d $Rs,$Rd */
11456 {
11457   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11458   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11459 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11460   int UNUSED written = 0;
11461   IADDR UNUSED pc = abuf->addr;
11462   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11463
11464 {
11465   SI tmp_tmpd;
11466   SI tmp_cnt;
11467   tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11468   tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11469   {
11470     SI opval = tmp_tmpd;
11471     SET_H_GR (FLD (f_operand2), opval);
11472     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11473   }
11474 {
11475   {
11476     BI opval = LTSI (tmp_tmpd, 0);
11477     CPU (h_nbit) = opval;
11478     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11479   }
11480   {
11481     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11482     CPU (h_zbit) = opval;
11483     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11484   }
11485 SET_H_CBIT_MOVE (0);
11486 SET_H_VBIT_MOVE (0);
11487 {
11488   {
11489     BI opval = 0;
11490     CPU (h_xbit) = opval;
11491     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11492   }
11493   {
11494     BI opval = 0;
11495     SET_H_INSN_PREFIXED_P (opval);
11496     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11497   }
11498 }
11499 }
11500 }
11501
11502 #undef FLD
11503 }
11504   NEXT (vpc);
11505
11506   CASE (sem, INSN_LSRQ) : /* lsrq $c,${Rd} */
11507 {
11508   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11509   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11510 #define FLD(f) abuf->fields.sfmt_asrq.f
11511   int UNUSED written = 0;
11512   IADDR UNUSED pc = abuf->addr;
11513   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11514
11515 {
11516   SI tmp_tmpd;
11517   tmp_tmpd = SRLSI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11518   {
11519     SI opval = tmp_tmpd;
11520     SET_H_GR (FLD (f_operand2), opval);
11521     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11522   }
11523 {
11524   {
11525     BI opval = LTSI (tmp_tmpd, 0);
11526     CPU (h_nbit) = opval;
11527     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11528   }
11529   {
11530     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11531     CPU (h_zbit) = opval;
11532     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11533   }
11534 SET_H_CBIT_MOVE (0);
11535 SET_H_VBIT_MOVE (0);
11536 {
11537   {
11538     BI opval = 0;
11539     CPU (h_xbit) = opval;
11540     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11541   }
11542   {
11543     BI opval = 0;
11544     SET_H_INSN_PREFIXED_P (opval);
11545     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11546   }
11547 }
11548 }
11549 }
11550
11551 #undef FLD
11552 }
11553   NEXT (vpc);
11554
11555   CASE (sem, INSN_LSLR_B_R) : /* lslr.b $Rs,$Rd */
11556 {
11557   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11558   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11559 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11560   int UNUSED written = 0;
11561   IADDR UNUSED pc = abuf->addr;
11562   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11563
11564 {
11565   SI tmp_tmpd;
11566   SI tmp_cnt;
11567   tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11568   tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11569 {
11570   SI tmp_oldregval;
11571   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11572   {
11573     SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11574     SET_H_GR (FLD (f_operand2), opval);
11575     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11576   }
11577 }
11578 {
11579   {
11580     BI opval = LTQI (tmp_tmpd, 0);
11581     CPU (h_nbit) = opval;
11582     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11583   }
11584   {
11585     BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11586     CPU (h_zbit) = opval;
11587     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11588   }
11589 SET_H_CBIT_MOVE (0);
11590 SET_H_VBIT_MOVE (0);
11591 {
11592   {
11593     BI opval = 0;
11594     CPU (h_xbit) = opval;
11595     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11596   }
11597   {
11598     BI opval = 0;
11599     SET_H_INSN_PREFIXED_P (opval);
11600     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11601   }
11602 }
11603 }
11604 }
11605
11606 #undef FLD
11607 }
11608   NEXT (vpc);
11609
11610   CASE (sem, INSN_LSLR_W_R) : /* lslr.w $Rs,$Rd */
11611 {
11612   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11613   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11614 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11615   int UNUSED written = 0;
11616   IADDR UNUSED pc = abuf->addr;
11617   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11618
11619 {
11620   SI tmp_tmpd;
11621   SI tmp_cnt;
11622   tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11623   tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11624 {
11625   SI tmp_oldregval;
11626   tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11627   {
11628     SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11629     SET_H_GR (FLD (f_operand2), opval);
11630     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11631   }
11632 }
11633 {
11634   {
11635     BI opval = LTHI (tmp_tmpd, 0);
11636     CPU (h_nbit) = opval;
11637     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11638   }
11639   {
11640     BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11641     CPU (h_zbit) = opval;
11642     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11643   }
11644 SET_H_CBIT_MOVE (0);
11645 SET_H_VBIT_MOVE (0);
11646 {
11647   {
11648     BI opval = 0;
11649     CPU (h_xbit) = opval;
11650     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11651   }
11652   {
11653     BI opval = 0;
11654     SET_H_INSN_PREFIXED_P (opval);
11655     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11656   }
11657 }
11658 }
11659 }
11660
11661 #undef FLD
11662 }
11663   NEXT (vpc);
11664
11665   CASE (sem, INSN_LSLR_D_R) : /* lslr.d $Rs,$Rd */
11666 {
11667   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11668   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11669 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11670   int UNUSED written = 0;
11671   IADDR UNUSED pc = abuf->addr;
11672   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11673
11674 {
11675   SI tmp_tmpd;
11676   SI tmp_cnt;
11677   tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11678   tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11679   {
11680     SI opval = tmp_tmpd;
11681     SET_H_GR (FLD (f_operand2), opval);
11682     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11683   }
11684 {
11685   {
11686     BI opval = LTSI (tmp_tmpd, 0);
11687     CPU (h_nbit) = opval;
11688     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11689   }
11690   {
11691     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11692     CPU (h_zbit) = opval;
11693     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11694   }
11695 SET_H_CBIT_MOVE (0);
11696 SET_H_VBIT_MOVE (0);
11697 {
11698   {
11699     BI opval = 0;
11700     CPU (h_xbit) = opval;
11701     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11702   }
11703   {
11704     BI opval = 0;
11705     SET_H_INSN_PREFIXED_P (opval);
11706     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11707   }
11708 }
11709 }
11710 }
11711
11712 #undef FLD
11713 }
11714   NEXT (vpc);
11715
11716   CASE (sem, INSN_LSLQ) : /* lslq $c,${Rd} */
11717 {
11718   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11719   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11720 #define FLD(f) abuf->fields.sfmt_asrq.f
11721   int UNUSED written = 0;
11722   IADDR UNUSED pc = abuf->addr;
11723   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11724
11725 {
11726   SI tmp_tmpd;
11727   tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11728   {
11729     SI opval = tmp_tmpd;
11730     SET_H_GR (FLD (f_operand2), opval);
11731     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11732   }
11733 {
11734   {
11735     BI opval = LTSI (tmp_tmpd, 0);
11736     CPU (h_nbit) = opval;
11737     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11738   }
11739   {
11740     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11741     CPU (h_zbit) = opval;
11742     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11743   }
11744 SET_H_CBIT_MOVE (0);
11745 SET_H_VBIT_MOVE (0);
11746 {
11747   {
11748     BI opval = 0;
11749     CPU (h_xbit) = opval;
11750     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11751   }
11752   {
11753     BI opval = 0;
11754     SET_H_INSN_PREFIXED_P (opval);
11755     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11756   }
11757 }
11758 }
11759 }
11760
11761 #undef FLD
11762 }
11763   NEXT (vpc);
11764
11765   CASE (sem, INSN_BTST) : /* $Rs,$Rd */
11766 {
11767   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11768   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11769 #define FLD(f) abuf->fields.sfmt_add_b_r.f
11770   int UNUSED written = 0;
11771   IADDR UNUSED pc = abuf->addr;
11772   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11773
11774 {
11775   SI tmp_tmpd;
11776   SI tmp_cnt;
11777   tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), SUBSI (31, ANDSI (GET_H_GR (FLD (f_operand1)), 31)));
11778 {
11779   {
11780     BI opval = LTSI (tmp_tmpd, 0);
11781     CPU (h_nbit) = opval;
11782     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11783   }
11784   {
11785     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11786     CPU (h_zbit) = opval;
11787     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11788   }
11789 SET_H_CBIT_MOVE (0);
11790 SET_H_VBIT_MOVE (0);
11791 {
11792   {
11793     BI opval = 0;
11794     CPU (h_xbit) = opval;
11795     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11796   }
11797   {
11798     BI opval = 0;
11799     SET_H_INSN_PREFIXED_P (opval);
11800     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11801   }
11802 }
11803 }
11804 }
11805
11806 #undef FLD
11807 }
11808   NEXT (vpc);
11809
11810   CASE (sem, INSN_BTSTQ) : /* btstq $c,${Rd} */
11811 {
11812   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11814 #define FLD(f) abuf->fields.sfmt_asrq.f
11815   int UNUSED written = 0;
11816   IADDR UNUSED pc = abuf->addr;
11817   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11818
11819 {
11820   SI tmp_tmpd;
11821   tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), SUBSI (31, FLD (f_u5)));
11822 {
11823   {
11824     BI opval = LTSI (tmp_tmpd, 0);
11825     CPU (h_nbit) = opval;
11826     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11827   }
11828   {
11829     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11830     CPU (h_zbit) = opval;
11831     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11832   }
11833 SET_H_CBIT_MOVE (0);
11834 SET_H_VBIT_MOVE (0);
11835 {
11836   {
11837     BI opval = 0;
11838     CPU (h_xbit) = opval;
11839     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11840   }
11841   {
11842     BI opval = 0;
11843     SET_H_INSN_PREFIXED_P (opval);
11844     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11845   }
11846 }
11847 }
11848 }
11849
11850 #undef FLD
11851 }
11852   NEXT (vpc);
11853
11854   CASE (sem, INSN_SETF) : /* setf ${list-of-flags} */
11855 {
11856   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11857   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11858 #define FLD(f) abuf->fields.sfmt_setf.f
11859   int UNUSED written = 0;
11860   IADDR UNUSED pc = abuf->addr;
11861   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11862
11863 {
11864   SI tmp_tmp;
11865   tmp_tmp = FLD (f_dstsrc);
11866 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 0)), 0)) {
11867   {
11868     BI opval = 1;
11869     CPU (h_cbit) = opval;
11870     written |= (1 << 1);
11871     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
11872   }
11873 }
11874 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 1)), 0)) {
11875   {
11876     BI opval = 1;
11877     CPU (h_vbit) = opval;
11878     written |= (1 << 7);
11879     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
11880   }
11881 }
11882 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 2)), 0)) {
11883   {
11884     BI opval = 1;
11885     CPU (h_zbit) = opval;
11886     written |= (1 << 9);
11887     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11888   }
11889 }
11890 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 3)), 0)) {
11891   {
11892     BI opval = 1;
11893     CPU (h_nbit) = opval;
11894     written |= (1 << 3);
11895     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11896   }
11897 }
11898 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
11899   {
11900     BI opval = 1;
11901     CPU (h_xbit) = opval;
11902     written |= (1 << 8);
11903     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11904   }
11905 }
11906 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 5)), 0)) {
11907   {
11908     BI opval = 1;
11909     SET_H_IBIT (opval);
11910     written |= (1 << 2);
11911     TRACE_RESULT (current_cpu, abuf, "ibit", 'x', opval);
11912   }
11913 }
11914 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 6)), 0)) {
11915   {
11916     BI opval = 1;
11917     SET_H_UBIT (opval);
11918     written |= (1 << 6);
11919     TRACE_RESULT (current_cpu, abuf, "ubit", 'x', opval);
11920   }
11921 }
11922 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 7)), 0)) {
11923   {
11924     BI opval = 1;
11925     CPU (h_pbit) = opval;
11926     written |= (1 << 4);
11927     TRACE_RESULT (current_cpu, abuf, "pbit", 'x', opval);
11928   }
11929 }
11930   {
11931     BI opval = 0;
11932     SET_H_INSN_PREFIXED_P (opval);
11933     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11934   }
11935 if (EQSI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
11936   {
11937     BI opval = 0;
11938     CPU (h_xbit) = opval;
11939     written |= (1 << 8);
11940     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11941   }
11942 }
11943 }
11944
11945   abuf->written = written;
11946 #undef FLD
11947 }
11948   NEXT (vpc);
11949
11950   CASE (sem, INSN_CLEARF) : /* clearf ${list-of-flags} */
11951 {
11952   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11953   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11954 #define FLD(f) abuf->fields.sfmt_setf.f
11955   int UNUSED written = 0;
11956   IADDR UNUSED pc = abuf->addr;
11957   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11958
11959 {
11960   SI tmp_tmp;
11961   tmp_tmp = FLD (f_dstsrc);
11962 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 0)), 0)) {
11963   {
11964     BI opval = 0;
11965     CPU (h_cbit) = opval;
11966     written |= (1 << 1);
11967     TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
11968   }
11969 }
11970 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 1)), 0)) {
11971   {
11972     BI opval = 0;
11973     CPU (h_vbit) = opval;
11974     written |= (1 << 7);
11975     TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
11976   }
11977 }
11978 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 2)), 0)) {
11979   {
11980     BI opval = 0;
11981     CPU (h_zbit) = opval;
11982     written |= (1 << 9);
11983     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11984   }
11985 }
11986 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 3)), 0)) {
11987   {
11988     BI opval = 0;
11989     CPU (h_nbit) = opval;
11990     written |= (1 << 3);
11991     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11992   }
11993 }
11994 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
11995   {
11996     BI opval = 0;
11997     CPU (h_xbit) = opval;
11998     written |= (1 << 8);
11999     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12000   }
12001 }
12002 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 5)), 0)) {
12003   {
12004     BI opval = 0;
12005     SET_H_IBIT (opval);
12006     written |= (1 << 2);
12007     TRACE_RESULT (current_cpu, abuf, "ibit", 'x', opval);
12008   }
12009 }
12010 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 6)), 0)) {
12011   {
12012     BI opval = 0;
12013     SET_H_UBIT (opval);
12014     written |= (1 << 6);
12015     TRACE_RESULT (current_cpu, abuf, "ubit", 'x', opval);
12016   }
12017 }
12018 if (NESI (ANDSI (tmp_tmp, SLLSI (1, 7)), 0)) {
12019   {
12020     BI opval = 0;
12021     CPU (h_pbit) = opval;
12022     written |= (1 << 4);
12023     TRACE_RESULT (current_cpu, abuf, "pbit", 'x', opval);
12024   }
12025 }
12026 {
12027   {
12028     BI opval = 0;
12029     CPU (h_xbit) = opval;
12030     written |= (1 << 8);
12031     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12032   }
12033   {
12034     BI opval = 0;
12035     SET_H_INSN_PREFIXED_P (opval);
12036     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12037   }
12038 }
12039 }
12040
12041   abuf->written = written;
12042 #undef FLD
12043 }
12044   NEXT (vpc);
12045
12046   CASE (sem, INSN_BCC_B) : /* b${cc} ${o-pcrel} */
12047 {
12048   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12049   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12050 #define FLD(f) abuf->fields.sfmt_bcc_b.f
12051   int UNUSED written = 0;
12052   IADDR UNUSED pc = abuf->addr;
12053   SEM_BRANCH_INIT
12054   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12055
12056 {
12057   BI tmp_truthval;
12058   tmp_truthval = ({   SI tmp_tmpcond;
12059   BI tmp_condres;
12060   tmp_tmpcond = FLD (f_operand2);
12061 ; if (EQSI (tmp_tmpcond, 0)) {
12062   tmp_condres = NOTBI (CPU (h_cbit));
12063 }
12064  else if (EQSI (tmp_tmpcond, 1)) {
12065   tmp_condres = CPU (h_cbit);
12066 }
12067  else if (EQSI (tmp_tmpcond, 2)) {
12068   tmp_condres = NOTBI (CPU (h_zbit));
12069 }
12070  else if (EQSI (tmp_tmpcond, 3)) {
12071   tmp_condres = CPU (h_zbit);
12072 }
12073  else if (EQSI (tmp_tmpcond, 4)) {
12074   tmp_condres = NOTBI (CPU (h_vbit));
12075 }
12076  else if (EQSI (tmp_tmpcond, 5)) {
12077   tmp_condres = CPU (h_vbit);
12078 }
12079  else if (EQSI (tmp_tmpcond, 6)) {
12080   tmp_condres = NOTBI (CPU (h_nbit));
12081 }
12082  else if (EQSI (tmp_tmpcond, 7)) {
12083   tmp_condres = CPU (h_nbit);
12084 }
12085  else if (EQSI (tmp_tmpcond, 8)) {
12086   tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
12087 }
12088  else if (EQSI (tmp_tmpcond, 9)) {
12089   tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
12090 }
12091  else if (EQSI (tmp_tmpcond, 10)) {
12092   tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
12093 }
12094  else if (EQSI (tmp_tmpcond, 11)) {
12095   tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
12096 }
12097  else if (EQSI (tmp_tmpcond, 12)) {
12098   tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
12099 }
12100  else if (EQSI (tmp_tmpcond, 13)) {
12101   tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
12102 }
12103  else if (EQSI (tmp_tmpcond, 14)) {
12104   tmp_condres = 1;
12105 }
12106  else if (EQSI (tmp_tmpcond, 15)) {
12107   tmp_condres = CPU (h_pbit);
12108 }
12109 ; tmp_condres; });
12110 crisv10f_branch_taken (current_cpu, pc, FLD (i_o_pcrel), tmp_truthval);
12111 {
12112   {
12113     BI opval = 0;
12114     CPU (h_xbit) = opval;
12115     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12116   }
12117   {
12118     BI opval = 0;
12119     SET_H_INSN_PREFIXED_P (opval);
12120     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12121   }
12122 }
12123 if (tmp_truthval) {
12124 {
12125   {
12126     USI opval = FLD (i_o_pcrel);
12127     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12128     written |= (1 << 8);
12129     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12130   }
12131 }
12132 }
12133 }
12134
12135   abuf->written = written;
12136   SEM_BRANCH_FINI (vpc);
12137 #undef FLD
12138 }
12139   NEXT (vpc);
12140
12141   CASE (sem, INSN_BA_B) : /* ba ${o-pcrel} */
12142 {
12143   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12144   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12145 #define FLD(f) abuf->fields.sfmt_bcc_b.f
12146   int UNUSED written = 0;
12147   IADDR UNUSED pc = abuf->addr;
12148   SEM_BRANCH_INIT
12149   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12150
12151 {
12152 {
12153   {
12154     BI opval = 0;
12155     CPU (h_xbit) = opval;
12156     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12157   }
12158   {
12159     BI opval = 0;
12160     SET_H_INSN_PREFIXED_P (opval);
12161     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12162   }
12163 }
12164 {
12165   {
12166     USI opval = FLD (i_o_pcrel);
12167     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12168     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12169   }
12170 }
12171 }
12172
12173   SEM_BRANCH_FINI (vpc);
12174 #undef FLD
12175 }
12176   NEXT (vpc);
12177
12178   CASE (sem, INSN_BCC_W) : /* b${cc} ${o-word-pcrel} */
12179 {
12180   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12181   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12182 #define FLD(f) abuf->fields.sfmt_bcc_w.f
12183   int UNUSED written = 0;
12184   IADDR UNUSED pc = abuf->addr;
12185   SEM_BRANCH_INIT
12186   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12187
12188 {
12189   BI tmp_truthval;
12190   tmp_truthval = ({   SI tmp_tmpcond;
12191   BI tmp_condres;
12192   tmp_tmpcond = FLD (f_operand2);
12193 ; if (EQSI (tmp_tmpcond, 0)) {
12194   tmp_condres = NOTBI (CPU (h_cbit));
12195 }
12196  else if (EQSI (tmp_tmpcond, 1)) {
12197   tmp_condres = CPU (h_cbit);
12198 }
12199  else if (EQSI (tmp_tmpcond, 2)) {
12200   tmp_condres = NOTBI (CPU (h_zbit));
12201 }
12202  else if (EQSI (tmp_tmpcond, 3)) {
12203   tmp_condres = CPU (h_zbit);
12204 }
12205  else if (EQSI (tmp_tmpcond, 4)) {
12206   tmp_condres = NOTBI (CPU (h_vbit));
12207 }
12208  else if (EQSI (tmp_tmpcond, 5)) {
12209   tmp_condres = CPU (h_vbit);
12210 }
12211  else if (EQSI (tmp_tmpcond, 6)) {
12212   tmp_condres = NOTBI (CPU (h_nbit));
12213 }
12214  else if (EQSI (tmp_tmpcond, 7)) {
12215   tmp_condres = CPU (h_nbit);
12216 }
12217  else if (EQSI (tmp_tmpcond, 8)) {
12218   tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
12219 }
12220  else if (EQSI (tmp_tmpcond, 9)) {
12221   tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
12222 }
12223  else if (EQSI (tmp_tmpcond, 10)) {
12224   tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
12225 }
12226  else if (EQSI (tmp_tmpcond, 11)) {
12227   tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
12228 }
12229  else if (EQSI (tmp_tmpcond, 12)) {
12230   tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
12231 }
12232  else if (EQSI (tmp_tmpcond, 13)) {
12233   tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
12234 }
12235  else if (EQSI (tmp_tmpcond, 14)) {
12236   tmp_condres = 1;
12237 }
12238  else if (EQSI (tmp_tmpcond, 15)) {
12239   tmp_condres = CPU (h_pbit);
12240 }
12241 ; tmp_condres; });
12242 crisv10f_branch_taken (current_cpu, pc, FLD (i_o_word_pcrel), tmp_truthval);
12243 {
12244   {
12245     BI opval = 0;
12246     CPU (h_xbit) = opval;
12247     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12248   }
12249   {
12250     BI opval = 0;
12251     SET_H_INSN_PREFIXED_P (opval);
12252     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12253   }
12254 }
12255 if (tmp_truthval) {
12256 {
12257   {
12258     USI opval = FLD (i_o_word_pcrel);
12259     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12260     written |= (1 << 8);
12261     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12262   }
12263 }
12264 }
12265 }
12266
12267   abuf->written = written;
12268   SEM_BRANCH_FINI (vpc);
12269 #undef FLD
12270 }
12271   NEXT (vpc);
12272
12273   CASE (sem, INSN_BA_W) : /* ba ${o-word-pcrel} */
12274 {
12275   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12276   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12277 #define FLD(f) abuf->fields.sfmt_bcc_w.f
12278   int UNUSED written = 0;
12279   IADDR UNUSED pc = abuf->addr;
12280   SEM_BRANCH_INIT
12281   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12282
12283 {
12284 {
12285   {
12286     BI opval = 0;
12287     CPU (h_xbit) = opval;
12288     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12289   }
12290   {
12291     BI opval = 0;
12292     SET_H_INSN_PREFIXED_P (opval);
12293     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12294   }
12295 }
12296 {
12297   {
12298     USI opval = FLD (i_o_word_pcrel);
12299     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12300     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12301   }
12302 }
12303 }
12304
12305   SEM_BRANCH_FINI (vpc);
12306 #undef FLD
12307 }
12308   NEXT (vpc);
12309
12310   CASE (sem, INSN_JUMP_R) : /* jump/jsr/jir ${Rs} */
12311 {
12312   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12313   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12314 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
12315   int UNUSED written = 0;
12316   IADDR UNUSED pc = abuf->addr;
12317   SEM_BRANCH_INIT
12318   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12319
12320 {
12321   {
12322     SI opval = ADDSI (pc, 2);
12323     SET_H_SR (FLD (f_operand2), opval);
12324     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12325   }
12326   {
12327     USI opval = GET_H_GR (FLD (f_operand1));
12328     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12329     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12330   }
12331 {
12332   {
12333     BI opval = 0;
12334     CPU (h_xbit) = opval;
12335     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12336   }
12337   {
12338     BI opval = 0;
12339     SET_H_INSN_PREFIXED_P (opval);
12340     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12341   }
12342 }
12343 }
12344
12345   SEM_BRANCH_FINI (vpc);
12346 #undef FLD
12347 }
12348   NEXT (vpc);
12349
12350   CASE (sem, INSN_JUMP_M) : /* jump/jsr/jir [${Rs}${inc}] */
12351 {
12352   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12353   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12354 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
12355   int UNUSED written = 0;
12356   IADDR UNUSED pc = abuf->addr;
12357   SEM_BRANCH_INIT
12358   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12359
12360 {
12361   {
12362     SI opval = ADDSI (pc, 2);
12363     SET_H_SR (FLD (f_operand2), opval);
12364     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12365   }
12366   {
12367     USI opval = ({   SI tmp_addr;
12368   SI tmp_tmp_mem;
12369   BI tmp_postinc;
12370   tmp_postinc = FLD (f_memmode);
12371 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12372 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
12373 ; if (NEBI (tmp_postinc, 0)) {
12374 {
12375 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12376   tmp_addr = ADDSI (tmp_addr, 4);
12377 }
12378   {
12379     SI opval = tmp_addr;
12380     SET_H_GR (FLD (f_operand1), opval);
12381     written |= (1 << 7);
12382     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12383   }
12384 }
12385 }
12386 ; tmp_tmp_mem; });
12387     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12388     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12389   }
12390 {
12391   {
12392     BI opval = 0;
12393     CPU (h_xbit) = opval;
12394     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12395   }
12396   {
12397     BI opval = 0;
12398     SET_H_INSN_PREFIXED_P (opval);
12399     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12400   }
12401 }
12402 }
12403
12404   abuf->written = written;
12405   SEM_BRANCH_FINI (vpc);
12406 #undef FLD
12407 }
12408   NEXT (vpc);
12409
12410   CASE (sem, INSN_JUMP_C) : /* jump/jsr/jir ${const32} */
12411 {
12412   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12413   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12414 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
12415   int UNUSED written = 0;
12416   IADDR UNUSED pc = abuf->addr;
12417   SEM_BRANCH_INIT
12418   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
12419
12420 {
12421   {
12422     SI opval = ADDSI (pc, 6);
12423     SET_H_SR (FLD (f_operand2), opval);
12424     TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12425   }
12426   {
12427     USI opval = FLD (f_indir_pc__dword);
12428     SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12429     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12430   }
12431 {
12432   {
12433     BI opval = 0;
12434     CPU (h_xbit) = opval;
12435     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12436   }
12437   {
12438     BI opval = 0;
12439     SET_H_INSN_PREFIXED_P (opval);
12440     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12441   }
12442 }
12443 }
12444
12445   SEM_BRANCH_FINI (vpc);
12446 #undef FLD
12447 }
12448   NEXT (vpc);
12449
12450   CASE (sem, INSN_BREAK) : /* break $n */
12451 {
12452   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12453   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12454 #define FLD(f) abuf->fields.sfmt_break.f
12455   int UNUSED written = 0;
12456   IADDR UNUSED pc = abuf->addr;
12457   SEM_BRANCH_INIT
12458   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12459
12460 {
12461 {
12462   {
12463     BI opval = 0;
12464     CPU (h_xbit) = opval;
12465     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12466   }
12467   {
12468     BI opval = 0;
12469     SET_H_INSN_PREFIXED_P (opval);
12470     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12471   }
12472 }
12473   {
12474     USI opval = crisv10f_break_handler (current_cpu, FLD (f_u4), pc);
12475     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12476     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12477   }
12478 }
12479
12480   SEM_BRANCH_FINI (vpc);
12481 #undef FLD
12482 }
12483   NEXT (vpc);
12484
12485   CASE (sem, INSN_BOUND_R_B_R) : /* bound-r.b ${Rs},${Rd} */
12486 {
12487   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12488   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12489 #define FLD(f) abuf->fields.sfmt_muls_b.f
12490   int UNUSED written = 0;
12491   IADDR UNUSED pc = abuf->addr;
12492   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12493
12494 {
12495   SI tmp_tmpopd;
12496   SI tmp_tmpops;
12497   SI tmp_newval;
12498   tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
12499   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12500   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12501   {
12502     SI opval = tmp_newval;
12503     SET_H_GR (FLD (f_operand2), opval);
12504     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12505   }
12506 {
12507   {
12508     BI opval = LTSI (tmp_newval, 0);
12509     CPU (h_nbit) = opval;
12510     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12511   }
12512   {
12513     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12514     CPU (h_zbit) = opval;
12515     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12516   }
12517 SET_H_CBIT_MOVE (0);
12518 SET_H_VBIT_MOVE (0);
12519 {
12520   {
12521     BI opval = 0;
12522     CPU (h_xbit) = opval;
12523     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12524   }
12525   {
12526     BI opval = 0;
12527     SET_H_INSN_PREFIXED_P (opval);
12528     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12529   }
12530 }
12531 }
12532 }
12533
12534 #undef FLD
12535 }
12536   NEXT (vpc);
12537
12538   CASE (sem, INSN_BOUND_R_W_R) : /* bound-r.w ${Rs},${Rd} */
12539 {
12540   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12541   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12542 #define FLD(f) abuf->fields.sfmt_muls_b.f
12543   int UNUSED written = 0;
12544   IADDR UNUSED pc = abuf->addr;
12545   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12546
12547 {
12548   SI tmp_tmpopd;
12549   SI tmp_tmpops;
12550   SI tmp_newval;
12551   tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
12552   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12553   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12554   {
12555     SI opval = tmp_newval;
12556     SET_H_GR (FLD (f_operand2), opval);
12557     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12558   }
12559 {
12560   {
12561     BI opval = LTSI (tmp_newval, 0);
12562     CPU (h_nbit) = opval;
12563     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12564   }
12565   {
12566     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12567     CPU (h_zbit) = opval;
12568     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12569   }
12570 SET_H_CBIT_MOVE (0);
12571 SET_H_VBIT_MOVE (0);
12572 {
12573   {
12574     BI opval = 0;
12575     CPU (h_xbit) = opval;
12576     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12577   }
12578   {
12579     BI opval = 0;
12580     SET_H_INSN_PREFIXED_P (opval);
12581     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12582   }
12583 }
12584 }
12585 }
12586
12587 #undef FLD
12588 }
12589   NEXT (vpc);
12590
12591   CASE (sem, INSN_BOUND_R_D_R) : /* bound-r.d ${Rs},${Rd} */
12592 {
12593   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12594   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12595 #define FLD(f) abuf->fields.sfmt_muls_b.f
12596   int UNUSED written = 0;
12597   IADDR UNUSED pc = abuf->addr;
12598   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12599
12600 {
12601   SI tmp_tmpopd;
12602   SI tmp_tmpops;
12603   SI tmp_newval;
12604   tmp_tmpops = TRUNCSISI (GET_H_GR (FLD (f_operand1)));
12605   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12606   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12607   {
12608     SI opval = tmp_newval;
12609     SET_H_GR (FLD (f_operand2), opval);
12610     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12611   }
12612 {
12613   {
12614     BI opval = LTSI (tmp_newval, 0);
12615     CPU (h_nbit) = opval;
12616     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12617   }
12618   {
12619     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12620     CPU (h_zbit) = opval;
12621     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12622   }
12623 SET_H_CBIT_MOVE (0);
12624 SET_H_VBIT_MOVE (0);
12625 {
12626   {
12627     BI opval = 0;
12628     CPU (h_xbit) = opval;
12629     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12630   }
12631   {
12632     BI opval = 0;
12633     SET_H_INSN_PREFIXED_P (opval);
12634     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12635   }
12636 }
12637 }
12638 }
12639
12640 #undef FLD
12641 }
12642   NEXT (vpc);
12643
12644   CASE (sem, INSN_BOUND_M_B_M) : /* bound-m.b [${Rs}${inc}],${Rd} */
12645 {
12646   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12647   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12648 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
12649   int UNUSED written = 0;
12650   IADDR UNUSED pc = abuf->addr;
12651   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12652
12653 {
12654   SI tmp_tmpopd;
12655   SI tmp_tmpops;
12656   SI tmp_newval;
12657   tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
12658   QI tmp_tmp_mem;
12659   BI tmp_postinc;
12660   tmp_postinc = FLD (f_memmode);
12661 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12662 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
12663 ; if (NEBI (tmp_postinc, 0)) {
12664 {
12665 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12666   tmp_addr = ADDSI (tmp_addr, 1);
12667 }
12668   {
12669     SI opval = tmp_addr;
12670     SET_H_GR (FLD (f_operand1), opval);
12671     written |= (1 << 9);
12672     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12673   }
12674 }
12675 }
12676 ; tmp_tmp_mem; }));
12677   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12678   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12679 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
12680   {
12681     SI opval = tmp_newval;
12682     SET_H_GR (FLD (f_operand1), opval);
12683     written |= (1 << 9);
12684     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12685   }
12686 } else {
12687   {
12688     SI opval = tmp_newval;
12689     SET_H_GR (FLD (f_operand2), opval);
12690     written |= (1 << 8);
12691     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12692   }
12693 }
12694 {
12695   {
12696     BI opval = LTSI (tmp_newval, 0);
12697     CPU (h_nbit) = opval;
12698     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12699   }
12700   {
12701     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12702     CPU (h_zbit) = opval;
12703     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12704   }
12705 SET_H_CBIT_MOVE (0);
12706 SET_H_VBIT_MOVE (0);
12707 {
12708   {
12709     BI opval = 0;
12710     CPU (h_xbit) = opval;
12711     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12712   }
12713   {
12714     BI opval = 0;
12715     SET_H_INSN_PREFIXED_P (opval);
12716     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12717   }
12718 }
12719 }
12720 }
12721
12722   abuf->written = written;
12723 #undef FLD
12724 }
12725   NEXT (vpc);
12726
12727   CASE (sem, INSN_BOUND_M_W_M) : /* bound-m.w [${Rs}${inc}],${Rd} */
12728 {
12729   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12730   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12731 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
12732   int UNUSED written = 0;
12733   IADDR UNUSED pc = abuf->addr;
12734   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12735
12736 {
12737   SI tmp_tmpopd;
12738   SI tmp_tmpops;
12739   SI tmp_newval;
12740   tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
12741   HI tmp_tmp_mem;
12742   BI tmp_postinc;
12743   tmp_postinc = FLD (f_memmode);
12744 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12745 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
12746 ; if (NEBI (tmp_postinc, 0)) {
12747 {
12748 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12749   tmp_addr = ADDSI (tmp_addr, 2);
12750 }
12751   {
12752     SI opval = tmp_addr;
12753     SET_H_GR (FLD (f_operand1), opval);
12754     written |= (1 << 9);
12755     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12756   }
12757 }
12758 }
12759 ; tmp_tmp_mem; }));
12760   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12761   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12762 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
12763   {
12764     SI opval = tmp_newval;
12765     SET_H_GR (FLD (f_operand1), opval);
12766     written |= (1 << 9);
12767     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12768   }
12769 } else {
12770   {
12771     SI opval = tmp_newval;
12772     SET_H_GR (FLD (f_operand2), opval);
12773     written |= (1 << 8);
12774     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12775   }
12776 }
12777 {
12778   {
12779     BI opval = LTSI (tmp_newval, 0);
12780     CPU (h_nbit) = opval;
12781     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12782   }
12783   {
12784     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12785     CPU (h_zbit) = opval;
12786     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12787   }
12788 SET_H_CBIT_MOVE (0);
12789 SET_H_VBIT_MOVE (0);
12790 {
12791   {
12792     BI opval = 0;
12793     CPU (h_xbit) = opval;
12794     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12795   }
12796   {
12797     BI opval = 0;
12798     SET_H_INSN_PREFIXED_P (opval);
12799     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12800   }
12801 }
12802 }
12803 }
12804
12805   abuf->written = written;
12806 #undef FLD
12807 }
12808   NEXT (vpc);
12809
12810   CASE (sem, INSN_BOUND_M_D_M) : /* bound-m.d [${Rs}${inc}],${Rd} */
12811 {
12812   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12813   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12814 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
12815   int UNUSED written = 0;
12816   IADDR UNUSED pc = abuf->addr;
12817   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12818
12819 {
12820   SI tmp_tmpopd;
12821   SI tmp_tmpops;
12822   SI tmp_newval;
12823   tmp_tmpops = ({   SI tmp_addr;
12824   SI tmp_tmp_mem;
12825   BI tmp_postinc;
12826   tmp_postinc = FLD (f_memmode);
12827 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12828 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
12829 ; if (NEBI (tmp_postinc, 0)) {
12830 {
12831 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12832   tmp_addr = ADDSI (tmp_addr, 4);
12833 }
12834   {
12835     SI opval = tmp_addr;
12836     SET_H_GR (FLD (f_operand1), opval);
12837     written |= (1 << 9);
12838     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12839   }
12840 }
12841 }
12842 ; tmp_tmp_mem; });
12843   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12844   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12845 if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
12846   {
12847     SI opval = tmp_newval;
12848     SET_H_GR (FLD (f_operand1), opval);
12849     written |= (1 << 9);
12850     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12851   }
12852 } else {
12853   {
12854     SI opval = tmp_newval;
12855     SET_H_GR (FLD (f_operand2), opval);
12856     written |= (1 << 8);
12857     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12858   }
12859 }
12860 {
12861   {
12862     BI opval = LTSI (tmp_newval, 0);
12863     CPU (h_nbit) = opval;
12864     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12865   }
12866   {
12867     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12868     CPU (h_zbit) = opval;
12869     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12870   }
12871 SET_H_CBIT_MOVE (0);
12872 SET_H_VBIT_MOVE (0);
12873 {
12874   {
12875     BI opval = 0;
12876     CPU (h_xbit) = opval;
12877     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12878   }
12879   {
12880     BI opval = 0;
12881     SET_H_INSN_PREFIXED_P (opval);
12882     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12883   }
12884 }
12885 }
12886 }
12887
12888   abuf->written = written;
12889 #undef FLD
12890 }
12891   NEXT (vpc);
12892
12893   CASE (sem, INSN_BOUND_CB) : /* bound.b [PC+],${Rd} */
12894 {
12895   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12896   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12897 #define FLD(f) abuf->fields.sfmt_bound_cb.f
12898   int UNUSED written = 0;
12899   IADDR UNUSED pc = abuf->addr;
12900   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12901
12902 {
12903   SI tmp_tmpopd;
12904   SI tmp_tmpops;
12905   SI tmp_newval;
12906   tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
12907   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12908   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12909   {
12910     SI opval = tmp_newval;
12911     SET_H_GR (FLD (f_operand2), opval);
12912     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12913   }
12914 {
12915   {
12916     BI opval = LTSI (tmp_newval, 0);
12917     CPU (h_nbit) = opval;
12918     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12919   }
12920   {
12921     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12922     CPU (h_zbit) = opval;
12923     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12924   }
12925 SET_H_CBIT_MOVE (0);
12926 SET_H_VBIT_MOVE (0);
12927 {
12928   {
12929     BI opval = 0;
12930     CPU (h_xbit) = opval;
12931     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12932   }
12933   {
12934     BI opval = 0;
12935     SET_H_INSN_PREFIXED_P (opval);
12936     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12937   }
12938 }
12939 }
12940 }
12941
12942 #undef FLD
12943 }
12944   NEXT (vpc);
12945
12946   CASE (sem, INSN_BOUND_CW) : /* bound.w [PC+],${Rd} */
12947 {
12948   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12949   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12950 #define FLD(f) abuf->fields.sfmt_bound_cw.f
12951   int UNUSED written = 0;
12952   IADDR UNUSED pc = abuf->addr;
12953   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12954
12955 {
12956   SI tmp_tmpopd;
12957   SI tmp_tmpops;
12958   SI tmp_newval;
12959   tmp_tmpops = ZEXTSISI (FLD (f_indir_pc__word));
12960   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12961   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12962   {
12963     SI opval = tmp_newval;
12964     SET_H_GR (FLD (f_operand2), opval);
12965     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12966   }
12967 {
12968   {
12969     BI opval = LTSI (tmp_newval, 0);
12970     CPU (h_nbit) = opval;
12971     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12972   }
12973   {
12974     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12975     CPU (h_zbit) = opval;
12976     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12977   }
12978 SET_H_CBIT_MOVE (0);
12979 SET_H_VBIT_MOVE (0);
12980 {
12981   {
12982     BI opval = 0;
12983     CPU (h_xbit) = opval;
12984     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12985   }
12986   {
12987     BI opval = 0;
12988     SET_H_INSN_PREFIXED_P (opval);
12989     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12990   }
12991 }
12992 }
12993 }
12994
12995 #undef FLD
12996 }
12997   NEXT (vpc);
12998
12999   CASE (sem, INSN_BOUND_CD) : /* bound.d [PC+],${Rd} */
13000 {
13001   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13002   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13003 #define FLD(f) abuf->fields.sfmt_bound_cd.f
13004   int UNUSED written = 0;
13005   IADDR UNUSED pc = abuf->addr;
13006   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13007
13008 {
13009   SI tmp_tmpopd;
13010   SI tmp_tmpops;
13011   SI tmp_newval;
13012   tmp_tmpops = FLD (f_indir_pc__dword);
13013   tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13014   tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13015   {
13016     SI opval = tmp_newval;
13017     SET_H_GR (FLD (f_operand2), opval);
13018     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13019   }
13020 {
13021   {
13022     BI opval = LTSI (tmp_newval, 0);
13023     CPU (h_nbit) = opval;
13024     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13025   }
13026   {
13027     BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13028     CPU (h_zbit) = opval;
13029     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13030   }
13031 SET_H_CBIT_MOVE (0);
13032 SET_H_VBIT_MOVE (0);
13033 {
13034   {
13035     BI opval = 0;
13036     CPU (h_xbit) = opval;
13037     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13038   }
13039   {
13040     BI opval = 0;
13041     SET_H_INSN_PREFIXED_P (opval);
13042     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13043   }
13044 }
13045 }
13046 }
13047
13048 #undef FLD
13049 }
13050   NEXT (vpc);
13051
13052   CASE (sem, INSN_SCC) : /* s${cc} ${Rd-sfield} */
13053 {
13054   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13055   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13056 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
13057   int UNUSED written = 0;
13058   IADDR UNUSED pc = abuf->addr;
13059   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13060
13061 {
13062   BI tmp_truthval;
13063   tmp_truthval = ({   SI tmp_tmpcond;
13064   BI tmp_condres;
13065   tmp_tmpcond = FLD (f_operand2);
13066 ; if (EQSI (tmp_tmpcond, 0)) {
13067   tmp_condres = NOTBI (CPU (h_cbit));
13068 }
13069  else if (EQSI (tmp_tmpcond, 1)) {
13070   tmp_condres = CPU (h_cbit);
13071 }
13072  else if (EQSI (tmp_tmpcond, 2)) {
13073   tmp_condres = NOTBI (CPU (h_zbit));
13074 }
13075  else if (EQSI (tmp_tmpcond, 3)) {
13076   tmp_condres = CPU (h_zbit);
13077 }
13078  else if (EQSI (tmp_tmpcond, 4)) {
13079   tmp_condres = NOTBI (CPU (h_vbit));
13080 }
13081  else if (EQSI (tmp_tmpcond, 5)) {
13082   tmp_condres = CPU (h_vbit);
13083 }
13084  else if (EQSI (tmp_tmpcond, 6)) {
13085   tmp_condres = NOTBI (CPU (h_nbit));
13086 }
13087  else if (EQSI (tmp_tmpcond, 7)) {
13088   tmp_condres = CPU (h_nbit);
13089 }
13090  else if (EQSI (tmp_tmpcond, 8)) {
13091   tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
13092 }
13093  else if (EQSI (tmp_tmpcond, 9)) {
13094   tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
13095 }
13096  else if (EQSI (tmp_tmpcond, 10)) {
13097   tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
13098 }
13099  else if (EQSI (tmp_tmpcond, 11)) {
13100   tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
13101 }
13102  else if (EQSI (tmp_tmpcond, 12)) {
13103   tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
13104 }
13105  else if (EQSI (tmp_tmpcond, 13)) {
13106   tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
13107 }
13108  else if (EQSI (tmp_tmpcond, 14)) {
13109   tmp_condres = 1;
13110 }
13111  else if (EQSI (tmp_tmpcond, 15)) {
13112   tmp_condres = CPU (h_pbit);
13113 }
13114 ; tmp_condres; });
13115   {
13116     SI opval = ZEXTBISI (tmp_truthval);
13117     SET_H_GR (FLD (f_operand1), opval);
13118     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13119   }
13120 {
13121   {
13122     BI opval = 0;
13123     CPU (h_xbit) = opval;
13124     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13125   }
13126   {
13127     BI opval = 0;
13128     SET_H_INSN_PREFIXED_P (opval);
13129     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13130   }
13131 }
13132 }
13133
13134 #undef FLD
13135 }
13136   NEXT (vpc);
13137
13138   CASE (sem, INSN_LZ) : /* lz ${Rs},${Rd} */
13139 {
13140   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13141   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13142 #define FLD(f) abuf->fields.sfmt_muls_b.f
13143   int UNUSED written = 0;
13144   IADDR UNUSED pc = abuf->addr;
13145   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13146
13147 {
13148   SI tmp_tmpd;
13149   SI tmp_tmp;
13150   tmp_tmp = GET_H_GR (FLD (f_operand1));
13151   tmp_tmpd = 0;
13152 {
13153 if (GESI (tmp_tmp, 0)) {
13154 {
13155   tmp_tmp = SLLSI (tmp_tmp, 1);
13156   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13157 }
13158 }
13159 if (GESI (tmp_tmp, 0)) {
13160 {
13161   tmp_tmp = SLLSI (tmp_tmp, 1);
13162   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13163 }
13164 }
13165 if (GESI (tmp_tmp, 0)) {
13166 {
13167   tmp_tmp = SLLSI (tmp_tmp, 1);
13168   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13169 }
13170 }
13171 if (GESI (tmp_tmp, 0)) {
13172 {
13173   tmp_tmp = SLLSI (tmp_tmp, 1);
13174   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13175 }
13176 }
13177 if (GESI (tmp_tmp, 0)) {
13178 {
13179   tmp_tmp = SLLSI (tmp_tmp, 1);
13180   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13181 }
13182 }
13183 if (GESI (tmp_tmp, 0)) {
13184 {
13185   tmp_tmp = SLLSI (tmp_tmp, 1);
13186   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13187 }
13188 }
13189 if (GESI (tmp_tmp, 0)) {
13190 {
13191   tmp_tmp = SLLSI (tmp_tmp, 1);
13192   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13193 }
13194 }
13195 if (GESI (tmp_tmp, 0)) {
13196 {
13197   tmp_tmp = SLLSI (tmp_tmp, 1);
13198   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13199 }
13200 }
13201 if (GESI (tmp_tmp, 0)) {
13202 {
13203   tmp_tmp = SLLSI (tmp_tmp, 1);
13204   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13205 }
13206 }
13207 if (GESI (tmp_tmp, 0)) {
13208 {
13209   tmp_tmp = SLLSI (tmp_tmp, 1);
13210   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13211 }
13212 }
13213 if (GESI (tmp_tmp, 0)) {
13214 {
13215   tmp_tmp = SLLSI (tmp_tmp, 1);
13216   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13217 }
13218 }
13219 if (GESI (tmp_tmp, 0)) {
13220 {
13221   tmp_tmp = SLLSI (tmp_tmp, 1);
13222   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13223 }
13224 }
13225 if (GESI (tmp_tmp, 0)) {
13226 {
13227   tmp_tmp = SLLSI (tmp_tmp, 1);
13228   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13229 }
13230 }
13231 if (GESI (tmp_tmp, 0)) {
13232 {
13233   tmp_tmp = SLLSI (tmp_tmp, 1);
13234   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13235 }
13236 }
13237 if (GESI (tmp_tmp, 0)) {
13238 {
13239   tmp_tmp = SLLSI (tmp_tmp, 1);
13240   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13241 }
13242 }
13243 if (GESI (tmp_tmp, 0)) {
13244 {
13245   tmp_tmp = SLLSI (tmp_tmp, 1);
13246   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13247 }
13248 }
13249 if (GESI (tmp_tmp, 0)) {
13250 {
13251   tmp_tmp = SLLSI (tmp_tmp, 1);
13252   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13253 }
13254 }
13255 if (GESI (tmp_tmp, 0)) {
13256 {
13257   tmp_tmp = SLLSI (tmp_tmp, 1);
13258   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13259 }
13260 }
13261 if (GESI (tmp_tmp, 0)) {
13262 {
13263   tmp_tmp = SLLSI (tmp_tmp, 1);
13264   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13265 }
13266 }
13267 if (GESI (tmp_tmp, 0)) {
13268 {
13269   tmp_tmp = SLLSI (tmp_tmp, 1);
13270   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13271 }
13272 }
13273 if (GESI (tmp_tmp, 0)) {
13274 {
13275   tmp_tmp = SLLSI (tmp_tmp, 1);
13276   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13277 }
13278 }
13279 if (GESI (tmp_tmp, 0)) {
13280 {
13281   tmp_tmp = SLLSI (tmp_tmp, 1);
13282   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13283 }
13284 }
13285 if (GESI (tmp_tmp, 0)) {
13286 {
13287   tmp_tmp = SLLSI (tmp_tmp, 1);
13288   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13289 }
13290 }
13291 if (GESI (tmp_tmp, 0)) {
13292 {
13293   tmp_tmp = SLLSI (tmp_tmp, 1);
13294   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13295 }
13296 }
13297 if (GESI (tmp_tmp, 0)) {
13298 {
13299   tmp_tmp = SLLSI (tmp_tmp, 1);
13300   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13301 }
13302 }
13303 if (GESI (tmp_tmp, 0)) {
13304 {
13305   tmp_tmp = SLLSI (tmp_tmp, 1);
13306   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13307 }
13308 }
13309 if (GESI (tmp_tmp, 0)) {
13310 {
13311   tmp_tmp = SLLSI (tmp_tmp, 1);
13312   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13313 }
13314 }
13315 if (GESI (tmp_tmp, 0)) {
13316 {
13317   tmp_tmp = SLLSI (tmp_tmp, 1);
13318   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13319 }
13320 }
13321 if (GESI (tmp_tmp, 0)) {
13322 {
13323   tmp_tmp = SLLSI (tmp_tmp, 1);
13324   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13325 }
13326 }
13327 if (GESI (tmp_tmp, 0)) {
13328 {
13329   tmp_tmp = SLLSI (tmp_tmp, 1);
13330   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13331 }
13332 }
13333 if (GESI (tmp_tmp, 0)) {
13334 {
13335   tmp_tmp = SLLSI (tmp_tmp, 1);
13336   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13337 }
13338 }
13339 if (GESI (tmp_tmp, 0)) {
13340 {
13341   tmp_tmp = SLLSI (tmp_tmp, 1);
13342   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13343 }
13344 }
13345 }
13346   {
13347     SI opval = tmp_tmpd;
13348     SET_H_GR (FLD (f_operand2), opval);
13349     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13350   }
13351 {
13352   {
13353     BI opval = LTSI (tmp_tmpd, 0);
13354     CPU (h_nbit) = opval;
13355     TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13356   }
13357   {
13358     BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13359     CPU (h_zbit) = opval;
13360     TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13361   }
13362 SET_H_CBIT_MOVE (0);
13363 SET_H_VBIT_MOVE (0);
13364 {
13365   {
13366     BI opval = 0;
13367     CPU (h_xbit) = opval;
13368     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13369   }
13370   {
13371     BI opval = 0;
13372     SET_H_INSN_PREFIXED_P (opval);
13373     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13374   }
13375 }
13376 }
13377 }
13378
13379 #undef FLD
13380 }
13381   NEXT (vpc);
13382
13383   CASE (sem, INSN_ADDOQ) : /* addoq $o,$Rs,ACR */
13384 {
13385   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13386   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13387 #define FLD(f) abuf->fields.sfmt_addoq.f
13388   int UNUSED written = 0;
13389   IADDR UNUSED pc = abuf->addr;
13390   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13391
13392 {
13393   {
13394     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), FLD (f_s8));
13395     CPU (h_prefixreg_pre_v32) = opval;
13396     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13397   }
13398   {
13399     BI opval = 1;
13400     SET_H_INSN_PREFIXED_P (opval);
13401     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13402   }
13403 }
13404
13405 #undef FLD
13406 }
13407   NEXT (vpc);
13408
13409   CASE (sem, INSN_BDAPQPC) : /* bdapq $o,PC */
13410 {
13411   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13412   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13413 #define FLD(f) abuf->fields.sfmt_addoq.f
13414   int UNUSED written = 0;
13415   IADDR UNUSED pc = abuf->addr;
13416   SEM_BRANCH_INIT
13417   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13418
13419 {
13420   {
13421     SI opval = ADDSI (ADDSI (pc, 2), FLD (f_s8));
13422     CPU (h_prefixreg_pre_v32) = opval;
13423     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13424   }
13425   {
13426     BI opval = 1;
13427     SET_H_INSN_PREFIXED_P (opval);
13428     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13429   }
13430 cris_flush_simulator_decode_cache (current_cpu, pc);
13431 }
13432
13433   SEM_BRANCH_FINI (vpc);
13434 #undef FLD
13435 }
13436   NEXT (vpc);
13437
13438   CASE (sem, INSN_BDAP_32_PC) : /* bdap ${sconst32},PC */
13439 {
13440   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13441   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13442 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
13443   int UNUSED written = 0;
13444   IADDR UNUSED pc = abuf->addr;
13445   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13446
13447 {
13448   SI tmp_newpc;
13449   SI tmp_oldpc;
13450   SI tmp_offs;
13451   tmp_offs = FLD (f_indir_pc__dword);
13452   tmp_oldpc = ADDSI (pc, 6);
13453   tmp_newpc = ADDSI (tmp_oldpc, tmp_offs);
13454   {
13455     SI opval = tmp_newpc;
13456     CPU (h_prefixreg_pre_v32) = opval;
13457     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13458   }
13459   {
13460     BI opval = 1;
13461     SET_H_INSN_PREFIXED_P (opval);
13462     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13463   }
13464 }
13465
13466 #undef FLD
13467 }
13468   NEXT (vpc);
13469
13470   CASE (sem, INSN_MOVE_M_PCPLUS_P0) : /* move [PC+],P0 */
13471 {
13472   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13473   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13474 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
13475   int UNUSED written = 0;
13476   IADDR UNUSED pc = abuf->addr;
13477   SEM_BRANCH_INIT
13478   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13479
13480 if (GET_H_INSN_PREFIXED_P ()) {
13481 {
13482   QI tmp_dummy;
13483   tmp_dummy = ({   SI tmp_addr;
13484   QI tmp_tmp_mem;
13485   BI tmp_postinc;
13486   tmp_postinc = FLD (f_memmode);
13487 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (pc) : (CPU (h_prefixreg_pre_v32)));
13488 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
13489 ; if (NEBI (tmp_postinc, 0)) {
13490 {
13491 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13492   tmp_addr = ADDSI (tmp_addr, 1);
13493 }
13494   {
13495     USI opval = tmp_addr;
13496     SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
13497     written |= (1 << 5);
13498     TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
13499   }
13500 }
13501 }
13502 ; tmp_tmp_mem; });
13503 {
13504   {
13505     BI opval = 0;
13506     CPU (h_xbit) = opval;
13507     written |= (1 << 7);
13508     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13509   }
13510   {
13511     BI opval = 0;
13512     SET_H_INSN_PREFIXED_P (opval);
13513     written |= (1 << 6);
13514     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13515   }
13516 }
13517 }
13518 } else {
13519 cgen_rtx_error (current_cpu, "move [PC+],P0 without prefix is not implemented");
13520 }
13521
13522   abuf->written = written;
13523   SEM_BRANCH_FINI (vpc);
13524 #undef FLD
13525 }
13526   NEXT (vpc);
13527
13528   CASE (sem, INSN_MOVE_M_SPPLUS_P8) : /* move [SP+],P8 */
13529 {
13530   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13531   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13532 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
13533   int UNUSED written = 0;
13534   IADDR UNUSED pc = abuf->addr;
13535   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13536
13537 if (GET_H_INSN_PREFIXED_P ()) {
13538 {
13539   SI tmp_dummy;
13540   tmp_dummy = ({   SI tmp_addr;
13541   SI tmp_tmp_mem;
13542   BI tmp_postinc;
13543   tmp_postinc = FLD (f_memmode);
13544 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (((UINT) 14))) : (CPU (h_prefixreg_pre_v32)));
13545 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13546 ; if (NEBI (tmp_postinc, 0)) {
13547 {
13548 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13549   tmp_addr = ADDSI (tmp_addr, 4);
13550 }
13551   {
13552     SI opval = tmp_addr;
13553     SET_H_GR (((UINT) 14), opval);
13554     written |= (1 << 5);
13555     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13556   }
13557 }
13558 }
13559 ; tmp_tmp_mem; });
13560 {
13561   {
13562     BI opval = 0;
13563     CPU (h_xbit) = opval;
13564     written |= (1 << 7);
13565     TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13566   }
13567   {
13568     BI opval = 0;
13569     SET_H_INSN_PREFIXED_P (opval);
13570     written |= (1 << 6);
13571     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13572   }
13573 }
13574 }
13575 } else {
13576 cgen_rtx_error (current_cpu, "move [SP+],P8 without prefix is not implemented");
13577 }
13578
13579   abuf->written = written;
13580 #undef FLD
13581 }
13582   NEXT (vpc);
13583
13584   CASE (sem, INSN_ADDO_M_B_M) : /* addo-m.b [${Rs}${inc}],$Rd,ACR */
13585 {
13586   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13587   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13588 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
13589   int UNUSED written = 0;
13590   IADDR UNUSED pc = abuf->addr;
13591   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13592
13593 {
13594   QI tmp_tmps;
13595   tmp_tmps = ({   SI tmp_addr;
13596   QI tmp_tmp_mem;
13597   BI tmp_postinc;
13598   tmp_postinc = FLD (f_memmode);
13599 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13600 ;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
13601 ; if (NEBI (tmp_postinc, 0)) {
13602 {
13603 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13604   tmp_addr = ADDSI (tmp_addr, 1);
13605 }
13606   {
13607     SI opval = tmp_addr;
13608     SET_H_GR (FLD (f_operand1), opval);
13609     written |= (1 << 6);
13610     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13611   }
13612 }
13613 }
13614 ; tmp_tmp_mem; });
13615   {
13616     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTQISI (tmp_tmps));
13617     CPU (h_prefixreg_pre_v32) = opval;
13618     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13619   }
13620   {
13621     BI opval = 1;
13622     SET_H_INSN_PREFIXED_P (opval);
13623     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13624   }
13625 }
13626
13627   abuf->written = written;
13628 #undef FLD
13629 }
13630   NEXT (vpc);
13631
13632   CASE (sem, INSN_ADDO_M_W_M) : /* addo-m.w [${Rs}${inc}],$Rd,ACR */
13633 {
13634   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13635   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13636 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
13637   int UNUSED written = 0;
13638   IADDR UNUSED pc = abuf->addr;
13639   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13640
13641 {
13642   HI tmp_tmps;
13643   tmp_tmps = ({   SI tmp_addr;
13644   HI tmp_tmp_mem;
13645   BI tmp_postinc;
13646   tmp_postinc = FLD (f_memmode);
13647 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13648 ;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
13649 ; if (NEBI (tmp_postinc, 0)) {
13650 {
13651 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13652   tmp_addr = ADDSI (tmp_addr, 2);
13653 }
13654   {
13655     SI opval = tmp_addr;
13656     SET_H_GR (FLD (f_operand1), opval);
13657     written |= (1 << 6);
13658     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13659   }
13660 }
13661 }
13662 ; tmp_tmp_mem; });
13663   {
13664     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTHISI (tmp_tmps));
13665     CPU (h_prefixreg_pre_v32) = opval;
13666     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13667   }
13668   {
13669     BI opval = 1;
13670     SET_H_INSN_PREFIXED_P (opval);
13671     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13672   }
13673 }
13674
13675   abuf->written = written;
13676 #undef FLD
13677 }
13678   NEXT (vpc);
13679
13680   CASE (sem, INSN_ADDO_M_D_M) : /* addo-m.d [${Rs}${inc}],$Rd,ACR */
13681 {
13682   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13683   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13684 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
13685   int UNUSED written = 0;
13686   IADDR UNUSED pc = abuf->addr;
13687   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13688
13689 {
13690   SI tmp_tmps;
13691   tmp_tmps = ({   SI tmp_addr;
13692   SI tmp_tmp_mem;
13693   BI tmp_postinc;
13694   tmp_postinc = FLD (f_memmode);
13695 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13696 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13697 ; if (NEBI (tmp_postinc, 0)) {
13698 {
13699 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13700   tmp_addr = ADDSI (tmp_addr, 4);
13701 }
13702   {
13703     SI opval = tmp_addr;
13704     SET_H_GR (FLD (f_operand1), opval);
13705     written |= (1 << 6);
13706     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13707   }
13708 }
13709 }
13710 ; tmp_tmp_mem; });
13711   {
13712     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), tmp_tmps);
13713     CPU (h_prefixreg_pre_v32) = opval;
13714     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13715   }
13716   {
13717     BI opval = 1;
13718     SET_H_INSN_PREFIXED_P (opval);
13719     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13720   }
13721 }
13722
13723   abuf->written = written;
13724 #undef FLD
13725 }
13726   NEXT (vpc);
13727
13728   CASE (sem, INSN_ADDO_CB) : /* addo.b [PC+],$Rd,ACR */
13729 {
13730   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13731   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13732 #define FLD(f) abuf->fields.sfmt_bound_cb.f
13733   int UNUSED written = 0;
13734   IADDR UNUSED pc = abuf->addr;
13735   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13736
13737 {
13738   {
13739     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte))));
13740     CPU (h_prefixreg_pre_v32) = opval;
13741     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13742   }
13743   {
13744     BI opval = 1;
13745     SET_H_INSN_PREFIXED_P (opval);
13746     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13747   }
13748 }
13749
13750 #undef FLD
13751 }
13752   NEXT (vpc);
13753
13754   CASE (sem, INSN_ADDO_CW) : /* addo.w [PC+],$Rd,ACR */
13755 {
13756   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13757   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13758 #define FLD(f) abuf->fields.sfmt_bound_cw.f
13759   int UNUSED written = 0;
13760   IADDR UNUSED pc = abuf->addr;
13761   vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13762
13763 {
13764   {
13765     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word))));
13766     CPU (h_prefixreg_pre_v32) = opval;
13767     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13768   }
13769   {
13770     BI opval = 1;
13771     SET_H_INSN_PREFIXED_P (opval);
13772     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13773   }
13774 }
13775
13776 #undef FLD
13777 }
13778   NEXT (vpc);
13779
13780   CASE (sem, INSN_ADDO_CD) : /* addo.d [PC+],$Rd,ACR */
13781 {
13782   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13783   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13784 #define FLD(f) abuf->fields.sfmt_bound_cd.f
13785   int UNUSED written = 0;
13786   IADDR UNUSED pc = abuf->addr;
13787   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13788
13789 {
13790   {
13791     SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
13792     CPU (h_prefixreg_pre_v32) = opval;
13793     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13794   }
13795   {
13796     BI opval = 1;
13797     SET_H_INSN_PREFIXED_P (opval);
13798     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13799   }
13800 }
13801
13802 #undef FLD
13803 }
13804   NEXT (vpc);
13805
13806   CASE (sem, INSN_DIP_M) : /* dip [${Rs}${inc}] */
13807 {
13808   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13809   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13810 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
13811   int UNUSED written = 0;
13812   IADDR UNUSED pc = abuf->addr;
13813   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13814
13815 {
13816   SI tmp_tmps;
13817   tmp_tmps = ({   SI tmp_addr;
13818   SI tmp_tmp_mem;
13819   BI tmp_postinc;
13820   tmp_postinc = FLD (f_memmode);
13821 ;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13822 ;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13823 ; if (NEBI (tmp_postinc, 0)) {
13824 {
13825 if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13826   tmp_addr = ADDSI (tmp_addr, 4);
13827 }
13828   {
13829     SI opval = tmp_addr;
13830     SET_H_GR (FLD (f_operand1), opval);
13831     written |= (1 << 5);
13832     TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13833   }
13834 }
13835 }
13836 ; tmp_tmp_mem; });
13837   {
13838     SI opval = tmp_tmps;
13839     CPU (h_prefixreg_pre_v32) = opval;
13840     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13841   }
13842   {
13843     BI opval = 1;
13844     SET_H_INSN_PREFIXED_P (opval);
13845     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13846   }
13847 }
13848
13849   abuf->written = written;
13850 #undef FLD
13851 }
13852   NEXT (vpc);
13853
13854   CASE (sem, INSN_DIP_C) : /* dip [PC+] */
13855 {
13856   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13857   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13858 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
13859   int UNUSED written = 0;
13860   IADDR UNUSED pc = abuf->addr;
13861   vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13862
13863 {
13864   {
13865     SI opval = FLD (f_indir_pc__dword);
13866     CPU (h_prefixreg_pre_v32) = opval;
13867     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13868   }
13869   {
13870     BI opval = 1;
13871     SET_H_INSN_PREFIXED_P (opval);
13872     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13873   }
13874 }
13875
13876 #undef FLD
13877 }
13878   NEXT (vpc);
13879
13880   CASE (sem, INSN_ADDI_ACR_B_R) : /* addi-acr.b ${Rs-dfield}.m,${Rd-sfield},ACR */
13881 {
13882   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13883   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13884 #define FLD(f) abuf->fields.sfmt_add_b_r.f
13885   int UNUSED written = 0;
13886   IADDR UNUSED pc = abuf->addr;
13887   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13888
13889 {
13890   {
13891     SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 1));
13892     CPU (h_prefixreg_pre_v32) = opval;
13893     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13894   }
13895   {
13896     BI opval = 1;
13897     SET_H_INSN_PREFIXED_P (opval);
13898     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13899   }
13900 }
13901
13902 #undef FLD
13903 }
13904   NEXT (vpc);
13905
13906   CASE (sem, INSN_ADDI_ACR_W_R) : /* addi-acr.w ${Rs-dfield}.m,${Rd-sfield},ACR */
13907 {
13908   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13909   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13910 #define FLD(f) abuf->fields.sfmt_add_b_r.f
13911   int UNUSED written = 0;
13912   IADDR UNUSED pc = abuf->addr;
13913   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13914
13915 {
13916   {
13917     SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 2));
13918     CPU (h_prefixreg_pre_v32) = opval;
13919     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13920   }
13921   {
13922     BI opval = 1;
13923     SET_H_INSN_PREFIXED_P (opval);
13924     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13925   }
13926 }
13927
13928 #undef FLD
13929 }
13930   NEXT (vpc);
13931
13932   CASE (sem, INSN_ADDI_ACR_D_R) : /* addi-acr.d ${Rs-dfield}.m,${Rd-sfield},ACR */
13933 {
13934   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13935   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13936 #define FLD(f) abuf->fields.sfmt_add_b_r.f
13937   int UNUSED written = 0;
13938   IADDR UNUSED pc = abuf->addr;
13939   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13940
13941 {
13942   {
13943     SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 4));
13944     CPU (h_prefixreg_pre_v32) = opval;
13945     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13946   }
13947   {
13948     BI opval = 1;
13949     SET_H_INSN_PREFIXED_P (opval);
13950     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13951   }
13952 }
13953
13954 #undef FLD
13955 }
13956   NEXT (vpc);
13957
13958   CASE (sem, INSN_BIAP_PC_B_R) : /* biap-pc.b ${Rs-dfield}.m,PC */
13959 {
13960   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13961   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13962 #define FLD(f) abuf->fields.sfmt_addoq.f
13963   int UNUSED written = 0;
13964   IADDR UNUSED pc = abuf->addr;
13965   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13966
13967 {
13968   {
13969     SI opval = ADDSI (ADDSI (pc, 4), MULSI (GET_H_GR (FLD (f_operand2)), 1));
13970     CPU (h_prefixreg_pre_v32) = opval;
13971     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13972   }
13973   {
13974     BI opval = 1;
13975     SET_H_INSN_PREFIXED_P (opval);
13976     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13977   }
13978 }
13979
13980 #undef FLD
13981 }
13982   NEXT (vpc);
13983
13984   CASE (sem, INSN_BIAP_PC_W_R) : /* biap-pc.w ${Rs-dfield}.m,PC */
13985 {
13986   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13987   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13988 #define FLD(f) abuf->fields.sfmt_addoq.f
13989   int UNUSED written = 0;
13990   IADDR UNUSED pc = abuf->addr;
13991   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13992
13993 {
13994   {
13995     SI opval = ADDSI (ADDSI (pc, 4), MULSI (GET_H_GR (FLD (f_operand2)), 2));
13996     CPU (h_prefixreg_pre_v32) = opval;
13997     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13998   }
13999   {
14000     BI opval = 1;
14001     SET_H_INSN_PREFIXED_P (opval);
14002     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
14003   }
14004 }
14005
14006 #undef FLD
14007 }
14008   NEXT (vpc);
14009
14010   CASE (sem, INSN_BIAP_PC_D_R) : /* biap-pc.d ${Rs-dfield}.m,PC */
14011 {
14012   SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14013   ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14014 #define FLD(f) abuf->fields.sfmt_addoq.f
14015   int UNUSED written = 0;
14016   IADDR UNUSED pc = abuf->addr;
14017   vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14018
14019 {
14020   {
14021     SI opval = ADDSI (ADDSI (pc, 4), MULSI (GET_H_GR (FLD (f_operand2)), 4));
14022     CPU (h_prefixreg_pre_v32) = opval;
14023     TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
14024   }
14025   {
14026     BI opval = 1;
14027     SET_H_INSN_PREFIXED_P (opval);
14028     TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
14029   }
14030 }
14031
14032 #undef FLD
14033 }
14034   NEXT (vpc);
14035
14036
14037     }
14038   ENDSWITCH (sem) /* End of semantic switch.  */
14039
14040   /* At this point `vpc' contains the next insn to execute.  */
14041 }
14042
14043 #undef DEFINE_SWITCH
14044 #endif /* DEFINE_SWITCH */