1/* Simulator instruction semantics for crisv10f.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996-2023 Free Software Foundation, Inc.
6
7This file is part of the GNU simulators.
8
9   This file 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 3, or (at your option)
12   any later version.
13
14   It is distributed in the hope that it will be useful, but WITHOUT
15   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17   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, see <http://www.gnu.org/licenses/>.
21
22*/
23
24#ifdef DEFINE_LABELS
25
26  /* The labels have the case they have because the enum of insn types
27     is all uppercase and in the non-stdc case the insn symbol is built
28     into the enum name.  */
29
30  static struct {
31    int index;
32    void *label;
33  } labels[] = {
34    { CRISV10F_INSN_X_INVALID, && case_sem_INSN_X_INVALID },
35    { CRISV10F_INSN_X_AFTER, && case_sem_INSN_X_AFTER },
36    { CRISV10F_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE },
37    { CRISV10F_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN },
38    { CRISV10F_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN },
39    { CRISV10F_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN },
40    { CRISV10F_INSN_NOP, && case_sem_INSN_NOP },
41    { CRISV10F_INSN_MOVE_B_R, && case_sem_INSN_MOVE_B_R },
42    { CRISV10F_INSN_MOVE_W_R, && case_sem_INSN_MOVE_W_R },
43    { CRISV10F_INSN_MOVE_D_R, && case_sem_INSN_MOVE_D_R },
44    { CRISV10F_INSN_MOVEPCR, && case_sem_INSN_MOVEPCR },
45    { CRISV10F_INSN_MOVEQ, && case_sem_INSN_MOVEQ },
46    { CRISV10F_INSN_MOVS_B_R, && case_sem_INSN_MOVS_B_R },
47    { CRISV10F_INSN_MOVS_W_R, && case_sem_INSN_MOVS_W_R },
48    { CRISV10F_INSN_MOVU_B_R, && case_sem_INSN_MOVU_B_R },
49    { CRISV10F_INSN_MOVU_W_R, && case_sem_INSN_MOVU_W_R },
50    { CRISV10F_INSN_MOVECBR, && case_sem_INSN_MOVECBR },
51    { CRISV10F_INSN_MOVECWR, && case_sem_INSN_MOVECWR },
52    { CRISV10F_INSN_MOVECDR, && case_sem_INSN_MOVECDR },
53    { CRISV10F_INSN_MOVSCBR, && case_sem_INSN_MOVSCBR },
54    { CRISV10F_INSN_MOVSCWR, && case_sem_INSN_MOVSCWR },
55    { CRISV10F_INSN_MOVUCBR, && case_sem_INSN_MOVUCBR },
56    { CRISV10F_INSN_MOVUCWR, && case_sem_INSN_MOVUCWR },
57    { CRISV10F_INSN_ADDQ, && case_sem_INSN_ADDQ },
58    { CRISV10F_INSN_SUBQ, && case_sem_INSN_SUBQ },
59    { CRISV10F_INSN_CMP_R_B_R, && case_sem_INSN_CMP_R_B_R },
60    { CRISV10F_INSN_CMP_R_W_R, && case_sem_INSN_CMP_R_W_R },
61    { CRISV10F_INSN_CMP_R_D_R, && case_sem_INSN_CMP_R_D_R },
62    { CRISV10F_INSN_CMP_M_B_M, && case_sem_INSN_CMP_M_B_M },
63    { CRISV10F_INSN_CMP_M_W_M, && case_sem_INSN_CMP_M_W_M },
64    { CRISV10F_INSN_CMP_M_D_M, && case_sem_INSN_CMP_M_D_M },
65    { CRISV10F_INSN_CMPCBR, && case_sem_INSN_CMPCBR },
66    { CRISV10F_INSN_CMPCWR, && case_sem_INSN_CMPCWR },
67    { CRISV10F_INSN_CMPCDR, && case_sem_INSN_CMPCDR },
68    { CRISV10F_INSN_CMPQ, && case_sem_INSN_CMPQ },
69    { CRISV10F_INSN_CMPS_M_B_M, && case_sem_INSN_CMPS_M_B_M },
70    { CRISV10F_INSN_CMPS_M_W_M, && case_sem_INSN_CMPS_M_W_M },
71    { CRISV10F_INSN_CMPSCBR, && case_sem_INSN_CMPSCBR },
72    { CRISV10F_INSN_CMPSCWR, && case_sem_INSN_CMPSCWR },
73    { CRISV10F_INSN_CMPU_M_B_M, && case_sem_INSN_CMPU_M_B_M },
74    { CRISV10F_INSN_CMPU_M_W_M, && case_sem_INSN_CMPU_M_W_M },
75    { CRISV10F_INSN_CMPUCBR, && case_sem_INSN_CMPUCBR },
76    { CRISV10F_INSN_CMPUCWR, && case_sem_INSN_CMPUCWR },
77    { CRISV10F_INSN_MOVE_M_B_M, && case_sem_INSN_MOVE_M_B_M },
78    { CRISV10F_INSN_MOVE_M_W_M, && case_sem_INSN_MOVE_M_W_M },
79    { CRISV10F_INSN_MOVE_M_D_M, && case_sem_INSN_MOVE_M_D_M },
80    { CRISV10F_INSN_MOVS_M_B_M, && case_sem_INSN_MOVS_M_B_M },
81    { CRISV10F_INSN_MOVS_M_W_M, && case_sem_INSN_MOVS_M_W_M },
82    { CRISV10F_INSN_MOVU_M_B_M, && case_sem_INSN_MOVU_M_B_M },
83    { CRISV10F_INSN_MOVU_M_W_M, && case_sem_INSN_MOVU_M_W_M },
84    { CRISV10F_INSN_MOVE_R_SPRV10, && case_sem_INSN_MOVE_R_SPRV10 },
85    { CRISV10F_INSN_MOVE_SPR_RV10, && case_sem_INSN_MOVE_SPR_RV10 },
86    { CRISV10F_INSN_RET_TYPE, && case_sem_INSN_RET_TYPE },
87    { CRISV10F_INSN_MOVE_M_SPRV10, && case_sem_INSN_MOVE_M_SPRV10 },
88    { CRISV10F_INSN_MOVE_C_SPRV10_P5, && case_sem_INSN_MOVE_C_SPRV10_P5 },
89    { CRISV10F_INSN_MOVE_C_SPRV10_P9, && case_sem_INSN_MOVE_C_SPRV10_P9 },
90    { CRISV10F_INSN_MOVE_C_SPRV10_P10, && case_sem_INSN_MOVE_C_SPRV10_P10 },
91    { CRISV10F_INSN_MOVE_C_SPRV10_P11, && case_sem_INSN_MOVE_C_SPRV10_P11 },
92    { CRISV10F_INSN_MOVE_C_SPRV10_P12, && case_sem_INSN_MOVE_C_SPRV10_P12 },
93    { CRISV10F_INSN_MOVE_C_SPRV10_P13, && case_sem_INSN_MOVE_C_SPRV10_P13 },
94    { CRISV10F_INSN_MOVE_C_SPRV10_P7, && case_sem_INSN_MOVE_C_SPRV10_P7 },
95    { CRISV10F_INSN_MOVE_C_SPRV10_P14, && case_sem_INSN_MOVE_C_SPRV10_P14 },
96    { CRISV10F_INSN_MOVE_C_SPRV10_P15, && case_sem_INSN_MOVE_C_SPRV10_P15 },
97    { CRISV10F_INSN_MOVE_SPR_MV10, && case_sem_INSN_MOVE_SPR_MV10 },
98    { CRISV10F_INSN_SBFS, && case_sem_INSN_SBFS },
99    { CRISV10F_INSN_MOVEM_R_M, && case_sem_INSN_MOVEM_R_M },
100    { CRISV10F_INSN_MOVEM_M_R, && case_sem_INSN_MOVEM_M_R },
101    { CRISV10F_INSN_MOVEM_M_PC, && case_sem_INSN_MOVEM_M_PC },
102    { CRISV10F_INSN_ADD_B_R, && case_sem_INSN_ADD_B_R },
103    { CRISV10F_INSN_ADD_W_R, && case_sem_INSN_ADD_W_R },
104    { CRISV10F_INSN_ADD_D_R, && case_sem_INSN_ADD_D_R },
105    { CRISV10F_INSN_ADD_M_B_M, && case_sem_INSN_ADD_M_B_M },
106    { CRISV10F_INSN_ADD_M_W_M, && case_sem_INSN_ADD_M_W_M },
107    { CRISV10F_INSN_ADD_M_D_M, && case_sem_INSN_ADD_M_D_M },
108    { CRISV10F_INSN_ADDCBR, && case_sem_INSN_ADDCBR },
109    { CRISV10F_INSN_ADDCWR, && case_sem_INSN_ADDCWR },
110    { CRISV10F_INSN_ADDCDR, && case_sem_INSN_ADDCDR },
111    { CRISV10F_INSN_ADDCPC, && case_sem_INSN_ADDCPC },
112    { CRISV10F_INSN_ADDS_B_R, && case_sem_INSN_ADDS_B_R },
113    { CRISV10F_INSN_ADDS_W_R, && case_sem_INSN_ADDS_W_R },
114    { CRISV10F_INSN_ADDS_M_B_M, && case_sem_INSN_ADDS_M_B_M },
115    { CRISV10F_INSN_ADDS_M_W_M, && case_sem_INSN_ADDS_M_W_M },
116    { CRISV10F_INSN_ADDSCBR, && case_sem_INSN_ADDSCBR },
117    { CRISV10F_INSN_ADDSCWR, && case_sem_INSN_ADDSCWR },
118    { CRISV10F_INSN_ADDSPCPC, && case_sem_INSN_ADDSPCPC },
119    { CRISV10F_INSN_ADDU_B_R, && case_sem_INSN_ADDU_B_R },
120    { CRISV10F_INSN_ADDU_W_R, && case_sem_INSN_ADDU_W_R },
121    { CRISV10F_INSN_ADDU_M_B_M, && case_sem_INSN_ADDU_M_B_M },
122    { CRISV10F_INSN_ADDU_M_W_M, && case_sem_INSN_ADDU_M_W_M },
123    { CRISV10F_INSN_ADDUCBR, && case_sem_INSN_ADDUCBR },
124    { CRISV10F_INSN_ADDUCWR, && case_sem_INSN_ADDUCWR },
125    { CRISV10F_INSN_SUB_B_R, && case_sem_INSN_SUB_B_R },
126    { CRISV10F_INSN_SUB_W_R, && case_sem_INSN_SUB_W_R },
127    { CRISV10F_INSN_SUB_D_R, && case_sem_INSN_SUB_D_R },
128    { CRISV10F_INSN_SUB_M_B_M, && case_sem_INSN_SUB_M_B_M },
129    { CRISV10F_INSN_SUB_M_W_M, && case_sem_INSN_SUB_M_W_M },
130    { CRISV10F_INSN_SUB_M_D_M, && case_sem_INSN_SUB_M_D_M },
131    { CRISV10F_INSN_SUBCBR, && case_sem_INSN_SUBCBR },
132    { CRISV10F_INSN_SUBCWR, && case_sem_INSN_SUBCWR },
133    { CRISV10F_INSN_SUBCDR, && case_sem_INSN_SUBCDR },
134    { CRISV10F_INSN_SUBS_B_R, && case_sem_INSN_SUBS_B_R },
135    { CRISV10F_INSN_SUBS_W_R, && case_sem_INSN_SUBS_W_R },
136    { CRISV10F_INSN_SUBS_M_B_M, && case_sem_INSN_SUBS_M_B_M },
137    { CRISV10F_INSN_SUBS_M_W_M, && case_sem_INSN_SUBS_M_W_M },
138    { CRISV10F_INSN_SUBSCBR, && case_sem_INSN_SUBSCBR },
139    { CRISV10F_INSN_SUBSCWR, && case_sem_INSN_SUBSCWR },
140    { CRISV10F_INSN_SUBU_B_R, && case_sem_INSN_SUBU_B_R },
141    { CRISV10F_INSN_SUBU_W_R, && case_sem_INSN_SUBU_W_R },
142    { CRISV10F_INSN_SUBU_M_B_M, && case_sem_INSN_SUBU_M_B_M },
143    { CRISV10F_INSN_SUBU_M_W_M, && case_sem_INSN_SUBU_M_W_M },
144    { CRISV10F_INSN_SUBUCBR, && case_sem_INSN_SUBUCBR },
145    { CRISV10F_INSN_SUBUCWR, && case_sem_INSN_SUBUCWR },
146    { CRISV10F_INSN_ADDI_B_R, && case_sem_INSN_ADDI_B_R },
147    { CRISV10F_INSN_ADDI_W_R, && case_sem_INSN_ADDI_W_R },
148    { CRISV10F_INSN_ADDI_D_R, && case_sem_INSN_ADDI_D_R },
149    { CRISV10F_INSN_NEG_B_R, && case_sem_INSN_NEG_B_R },
150    { CRISV10F_INSN_NEG_W_R, && case_sem_INSN_NEG_W_R },
151    { CRISV10F_INSN_NEG_D_R, && case_sem_INSN_NEG_D_R },
152    { CRISV10F_INSN_TEST_M_B_M, && case_sem_INSN_TEST_M_B_M },
153    { CRISV10F_INSN_TEST_M_W_M, && case_sem_INSN_TEST_M_W_M },
154    { CRISV10F_INSN_TEST_M_D_M, && case_sem_INSN_TEST_M_D_M },
155    { CRISV10F_INSN_MOVE_R_M_B_M, && case_sem_INSN_MOVE_R_M_B_M },
156    { CRISV10F_INSN_MOVE_R_M_W_M, && case_sem_INSN_MOVE_R_M_W_M },
157    { CRISV10F_INSN_MOVE_R_M_D_M, && case_sem_INSN_MOVE_R_M_D_M },
158    { CRISV10F_INSN_MULS_B, && case_sem_INSN_MULS_B },
159    { CRISV10F_INSN_MULS_W, && case_sem_INSN_MULS_W },
160    { CRISV10F_INSN_MULS_D, && case_sem_INSN_MULS_D },
161    { CRISV10F_INSN_MULU_B, && case_sem_INSN_MULU_B },
162    { CRISV10F_INSN_MULU_W, && case_sem_INSN_MULU_W },
163    { CRISV10F_INSN_MULU_D, && case_sem_INSN_MULU_D },
164    { CRISV10F_INSN_MSTEP, && case_sem_INSN_MSTEP },
165    { CRISV10F_INSN_DSTEP, && case_sem_INSN_DSTEP },
166    { CRISV10F_INSN_ABS, && case_sem_INSN_ABS },
167    { CRISV10F_INSN_AND_B_R, && case_sem_INSN_AND_B_R },
168    { CRISV10F_INSN_AND_W_R, && case_sem_INSN_AND_W_R },
169    { CRISV10F_INSN_AND_D_R, && case_sem_INSN_AND_D_R },
170    { CRISV10F_INSN_AND_M_B_M, && case_sem_INSN_AND_M_B_M },
171    { CRISV10F_INSN_AND_M_W_M, && case_sem_INSN_AND_M_W_M },
172    { CRISV10F_INSN_AND_M_D_M, && case_sem_INSN_AND_M_D_M },
173    { CRISV10F_INSN_ANDCBR, && case_sem_INSN_ANDCBR },
174    { CRISV10F_INSN_ANDCWR, && case_sem_INSN_ANDCWR },
175    { CRISV10F_INSN_ANDCDR, && case_sem_INSN_ANDCDR },
176    { CRISV10F_INSN_ANDQ, && case_sem_INSN_ANDQ },
177    { CRISV10F_INSN_ORR_B_R, && case_sem_INSN_ORR_B_R },
178    { CRISV10F_INSN_ORR_W_R, && case_sem_INSN_ORR_W_R },
179    { CRISV10F_INSN_ORR_D_R, && case_sem_INSN_ORR_D_R },
180    { CRISV10F_INSN_OR_M_B_M, && case_sem_INSN_OR_M_B_M },
181    { CRISV10F_INSN_OR_M_W_M, && case_sem_INSN_OR_M_W_M },
182    { CRISV10F_INSN_OR_M_D_M, && case_sem_INSN_OR_M_D_M },
183    { CRISV10F_INSN_ORCBR, && case_sem_INSN_ORCBR },
184    { CRISV10F_INSN_ORCWR, && case_sem_INSN_ORCWR },
185    { CRISV10F_INSN_ORCDR, && case_sem_INSN_ORCDR },
186    { CRISV10F_INSN_ORQ, && case_sem_INSN_ORQ },
187    { CRISV10F_INSN_XOR, && case_sem_INSN_XOR },
188    { CRISV10F_INSN_SWAP, && case_sem_INSN_SWAP },
189    { CRISV10F_INSN_ASRR_B_R, && case_sem_INSN_ASRR_B_R },
190    { CRISV10F_INSN_ASRR_W_R, && case_sem_INSN_ASRR_W_R },
191    { CRISV10F_INSN_ASRR_D_R, && case_sem_INSN_ASRR_D_R },
192    { CRISV10F_INSN_ASRQ, && case_sem_INSN_ASRQ },
193    { CRISV10F_INSN_LSRR_B_R, && case_sem_INSN_LSRR_B_R },
194    { CRISV10F_INSN_LSRR_W_R, && case_sem_INSN_LSRR_W_R },
195    { CRISV10F_INSN_LSRR_D_R, && case_sem_INSN_LSRR_D_R },
196    { CRISV10F_INSN_LSRQ, && case_sem_INSN_LSRQ },
197    { CRISV10F_INSN_LSLR_B_R, && case_sem_INSN_LSLR_B_R },
198    { CRISV10F_INSN_LSLR_W_R, && case_sem_INSN_LSLR_W_R },
199    { CRISV10F_INSN_LSLR_D_R, && case_sem_INSN_LSLR_D_R },
200    { CRISV10F_INSN_LSLQ, && case_sem_INSN_LSLQ },
201    { CRISV10F_INSN_BTST, && case_sem_INSN_BTST },
202    { CRISV10F_INSN_BTSTQ, && case_sem_INSN_BTSTQ },
203    { CRISV10F_INSN_SETF, && case_sem_INSN_SETF },
204    { CRISV10F_INSN_CLEARF, && case_sem_INSN_CLEARF },
205    { CRISV10F_INSN_BCC_B, && case_sem_INSN_BCC_B },
206    { CRISV10F_INSN_BA_B, && case_sem_INSN_BA_B },
207    { CRISV10F_INSN_BCC_W, && case_sem_INSN_BCC_W },
208    { CRISV10F_INSN_BA_W, && case_sem_INSN_BA_W },
209    { CRISV10F_INSN_JUMP_R, && case_sem_INSN_JUMP_R },
210    { CRISV10F_INSN_JUMP_M, && case_sem_INSN_JUMP_M },
211    { CRISV10F_INSN_JUMP_C, && case_sem_INSN_JUMP_C },
212    { CRISV10F_INSN_BREAK, && case_sem_INSN_BREAK },
213    { CRISV10F_INSN_BOUND_R_B_R, && case_sem_INSN_BOUND_R_B_R },
214    { CRISV10F_INSN_BOUND_R_W_R, && case_sem_INSN_BOUND_R_W_R },
215    { CRISV10F_INSN_BOUND_R_D_R, && case_sem_INSN_BOUND_R_D_R },
216    { CRISV10F_INSN_BOUND_M_B_M, && case_sem_INSN_BOUND_M_B_M },
217    { CRISV10F_INSN_BOUND_M_W_M, && case_sem_INSN_BOUND_M_W_M },
218    { CRISV10F_INSN_BOUND_M_D_M, && case_sem_INSN_BOUND_M_D_M },
219    { CRISV10F_INSN_BOUND_CB, && case_sem_INSN_BOUND_CB },
220    { CRISV10F_INSN_BOUND_CW, && case_sem_INSN_BOUND_CW },
221    { CRISV10F_INSN_BOUND_CD, && case_sem_INSN_BOUND_CD },
222    { CRISV10F_INSN_SCC, && case_sem_INSN_SCC },
223    { CRISV10F_INSN_LZ, && case_sem_INSN_LZ },
224    { CRISV10F_INSN_ADDOQ, && case_sem_INSN_ADDOQ },
225    { CRISV10F_INSN_BDAPQPC, && case_sem_INSN_BDAPQPC },
226    { CRISV10F_INSN_BDAP_32_PC, && case_sem_INSN_BDAP_32_PC },
227    { CRISV10F_INSN_MOVE_M_PCPLUS_P0, && case_sem_INSN_MOVE_M_PCPLUS_P0 },
228    { CRISV10F_INSN_MOVE_M_SPPLUS_P8, && case_sem_INSN_MOVE_M_SPPLUS_P8 },
229    { CRISV10F_INSN_ADDO_M_B_M, && case_sem_INSN_ADDO_M_B_M },
230    { CRISV10F_INSN_ADDO_M_W_M, && case_sem_INSN_ADDO_M_W_M },
231    { CRISV10F_INSN_ADDO_M_D_M, && case_sem_INSN_ADDO_M_D_M },
232    { CRISV10F_INSN_ADDO_CB, && case_sem_INSN_ADDO_CB },
233    { CRISV10F_INSN_ADDO_CW, && case_sem_INSN_ADDO_CW },
234    { CRISV10F_INSN_ADDO_CD, && case_sem_INSN_ADDO_CD },
235    { CRISV10F_INSN_DIP_M, && case_sem_INSN_DIP_M },
236    { CRISV10F_INSN_DIP_C, && case_sem_INSN_DIP_C },
237    { CRISV10F_INSN_ADDI_ACR_B_R, && case_sem_INSN_ADDI_ACR_B_R },
238    { CRISV10F_INSN_ADDI_ACR_W_R, && case_sem_INSN_ADDI_ACR_W_R },
239    { CRISV10F_INSN_ADDI_ACR_D_R, && case_sem_INSN_ADDI_ACR_D_R },
240    { CRISV10F_INSN_BIAP_PC_B_R, && case_sem_INSN_BIAP_PC_B_R },
241    { CRISV10F_INSN_BIAP_PC_W_R, && case_sem_INSN_BIAP_PC_W_R },
242    { CRISV10F_INSN_BIAP_PC_D_R, && case_sem_INSN_BIAP_PC_D_R },
243    { 0, 0 }
244  };
245  int i;
246
247  for (i = 0; labels[i].label != 0; ++i)
248    {
249#if FAST_P
250      CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label;
251#else
252      CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label;
253#endif
254    }
255
256#undef DEFINE_LABELS
257#endif /* DEFINE_LABELS */
258
259#ifdef DEFINE_SWITCH
260
261/* If hyper-fast [well not unnecessarily slow] execution is selected, turn
262   off frills like tracing and profiling.  */
263/* FIXME: A better way would be to have CGEN_TRACE_RESULT check for something
264   that can cause it to be optimized out.  Another way would be to emit
265   special handlers into the instruction "stream".  */
266
267#if FAST_P
268#undef CGEN_TRACE_RESULT
269#define CGEN_TRACE_RESULT(cpu, abuf, name, type, val)
270#endif
271
272#undef GET_ATTR
273#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
274
275{
276
277#if WITH_SCACHE_PBB
278
279/* Branch to next handler without going around main loop.  */
280#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case
281SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
282
283#else /* ! WITH_SCACHE_PBB */
284
285#define NEXT(vpc) BREAK (sem)
286#ifdef __GNUC__
287#if FAST_P
288  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab)
289#else
290  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab)
291#endif
292#else
293  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num)
294#endif
295
296#endif /* ! WITH_SCACHE_PBB */
297
298    {
299
300  CASE (sem, INSN_X_INVALID) : /* --invalid-- */
301{
302  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
303  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
304#define FLD(f) abuf->fields.sfmt_empty.f
305  int UNUSED written = 0;
306  IADDR UNUSED pc = abuf->addr;
307  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
308
309  {
310    /* Update the recorded pc in the cpu state struct.
311       Only necessary for WITH_SCACHE case, but to avoid the
312       conditional compilation ....  */
313    SET_H_PC (pc);
314    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
315       using the default-insn-bitsize spec.  When executing insns in parallel
316       we may want to queue the fault and continue execution.  */
317    vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
318    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
319  }
320
321#undef FLD
322}
323  NEXT (vpc);
324
325  CASE (sem, INSN_X_AFTER) : /* --after-- */
326{
327  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
328  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
329#define FLD(f) abuf->fields.sfmt_empty.f
330  int UNUSED written = 0;
331  IADDR UNUSED pc = abuf->addr;
332  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
333
334  {
335#if WITH_SCACHE_PBB_CRISV10F
336    crisv10f_pbb_after (current_cpu, sem_arg);
337#endif
338  }
339
340#undef FLD
341}
342  NEXT (vpc);
343
344  CASE (sem, INSN_X_BEFORE) : /* --before-- */
345{
346  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
347  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
348#define FLD(f) abuf->fields.sfmt_empty.f
349  int UNUSED written = 0;
350  IADDR UNUSED pc = abuf->addr;
351  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
352
353  {
354#if WITH_SCACHE_PBB_CRISV10F
355    crisv10f_pbb_before (current_cpu, sem_arg);
356#endif
357  }
358
359#undef FLD
360}
361  NEXT (vpc);
362
363  CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */
364{
365  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
366  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
367#define FLD(f) abuf->fields.sfmt_empty.f
368  int UNUSED written = 0;
369  IADDR UNUSED pc = abuf->addr;
370  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
371
372  {
373#if WITH_SCACHE_PBB_CRISV10F
374#ifdef DEFINE_SWITCH
375    vpc = crisv10f_pbb_cti_chain (current_cpu, sem_arg,
376			       pbb_br_type, pbb_br_npc);
377    BREAK (sem);
378#else
379    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
380    vpc = crisv10f_pbb_cti_chain (current_cpu, sem_arg,
381			       CPU_PBB_BR_TYPE (current_cpu),
382			       CPU_PBB_BR_NPC (current_cpu));
383#endif
384#endif
385  }
386
387#undef FLD
388}
389  NEXT (vpc);
390
391  CASE (sem, INSN_X_CHAIN) : /* --chain-- */
392{
393  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
394  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
395#define FLD(f) abuf->fields.sfmt_empty.f
396  int UNUSED written = 0;
397  IADDR UNUSED pc = abuf->addr;
398  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
399
400  {
401#if WITH_SCACHE_PBB_CRISV10F
402    vpc = crisv10f_pbb_chain (current_cpu, sem_arg);
403#ifdef DEFINE_SWITCH
404    BREAK (sem);
405#endif
406#endif
407  }
408
409#undef FLD
410}
411  NEXT (vpc);
412
413  CASE (sem, INSN_X_BEGIN) : /* --begin-- */
414{
415  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
416  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
417#define FLD(f) abuf->fields.sfmt_empty.f
418  int UNUSED written = 0;
419  IADDR UNUSED pc = abuf->addr;
420  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
421
422  {
423#if WITH_SCACHE_PBB_CRISV10F
424#if defined DEFINE_SWITCH || defined FAST_P
425    /* In the switch case FAST_P is a constant, allowing several optimizations
426       in any called inline functions.  */
427    vpc = crisv10f_pbb_begin (current_cpu, FAST_P);
428#else
429#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
430    vpc = crisv10f_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
431#else
432    vpc = crisv10f_pbb_begin (current_cpu, 0);
433#endif
434#endif
435#endif
436  }
437
438#undef FLD
439}
440  NEXT (vpc);
441
442  CASE (sem, INSN_NOP) : /* nop */
443{
444  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
445  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
446#define FLD(f) abuf->fields.sfmt_empty.f
447  int UNUSED written = 0;
448  IADDR UNUSED pc = abuf->addr;
449  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
450
451{
452  {
453    BI opval = 0;
454    CPU (h_xbit) = opval;
455    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
456  }
457  {
458    BI opval = 0;
459    SET_H_INSN_PREFIXED_P (opval);
460    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
461  }
462}
463
464#undef FLD
465}
466  NEXT (vpc);
467
468  CASE (sem, INSN_MOVE_B_R) : /* move.b move.m ${Rs},${Rd} */
469{
470  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
471  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
472#define FLD(f) abuf->fields.sfmt_add_b_r.f
473  int UNUSED written = 0;
474  IADDR UNUSED pc = abuf->addr;
475  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
476
477{
478  QI tmp_newval;
479  tmp_newval = GET_H_GR (FLD (f_operand1));
480{
481  SI tmp_oldregval;
482  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
483  {
484    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
485    SET_H_GR (FLD (f_operand2), opval);
486    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
487  }
488}
489{
490  {
491    BI opval = LTQI (tmp_newval, 0);
492    CPU (h_nbit) = opval;
493    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
494  }
495  {
496    BI opval = ANDIF (EQQI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
497    CPU (h_zbit) = opval;
498    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
499  }
500SET_H_CBIT_MOVE (0);
501SET_H_VBIT_MOVE (0);
502{
503  {
504    BI opval = 0;
505    CPU (h_xbit) = opval;
506    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
507  }
508  {
509    BI opval = 0;
510    SET_H_INSN_PREFIXED_P (opval);
511    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
512  }
513}
514}
515}
516
517#undef FLD
518}
519  NEXT (vpc);
520
521  CASE (sem, INSN_MOVE_W_R) : /* move.w move.m ${Rs},${Rd} */
522{
523  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
524  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
525#define FLD(f) abuf->fields.sfmt_add_b_r.f
526  int UNUSED written = 0;
527  IADDR UNUSED pc = abuf->addr;
528  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
529
530{
531  HI tmp_newval;
532  tmp_newval = GET_H_GR (FLD (f_operand1));
533{
534  SI tmp_oldregval;
535  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
536  {
537    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
538    SET_H_GR (FLD (f_operand2), opval);
539    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
540  }
541}
542{
543  {
544    BI opval = LTHI (tmp_newval, 0);
545    CPU (h_nbit) = opval;
546    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
547  }
548  {
549    BI opval = ANDIF (EQHI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
550    CPU (h_zbit) = opval;
551    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
552  }
553SET_H_CBIT_MOVE (0);
554SET_H_VBIT_MOVE (0);
555{
556  {
557    BI opval = 0;
558    CPU (h_xbit) = opval;
559    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
560  }
561  {
562    BI opval = 0;
563    SET_H_INSN_PREFIXED_P (opval);
564    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
565  }
566}
567}
568}
569
570#undef FLD
571}
572  NEXT (vpc);
573
574  CASE (sem, INSN_MOVE_D_R) : /* move.d move.m ${Rs},${Rd} */
575{
576  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
577  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
578#define FLD(f) abuf->fields.sfmt_add_b_r.f
579  int UNUSED written = 0;
580  IADDR UNUSED pc = abuf->addr;
581  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
582
583{
584  SI tmp_newval;
585  tmp_newval = GET_H_GR (FLD (f_operand1));
586  {
587    SI opval = tmp_newval;
588    SET_H_GR (FLD (f_operand2), opval);
589    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
590  }
591{
592  {
593    BI opval = LTSI (tmp_newval, 0);
594    CPU (h_nbit) = opval;
595    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
596  }
597  {
598    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
599    CPU (h_zbit) = opval;
600    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
601  }
602SET_H_CBIT_MOVE (0);
603SET_H_VBIT_MOVE (0);
604{
605  {
606    BI opval = 0;
607    CPU (h_xbit) = opval;
608    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
609  }
610  {
611    BI opval = 0;
612    SET_H_INSN_PREFIXED_P (opval);
613    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
614  }
615}
616}
617}
618
619#undef FLD
620}
621  NEXT (vpc);
622
623  CASE (sem, INSN_MOVEPCR) : /* move.d PC,${Rd} */
624{
625  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
626  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
627#define FLD(f) abuf->fields.sfmt_moveq.f
628  int UNUSED written = 0;
629  IADDR UNUSED pc = abuf->addr;
630  SEM_BRANCH_INIT
631  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
632
633{
634  SI tmp_pcval;
635  tmp_pcval = ADDSI (pc, 2);
636  {
637    SI opval = tmp_pcval;
638    SET_H_GR (FLD (f_operand2), opval);
639    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
640  }
641{
642  {
643    BI opval = LTSI (tmp_pcval, 0);
644    CPU (h_nbit) = opval;
645    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
646  }
647  {
648    BI opval = ANDIF (EQSI (tmp_pcval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
649    CPU (h_zbit) = opval;
650    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
651  }
652SET_H_CBIT_MOVE (0);
653SET_H_VBIT_MOVE (0);
654{
655  {
656    BI opval = 0;
657    CPU (h_xbit) = opval;
658    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
659  }
660  {
661    BI opval = 0;
662    SET_H_INSN_PREFIXED_P (opval);
663    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
664  }
665}
666}
667}
668
669  SEM_BRANCH_FINI (vpc);
670#undef FLD
671}
672  NEXT (vpc);
673
674  CASE (sem, INSN_MOVEQ) : /* moveq $i,$Rd */
675{
676  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
677  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
678#define FLD(f) abuf->fields.sfmt_moveq.f
679  int UNUSED written = 0;
680  IADDR UNUSED pc = abuf->addr;
681  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
682
683{
684  SI tmp_newval;
685  tmp_newval = FLD (f_s6);
686  {
687    SI opval = tmp_newval;
688    SET_H_GR (FLD (f_operand2), opval);
689    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
690  }
691{
692SET_H_NBIT_MOVE (LTSI (tmp_newval, 0));
693SET_H_ZBIT_MOVE (ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1))));
694SET_H_CBIT_MOVE (0);
695SET_H_VBIT_MOVE (0);
696{
697  {
698    BI opval = 0;
699    CPU (h_xbit) = opval;
700    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
701  }
702  {
703    BI opval = 0;
704    SET_H_INSN_PREFIXED_P (opval);
705    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
706  }
707}
708}
709}
710
711#undef FLD
712}
713  NEXT (vpc);
714
715  CASE (sem, INSN_MOVS_B_R) : /* movs.b movs.m ${Rs},${Rd} */
716{
717  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
718  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
719#define FLD(f) abuf->fields.sfmt_muls_b.f
720  int UNUSED written = 0;
721  IADDR UNUSED pc = abuf->addr;
722  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
723
724{
725  QI tmp_tmpops;
726  SI tmp_newval;
727  tmp_tmpops = GET_H_GR (FLD (f_operand1));
728  tmp_newval = EXTQISI (tmp_tmpops);
729  {
730    SI opval = tmp_newval;
731    SET_H_GR (FLD (f_operand2), opval);
732    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
733  }
734{
735  {
736    BI opval = LTSI (tmp_newval, 0);
737    CPU (h_nbit) = opval;
738    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
739  }
740  {
741    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
742    CPU (h_zbit) = opval;
743    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
744  }
745SET_H_CBIT_MOVE (0);
746SET_H_VBIT_MOVE (0);
747{
748  {
749    BI opval = 0;
750    CPU (h_xbit) = opval;
751    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
752  }
753  {
754    BI opval = 0;
755    SET_H_INSN_PREFIXED_P (opval);
756    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
757  }
758}
759}
760}
761
762#undef FLD
763}
764  NEXT (vpc);
765
766  CASE (sem, INSN_MOVS_W_R) : /* movs.w movs.m ${Rs},${Rd} */
767{
768  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
769  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
770#define FLD(f) abuf->fields.sfmt_muls_b.f
771  int UNUSED written = 0;
772  IADDR UNUSED pc = abuf->addr;
773  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
774
775{
776  HI tmp_tmpops;
777  SI tmp_newval;
778  tmp_tmpops = GET_H_GR (FLD (f_operand1));
779  tmp_newval = EXTHISI (tmp_tmpops);
780  {
781    SI opval = tmp_newval;
782    SET_H_GR (FLD (f_operand2), opval);
783    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
784  }
785{
786  {
787    BI opval = LTSI (tmp_newval, 0);
788    CPU (h_nbit) = opval;
789    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
790  }
791  {
792    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
793    CPU (h_zbit) = opval;
794    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
795  }
796SET_H_CBIT_MOVE (0);
797SET_H_VBIT_MOVE (0);
798{
799  {
800    BI opval = 0;
801    CPU (h_xbit) = opval;
802    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
803  }
804  {
805    BI opval = 0;
806    SET_H_INSN_PREFIXED_P (opval);
807    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
808  }
809}
810}
811}
812
813#undef FLD
814}
815  NEXT (vpc);
816
817  CASE (sem, INSN_MOVU_B_R) : /* movu.b movu.m ${Rs},${Rd} */
818{
819  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
820  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
821#define FLD(f) abuf->fields.sfmt_muls_b.f
822  int UNUSED written = 0;
823  IADDR UNUSED pc = abuf->addr;
824  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
825
826{
827  QI tmp_tmpops;
828  SI tmp_newval;
829  tmp_tmpops = GET_H_GR (FLD (f_operand1));
830  tmp_newval = ZEXTQISI (tmp_tmpops);
831  {
832    SI opval = tmp_newval;
833    SET_H_GR (FLD (f_operand2), opval);
834    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
835  }
836{
837  {
838    BI opval = LTSI (tmp_newval, 0);
839    CPU (h_nbit) = opval;
840    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
841  }
842  {
843    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
844    CPU (h_zbit) = opval;
845    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
846  }
847SET_H_CBIT_MOVE (0);
848SET_H_VBIT_MOVE (0);
849{
850  {
851    BI opval = 0;
852    CPU (h_xbit) = opval;
853    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
854  }
855  {
856    BI opval = 0;
857    SET_H_INSN_PREFIXED_P (opval);
858    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
859  }
860}
861}
862}
863
864#undef FLD
865}
866  NEXT (vpc);
867
868  CASE (sem, INSN_MOVU_W_R) : /* movu.w movu.m ${Rs},${Rd} */
869{
870  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
871  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
872#define FLD(f) abuf->fields.sfmt_muls_b.f
873  int UNUSED written = 0;
874  IADDR UNUSED pc = abuf->addr;
875  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
876
877{
878  HI tmp_tmpops;
879  SI tmp_newval;
880  tmp_tmpops = GET_H_GR (FLD (f_operand1));
881  tmp_newval = ZEXTHISI (tmp_tmpops);
882  {
883    SI opval = tmp_newval;
884    SET_H_GR (FLD (f_operand2), opval);
885    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
886  }
887{
888  {
889    BI opval = LTSI (tmp_newval, 0);
890    CPU (h_nbit) = opval;
891    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
892  }
893  {
894    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
895    CPU (h_zbit) = opval;
896    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
897  }
898SET_H_CBIT_MOVE (0);
899SET_H_VBIT_MOVE (0);
900{
901  {
902    BI opval = 0;
903    CPU (h_xbit) = opval;
904    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
905  }
906  {
907    BI opval = 0;
908    SET_H_INSN_PREFIXED_P (opval);
909    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
910  }
911}
912}
913}
914
915#undef FLD
916}
917  NEXT (vpc);
918
919  CASE (sem, INSN_MOVECBR) : /* move.b ${sconst8},${Rd} */
920{
921  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
922  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
923#define FLD(f) abuf->fields.sfmt_addcbr.f
924  int UNUSED written = 0;
925  IADDR UNUSED pc = abuf->addr;
926  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
927
928{
929  QI tmp_newval;
930  tmp_newval = FLD (f_indir_pc__byte);
931{
932  SI tmp_oldregval;
933  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
934  {
935    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
936    SET_H_GR (FLD (f_operand2), opval);
937    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
938  }
939}
940{
941  {
942    BI opval = LTQI (tmp_newval, 0);
943    CPU (h_nbit) = opval;
944    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
945  }
946  {
947    BI opval = ANDIF (EQQI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
948    CPU (h_zbit) = opval;
949    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
950  }
951SET_H_CBIT_MOVE (0);
952SET_H_VBIT_MOVE (0);
953{
954  {
955    BI opval = 0;
956    CPU (h_xbit) = opval;
957    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
958  }
959  {
960    BI opval = 0;
961    SET_H_INSN_PREFIXED_P (opval);
962    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
963  }
964}
965}
966}
967
968#undef FLD
969}
970  NEXT (vpc);
971
972  CASE (sem, INSN_MOVECWR) : /* move.w ${sconst16},${Rd} */
973{
974  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
975  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
976#define FLD(f) abuf->fields.sfmt_addcwr.f
977  int UNUSED written = 0;
978  IADDR UNUSED pc = abuf->addr;
979  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
980
981{
982  HI tmp_newval;
983  tmp_newval = FLD (f_indir_pc__word);
984{
985  SI tmp_oldregval;
986  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
987  {
988    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
989    SET_H_GR (FLD (f_operand2), opval);
990    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
991  }
992}
993{
994  {
995    BI opval = LTHI (tmp_newval, 0);
996    CPU (h_nbit) = opval;
997    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
998  }
999  {
1000    BI opval = ANDIF (EQHI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1001    CPU (h_zbit) = opval;
1002    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1003  }
1004SET_H_CBIT_MOVE (0);
1005SET_H_VBIT_MOVE (0);
1006{
1007  {
1008    BI opval = 0;
1009    CPU (h_xbit) = opval;
1010    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1011  }
1012  {
1013    BI opval = 0;
1014    SET_H_INSN_PREFIXED_P (opval);
1015    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1016  }
1017}
1018}
1019}
1020
1021#undef FLD
1022}
1023  NEXT (vpc);
1024
1025  CASE (sem, INSN_MOVECDR) : /* move.d ${const32},${Rd} */
1026{
1027  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1028  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1029#define FLD(f) abuf->fields.sfmt_bound_cd.f
1030  int UNUSED written = 0;
1031  IADDR UNUSED pc = abuf->addr;
1032  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
1033
1034{
1035  SI tmp_newval;
1036  tmp_newval = FLD (f_indir_pc__dword);
1037  {
1038    SI opval = tmp_newval;
1039    SET_H_GR (FLD (f_operand2), opval);
1040    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1041  }
1042{
1043  {
1044    BI opval = LTSI (tmp_newval, 0);
1045    CPU (h_nbit) = opval;
1046    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1047  }
1048  {
1049    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1050    CPU (h_zbit) = opval;
1051    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1052  }
1053SET_H_CBIT_MOVE (0);
1054SET_H_VBIT_MOVE (0);
1055{
1056  {
1057    BI opval = 0;
1058    CPU (h_xbit) = opval;
1059    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1060  }
1061  {
1062    BI opval = 0;
1063    SET_H_INSN_PREFIXED_P (opval);
1064    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1065  }
1066}
1067}
1068}
1069
1070#undef FLD
1071}
1072  NEXT (vpc);
1073
1074  CASE (sem, INSN_MOVSCBR) : /* movs.b ${sconst8},${Rd} */
1075{
1076  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1077  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1078#define FLD(f) abuf->fields.sfmt_bound_cb.f
1079  int UNUSED written = 0;
1080  IADDR UNUSED pc = abuf->addr;
1081  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1082
1083{
1084  SI tmp_newval;
1085  tmp_newval = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
1086  {
1087    SI opval = tmp_newval;
1088    SET_H_GR (FLD (f_operand2), opval);
1089    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1090  }
1091{
1092  {
1093    BI opval = LTSI (tmp_newval, 0);
1094    CPU (h_nbit) = opval;
1095    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1096  }
1097  {
1098    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1099    CPU (h_zbit) = opval;
1100    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1101  }
1102SET_H_CBIT_MOVE (0);
1103SET_H_VBIT_MOVE (0);
1104{
1105  {
1106    BI opval = 0;
1107    CPU (h_xbit) = opval;
1108    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1109  }
1110  {
1111    BI opval = 0;
1112    SET_H_INSN_PREFIXED_P (opval);
1113    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1114  }
1115}
1116}
1117}
1118
1119#undef FLD
1120}
1121  NEXT (vpc);
1122
1123  CASE (sem, INSN_MOVSCWR) : /* movs.w ${sconst16},${Rd} */
1124{
1125  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1126  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1127#define FLD(f) abuf->fields.sfmt_bound_cw.f
1128  int UNUSED written = 0;
1129  IADDR UNUSED pc = abuf->addr;
1130  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1131
1132{
1133  SI tmp_newval;
1134  tmp_newval = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
1135  {
1136    SI opval = tmp_newval;
1137    SET_H_GR (FLD (f_operand2), opval);
1138    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1139  }
1140{
1141  {
1142    BI opval = LTSI (tmp_newval, 0);
1143    CPU (h_nbit) = opval;
1144    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1145  }
1146  {
1147    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1148    CPU (h_zbit) = opval;
1149    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1150  }
1151SET_H_CBIT_MOVE (0);
1152SET_H_VBIT_MOVE (0);
1153{
1154  {
1155    BI opval = 0;
1156    CPU (h_xbit) = opval;
1157    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1158  }
1159  {
1160    BI opval = 0;
1161    SET_H_INSN_PREFIXED_P (opval);
1162    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1163  }
1164}
1165}
1166}
1167
1168#undef FLD
1169}
1170  NEXT (vpc);
1171
1172  CASE (sem, INSN_MOVUCBR) : /* movu.b ${uconst8},${Rd} */
1173{
1174  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1175  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1176#define FLD(f) abuf->fields.sfmt_bound_cb.f
1177  int UNUSED written = 0;
1178  IADDR UNUSED pc = abuf->addr;
1179  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1180
1181{
1182  SI tmp_newval;
1183  tmp_newval = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
1184  {
1185    SI opval = tmp_newval;
1186    SET_H_GR (FLD (f_operand2), opval);
1187    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1188  }
1189{
1190  {
1191    BI opval = LTSI (tmp_newval, 0);
1192    CPU (h_nbit) = opval;
1193    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1194  }
1195  {
1196    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1197    CPU (h_zbit) = opval;
1198    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1199  }
1200SET_H_CBIT_MOVE (0);
1201SET_H_VBIT_MOVE (0);
1202{
1203  {
1204    BI opval = 0;
1205    CPU (h_xbit) = opval;
1206    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1207  }
1208  {
1209    BI opval = 0;
1210    SET_H_INSN_PREFIXED_P (opval);
1211    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1212  }
1213}
1214}
1215}
1216
1217#undef FLD
1218}
1219  NEXT (vpc);
1220
1221  CASE (sem, INSN_MOVUCWR) : /* movu.w ${uconst16},${Rd} */
1222{
1223  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1224  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1225#define FLD(f) abuf->fields.sfmt_bound_cw.f
1226  int UNUSED written = 0;
1227  IADDR UNUSED pc = abuf->addr;
1228  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1229
1230{
1231  SI tmp_newval;
1232  tmp_newval = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
1233  {
1234    SI opval = tmp_newval;
1235    SET_H_GR (FLD (f_operand2), opval);
1236    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1237  }
1238{
1239  {
1240    BI opval = LTSI (tmp_newval, 0);
1241    CPU (h_nbit) = opval;
1242    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1243  }
1244  {
1245    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1246    CPU (h_zbit) = opval;
1247    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1248  }
1249SET_H_CBIT_MOVE (0);
1250SET_H_VBIT_MOVE (0);
1251{
1252  {
1253    BI opval = 0;
1254    CPU (h_xbit) = opval;
1255    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1256  }
1257  {
1258    BI opval = 0;
1259    SET_H_INSN_PREFIXED_P (opval);
1260    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1261  }
1262}
1263}
1264}
1265
1266#undef FLD
1267}
1268  NEXT (vpc);
1269
1270  CASE (sem, INSN_ADDQ) : /* addq $j,$Rd */
1271{
1272  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1273  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1274#define FLD(f) abuf->fields.sfmt_addq.f
1275  int UNUSED written = 0;
1276  IADDR UNUSED pc = abuf->addr;
1277  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1278
1279{
1280  SI tmp_tmpopd;
1281  SI tmp_tmpops;
1282  BI tmp_carry;
1283  SI tmp_newval;
1284  tmp_tmpops = FLD (f_u6);
1285  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1286  tmp_carry = CPU (h_cbit);
1287  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1288  {
1289    SI opval = tmp_newval;
1290    SET_H_GR (FLD (f_operand2), opval);
1291    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1292  }
1293{
1294  {
1295    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))));
1296    CPU (h_cbit) = opval;
1297    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1298  }
1299  {
1300    BI opval = LTSI (tmp_newval, 0);
1301    CPU (h_nbit) = opval;
1302    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1303  }
1304  {
1305    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1306    CPU (h_zbit) = opval;
1307    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1308  }
1309  {
1310    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)));
1311    CPU (h_vbit) = opval;
1312    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1313  }
1314{
1315  {
1316    BI opval = 0;
1317    CPU (h_xbit) = opval;
1318    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1319  }
1320  {
1321    BI opval = 0;
1322    SET_H_INSN_PREFIXED_P (opval);
1323    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1324  }
1325}
1326}
1327}
1328
1329#undef FLD
1330}
1331  NEXT (vpc);
1332
1333  CASE (sem, INSN_SUBQ) : /* subq $j,$Rd */
1334{
1335  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1336  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1337#define FLD(f) abuf->fields.sfmt_addq.f
1338  int UNUSED written = 0;
1339  IADDR UNUSED pc = abuf->addr;
1340  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1341
1342{
1343  SI tmp_tmpopd;
1344  SI tmp_tmpops;
1345  BI tmp_carry;
1346  SI tmp_newval;
1347  tmp_tmpops = FLD (f_u6);
1348  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1349  tmp_carry = CPU (h_cbit);
1350  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1351  {
1352    SI opval = tmp_newval;
1353    SET_H_GR (FLD (f_operand2), opval);
1354    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1355  }
1356{
1357  {
1358    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))));
1359    CPU (h_cbit) = opval;
1360    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1361  }
1362  {
1363    BI opval = LTSI (tmp_newval, 0);
1364    CPU (h_nbit) = opval;
1365    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1366  }
1367  {
1368    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1369    CPU (h_zbit) = opval;
1370    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1371  }
1372  {
1373    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)));
1374    CPU (h_vbit) = opval;
1375    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1376  }
1377{
1378  {
1379    BI opval = 0;
1380    CPU (h_xbit) = opval;
1381    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1382  }
1383  {
1384    BI opval = 0;
1385    SET_H_INSN_PREFIXED_P (opval);
1386    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1387  }
1388}
1389}
1390}
1391
1392#undef FLD
1393}
1394  NEXT (vpc);
1395
1396  CASE (sem, INSN_CMP_R_B_R) : /* cmp-r.b $Rs,$Rd */
1397{
1398  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1399  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1400#define FLD(f) abuf->fields.sfmt_add_b_r.f
1401  int UNUSED written = 0;
1402  IADDR UNUSED pc = abuf->addr;
1403  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1404
1405{
1406  QI tmp_tmpopd;
1407  QI tmp_tmpops;
1408  BI tmp_carry;
1409  QI tmp_newval;
1410  tmp_tmpops = GET_H_GR (FLD (f_operand1));
1411  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1412  tmp_carry = CPU (h_cbit);
1413  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1414((void) 0); /*nop*/
1415{
1416  {
1417    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))));
1418    CPU (h_cbit) = opval;
1419    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1420  }
1421  {
1422    BI opval = LTQI (tmp_newval, 0);
1423    CPU (h_nbit) = opval;
1424    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1425  }
1426  {
1427    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1428    CPU (h_zbit) = opval;
1429    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1430  }
1431  {
1432    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)));
1433    CPU (h_vbit) = opval;
1434    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1435  }
1436{
1437  {
1438    BI opval = 0;
1439    CPU (h_xbit) = opval;
1440    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1441  }
1442  {
1443    BI opval = 0;
1444    SET_H_INSN_PREFIXED_P (opval);
1445    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1446  }
1447}
1448}
1449}
1450
1451#undef FLD
1452}
1453  NEXT (vpc);
1454
1455  CASE (sem, INSN_CMP_R_W_R) : /* cmp-r.w $Rs,$Rd */
1456{
1457  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1458  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1459#define FLD(f) abuf->fields.sfmt_add_b_r.f
1460  int UNUSED written = 0;
1461  IADDR UNUSED pc = abuf->addr;
1462  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1463
1464{
1465  HI tmp_tmpopd;
1466  HI tmp_tmpops;
1467  BI tmp_carry;
1468  HI tmp_newval;
1469  tmp_tmpops = GET_H_GR (FLD (f_operand1));
1470  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1471  tmp_carry = CPU (h_cbit);
1472  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1473((void) 0); /*nop*/
1474{
1475  {
1476    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))));
1477    CPU (h_cbit) = opval;
1478    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1479  }
1480  {
1481    BI opval = LTHI (tmp_newval, 0);
1482    CPU (h_nbit) = opval;
1483    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1484  }
1485  {
1486    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1487    CPU (h_zbit) = opval;
1488    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1489  }
1490  {
1491    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)));
1492    CPU (h_vbit) = opval;
1493    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1494  }
1495{
1496  {
1497    BI opval = 0;
1498    CPU (h_xbit) = opval;
1499    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1500  }
1501  {
1502    BI opval = 0;
1503    SET_H_INSN_PREFIXED_P (opval);
1504    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1505  }
1506}
1507}
1508}
1509
1510#undef FLD
1511}
1512  NEXT (vpc);
1513
1514  CASE (sem, INSN_CMP_R_D_R) : /* cmp-r.d $Rs,$Rd */
1515{
1516  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1517  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1518#define FLD(f) abuf->fields.sfmt_add_b_r.f
1519  int UNUSED written = 0;
1520  IADDR UNUSED pc = abuf->addr;
1521  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1522
1523{
1524  SI tmp_tmpopd;
1525  SI tmp_tmpops;
1526  BI tmp_carry;
1527  SI tmp_newval;
1528  tmp_tmpops = GET_H_GR (FLD (f_operand1));
1529  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1530  tmp_carry = CPU (h_cbit);
1531  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1532((void) 0); /*nop*/
1533{
1534  {
1535    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))));
1536    CPU (h_cbit) = opval;
1537    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1538  }
1539  {
1540    BI opval = LTSI (tmp_newval, 0);
1541    CPU (h_nbit) = opval;
1542    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1543  }
1544  {
1545    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1546    CPU (h_zbit) = opval;
1547    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1548  }
1549  {
1550    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)));
1551    CPU (h_vbit) = opval;
1552    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1553  }
1554{
1555  {
1556    BI opval = 0;
1557    CPU (h_xbit) = opval;
1558    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1559  }
1560  {
1561    BI opval = 0;
1562    SET_H_INSN_PREFIXED_P (opval);
1563    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1564  }
1565}
1566}
1567}
1568
1569#undef FLD
1570}
1571  NEXT (vpc);
1572
1573  CASE (sem, INSN_CMP_M_B_M) : /* cmp-m.b [${Rs}${inc}],${Rd} */
1574{
1575  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1576  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1577#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
1578  int UNUSED written = 0;
1579  IADDR UNUSED pc = abuf->addr;
1580  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1581
1582{
1583  QI tmp_tmpopd;
1584  QI tmp_tmpops;
1585  BI tmp_carry;
1586  QI tmp_newval;
1587  tmp_tmpops = ({   SI tmp_addr;
1588  QI tmp_tmp_mem;
1589  BI tmp_postinc;
1590  tmp_postinc = FLD (f_memmode);
1591;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
1592;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
1593; if (NEBI (tmp_postinc, 0)) {
1594{
1595if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1596  tmp_addr = ADDSI (tmp_addr, 1);
1597}
1598  {
1599    SI opval = tmp_addr;
1600    SET_H_GR (FLD (f_operand1), opval);
1601    written |= (1 << 9);
1602    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1603  }
1604}
1605}
1606; tmp_tmp_mem; });
1607  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1608  tmp_carry = CPU (h_cbit);
1609  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1610((void) 0); /*nop*/
1611{
1612  {
1613    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))));
1614    CPU (h_cbit) = opval;
1615    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1616  }
1617  {
1618    BI opval = LTQI (tmp_newval, 0);
1619    CPU (h_nbit) = opval;
1620    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1621  }
1622  {
1623    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1624    CPU (h_zbit) = opval;
1625    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1626  }
1627  {
1628    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)));
1629    CPU (h_vbit) = opval;
1630    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1631  }
1632{
1633  {
1634    BI opval = 0;
1635    CPU (h_xbit) = opval;
1636    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1637  }
1638  {
1639    BI opval = 0;
1640    SET_H_INSN_PREFIXED_P (opval);
1641    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1642  }
1643}
1644}
1645}
1646
1647  abuf->written = written;
1648#undef FLD
1649}
1650  NEXT (vpc);
1651
1652  CASE (sem, INSN_CMP_M_W_M) : /* cmp-m.w [${Rs}${inc}],${Rd} */
1653{
1654  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1655  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1656#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
1657  int UNUSED written = 0;
1658  IADDR UNUSED pc = abuf->addr;
1659  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1660
1661{
1662  HI tmp_tmpopd;
1663  HI tmp_tmpops;
1664  BI tmp_carry;
1665  HI tmp_newval;
1666  tmp_tmpops = ({   SI tmp_addr;
1667  HI tmp_tmp_mem;
1668  BI tmp_postinc;
1669  tmp_postinc = FLD (f_memmode);
1670;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
1671;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
1672; if (NEBI (tmp_postinc, 0)) {
1673{
1674if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1675  tmp_addr = ADDSI (tmp_addr, 2);
1676}
1677  {
1678    SI opval = tmp_addr;
1679    SET_H_GR (FLD (f_operand1), opval);
1680    written |= (1 << 9);
1681    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1682  }
1683}
1684}
1685; tmp_tmp_mem; });
1686  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1687  tmp_carry = CPU (h_cbit);
1688  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1689((void) 0); /*nop*/
1690{
1691  {
1692    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))));
1693    CPU (h_cbit) = opval;
1694    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1695  }
1696  {
1697    BI opval = LTHI (tmp_newval, 0);
1698    CPU (h_nbit) = opval;
1699    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1700  }
1701  {
1702    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1703    CPU (h_zbit) = opval;
1704    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1705  }
1706  {
1707    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)));
1708    CPU (h_vbit) = opval;
1709    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1710  }
1711{
1712  {
1713    BI opval = 0;
1714    CPU (h_xbit) = opval;
1715    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1716  }
1717  {
1718    BI opval = 0;
1719    SET_H_INSN_PREFIXED_P (opval);
1720    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1721  }
1722}
1723}
1724}
1725
1726  abuf->written = written;
1727#undef FLD
1728}
1729  NEXT (vpc);
1730
1731  CASE (sem, INSN_CMP_M_D_M) : /* cmp-m.d [${Rs}${inc}],${Rd} */
1732{
1733  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1734  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1735#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
1736  int UNUSED written = 0;
1737  IADDR UNUSED pc = abuf->addr;
1738  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1739
1740{
1741  SI tmp_tmpopd;
1742  SI tmp_tmpops;
1743  BI tmp_carry;
1744  SI tmp_newval;
1745  tmp_tmpops = ({   SI tmp_addr;
1746  SI tmp_tmp_mem;
1747  BI tmp_postinc;
1748  tmp_postinc = FLD (f_memmode);
1749;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
1750;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
1751; if (NEBI (tmp_postinc, 0)) {
1752{
1753if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1754  tmp_addr = ADDSI (tmp_addr, 4);
1755}
1756  {
1757    SI opval = tmp_addr;
1758    SET_H_GR (FLD (f_operand1), opval);
1759    written |= (1 << 9);
1760    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1761  }
1762}
1763}
1764; tmp_tmp_mem; });
1765  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1766  tmp_carry = CPU (h_cbit);
1767  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1768((void) 0); /*nop*/
1769{
1770  {
1771    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))));
1772    CPU (h_cbit) = opval;
1773    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1774  }
1775  {
1776    BI opval = LTSI (tmp_newval, 0);
1777    CPU (h_nbit) = opval;
1778    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1779  }
1780  {
1781    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1782    CPU (h_zbit) = opval;
1783    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1784  }
1785  {
1786    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)));
1787    CPU (h_vbit) = opval;
1788    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1789  }
1790{
1791  {
1792    BI opval = 0;
1793    CPU (h_xbit) = opval;
1794    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1795  }
1796  {
1797    BI opval = 0;
1798    SET_H_INSN_PREFIXED_P (opval);
1799    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1800  }
1801}
1802}
1803}
1804
1805  abuf->written = written;
1806#undef FLD
1807}
1808  NEXT (vpc);
1809
1810  CASE (sem, INSN_CMPCBR) : /* cmp.b $sconst8,$Rd */
1811{
1812  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1813  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1814#define FLD(f) abuf->fields.sfmt_bound_cb.f
1815  int UNUSED written = 0;
1816  IADDR UNUSED pc = abuf->addr;
1817  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1818
1819{
1820  QI tmp_tmpopd;
1821  QI tmp_tmpops;
1822  BI tmp_carry;
1823  QI tmp_newval;
1824  tmp_tmpops = TRUNCSIQI (FLD (f_indir_pc__byte));
1825  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1826  tmp_carry = CPU (h_cbit);
1827  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1828((void) 0); /*nop*/
1829{
1830  {
1831    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))));
1832    CPU (h_cbit) = opval;
1833    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1834  }
1835  {
1836    BI opval = LTQI (tmp_newval, 0);
1837    CPU (h_nbit) = opval;
1838    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1839  }
1840  {
1841    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1842    CPU (h_zbit) = opval;
1843    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1844  }
1845  {
1846    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)));
1847    CPU (h_vbit) = opval;
1848    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1849  }
1850{
1851  {
1852    BI opval = 0;
1853    CPU (h_xbit) = opval;
1854    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1855  }
1856  {
1857    BI opval = 0;
1858    SET_H_INSN_PREFIXED_P (opval);
1859    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1860  }
1861}
1862}
1863}
1864
1865#undef FLD
1866}
1867  NEXT (vpc);
1868
1869  CASE (sem, INSN_CMPCWR) : /* cmp.w $sconst16,$Rd */
1870{
1871  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1872  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1873#define FLD(f) abuf->fields.sfmt_bound_cw.f
1874  int UNUSED written = 0;
1875  IADDR UNUSED pc = abuf->addr;
1876  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1877
1878{
1879  HI tmp_tmpopd;
1880  HI tmp_tmpops;
1881  BI tmp_carry;
1882  HI tmp_newval;
1883  tmp_tmpops = TRUNCSIHI (FLD (f_indir_pc__word));
1884  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1885  tmp_carry = CPU (h_cbit);
1886  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1887((void) 0); /*nop*/
1888{
1889  {
1890    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))));
1891    CPU (h_cbit) = opval;
1892    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1893  }
1894  {
1895    BI opval = LTHI (tmp_newval, 0);
1896    CPU (h_nbit) = opval;
1897    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1898  }
1899  {
1900    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1901    CPU (h_zbit) = opval;
1902    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1903  }
1904  {
1905    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)));
1906    CPU (h_vbit) = opval;
1907    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1908  }
1909{
1910  {
1911    BI opval = 0;
1912    CPU (h_xbit) = opval;
1913    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1914  }
1915  {
1916    BI opval = 0;
1917    SET_H_INSN_PREFIXED_P (opval);
1918    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1919  }
1920}
1921}
1922}
1923
1924#undef FLD
1925}
1926  NEXT (vpc);
1927
1928  CASE (sem, INSN_CMPCDR) : /* cmp.d $const32,$Rd */
1929{
1930  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1931  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1932#define FLD(f) abuf->fields.sfmt_bound_cd.f
1933  int UNUSED written = 0;
1934  IADDR UNUSED pc = abuf->addr;
1935  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
1936
1937{
1938  SI tmp_tmpopd;
1939  SI tmp_tmpops;
1940  BI tmp_carry;
1941  SI tmp_newval;
1942  tmp_tmpops = FLD (f_indir_pc__dword);
1943  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1944  tmp_carry = CPU (h_cbit);
1945  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1946((void) 0); /*nop*/
1947{
1948  {
1949    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))));
1950    CPU (h_cbit) = opval;
1951    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1952  }
1953  {
1954    BI opval = LTSI (tmp_newval, 0);
1955    CPU (h_nbit) = opval;
1956    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1957  }
1958  {
1959    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1960    CPU (h_zbit) = opval;
1961    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1962  }
1963  {
1964    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)));
1965    CPU (h_vbit) = opval;
1966    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1967  }
1968{
1969  {
1970    BI opval = 0;
1971    CPU (h_xbit) = opval;
1972    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1973  }
1974  {
1975    BI opval = 0;
1976    SET_H_INSN_PREFIXED_P (opval);
1977    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1978  }
1979}
1980}
1981}
1982
1983#undef FLD
1984}
1985  NEXT (vpc);
1986
1987  CASE (sem, INSN_CMPQ) : /* cmpq $i,$Rd */
1988{
1989  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1990  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1991#define FLD(f) abuf->fields.sfmt_andq.f
1992  int UNUSED written = 0;
1993  IADDR UNUSED pc = abuf->addr;
1994  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1995
1996{
1997  SI tmp_tmpopd;
1998  SI tmp_tmpops;
1999  BI tmp_carry;
2000  SI tmp_newval;
2001  tmp_tmpops = FLD (f_s6);
2002  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2003  tmp_carry = CPU (h_cbit);
2004  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2005((void) 0); /*nop*/
2006{
2007  {
2008    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))));
2009    CPU (h_cbit) = opval;
2010    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2011  }
2012  {
2013    BI opval = LTSI (tmp_newval, 0);
2014    CPU (h_nbit) = opval;
2015    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2016  }
2017  {
2018    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2019    CPU (h_zbit) = opval;
2020    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2021  }
2022  {
2023    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)));
2024    CPU (h_vbit) = opval;
2025    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2026  }
2027{
2028  {
2029    BI opval = 0;
2030    CPU (h_xbit) = opval;
2031    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2032  }
2033  {
2034    BI opval = 0;
2035    SET_H_INSN_PREFIXED_P (opval);
2036    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2037  }
2038}
2039}
2040}
2041
2042#undef FLD
2043}
2044  NEXT (vpc);
2045
2046  CASE (sem, INSN_CMPS_M_B_M) : /* cmps-m.b [${Rs}${inc}],$Rd */
2047{
2048  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2049  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2050#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2051  int UNUSED written = 0;
2052  IADDR UNUSED pc = abuf->addr;
2053  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2054
2055{
2056  SI tmp_tmpopd;
2057  SI tmp_tmpops;
2058  BI tmp_carry;
2059  SI tmp_newval;
2060  tmp_tmpops = EXTQISI (({   SI tmp_addr;
2061  QI tmp_tmp_mem;
2062  BI tmp_postinc;
2063  tmp_postinc = FLD (f_memmode);
2064;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2065;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2066; if (NEBI (tmp_postinc, 0)) {
2067{
2068if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2069  tmp_addr = ADDSI (tmp_addr, 1);
2070}
2071  {
2072    SI opval = tmp_addr;
2073    SET_H_GR (FLD (f_operand1), opval);
2074    written |= (1 << 9);
2075    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2076  }
2077}
2078}
2079; tmp_tmp_mem; }));
2080  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2081  tmp_carry = CPU (h_cbit);
2082  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2083((void) 0); /*nop*/
2084{
2085  {
2086    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))));
2087    CPU (h_cbit) = opval;
2088    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2089  }
2090  {
2091    BI opval = LTSI (tmp_newval, 0);
2092    CPU (h_nbit) = opval;
2093    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2094  }
2095  {
2096    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2097    CPU (h_zbit) = opval;
2098    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2099  }
2100  {
2101    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)));
2102    CPU (h_vbit) = opval;
2103    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2104  }
2105{
2106  {
2107    BI opval = 0;
2108    CPU (h_xbit) = opval;
2109    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2110  }
2111  {
2112    BI opval = 0;
2113    SET_H_INSN_PREFIXED_P (opval);
2114    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2115  }
2116}
2117}
2118}
2119
2120  abuf->written = written;
2121#undef FLD
2122}
2123  NEXT (vpc);
2124
2125  CASE (sem, INSN_CMPS_M_W_M) : /* cmps-m.w [${Rs}${inc}],$Rd */
2126{
2127  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2128  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2129#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2130  int UNUSED written = 0;
2131  IADDR UNUSED pc = abuf->addr;
2132  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2133
2134{
2135  SI tmp_tmpopd;
2136  SI tmp_tmpops;
2137  BI tmp_carry;
2138  SI tmp_newval;
2139  tmp_tmpops = EXTHISI (({   SI tmp_addr;
2140  HI tmp_tmp_mem;
2141  BI tmp_postinc;
2142  tmp_postinc = FLD (f_memmode);
2143;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2144;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2145; if (NEBI (tmp_postinc, 0)) {
2146{
2147if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2148  tmp_addr = ADDSI (tmp_addr, 2);
2149}
2150  {
2151    SI opval = tmp_addr;
2152    SET_H_GR (FLD (f_operand1), opval);
2153    written |= (1 << 9);
2154    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2155  }
2156}
2157}
2158; tmp_tmp_mem; }));
2159  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2160  tmp_carry = CPU (h_cbit);
2161  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2162((void) 0); /*nop*/
2163{
2164  {
2165    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))));
2166    CPU (h_cbit) = opval;
2167    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2168  }
2169  {
2170    BI opval = LTSI (tmp_newval, 0);
2171    CPU (h_nbit) = opval;
2172    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2173  }
2174  {
2175    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2176    CPU (h_zbit) = opval;
2177    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2178  }
2179  {
2180    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)));
2181    CPU (h_vbit) = opval;
2182    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2183  }
2184{
2185  {
2186    BI opval = 0;
2187    CPU (h_xbit) = opval;
2188    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2189  }
2190  {
2191    BI opval = 0;
2192    SET_H_INSN_PREFIXED_P (opval);
2193    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2194  }
2195}
2196}
2197}
2198
2199  abuf->written = written;
2200#undef FLD
2201}
2202  NEXT (vpc);
2203
2204  CASE (sem, INSN_CMPSCBR) : /* [${Rs}${inc}],$Rd */
2205{
2206  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2207  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2208#define FLD(f) abuf->fields.sfmt_bound_cb.f
2209  int UNUSED written = 0;
2210  IADDR UNUSED pc = abuf->addr;
2211  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2212
2213{
2214  SI tmp_tmpopd;
2215  SI tmp_tmpops;
2216  BI tmp_carry;
2217  SI tmp_newval;
2218  tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
2219  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2220  tmp_carry = CPU (h_cbit);
2221  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2222((void) 0); /*nop*/
2223{
2224  {
2225    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))));
2226    CPU (h_cbit) = opval;
2227    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2228  }
2229  {
2230    BI opval = LTSI (tmp_newval, 0);
2231    CPU (h_nbit) = opval;
2232    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2233  }
2234  {
2235    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2236    CPU (h_zbit) = opval;
2237    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2238  }
2239  {
2240    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)));
2241    CPU (h_vbit) = opval;
2242    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2243  }
2244{
2245  {
2246    BI opval = 0;
2247    CPU (h_xbit) = opval;
2248    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2249  }
2250  {
2251    BI opval = 0;
2252    SET_H_INSN_PREFIXED_P (opval);
2253    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2254  }
2255}
2256}
2257}
2258
2259#undef FLD
2260}
2261  NEXT (vpc);
2262
2263  CASE (sem, INSN_CMPSCWR) : /* [${Rs}${inc}],$Rd */
2264{
2265  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2266  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2267#define FLD(f) abuf->fields.sfmt_bound_cw.f
2268  int UNUSED written = 0;
2269  IADDR UNUSED pc = abuf->addr;
2270  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2271
2272{
2273  SI tmp_tmpopd;
2274  SI tmp_tmpops;
2275  BI tmp_carry;
2276  SI tmp_newval;
2277  tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
2278  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2279  tmp_carry = CPU (h_cbit);
2280  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2281((void) 0); /*nop*/
2282{
2283  {
2284    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))));
2285    CPU (h_cbit) = opval;
2286    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2287  }
2288  {
2289    BI opval = LTSI (tmp_newval, 0);
2290    CPU (h_nbit) = opval;
2291    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2292  }
2293  {
2294    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2295    CPU (h_zbit) = opval;
2296    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2297  }
2298  {
2299    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)));
2300    CPU (h_vbit) = opval;
2301    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2302  }
2303{
2304  {
2305    BI opval = 0;
2306    CPU (h_xbit) = opval;
2307    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2308  }
2309  {
2310    BI opval = 0;
2311    SET_H_INSN_PREFIXED_P (opval);
2312    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2313  }
2314}
2315}
2316}
2317
2318#undef FLD
2319}
2320  NEXT (vpc);
2321
2322  CASE (sem, INSN_CMPU_M_B_M) : /* cmpu-m.b [${Rs}${inc}],$Rd */
2323{
2324  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2325  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2326#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2327  int UNUSED written = 0;
2328  IADDR UNUSED pc = abuf->addr;
2329  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2330
2331{
2332  SI tmp_tmpopd;
2333  SI tmp_tmpops;
2334  BI tmp_carry;
2335  SI tmp_newval;
2336  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
2337  QI tmp_tmp_mem;
2338  BI tmp_postinc;
2339  tmp_postinc = FLD (f_memmode);
2340;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2341;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2342; if (NEBI (tmp_postinc, 0)) {
2343{
2344if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2345  tmp_addr = ADDSI (tmp_addr, 1);
2346}
2347  {
2348    SI opval = tmp_addr;
2349    SET_H_GR (FLD (f_operand1), opval);
2350    written |= (1 << 9);
2351    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2352  }
2353}
2354}
2355; tmp_tmp_mem; }));
2356  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2357  tmp_carry = CPU (h_cbit);
2358  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2359((void) 0); /*nop*/
2360{
2361  {
2362    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))));
2363    CPU (h_cbit) = opval;
2364    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2365  }
2366  {
2367    BI opval = LTSI (tmp_newval, 0);
2368    CPU (h_nbit) = opval;
2369    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2370  }
2371  {
2372    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2373    CPU (h_zbit) = opval;
2374    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2375  }
2376  {
2377    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)));
2378    CPU (h_vbit) = opval;
2379    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2380  }
2381{
2382  {
2383    BI opval = 0;
2384    CPU (h_xbit) = opval;
2385    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2386  }
2387  {
2388    BI opval = 0;
2389    SET_H_INSN_PREFIXED_P (opval);
2390    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2391  }
2392}
2393}
2394}
2395
2396  abuf->written = written;
2397#undef FLD
2398}
2399  NEXT (vpc);
2400
2401  CASE (sem, INSN_CMPU_M_W_M) : /* cmpu-m.w [${Rs}${inc}],$Rd */
2402{
2403  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2404  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2405#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2406  int UNUSED written = 0;
2407  IADDR UNUSED pc = abuf->addr;
2408  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2409
2410{
2411  SI tmp_tmpopd;
2412  SI tmp_tmpops;
2413  BI tmp_carry;
2414  SI tmp_newval;
2415  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
2416  HI tmp_tmp_mem;
2417  BI tmp_postinc;
2418  tmp_postinc = FLD (f_memmode);
2419;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2420;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2421; if (NEBI (tmp_postinc, 0)) {
2422{
2423if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2424  tmp_addr = ADDSI (tmp_addr, 2);
2425}
2426  {
2427    SI opval = tmp_addr;
2428    SET_H_GR (FLD (f_operand1), opval);
2429    written |= (1 << 9);
2430    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2431  }
2432}
2433}
2434; tmp_tmp_mem; }));
2435  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2436  tmp_carry = CPU (h_cbit);
2437  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2438((void) 0); /*nop*/
2439{
2440  {
2441    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))));
2442    CPU (h_cbit) = opval;
2443    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2444  }
2445  {
2446    BI opval = LTSI (tmp_newval, 0);
2447    CPU (h_nbit) = opval;
2448    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2449  }
2450  {
2451    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2452    CPU (h_zbit) = opval;
2453    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2454  }
2455  {
2456    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)));
2457    CPU (h_vbit) = opval;
2458    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2459  }
2460{
2461  {
2462    BI opval = 0;
2463    CPU (h_xbit) = opval;
2464    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2465  }
2466  {
2467    BI opval = 0;
2468    SET_H_INSN_PREFIXED_P (opval);
2469    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2470  }
2471}
2472}
2473}
2474
2475  abuf->written = written;
2476#undef FLD
2477}
2478  NEXT (vpc);
2479
2480  CASE (sem, INSN_CMPUCBR) : /* [${Rs}${inc}],$Rd */
2481{
2482  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2483  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2484#define FLD(f) abuf->fields.sfmt_bound_cb.f
2485  int UNUSED written = 0;
2486  IADDR UNUSED pc = abuf->addr;
2487  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2488
2489{
2490  SI tmp_tmpopd;
2491  SI tmp_tmpops;
2492  BI tmp_carry;
2493  SI tmp_newval;
2494  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
2495  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2496  tmp_carry = CPU (h_cbit);
2497  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2498((void) 0); /*nop*/
2499{
2500  {
2501    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))));
2502    CPU (h_cbit) = opval;
2503    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2504  }
2505  {
2506    BI opval = LTSI (tmp_newval, 0);
2507    CPU (h_nbit) = opval;
2508    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2509  }
2510  {
2511    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2512    CPU (h_zbit) = opval;
2513    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2514  }
2515  {
2516    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)));
2517    CPU (h_vbit) = opval;
2518    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2519  }
2520{
2521  {
2522    BI opval = 0;
2523    CPU (h_xbit) = opval;
2524    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2525  }
2526  {
2527    BI opval = 0;
2528    SET_H_INSN_PREFIXED_P (opval);
2529    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2530  }
2531}
2532}
2533}
2534
2535#undef FLD
2536}
2537  NEXT (vpc);
2538
2539  CASE (sem, INSN_CMPUCWR) : /* [${Rs}${inc}],$Rd */
2540{
2541  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2542  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2543#define FLD(f) abuf->fields.sfmt_bound_cw.f
2544  int UNUSED written = 0;
2545  IADDR UNUSED pc = abuf->addr;
2546  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2547
2548{
2549  SI tmp_tmpopd;
2550  SI tmp_tmpops;
2551  BI tmp_carry;
2552  SI tmp_newval;
2553  tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
2554  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2555  tmp_carry = CPU (h_cbit);
2556  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2557((void) 0); /*nop*/
2558{
2559  {
2560    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))));
2561    CPU (h_cbit) = opval;
2562    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2563  }
2564  {
2565    BI opval = LTSI (tmp_newval, 0);
2566    CPU (h_nbit) = opval;
2567    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2568  }
2569  {
2570    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2571    CPU (h_zbit) = opval;
2572    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2573  }
2574  {
2575    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)));
2576    CPU (h_vbit) = opval;
2577    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2578  }
2579{
2580  {
2581    BI opval = 0;
2582    CPU (h_xbit) = opval;
2583    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2584  }
2585  {
2586    BI opval = 0;
2587    SET_H_INSN_PREFIXED_P (opval);
2588    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2589  }
2590}
2591}
2592}
2593
2594#undef FLD
2595}
2596  NEXT (vpc);
2597
2598  CASE (sem, INSN_MOVE_M_B_M) : /* move-m.b [${Rs}${inc}],${Rd} */
2599{
2600  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2601  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2602#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2603  int UNUSED written = 0;
2604  IADDR UNUSED pc = abuf->addr;
2605  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2606
2607{
2608  SI tmp_tmp;
2609  tmp_tmp = ({   SI tmp_addr;
2610  QI tmp_tmp_mem;
2611  BI tmp_postinc;
2612  tmp_postinc = FLD (f_memmode);
2613;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2614;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2615; if (NEBI (tmp_postinc, 0)) {
2616{
2617if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2618  tmp_addr = ADDSI (tmp_addr, 1);
2619}
2620  {
2621    SI opval = tmp_addr;
2622    SET_H_GR (FLD (f_operand1), opval);
2623    written |= (1 << 10);
2624    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2625  }
2626}
2627}
2628; tmp_tmp_mem; });
2629{
2630  SI tmp_oldregval;
2631  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
2632  {
2633    SI opval = ORSI (ANDSI (tmp_tmp, 255), ANDSI (tmp_oldregval, 0xffffff00));
2634    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2635    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2636  }
2637}
2638{
2639  {
2640    BI opval = LTQI (tmp_tmp, 0);
2641    CPU (h_nbit) = opval;
2642    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2643  }
2644  {
2645    BI opval = ANDIF (EQQI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2646    CPU (h_zbit) = opval;
2647    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2648  }
2649SET_H_CBIT_MOVE (0);
2650SET_H_VBIT_MOVE (0);
2651{
2652  {
2653    BI opval = 0;
2654    CPU (h_xbit) = opval;
2655    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2656  }
2657  {
2658    BI opval = 0;
2659    SET_H_INSN_PREFIXED_P (opval);
2660    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2661  }
2662}
2663}
2664}
2665
2666  abuf->written = written;
2667#undef FLD
2668}
2669  NEXT (vpc);
2670
2671  CASE (sem, INSN_MOVE_M_W_M) : /* move-m.w [${Rs}${inc}],${Rd} */
2672{
2673  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2674  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2675#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2676  int UNUSED written = 0;
2677  IADDR UNUSED pc = abuf->addr;
2678  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2679
2680{
2681  SI tmp_tmp;
2682  tmp_tmp = ({   SI tmp_addr;
2683  HI tmp_tmp_mem;
2684  BI tmp_postinc;
2685  tmp_postinc = FLD (f_memmode);
2686;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2687;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2688; if (NEBI (tmp_postinc, 0)) {
2689{
2690if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2691  tmp_addr = ADDSI (tmp_addr, 2);
2692}
2693  {
2694    SI opval = tmp_addr;
2695    SET_H_GR (FLD (f_operand1), opval);
2696    written |= (1 << 10);
2697    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2698  }
2699}
2700}
2701; tmp_tmp_mem; });
2702{
2703  SI tmp_oldregval;
2704  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
2705  {
2706    SI opval = ORSI (ANDSI (tmp_tmp, 65535), ANDSI (tmp_oldregval, 0xffff0000));
2707    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2708    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2709  }
2710}
2711{
2712  {
2713    BI opval = LTHI (tmp_tmp, 0);
2714    CPU (h_nbit) = opval;
2715    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2716  }
2717  {
2718    BI opval = ANDIF (EQHI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2719    CPU (h_zbit) = opval;
2720    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2721  }
2722SET_H_CBIT_MOVE (0);
2723SET_H_VBIT_MOVE (0);
2724{
2725  {
2726    BI opval = 0;
2727    CPU (h_xbit) = opval;
2728    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2729  }
2730  {
2731    BI opval = 0;
2732    SET_H_INSN_PREFIXED_P (opval);
2733    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2734  }
2735}
2736}
2737}
2738
2739  abuf->written = written;
2740#undef FLD
2741}
2742  NEXT (vpc);
2743
2744  CASE (sem, INSN_MOVE_M_D_M) : /* move-m.d [${Rs}${inc}],${Rd} */
2745{
2746  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2747  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2748#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2749  int UNUSED written = 0;
2750  IADDR UNUSED pc = abuf->addr;
2751  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2752
2753{
2754  SI tmp_tmp;
2755  tmp_tmp = ({   SI tmp_addr;
2756  SI tmp_tmp_mem;
2757  BI tmp_postinc;
2758  tmp_postinc = FLD (f_memmode);
2759;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2760;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
2761; if (NEBI (tmp_postinc, 0)) {
2762{
2763if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2764  tmp_addr = ADDSI (tmp_addr, 4);
2765}
2766  {
2767    SI opval = tmp_addr;
2768    SET_H_GR (FLD (f_operand1), opval);
2769    written |= (1 << 9);
2770    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2771  }
2772}
2773}
2774; tmp_tmp_mem; });
2775  {
2776    SI opval = tmp_tmp;
2777    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2778    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2779  }
2780{
2781  {
2782    BI opval = LTSI (tmp_tmp, 0);
2783    CPU (h_nbit) = opval;
2784    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2785  }
2786  {
2787    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2788    CPU (h_zbit) = opval;
2789    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2790  }
2791SET_H_CBIT_MOVE (0);
2792SET_H_VBIT_MOVE (0);
2793{
2794  {
2795    BI opval = 0;
2796    CPU (h_xbit) = opval;
2797    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2798  }
2799  {
2800    BI opval = 0;
2801    SET_H_INSN_PREFIXED_P (opval);
2802    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2803  }
2804}
2805}
2806}
2807
2808  abuf->written = written;
2809#undef FLD
2810}
2811  NEXT (vpc);
2812
2813  CASE (sem, INSN_MOVS_M_B_M) : /* movs-m.b [${Rs}${inc}],${Rd} */
2814{
2815  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2816  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2817#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2818  int UNUSED written = 0;
2819  IADDR UNUSED pc = abuf->addr;
2820  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2821
2822{
2823  SI tmp_tmp;
2824  tmp_tmp = EXTQISI (({   SI tmp_addr;
2825  QI tmp_tmp_mem;
2826  BI tmp_postinc;
2827  tmp_postinc = FLD (f_memmode);
2828;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2829;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2830; if (NEBI (tmp_postinc, 0)) {
2831{
2832if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2833  tmp_addr = ADDSI (tmp_addr, 1);
2834}
2835  {
2836    SI opval = tmp_addr;
2837    SET_H_GR (FLD (f_operand1), opval);
2838    written |= (1 << 8);
2839    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2840  }
2841}
2842}
2843; tmp_tmp_mem; }));
2844if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2845  {
2846    SI opval = tmp_tmp;
2847    SET_H_GR (FLD (f_operand1), opval);
2848    written |= (1 << 8);
2849    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2850  }
2851} else {
2852  {
2853    SI opval = tmp_tmp;
2854    SET_H_GR (FLD (f_operand2), opval);
2855    written |= (1 << 7);
2856    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2857  }
2858}
2859{
2860  {
2861    BI opval = LTSI (tmp_tmp, 0);
2862    CPU (h_nbit) = opval;
2863    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2864  }
2865  {
2866    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2867    CPU (h_zbit) = opval;
2868    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2869  }
2870SET_H_CBIT_MOVE (0);
2871SET_H_VBIT_MOVE (0);
2872{
2873  {
2874    BI opval = 0;
2875    CPU (h_xbit) = opval;
2876    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2877  }
2878  {
2879    BI opval = 0;
2880    SET_H_INSN_PREFIXED_P (opval);
2881    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2882  }
2883}
2884}
2885}
2886
2887  abuf->written = written;
2888#undef FLD
2889}
2890  NEXT (vpc);
2891
2892  CASE (sem, INSN_MOVS_M_W_M) : /* movs-m.w [${Rs}${inc}],${Rd} */
2893{
2894  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2895  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2896#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2897  int UNUSED written = 0;
2898  IADDR UNUSED pc = abuf->addr;
2899  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2900
2901{
2902  SI tmp_tmp;
2903  tmp_tmp = EXTHISI (({   SI tmp_addr;
2904  HI tmp_tmp_mem;
2905  BI tmp_postinc;
2906  tmp_postinc = FLD (f_memmode);
2907;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2908;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2909; if (NEBI (tmp_postinc, 0)) {
2910{
2911if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2912  tmp_addr = ADDSI (tmp_addr, 2);
2913}
2914  {
2915    SI opval = tmp_addr;
2916    SET_H_GR (FLD (f_operand1), opval);
2917    written |= (1 << 8);
2918    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2919  }
2920}
2921}
2922; tmp_tmp_mem; }));
2923if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2924  {
2925    SI opval = tmp_tmp;
2926    SET_H_GR (FLD (f_operand1), opval);
2927    written |= (1 << 8);
2928    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2929  }
2930} else {
2931  {
2932    SI opval = tmp_tmp;
2933    SET_H_GR (FLD (f_operand2), opval);
2934    written |= (1 << 7);
2935    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2936  }
2937}
2938{
2939  {
2940    BI opval = LTSI (tmp_tmp, 0);
2941    CPU (h_nbit) = opval;
2942    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2943  }
2944  {
2945    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2946    CPU (h_zbit) = opval;
2947    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2948  }
2949SET_H_CBIT_MOVE (0);
2950SET_H_VBIT_MOVE (0);
2951{
2952  {
2953    BI opval = 0;
2954    CPU (h_xbit) = opval;
2955    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2956  }
2957  {
2958    BI opval = 0;
2959    SET_H_INSN_PREFIXED_P (opval);
2960    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2961  }
2962}
2963}
2964}
2965
2966  abuf->written = written;
2967#undef FLD
2968}
2969  NEXT (vpc);
2970
2971  CASE (sem, INSN_MOVU_M_B_M) : /* movu-m.b [${Rs}${inc}],${Rd} */
2972{
2973  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2974  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2975#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2976  int UNUSED written = 0;
2977  IADDR UNUSED pc = abuf->addr;
2978  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2979
2980{
2981  SI tmp_tmp;
2982  tmp_tmp = ZEXTQISI (({   SI tmp_addr;
2983  QI tmp_tmp_mem;
2984  BI tmp_postinc;
2985  tmp_postinc = FLD (f_memmode);
2986;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
2987;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2988; if (NEBI (tmp_postinc, 0)) {
2989{
2990if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2991  tmp_addr = ADDSI (tmp_addr, 1);
2992}
2993  {
2994    SI opval = tmp_addr;
2995    SET_H_GR (FLD (f_operand1), opval);
2996    written |= (1 << 8);
2997    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2998  }
2999}
3000}
3001; tmp_tmp_mem; }));
3002if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
3003  {
3004    SI opval = tmp_tmp;
3005    SET_H_GR (FLD (f_operand1), opval);
3006    written |= (1 << 8);
3007    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3008  }
3009} else {
3010  {
3011    SI opval = tmp_tmp;
3012    SET_H_GR (FLD (f_operand2), opval);
3013    written |= (1 << 7);
3014    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3015  }
3016}
3017{
3018  {
3019    BI opval = LTSI (tmp_tmp, 0);
3020    CPU (h_nbit) = opval;
3021    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
3022  }
3023  {
3024    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
3025    CPU (h_zbit) = opval;
3026    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
3027  }
3028SET_H_CBIT_MOVE (0);
3029SET_H_VBIT_MOVE (0);
3030{
3031  {
3032    BI opval = 0;
3033    CPU (h_xbit) = opval;
3034    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3035  }
3036  {
3037    BI opval = 0;
3038    SET_H_INSN_PREFIXED_P (opval);
3039    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3040  }
3041}
3042}
3043}
3044
3045  abuf->written = written;
3046#undef FLD
3047}
3048  NEXT (vpc);
3049
3050  CASE (sem, INSN_MOVU_M_W_M) : /* movu-m.w [${Rs}${inc}],${Rd} */
3051{
3052  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3053  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3054#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3055  int UNUSED written = 0;
3056  IADDR UNUSED pc = abuf->addr;
3057  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3058
3059{
3060  SI tmp_tmp;
3061  tmp_tmp = ZEXTHISI (({   SI tmp_addr;
3062  HI tmp_tmp_mem;
3063  BI tmp_postinc;
3064  tmp_postinc = FLD (f_memmode);
3065;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3066;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
3067; if (NEBI (tmp_postinc, 0)) {
3068{
3069if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3070  tmp_addr = ADDSI (tmp_addr, 2);
3071}
3072  {
3073    SI opval = tmp_addr;
3074    SET_H_GR (FLD (f_operand1), opval);
3075    written |= (1 << 8);
3076    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3077  }
3078}
3079}
3080; tmp_tmp_mem; }));
3081if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
3082  {
3083    SI opval = tmp_tmp;
3084    SET_H_GR (FLD (f_operand1), opval);
3085    written |= (1 << 8);
3086    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3087  }
3088} else {
3089  {
3090    SI opval = tmp_tmp;
3091    SET_H_GR (FLD (f_operand2), opval);
3092    written |= (1 << 7);
3093    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3094  }
3095}
3096{
3097  {
3098    BI opval = LTSI (tmp_tmp, 0);
3099    CPU (h_nbit) = opval;
3100    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
3101  }
3102  {
3103    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
3104    CPU (h_zbit) = opval;
3105    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
3106  }
3107SET_H_CBIT_MOVE (0);
3108SET_H_VBIT_MOVE (0);
3109{
3110  {
3111    BI opval = 0;
3112    CPU (h_xbit) = opval;
3113    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3114  }
3115  {
3116    BI opval = 0;
3117    SET_H_INSN_PREFIXED_P (opval);
3118    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3119  }
3120}
3121}
3122}
3123
3124  abuf->written = written;
3125#undef FLD
3126}
3127  NEXT (vpc);
3128
3129  CASE (sem, INSN_MOVE_R_SPRV10) : /* move ${Rs},${Pd} */
3130{
3131  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3132  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3133#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3134  int UNUSED written = 0;
3135  IADDR UNUSED pc = abuf->addr;
3136  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3137
3138{
3139  SI tmp_tmp;
3140  SI tmp_rno;
3141  tmp_tmp = GET_H_GR (FLD (f_operand1));
3142  tmp_rno = FLD (f_operand2);
3143if (ORIF (ORIF (EQSI (tmp_rno, 0), EQSI (tmp_rno, 1)), ORIF (EQSI (tmp_rno, 4), EQSI (tmp_rno, 8)))) {
3144cgen_rtx_error (current_cpu, "move-r-spr: trying to set a read-only special register");
3145}
3146 else {
3147  {
3148    SI opval = tmp_tmp;
3149    SET_H_SR (FLD (f_operand2), opval);
3150    written |= (1 << 2);
3151    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3152  }
3153}
3154{
3155  {
3156    BI opval = 0;
3157    CPU (h_xbit) = opval;
3158    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3159  }
3160  {
3161    BI opval = 0;
3162    SET_H_INSN_PREFIXED_P (opval);
3163    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3164  }
3165}
3166}
3167
3168  abuf->written = written;
3169#undef FLD
3170}
3171  NEXT (vpc);
3172
3173  CASE (sem, INSN_MOVE_SPR_RV10) : /* move ${Ps},${Rd-sfield} */
3174{
3175  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3176  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3177#define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3178  int UNUSED written = 0;
3179  IADDR UNUSED pc = abuf->addr;
3180  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3181
3182{
3183  SI tmp_grno;
3184  SI tmp_prno;
3185  SI tmp_newval;
3186  tmp_prno = FLD (f_operand2);
3187  tmp_newval = GET_H_SR (FLD (f_operand2));
3188if (EQSI (tmp_prno, 5)) {
3189{
3190  SI tmp_oldregval;
3191  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3192  {
3193    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
3194    SET_H_GR (FLD (f_operand1), opval);
3195    written |= (1 << 4);
3196    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3197  }
3198}
3199}
3200 else if (EQSI (tmp_prno, 9)) {
3201  {
3202    SI opval = tmp_newval;
3203    SET_H_GR (FLD (f_operand1), opval);
3204    written |= (1 << 4);
3205    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3206  }
3207}
3208 else if (EQSI (tmp_prno, 10)) {
3209  {
3210    SI opval = tmp_newval;
3211    SET_H_GR (FLD (f_operand1), opval);
3212    written |= (1 << 4);
3213    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3214  }
3215}
3216 else if (EQSI (tmp_prno, 11)) {
3217  {
3218    SI opval = tmp_newval;
3219    SET_H_GR (FLD (f_operand1), opval);
3220    written |= (1 << 4);
3221    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3222  }
3223}
3224 else if (EQSI (tmp_prno, 12)) {
3225  {
3226    SI opval = tmp_newval;
3227    SET_H_GR (FLD (f_operand1), opval);
3228    written |= (1 << 4);
3229    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3230  }
3231}
3232 else if (EQSI (tmp_prno, 13)) {
3233  {
3234    SI opval = tmp_newval;
3235    SET_H_GR (FLD (f_operand1), opval);
3236    written |= (1 << 4);
3237    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3238  }
3239}
3240 else if (EQSI (tmp_prno, 0)) {
3241{
3242  SI tmp_oldregval;
3243  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3244  {
3245    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3246    SET_H_GR (FLD (f_operand1), opval);
3247    written |= (1 << 4);
3248    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3249  }
3250}
3251}
3252 else if (EQSI (tmp_prno, 1)) {
3253{
3254  SI tmp_oldregval;
3255  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3256  {
3257    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3258    SET_H_GR (FLD (f_operand1), opval);
3259    written |= (1 << 4);
3260    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3261  }
3262}
3263}
3264 else if (EQSI (tmp_prno, 4)) {
3265{
3266  SI tmp_oldregval;
3267  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand1));
3268  {
3269    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
3270    SET_H_GR (FLD (f_operand1), opval);
3271    written |= (1 << 4);
3272    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3273  }
3274}
3275}
3276 else if (EQSI (tmp_prno, 8)) {
3277  {
3278    SI opval = tmp_newval;
3279    SET_H_GR (FLD (f_operand1), opval);
3280    written |= (1 << 4);
3281    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3282  }
3283}
3284 else if (EQSI (tmp_prno, 7)) {
3285  {
3286    SI opval = tmp_newval;
3287    SET_H_GR (FLD (f_operand1), opval);
3288    written |= (1 << 4);
3289    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3290  }
3291}
3292 else if (EQSI (tmp_prno, 14)) {
3293  {
3294    SI opval = tmp_newval;
3295    SET_H_GR (FLD (f_operand1), opval);
3296    written |= (1 << 4);
3297    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3298  }
3299}
3300 else if (EQSI (tmp_prno, 15)) {
3301  {
3302    SI opval = tmp_newval;
3303    SET_H_GR (FLD (f_operand1), opval);
3304    written |= (1 << 4);
3305    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3306  }
3307}
3308 else {
3309cgen_rtx_error (current_cpu, "move-spr-r from unimplemented register");
3310}
3311{
3312  {
3313    BI opval = 0;
3314    CPU (h_xbit) = opval;
3315    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3316  }
3317  {
3318    BI opval = 0;
3319    SET_H_INSN_PREFIXED_P (opval);
3320    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3321  }
3322}
3323}
3324
3325  abuf->written = written;
3326#undef FLD
3327}
3328  NEXT (vpc);
3329
3330  CASE (sem, INSN_RET_TYPE) : /* ret/reti/retb */
3331{
3332  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3333  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3334#define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3335  int UNUSED written = 0;
3336  IADDR UNUSED pc = abuf->addr;
3337  SEM_BRANCH_INIT
3338  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3339
3340{
3341  SI tmp_retaddr;
3342  tmp_retaddr = GET_H_SR (FLD (f_operand2));
3343{
3344  {
3345    BI opval = 0;
3346    CPU (h_xbit) = opval;
3347    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3348  }
3349  {
3350    BI opval = 0;
3351    SET_H_INSN_PREFIXED_P (opval);
3352    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3353  }
3354}
3355{
3356  {
3357    USI opval = tmp_retaddr;
3358    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
3359    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
3360  }
3361}
3362}
3363
3364  SEM_BRANCH_FINI (vpc);
3365#undef FLD
3366}
3367  NEXT (vpc);
3368
3369  CASE (sem, INSN_MOVE_M_SPRV10) : /* move [${Rs}${inc}],${Pd} */
3370{
3371  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3372  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3373#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3374  int UNUSED written = 0;
3375  IADDR UNUSED pc = abuf->addr;
3376  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3377
3378{
3379  SI tmp_rno;
3380  SI tmp_newval;
3381  tmp_rno = FLD (f_operand2);
3382if (EQSI (tmp_rno, 5)) {
3383  tmp_newval = EXTHISI (({   SI tmp_addr;
3384  HI tmp_tmp_mem;
3385  BI tmp_postinc;
3386  tmp_postinc = FLD (f_memmode);
3387;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3388;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
3389; if (NEBI (tmp_postinc, 0)) {
3390{
3391if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3392  tmp_addr = ADDSI (tmp_addr, 2);
3393}
3394  {
3395    SI opval = tmp_addr;
3396    SET_H_GR (FLD (f_operand1), opval);
3397    written |= (1 << 8);
3398    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3399  }
3400}
3401}
3402; tmp_tmp_mem; }));
3403}
3404 else if (EQSI (tmp_rno, 9)) {
3405  tmp_newval = ({   SI tmp_addr;
3406  SI tmp_tmp_mem;
3407  BI tmp_postinc;
3408  tmp_postinc = FLD (f_memmode);
3409;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3410;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3411; if (NEBI (tmp_postinc, 0)) {
3412{
3413if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3414  tmp_addr = ADDSI (tmp_addr, 4);
3415}
3416  {
3417    SI opval = tmp_addr;
3418    SET_H_GR (FLD (f_operand1), opval);
3419    written |= (1 << 8);
3420    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3421  }
3422}
3423}
3424; tmp_tmp_mem; });
3425}
3426 else if (EQSI (tmp_rno, 10)) {
3427  tmp_newval = ({   SI tmp_addr;
3428  SI tmp_tmp_mem;
3429  BI tmp_postinc;
3430  tmp_postinc = FLD (f_memmode);
3431;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3432;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3433; if (NEBI (tmp_postinc, 0)) {
3434{
3435if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3436  tmp_addr = ADDSI (tmp_addr, 4);
3437}
3438  {
3439    SI opval = tmp_addr;
3440    SET_H_GR (FLD (f_operand1), opval);
3441    written |= (1 << 8);
3442    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3443  }
3444}
3445}
3446; tmp_tmp_mem; });
3447}
3448 else if (EQSI (tmp_rno, 11)) {
3449  tmp_newval = ({   SI tmp_addr;
3450  SI tmp_tmp_mem;
3451  BI tmp_postinc;
3452  tmp_postinc = FLD (f_memmode);
3453;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3454;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3455; if (NEBI (tmp_postinc, 0)) {
3456{
3457if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3458  tmp_addr = ADDSI (tmp_addr, 4);
3459}
3460  {
3461    SI opval = tmp_addr;
3462    SET_H_GR (FLD (f_operand1), opval);
3463    written |= (1 << 8);
3464    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3465  }
3466}
3467}
3468; tmp_tmp_mem; });
3469}
3470 else if (EQSI (tmp_rno, 12)) {
3471  tmp_newval = ({   SI tmp_addr;
3472  SI tmp_tmp_mem;
3473  BI tmp_postinc;
3474  tmp_postinc = FLD (f_memmode);
3475;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3476;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3477; if (NEBI (tmp_postinc, 0)) {
3478{
3479if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3480  tmp_addr = ADDSI (tmp_addr, 4);
3481}
3482  {
3483    SI opval = tmp_addr;
3484    SET_H_GR (FLD (f_operand1), opval);
3485    written |= (1 << 8);
3486    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3487  }
3488}
3489}
3490; tmp_tmp_mem; });
3491}
3492 else if (EQSI (tmp_rno, 13)) {
3493  tmp_newval = ({   SI tmp_addr;
3494  SI tmp_tmp_mem;
3495  BI tmp_postinc;
3496  tmp_postinc = FLD (f_memmode);
3497;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3498;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3499; if (NEBI (tmp_postinc, 0)) {
3500{
3501if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3502  tmp_addr = ADDSI (tmp_addr, 4);
3503}
3504  {
3505    SI opval = tmp_addr;
3506    SET_H_GR (FLD (f_operand1), opval);
3507    written |= (1 << 8);
3508    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3509  }
3510}
3511}
3512; tmp_tmp_mem; });
3513}
3514 else if (EQSI (tmp_rno, 7)) {
3515  tmp_newval = ({   SI tmp_addr;
3516  SI tmp_tmp_mem;
3517  BI tmp_postinc;
3518  tmp_postinc = FLD (f_memmode);
3519;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3520;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3521; if (NEBI (tmp_postinc, 0)) {
3522{
3523if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3524  tmp_addr = ADDSI (tmp_addr, 4);
3525}
3526  {
3527    SI opval = tmp_addr;
3528    SET_H_GR (FLD (f_operand1), opval);
3529    written |= (1 << 8);
3530    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3531  }
3532}
3533}
3534; tmp_tmp_mem; });
3535}
3536 else if (EQSI (tmp_rno, 14)) {
3537  tmp_newval = ({   SI tmp_addr;
3538  SI tmp_tmp_mem;
3539  BI tmp_postinc;
3540  tmp_postinc = FLD (f_memmode);
3541;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3542;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3543; if (NEBI (tmp_postinc, 0)) {
3544{
3545if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3546  tmp_addr = ADDSI (tmp_addr, 4);
3547}
3548  {
3549    SI opval = tmp_addr;
3550    SET_H_GR (FLD (f_operand1), opval);
3551    written |= (1 << 8);
3552    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3553  }
3554}
3555}
3556; tmp_tmp_mem; });
3557}
3558 else if (EQSI (tmp_rno, 15)) {
3559  tmp_newval = ({   SI tmp_addr;
3560  SI tmp_tmp_mem;
3561  BI tmp_postinc;
3562  tmp_postinc = FLD (f_memmode);
3563;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3564;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3565; if (NEBI (tmp_postinc, 0)) {
3566{
3567if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3568  tmp_addr = ADDSI (tmp_addr, 4);
3569}
3570  {
3571    SI opval = tmp_addr;
3572    SET_H_GR (FLD (f_operand1), opval);
3573    written |= (1 << 8);
3574    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3575  }
3576}
3577}
3578; tmp_tmp_mem; });
3579}
3580 else {
3581cgen_rtx_error (current_cpu, "Trying to set unimplemented special register");
3582}
3583  {
3584    SI opval = tmp_newval;
3585    SET_H_SR (FLD (f_operand2), opval);
3586    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3587  }
3588{
3589  {
3590    BI opval = 0;
3591    CPU (h_xbit) = opval;
3592    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3593  }
3594  {
3595    BI opval = 0;
3596    SET_H_INSN_PREFIXED_P (opval);
3597    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3598  }
3599}
3600}
3601
3602  abuf->written = written;
3603#undef FLD
3604}
3605  NEXT (vpc);
3606
3607  CASE (sem, INSN_MOVE_C_SPRV10_P5) : /* move ${sconst16},${Pd} */
3608{
3609  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3610  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3611#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
3612  int UNUSED written = 0;
3613  IADDR UNUSED pc = abuf->addr;
3614  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3615
3616{
3617  {
3618    SI opval = FLD (f_indir_pc__word);
3619    SET_H_SR (FLD (f_operand2), opval);
3620    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3621  }
3622{
3623  {
3624    BI opval = 0;
3625    CPU (h_xbit) = opval;
3626    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3627  }
3628  {
3629    BI opval = 0;
3630    SET_H_INSN_PREFIXED_P (opval);
3631    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3632  }
3633}
3634}
3635
3636#undef FLD
3637}
3638  NEXT (vpc);
3639
3640  CASE (sem, INSN_MOVE_C_SPRV10_P9) : /* move ${const32},${Pd} */
3641{
3642  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3643  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3644#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3645  int UNUSED written = 0;
3646  IADDR UNUSED pc = abuf->addr;
3647  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3648
3649{
3650  {
3651    SI opval = FLD (f_indir_pc__dword);
3652    SET_H_SR (FLD (f_operand2), opval);
3653    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3654  }
3655{
3656  {
3657    BI opval = 0;
3658    CPU (h_xbit) = opval;
3659    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3660  }
3661  {
3662    BI opval = 0;
3663    SET_H_INSN_PREFIXED_P (opval);
3664    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3665  }
3666}
3667}
3668
3669#undef FLD
3670}
3671  NEXT (vpc);
3672
3673  CASE (sem, INSN_MOVE_C_SPRV10_P10) : /* move ${const32},${Pd} */
3674{
3675  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3676  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3677#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3678  int UNUSED written = 0;
3679  IADDR UNUSED pc = abuf->addr;
3680  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3681
3682{
3683  {
3684    SI opval = FLD (f_indir_pc__dword);
3685    SET_H_SR (FLD (f_operand2), opval);
3686    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3687  }
3688{
3689  {
3690    BI opval = 0;
3691    CPU (h_xbit) = opval;
3692    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3693  }
3694  {
3695    BI opval = 0;
3696    SET_H_INSN_PREFIXED_P (opval);
3697    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3698  }
3699}
3700}
3701
3702#undef FLD
3703}
3704  NEXT (vpc);
3705
3706  CASE (sem, INSN_MOVE_C_SPRV10_P11) : /* move ${const32},${Pd} */
3707{
3708  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3709  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3710#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3711  int UNUSED written = 0;
3712  IADDR UNUSED pc = abuf->addr;
3713  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3714
3715{
3716  {
3717    SI opval = FLD (f_indir_pc__dword);
3718    SET_H_SR (FLD (f_operand2), opval);
3719    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3720  }
3721{
3722  {
3723    BI opval = 0;
3724    CPU (h_xbit) = opval;
3725    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3726  }
3727  {
3728    BI opval = 0;
3729    SET_H_INSN_PREFIXED_P (opval);
3730    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3731  }
3732}
3733}
3734
3735#undef FLD
3736}
3737  NEXT (vpc);
3738
3739  CASE (sem, INSN_MOVE_C_SPRV10_P12) : /* move ${const32},${Pd} */
3740{
3741  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3742  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3743#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3744  int UNUSED written = 0;
3745  IADDR UNUSED pc = abuf->addr;
3746  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3747
3748{
3749  {
3750    SI opval = FLD (f_indir_pc__dword);
3751    SET_H_SR (FLD (f_operand2), opval);
3752    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3753  }
3754{
3755  {
3756    BI opval = 0;
3757    CPU (h_xbit) = opval;
3758    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3759  }
3760  {
3761    BI opval = 0;
3762    SET_H_INSN_PREFIXED_P (opval);
3763    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3764  }
3765}
3766}
3767
3768#undef FLD
3769}
3770  NEXT (vpc);
3771
3772  CASE (sem, INSN_MOVE_C_SPRV10_P13) : /* move ${const32},${Pd} */
3773{
3774  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3775  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3776#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3777  int UNUSED written = 0;
3778  IADDR UNUSED pc = abuf->addr;
3779  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3780
3781{
3782  {
3783    SI opval = FLD (f_indir_pc__dword);
3784    SET_H_SR (FLD (f_operand2), opval);
3785    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3786  }
3787{
3788  {
3789    BI opval = 0;
3790    CPU (h_xbit) = opval;
3791    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3792  }
3793  {
3794    BI opval = 0;
3795    SET_H_INSN_PREFIXED_P (opval);
3796    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3797  }
3798}
3799}
3800
3801#undef FLD
3802}
3803  NEXT (vpc);
3804
3805  CASE (sem, INSN_MOVE_C_SPRV10_P7) : /* move ${const32},${Pd} */
3806{
3807  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3808  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3809#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3810  int UNUSED written = 0;
3811  IADDR UNUSED pc = abuf->addr;
3812  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3813
3814{
3815  {
3816    SI opval = FLD (f_indir_pc__dword);
3817    SET_H_SR (FLD (f_operand2), opval);
3818    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3819  }
3820{
3821  {
3822    BI opval = 0;
3823    CPU (h_xbit) = opval;
3824    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3825  }
3826  {
3827    BI opval = 0;
3828    SET_H_INSN_PREFIXED_P (opval);
3829    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3830  }
3831}
3832}
3833
3834#undef FLD
3835}
3836  NEXT (vpc);
3837
3838  CASE (sem, INSN_MOVE_C_SPRV10_P14) : /* move ${const32},${Pd} */
3839{
3840  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3841  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3842#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3843  int UNUSED written = 0;
3844  IADDR UNUSED pc = abuf->addr;
3845  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3846
3847{
3848  {
3849    SI opval = FLD (f_indir_pc__dword);
3850    SET_H_SR (FLD (f_operand2), opval);
3851    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3852  }
3853{
3854  {
3855    BI opval = 0;
3856    CPU (h_xbit) = opval;
3857    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3858  }
3859  {
3860    BI opval = 0;
3861    SET_H_INSN_PREFIXED_P (opval);
3862    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3863  }
3864}
3865}
3866
3867#undef FLD
3868}
3869  NEXT (vpc);
3870
3871  CASE (sem, INSN_MOVE_C_SPRV10_P15) : /* move ${const32},${Pd} */
3872{
3873  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3874  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3875#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3876  int UNUSED written = 0;
3877  IADDR UNUSED pc = abuf->addr;
3878  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3879
3880{
3881  {
3882    SI opval = FLD (f_indir_pc__dword);
3883    SET_H_SR (FLD (f_operand2), opval);
3884    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3885  }
3886{
3887  {
3888    BI opval = 0;
3889    CPU (h_xbit) = opval;
3890    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3891  }
3892  {
3893    BI opval = 0;
3894    SET_H_INSN_PREFIXED_P (opval);
3895    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3896  }
3897}
3898}
3899
3900#undef FLD
3901}
3902  NEXT (vpc);
3903
3904  CASE (sem, INSN_MOVE_SPR_MV10) : /* move ${Ps},[${Rd-sfield}${inc}] */
3905{
3906  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3907  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3908#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3909  int UNUSED written = 0;
3910  IADDR UNUSED pc = abuf->addr;
3911  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3912
3913{
3914  SI tmp_rno;
3915  tmp_rno = FLD (f_operand2);
3916if (EQSI (tmp_rno, 5)) {
3917{
3918  SI tmp_addr;
3919  BI tmp_postinc;
3920  tmp_postinc = FLD (f_memmode);
3921  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3922if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
3923if (EQBI (CPU (h_pbit), 0)) {
3924{
3925  {
3926    HI opval = GET_H_SR (FLD (f_operand2));
3927    SETMEMHI (current_cpu, pc, tmp_addr, opval);
3928    written |= (1 << 11);
3929    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
3930  }
3931  {
3932    BI opval = CPU (h_pbit);
3933    CPU (h_cbit) = opval;
3934    written |= (1 << 10);
3935    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3936  }
3937}
3938} else {
3939  {
3940    BI opval = 1;
3941    CPU (h_cbit) = opval;
3942    written |= (1 << 10);
3943    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3944  }
3945}
3946} else {
3947  {
3948    HI opval = GET_H_SR (FLD (f_operand2));
3949    SETMEMHI (current_cpu, pc, tmp_addr, opval);
3950    written |= (1 << 11);
3951    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
3952  }
3953}
3954if (NEBI (tmp_postinc, 0)) {
3955{
3956if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3957  tmp_addr = ADDSI (tmp_addr, 2);
3958}
3959  {
3960    SI opval = tmp_addr;
3961    SET_H_GR (FLD (f_operand1), opval);
3962    written |= (1 << 9);
3963    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3964  }
3965}
3966}
3967}
3968}
3969 else if (EQSI (tmp_rno, 9)) {
3970{
3971  SI tmp_addr;
3972  BI tmp_postinc;
3973  tmp_postinc = FLD (f_memmode);
3974  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
3975if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
3976if (EQBI (CPU (h_pbit), 0)) {
3977{
3978  {
3979    SI opval = GET_H_SR (FLD (f_operand2));
3980    SETMEMSI (current_cpu, pc, tmp_addr, opval);
3981    written |= (1 << 13);
3982    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
3983  }
3984  {
3985    BI opval = CPU (h_pbit);
3986    CPU (h_cbit) = opval;
3987    written |= (1 << 10);
3988    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3989  }
3990}
3991} else {
3992  {
3993    BI opval = 1;
3994    CPU (h_cbit) = opval;
3995    written |= (1 << 10);
3996    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
3997  }
3998}
3999} else {
4000  {
4001    SI opval = GET_H_SR (FLD (f_operand2));
4002    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4003    written |= (1 << 13);
4004    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4005  }
4006}
4007if (NEBI (tmp_postinc, 0)) {
4008{
4009if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4010  tmp_addr = ADDSI (tmp_addr, 4);
4011}
4012  {
4013    SI opval = tmp_addr;
4014    SET_H_GR (FLD (f_operand1), opval);
4015    written |= (1 << 9);
4016    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4017  }
4018}
4019}
4020}
4021}
4022 else if (EQSI (tmp_rno, 10)) {
4023{
4024  SI tmp_addr;
4025  BI tmp_postinc;
4026  tmp_postinc = FLD (f_memmode);
4027  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4028if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4029if (EQBI (CPU (h_pbit), 0)) {
4030{
4031  {
4032    SI opval = GET_H_SR (FLD (f_operand2));
4033    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4034    written |= (1 << 13);
4035    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4036  }
4037  {
4038    BI opval = CPU (h_pbit);
4039    CPU (h_cbit) = opval;
4040    written |= (1 << 10);
4041    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4042  }
4043}
4044} else {
4045  {
4046    BI opval = 1;
4047    CPU (h_cbit) = opval;
4048    written |= (1 << 10);
4049    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4050  }
4051}
4052} else {
4053  {
4054    SI opval = GET_H_SR (FLD (f_operand2));
4055    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4056    written |= (1 << 13);
4057    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4058  }
4059}
4060if (NEBI (tmp_postinc, 0)) {
4061{
4062if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4063  tmp_addr = ADDSI (tmp_addr, 4);
4064}
4065  {
4066    SI opval = tmp_addr;
4067    SET_H_GR (FLD (f_operand1), opval);
4068    written |= (1 << 9);
4069    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4070  }
4071}
4072}
4073}
4074}
4075 else if (EQSI (tmp_rno, 11)) {
4076{
4077  SI tmp_addr;
4078  BI tmp_postinc;
4079  tmp_postinc = FLD (f_memmode);
4080  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4081if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4082if (EQBI (CPU (h_pbit), 0)) {
4083{
4084  {
4085    SI opval = GET_H_SR (FLD (f_operand2));
4086    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4087    written |= (1 << 13);
4088    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4089  }
4090  {
4091    BI opval = CPU (h_pbit);
4092    CPU (h_cbit) = opval;
4093    written |= (1 << 10);
4094    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4095  }
4096}
4097} else {
4098  {
4099    BI opval = 1;
4100    CPU (h_cbit) = opval;
4101    written |= (1 << 10);
4102    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4103  }
4104}
4105} else {
4106  {
4107    SI opval = GET_H_SR (FLD (f_operand2));
4108    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4109    written |= (1 << 13);
4110    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4111  }
4112}
4113if (NEBI (tmp_postinc, 0)) {
4114{
4115if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4116  tmp_addr = ADDSI (tmp_addr, 4);
4117}
4118  {
4119    SI opval = tmp_addr;
4120    SET_H_GR (FLD (f_operand1), opval);
4121    written |= (1 << 9);
4122    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4123  }
4124}
4125}
4126}
4127}
4128 else if (EQSI (tmp_rno, 12)) {
4129{
4130  SI tmp_addr;
4131  BI tmp_postinc;
4132  tmp_postinc = FLD (f_memmode);
4133  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4134if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4135if (EQBI (CPU (h_pbit), 0)) {
4136{
4137  {
4138    SI opval = GET_H_SR (FLD (f_operand2));
4139    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4140    written |= (1 << 13);
4141    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4142  }
4143  {
4144    BI opval = CPU (h_pbit);
4145    CPU (h_cbit) = opval;
4146    written |= (1 << 10);
4147    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4148  }
4149}
4150} else {
4151  {
4152    BI opval = 1;
4153    CPU (h_cbit) = opval;
4154    written |= (1 << 10);
4155    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4156  }
4157}
4158} else {
4159  {
4160    SI opval = GET_H_SR (FLD (f_operand2));
4161    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4162    written |= (1 << 13);
4163    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4164  }
4165}
4166if (NEBI (tmp_postinc, 0)) {
4167{
4168if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4169  tmp_addr = ADDSI (tmp_addr, 4);
4170}
4171  {
4172    SI opval = tmp_addr;
4173    SET_H_GR (FLD (f_operand1), opval);
4174    written |= (1 << 9);
4175    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4176  }
4177}
4178}
4179}
4180}
4181 else if (EQSI (tmp_rno, 13)) {
4182{
4183  SI tmp_addr;
4184  BI tmp_postinc;
4185  tmp_postinc = FLD (f_memmode);
4186  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4187if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4188if (EQBI (CPU (h_pbit), 0)) {
4189{
4190  {
4191    SI opval = GET_H_SR (FLD (f_operand2));
4192    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4193    written |= (1 << 13);
4194    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4195  }
4196  {
4197    BI opval = CPU (h_pbit);
4198    CPU (h_cbit) = opval;
4199    written |= (1 << 10);
4200    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4201  }
4202}
4203} else {
4204  {
4205    BI opval = 1;
4206    CPU (h_cbit) = opval;
4207    written |= (1 << 10);
4208    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4209  }
4210}
4211} else {
4212  {
4213    SI opval = GET_H_SR (FLD (f_operand2));
4214    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4215    written |= (1 << 13);
4216    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4217  }
4218}
4219if (NEBI (tmp_postinc, 0)) {
4220{
4221if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4222  tmp_addr = ADDSI (tmp_addr, 4);
4223}
4224  {
4225    SI opval = tmp_addr;
4226    SET_H_GR (FLD (f_operand1), opval);
4227    written |= (1 << 9);
4228    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4229  }
4230}
4231}
4232}
4233}
4234 else if (EQSI (tmp_rno, 0)) {
4235{
4236  SI tmp_addr;
4237  BI tmp_postinc;
4238  tmp_postinc = FLD (f_memmode);
4239  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4240if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4241if (EQBI (CPU (h_pbit), 0)) {
4242{
4243  {
4244    QI opval = GET_H_SR (FLD (f_operand2));
4245    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4246    written |= (1 << 12);
4247    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4248  }
4249  {
4250    BI opval = CPU (h_pbit);
4251    CPU (h_cbit) = opval;
4252    written |= (1 << 10);
4253    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4254  }
4255}
4256} else {
4257  {
4258    BI opval = 1;
4259    CPU (h_cbit) = opval;
4260    written |= (1 << 10);
4261    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4262  }
4263}
4264} else {
4265  {
4266    QI opval = GET_H_SR (FLD (f_operand2));
4267    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4268    written |= (1 << 12);
4269    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4270  }
4271}
4272if (NEBI (tmp_postinc, 0)) {
4273{
4274if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4275  tmp_addr = ADDSI (tmp_addr, 1);
4276}
4277  {
4278    SI opval = tmp_addr;
4279    SET_H_GR (FLD (f_operand1), opval);
4280    written |= (1 << 9);
4281    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4282  }
4283}
4284}
4285}
4286}
4287 else if (EQSI (tmp_rno, 1)) {
4288{
4289  SI tmp_addr;
4290  BI tmp_postinc;
4291  tmp_postinc = FLD (f_memmode);
4292  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4293if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4294if (EQBI (CPU (h_pbit), 0)) {
4295{
4296  {
4297    QI opval = GET_H_SR (FLD (f_operand2));
4298    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4299    written |= (1 << 12);
4300    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4301  }
4302  {
4303    BI opval = CPU (h_pbit);
4304    CPU (h_cbit) = opval;
4305    written |= (1 << 10);
4306    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4307  }
4308}
4309} else {
4310  {
4311    BI opval = 1;
4312    CPU (h_cbit) = opval;
4313    written |= (1 << 10);
4314    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4315  }
4316}
4317} else {
4318  {
4319    QI opval = GET_H_SR (FLD (f_operand2));
4320    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4321    written |= (1 << 12);
4322    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4323  }
4324}
4325if (NEBI (tmp_postinc, 0)) {
4326{
4327if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4328  tmp_addr = ADDSI (tmp_addr, 1);
4329}
4330  {
4331    SI opval = tmp_addr;
4332    SET_H_GR (FLD (f_operand1), opval);
4333    written |= (1 << 9);
4334    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4335  }
4336}
4337}
4338}
4339}
4340 else if (EQSI (tmp_rno, 4)) {
4341{
4342  SI tmp_addr;
4343  BI tmp_postinc;
4344  tmp_postinc = FLD (f_memmode);
4345  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4346if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4347if (EQBI (CPU (h_pbit), 0)) {
4348{
4349  {
4350    HI opval = GET_H_SR (FLD (f_operand2));
4351    SETMEMHI (current_cpu, pc, tmp_addr, opval);
4352    written |= (1 << 11);
4353    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4354  }
4355  {
4356    BI opval = CPU (h_pbit);
4357    CPU (h_cbit) = opval;
4358    written |= (1 << 10);
4359    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4360  }
4361}
4362} else {
4363  {
4364    BI opval = 1;
4365    CPU (h_cbit) = opval;
4366    written |= (1 << 10);
4367    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4368  }
4369}
4370} else {
4371  {
4372    HI opval = GET_H_SR (FLD (f_operand2));
4373    SETMEMHI (current_cpu, pc, tmp_addr, opval);
4374    written |= (1 << 11);
4375    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4376  }
4377}
4378if (NEBI (tmp_postinc, 0)) {
4379{
4380if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4381  tmp_addr = ADDSI (tmp_addr, 2);
4382}
4383  {
4384    SI opval = tmp_addr;
4385    SET_H_GR (FLD (f_operand1), opval);
4386    written |= (1 << 9);
4387    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4388  }
4389}
4390}
4391}
4392}
4393 else if (EQSI (tmp_rno, 8)) {
4394{
4395  SI tmp_addr;
4396  BI tmp_postinc;
4397  tmp_postinc = FLD (f_memmode);
4398  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4399if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4400if (EQBI (CPU (h_pbit), 0)) {
4401{
4402  {
4403    SI opval = GET_H_SR (FLD (f_operand2));
4404    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4405    written |= (1 << 13);
4406    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4407  }
4408  {
4409    BI opval = CPU (h_pbit);
4410    CPU (h_cbit) = opval;
4411    written |= (1 << 10);
4412    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4413  }
4414}
4415} else {
4416  {
4417    BI opval = 1;
4418    CPU (h_cbit) = opval;
4419    written |= (1 << 10);
4420    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4421  }
4422}
4423} else {
4424  {
4425    SI opval = GET_H_SR (FLD (f_operand2));
4426    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4427    written |= (1 << 13);
4428    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4429  }
4430}
4431if (NEBI (tmp_postinc, 0)) {
4432{
4433if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4434  tmp_addr = ADDSI (tmp_addr, 4);
4435}
4436  {
4437    SI opval = tmp_addr;
4438    SET_H_GR (FLD (f_operand1), opval);
4439    written |= (1 << 9);
4440    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4441  }
4442}
4443}
4444}
4445}
4446 else if (EQSI (tmp_rno, 7)) {
4447{
4448  SI tmp_addr;
4449  BI tmp_postinc;
4450  tmp_postinc = FLD (f_memmode);
4451  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4452if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4453if (EQBI (CPU (h_pbit), 0)) {
4454{
4455  {
4456    SI opval = GET_H_SR (FLD (f_operand2));
4457    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4458    written |= (1 << 13);
4459    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4460  }
4461  {
4462    BI opval = CPU (h_pbit);
4463    CPU (h_cbit) = opval;
4464    written |= (1 << 10);
4465    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4466  }
4467}
4468} else {
4469  {
4470    BI opval = 1;
4471    CPU (h_cbit) = opval;
4472    written |= (1 << 10);
4473    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4474  }
4475}
4476} else {
4477  {
4478    SI opval = GET_H_SR (FLD (f_operand2));
4479    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4480    written |= (1 << 13);
4481    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4482  }
4483}
4484if (NEBI (tmp_postinc, 0)) {
4485{
4486if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4487  tmp_addr = ADDSI (tmp_addr, 4);
4488}
4489  {
4490    SI opval = tmp_addr;
4491    SET_H_GR (FLD (f_operand1), opval);
4492    written |= (1 << 9);
4493    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4494  }
4495}
4496}
4497}
4498}
4499 else if (EQSI (tmp_rno, 14)) {
4500{
4501  SI tmp_addr;
4502  BI tmp_postinc;
4503  tmp_postinc = FLD (f_memmode);
4504  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4505if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4506if (EQBI (CPU (h_pbit), 0)) {
4507{
4508  {
4509    SI opval = GET_H_SR (FLD (f_operand2));
4510    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4511    written |= (1 << 13);
4512    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4513  }
4514  {
4515    BI opval = CPU (h_pbit);
4516    CPU (h_cbit) = opval;
4517    written |= (1 << 10);
4518    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4519  }
4520}
4521} else {
4522  {
4523    BI opval = 1;
4524    CPU (h_cbit) = opval;
4525    written |= (1 << 10);
4526    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4527  }
4528}
4529} else {
4530  {
4531    SI opval = GET_H_SR (FLD (f_operand2));
4532    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4533    written |= (1 << 13);
4534    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4535  }
4536}
4537if (NEBI (tmp_postinc, 0)) {
4538{
4539if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4540  tmp_addr = ADDSI (tmp_addr, 4);
4541}
4542  {
4543    SI opval = tmp_addr;
4544    SET_H_GR (FLD (f_operand1), opval);
4545    written |= (1 << 9);
4546    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4547  }
4548}
4549}
4550}
4551}
4552 else if (EQSI (tmp_rno, 15)) {
4553{
4554  SI tmp_addr;
4555  BI tmp_postinc;
4556  tmp_postinc = FLD (f_memmode);
4557  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4558if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4559if (EQBI (CPU (h_pbit), 0)) {
4560{
4561  {
4562    SI opval = GET_H_SR (FLD (f_operand2));
4563    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4564    written |= (1 << 13);
4565    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4566  }
4567  {
4568    BI opval = CPU (h_pbit);
4569    CPU (h_cbit) = opval;
4570    written |= (1 << 10);
4571    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4572  }
4573}
4574} else {
4575  {
4576    BI opval = 1;
4577    CPU (h_cbit) = opval;
4578    written |= (1 << 10);
4579    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4580  }
4581}
4582} else {
4583  {
4584    SI opval = GET_H_SR (FLD (f_operand2));
4585    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4586    written |= (1 << 13);
4587    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4588  }
4589}
4590if (NEBI (tmp_postinc, 0)) {
4591{
4592if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4593  tmp_addr = ADDSI (tmp_addr, 4);
4594}
4595  {
4596    SI opval = tmp_addr;
4597    SET_H_GR (FLD (f_operand1), opval);
4598    written |= (1 << 9);
4599    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4600  }
4601}
4602}
4603}
4604}
4605 else {
4606cgen_rtx_error (current_cpu, "write from unimplemented special register");
4607}
4608{
4609  {
4610    BI opval = 0;
4611    CPU (h_xbit) = opval;
4612    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4613  }
4614  {
4615    BI opval = 0;
4616    SET_H_INSN_PREFIXED_P (opval);
4617    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4618  }
4619}
4620}
4621
4622  abuf->written = written;
4623#undef FLD
4624}
4625  NEXT (vpc);
4626
4627  CASE (sem, INSN_SBFS) : /* sbfs [${Rd-sfield}${inc}] */
4628{
4629  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4630  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4631#define FLD(f) abuf->fields.sfmt_empty.f
4632  int UNUSED written = 0;
4633  IADDR UNUSED pc = abuf->addr;
4634  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4635
4636cgen_rtx_error (current_cpu, "SBFS isn't implemented");
4637
4638#undef FLD
4639}
4640  NEXT (vpc);
4641
4642  CASE (sem, INSN_MOVEM_R_M) : /* movem ${Rs-dfield},[${Rd-sfield}${inc}] */
4643{
4644  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4645  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4646#define FLD(f) abuf->fields.sfmt_movem_r_m.f
4647  int UNUSED written = 0;
4648  IADDR UNUSED pc = abuf->addr;
4649  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4650
4651{
4652  SI tmp_addr;
4653  BI tmp_postinc;
4654  tmp_postinc = FLD (f_memmode);
4655{
4656  SI tmp_dummy;
4657  tmp_dummy = GET_H_GR (FLD (f_operand2));
4658}
4659  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4660{
4661if (GESI (FLD (f_operand2), 15)) {
4662{
4663  SI tmp_tmp;
4664  tmp_tmp = GET_H_GR (((UINT) 15));
4665  {
4666    SI opval = tmp_tmp;
4667    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4668    written |= (1 << 23);
4669    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4670  }
4671  tmp_addr = ADDSI (tmp_addr, 4);
4672}
4673}
4674if (GESI (FLD (f_operand2), 14)) {
4675{
4676  SI tmp_tmp;
4677  tmp_tmp = GET_H_GR (((UINT) 14));
4678  {
4679    SI opval = tmp_tmp;
4680    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4681    written |= (1 << 23);
4682    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4683  }
4684  tmp_addr = ADDSI (tmp_addr, 4);
4685}
4686}
4687if (GESI (FLD (f_operand2), 13)) {
4688{
4689  SI tmp_tmp;
4690  tmp_tmp = GET_H_GR (((UINT) 13));
4691  {
4692    SI opval = tmp_tmp;
4693    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4694    written |= (1 << 23);
4695    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4696  }
4697  tmp_addr = ADDSI (tmp_addr, 4);
4698}
4699}
4700if (GESI (FLD (f_operand2), 12)) {
4701{
4702  SI tmp_tmp;
4703  tmp_tmp = GET_H_GR (((UINT) 12));
4704  {
4705    SI opval = tmp_tmp;
4706    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4707    written |= (1 << 23);
4708    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4709  }
4710  tmp_addr = ADDSI (tmp_addr, 4);
4711}
4712}
4713if (GESI (FLD (f_operand2), 11)) {
4714{
4715  SI tmp_tmp;
4716  tmp_tmp = GET_H_GR (((UINT) 11));
4717  {
4718    SI opval = tmp_tmp;
4719    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4720    written |= (1 << 23);
4721    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4722  }
4723  tmp_addr = ADDSI (tmp_addr, 4);
4724}
4725}
4726if (GESI (FLD (f_operand2), 10)) {
4727{
4728  SI tmp_tmp;
4729  tmp_tmp = GET_H_GR (((UINT) 10));
4730  {
4731    SI opval = tmp_tmp;
4732    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4733    written |= (1 << 23);
4734    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4735  }
4736  tmp_addr = ADDSI (tmp_addr, 4);
4737}
4738}
4739if (GESI (FLD (f_operand2), 9)) {
4740{
4741  SI tmp_tmp;
4742  tmp_tmp = GET_H_GR (((UINT) 9));
4743  {
4744    SI opval = tmp_tmp;
4745    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4746    written |= (1 << 23);
4747    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4748  }
4749  tmp_addr = ADDSI (tmp_addr, 4);
4750}
4751}
4752if (GESI (FLD (f_operand2), 8)) {
4753{
4754  SI tmp_tmp;
4755  tmp_tmp = GET_H_GR (((UINT) 8));
4756  {
4757    SI opval = tmp_tmp;
4758    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4759    written |= (1 << 23);
4760    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4761  }
4762  tmp_addr = ADDSI (tmp_addr, 4);
4763}
4764}
4765if (GESI (FLD (f_operand2), 7)) {
4766{
4767  SI tmp_tmp;
4768  tmp_tmp = GET_H_GR (((UINT) 7));
4769  {
4770    SI opval = tmp_tmp;
4771    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4772    written |= (1 << 23);
4773    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4774  }
4775  tmp_addr = ADDSI (tmp_addr, 4);
4776}
4777}
4778if (GESI (FLD (f_operand2), 6)) {
4779{
4780  SI tmp_tmp;
4781  tmp_tmp = GET_H_GR (((UINT) 6));
4782  {
4783    SI opval = tmp_tmp;
4784    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4785    written |= (1 << 23);
4786    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4787  }
4788  tmp_addr = ADDSI (tmp_addr, 4);
4789}
4790}
4791if (GESI (FLD (f_operand2), 5)) {
4792{
4793  SI tmp_tmp;
4794  tmp_tmp = GET_H_GR (((UINT) 5));
4795  {
4796    SI opval = tmp_tmp;
4797    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4798    written |= (1 << 23);
4799    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4800  }
4801  tmp_addr = ADDSI (tmp_addr, 4);
4802}
4803}
4804if (GESI (FLD (f_operand2), 4)) {
4805{
4806  SI tmp_tmp;
4807  tmp_tmp = GET_H_GR (((UINT) 4));
4808  {
4809    SI opval = tmp_tmp;
4810    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4811    written |= (1 << 23);
4812    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4813  }
4814  tmp_addr = ADDSI (tmp_addr, 4);
4815}
4816}
4817if (GESI (FLD (f_operand2), 3)) {
4818{
4819  SI tmp_tmp;
4820  tmp_tmp = GET_H_GR (((UINT) 3));
4821  {
4822    SI opval = tmp_tmp;
4823    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4824    written |= (1 << 23);
4825    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4826  }
4827  tmp_addr = ADDSI (tmp_addr, 4);
4828}
4829}
4830if (GESI (FLD (f_operand2), 2)) {
4831{
4832  SI tmp_tmp;
4833  tmp_tmp = GET_H_GR (((UINT) 2));
4834  {
4835    SI opval = tmp_tmp;
4836    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4837    written |= (1 << 23);
4838    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4839  }
4840  tmp_addr = ADDSI (tmp_addr, 4);
4841}
4842}
4843if (GESI (FLD (f_operand2), 1)) {
4844{
4845  SI tmp_tmp;
4846  tmp_tmp = GET_H_GR (((UINT) 1));
4847  {
4848    SI opval = tmp_tmp;
4849    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4850    written |= (1 << 23);
4851    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4852  }
4853  tmp_addr = ADDSI (tmp_addr, 4);
4854}
4855}
4856if (GESI (FLD (f_operand2), 0)) {
4857{
4858  SI tmp_tmp;
4859  tmp_tmp = GET_H_GR (((UINT) 0));
4860  {
4861    SI opval = tmp_tmp;
4862    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4863    written |= (1 << 23);
4864    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4865  }
4866  tmp_addr = ADDSI (tmp_addr, 4);
4867}
4868}
4869}
4870if (NEBI (tmp_postinc, 0)) {
4871  {
4872    SI opval = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (tmp_addr) : (CPU (h_prefixreg_pre_v32)));
4873    SET_H_GR (FLD (f_operand1), opval);
4874    written |= (1 << 22);
4875    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4876  }
4877}
4878{
4879  {
4880    BI opval = 0;
4881    CPU (h_xbit) = opval;
4882    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4883  }
4884  {
4885    BI opval = 0;
4886    SET_H_INSN_PREFIXED_P (opval);
4887    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4888  }
4889}
4890}
4891
4892  abuf->written = written;
4893#undef FLD
4894}
4895  NEXT (vpc);
4896
4897  CASE (sem, INSN_MOVEM_M_R) : /* movem [${Rs}${inc}],${Rd} */
4898{
4899  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4900  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4901#define FLD(f) abuf->fields.sfmt_movem_m_r.f
4902  int UNUSED written = 0;
4903  IADDR UNUSED pc = abuf->addr;
4904  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4905
4906{
4907  SI tmp_addr;
4908  BI tmp_postinc;
4909  tmp_postinc = FLD (f_memmode);
4910  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
4911{
4912  SI tmp_dummy;
4913  tmp_dummy = GET_H_GR (FLD (f_operand2));
4914}
4915{
4916if (GESI (FLD (f_operand2), 14)) {
4917{
4918  SI tmp_tmp;
4919  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4920  {
4921    SI opval = tmp_tmp;
4922    SET_H_GR (((UINT) 14), opval);
4923    written |= (1 << 14);
4924    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4925  }
4926  tmp_addr = ADDSI (tmp_addr, 4);
4927}
4928}
4929if (GESI (FLD (f_operand2), 13)) {
4930{
4931  SI tmp_tmp;
4932  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4933  {
4934    SI opval = tmp_tmp;
4935    SET_H_GR (((UINT) 13), opval);
4936    written |= (1 << 13);
4937    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4938  }
4939  tmp_addr = ADDSI (tmp_addr, 4);
4940}
4941}
4942if (GESI (FLD (f_operand2), 12)) {
4943{
4944  SI tmp_tmp;
4945  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4946  {
4947    SI opval = tmp_tmp;
4948    SET_H_GR (((UINT) 12), opval);
4949    written |= (1 << 12);
4950    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4951  }
4952  tmp_addr = ADDSI (tmp_addr, 4);
4953}
4954}
4955if (GESI (FLD (f_operand2), 11)) {
4956{
4957  SI tmp_tmp;
4958  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4959  {
4960    SI opval = tmp_tmp;
4961    SET_H_GR (((UINT) 11), opval);
4962    written |= (1 << 11);
4963    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4964  }
4965  tmp_addr = ADDSI (tmp_addr, 4);
4966}
4967}
4968if (GESI (FLD (f_operand2), 10)) {
4969{
4970  SI tmp_tmp;
4971  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4972  {
4973    SI opval = tmp_tmp;
4974    SET_H_GR (((UINT) 10), opval);
4975    written |= (1 << 10);
4976    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4977  }
4978  tmp_addr = ADDSI (tmp_addr, 4);
4979}
4980}
4981if (GESI (FLD (f_operand2), 9)) {
4982{
4983  SI tmp_tmp;
4984  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4985  {
4986    SI opval = tmp_tmp;
4987    SET_H_GR (((UINT) 9), opval);
4988    written |= (1 << 22);
4989    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4990  }
4991  tmp_addr = ADDSI (tmp_addr, 4);
4992}
4993}
4994if (GESI (FLD (f_operand2), 8)) {
4995{
4996  SI tmp_tmp;
4997  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
4998  {
4999    SI opval = tmp_tmp;
5000    SET_H_GR (((UINT) 8), opval);
5001    written |= (1 << 21);
5002    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5003  }
5004  tmp_addr = ADDSI (tmp_addr, 4);
5005}
5006}
5007if (GESI (FLD (f_operand2), 7)) {
5008{
5009  SI tmp_tmp;
5010  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5011  {
5012    SI opval = tmp_tmp;
5013    SET_H_GR (((UINT) 7), opval);
5014    written |= (1 << 20);
5015    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5016  }
5017  tmp_addr = ADDSI (tmp_addr, 4);
5018}
5019}
5020if (GESI (FLD (f_operand2), 6)) {
5021{
5022  SI tmp_tmp;
5023  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5024  {
5025    SI opval = tmp_tmp;
5026    SET_H_GR (((UINT) 6), opval);
5027    written |= (1 << 19);
5028    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5029  }
5030  tmp_addr = ADDSI (tmp_addr, 4);
5031}
5032}
5033if (GESI (FLD (f_operand2), 5)) {
5034{
5035  SI tmp_tmp;
5036  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5037  {
5038    SI opval = tmp_tmp;
5039    SET_H_GR (((UINT) 5), opval);
5040    written |= (1 << 18);
5041    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5042  }
5043  tmp_addr = ADDSI (tmp_addr, 4);
5044}
5045}
5046if (GESI (FLD (f_operand2), 4)) {
5047{
5048  SI tmp_tmp;
5049  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5050  {
5051    SI opval = tmp_tmp;
5052    SET_H_GR (((UINT) 4), opval);
5053    written |= (1 << 17);
5054    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5055  }
5056  tmp_addr = ADDSI (tmp_addr, 4);
5057}
5058}
5059if (GESI (FLD (f_operand2), 3)) {
5060{
5061  SI tmp_tmp;
5062  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5063  {
5064    SI opval = tmp_tmp;
5065    SET_H_GR (((UINT) 3), opval);
5066    written |= (1 << 16);
5067    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5068  }
5069  tmp_addr = ADDSI (tmp_addr, 4);
5070}
5071}
5072if (GESI (FLD (f_operand2), 2)) {
5073{
5074  SI tmp_tmp;
5075  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5076  {
5077    SI opval = tmp_tmp;
5078    SET_H_GR (((UINT) 2), opval);
5079    written |= (1 << 15);
5080    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5081  }
5082  tmp_addr = ADDSI (tmp_addr, 4);
5083}
5084}
5085if (GESI (FLD (f_operand2), 1)) {
5086{
5087  SI tmp_tmp;
5088  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5089  {
5090    SI opval = tmp_tmp;
5091    SET_H_GR (((UINT) 1), opval);
5092    written |= (1 << 9);
5093    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5094  }
5095  tmp_addr = ADDSI (tmp_addr, 4);
5096}
5097}
5098if (GESI (FLD (f_operand2), 0)) {
5099{
5100  SI tmp_tmp;
5101  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5102  {
5103    SI opval = tmp_tmp;
5104    SET_H_GR (((UINT) 0), opval);
5105    written |= (1 << 8);
5106    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5107  }
5108  tmp_addr = ADDSI (tmp_addr, 4);
5109}
5110}
5111}
5112if (NEBI (tmp_postinc, 0)) {
5113  {
5114    SI opval = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (tmp_addr) : (CPU (h_prefixreg_pre_v32)));
5115    SET_H_GR (FLD (f_operand1), opval);
5116    written |= (1 << 7);
5117    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5118  }
5119}
5120{
5121  {
5122    BI opval = 0;
5123    CPU (h_xbit) = opval;
5124    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5125  }
5126  {
5127    BI opval = 0;
5128    SET_H_INSN_PREFIXED_P (opval);
5129    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5130  }
5131}
5132}
5133
5134  abuf->written = written;
5135#undef FLD
5136}
5137  NEXT (vpc);
5138
5139  CASE (sem, INSN_MOVEM_M_PC) : /* movem [${Rs}${inc}],${Rd} */
5140{
5141  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5142  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5143#define FLD(f) abuf->fields.sfmt_movem_m_r.f
5144  int UNUSED written = 0;
5145  IADDR UNUSED pc = abuf->addr;
5146  SEM_BRANCH_INIT
5147  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5148
5149{
5150  SI tmp_addr;
5151  BI tmp_postinc;
5152  tmp_postinc = FLD (f_memmode);
5153  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5154{
5155  {
5156    USI opval = GETMEMSI (current_cpu, pc, tmp_addr);
5157    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
5158    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
5159  }
5160  tmp_addr = ADDSI (tmp_addr, 4);
5161{
5162  SI tmp_tmp;
5163  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5164  {
5165    SI opval = tmp_tmp;
5166    SET_H_GR (((UINT) 14), opval);
5167    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5168  }
5169  tmp_addr = ADDSI (tmp_addr, 4);
5170}
5171{
5172  SI tmp_tmp;
5173  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5174  {
5175    SI opval = tmp_tmp;
5176    SET_H_GR (((UINT) 13), opval);
5177    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5178  }
5179  tmp_addr = ADDSI (tmp_addr, 4);
5180}
5181{
5182  SI tmp_tmp;
5183  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5184  {
5185    SI opval = tmp_tmp;
5186    SET_H_GR (((UINT) 12), opval);
5187    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5188  }
5189  tmp_addr = ADDSI (tmp_addr, 4);
5190}
5191{
5192  SI tmp_tmp;
5193  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5194  {
5195    SI opval = tmp_tmp;
5196    SET_H_GR (((UINT) 11), opval);
5197    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5198  }
5199  tmp_addr = ADDSI (tmp_addr, 4);
5200}
5201{
5202  SI tmp_tmp;
5203  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5204  {
5205    SI opval = tmp_tmp;
5206    SET_H_GR (((UINT) 10), opval);
5207    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5208  }
5209  tmp_addr = ADDSI (tmp_addr, 4);
5210}
5211{
5212  SI tmp_tmp;
5213  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5214  {
5215    SI opval = tmp_tmp;
5216    SET_H_GR (((UINT) 9), opval);
5217    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5218  }
5219  tmp_addr = ADDSI (tmp_addr, 4);
5220}
5221{
5222  SI tmp_tmp;
5223  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5224  {
5225    SI opval = tmp_tmp;
5226    SET_H_GR (((UINT) 8), opval);
5227    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5228  }
5229  tmp_addr = ADDSI (tmp_addr, 4);
5230}
5231{
5232  SI tmp_tmp;
5233  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5234  {
5235    SI opval = tmp_tmp;
5236    SET_H_GR (((UINT) 7), opval);
5237    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5238  }
5239  tmp_addr = ADDSI (tmp_addr, 4);
5240}
5241{
5242  SI tmp_tmp;
5243  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5244  {
5245    SI opval = tmp_tmp;
5246    SET_H_GR (((UINT) 6), opval);
5247    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5248  }
5249  tmp_addr = ADDSI (tmp_addr, 4);
5250}
5251{
5252  SI tmp_tmp;
5253  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5254  {
5255    SI opval = tmp_tmp;
5256    SET_H_GR (((UINT) 5), opval);
5257    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5258  }
5259  tmp_addr = ADDSI (tmp_addr, 4);
5260}
5261{
5262  SI tmp_tmp;
5263  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5264  {
5265    SI opval = tmp_tmp;
5266    SET_H_GR (((UINT) 4), opval);
5267    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5268  }
5269  tmp_addr = ADDSI (tmp_addr, 4);
5270}
5271{
5272  SI tmp_tmp;
5273  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5274  {
5275    SI opval = tmp_tmp;
5276    SET_H_GR (((UINT) 3), opval);
5277    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5278  }
5279  tmp_addr = ADDSI (tmp_addr, 4);
5280}
5281{
5282  SI tmp_tmp;
5283  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5284  {
5285    SI opval = tmp_tmp;
5286    SET_H_GR (((UINT) 2), opval);
5287    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5288  }
5289  tmp_addr = ADDSI (tmp_addr, 4);
5290}
5291{
5292  SI tmp_tmp;
5293  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5294  {
5295    SI opval = tmp_tmp;
5296    SET_H_GR (((UINT) 1), opval);
5297    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5298  }
5299  tmp_addr = ADDSI (tmp_addr, 4);
5300}
5301{
5302  SI tmp_tmp;
5303  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5304  {
5305    SI opval = tmp_tmp;
5306    SET_H_GR (((UINT) 0), opval);
5307    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5308  }
5309  tmp_addr = ADDSI (tmp_addr, 4);
5310}
5311}
5312if (NEBI (tmp_postinc, 0)) {
5313  {
5314    SI opval = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (tmp_addr) : (CPU (h_prefixreg_pre_v32)));
5315    SET_H_GR (FLD (f_operand1), opval);
5316    written |= (1 << 5);
5317    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5318  }
5319}
5320{
5321  {
5322    BI opval = 0;
5323    CPU (h_xbit) = opval;
5324    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5325  }
5326  {
5327    BI opval = 0;
5328    SET_H_INSN_PREFIXED_P (opval);
5329    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5330  }
5331}
5332}
5333
5334  abuf->written = written;
5335  SEM_BRANCH_FINI (vpc);
5336#undef FLD
5337}
5338  NEXT (vpc);
5339
5340  CASE (sem, INSN_ADD_B_R) : /* add.b $Rs,$Rd */
5341{
5342  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5343  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5344#define FLD(f) abuf->fields.sfmt_add_b_r.f
5345  int UNUSED written = 0;
5346  IADDR UNUSED pc = abuf->addr;
5347  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5348
5349{
5350  QI tmp_tmpopd;
5351  QI tmp_tmpops;
5352  BI tmp_carry;
5353  QI tmp_newval;
5354  tmp_tmpops = GET_H_GR (FLD (f_operand1));
5355  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5356  tmp_carry = CPU (h_cbit);
5357  tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5358{
5359  SI tmp_oldregval;
5360  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5361  {
5362    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5363    SET_H_GR (FLD (f_operand2), opval);
5364    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5365  }
5366}
5367{
5368  {
5369    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))));
5370    CPU (h_cbit) = opval;
5371    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5372  }
5373  {
5374    BI opval = LTQI (tmp_newval, 0);
5375    CPU (h_nbit) = opval;
5376    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5377  }
5378  {
5379    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5380    CPU (h_zbit) = opval;
5381    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5382  }
5383  {
5384    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)));
5385    CPU (h_vbit) = opval;
5386    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5387  }
5388{
5389  {
5390    BI opval = 0;
5391    CPU (h_xbit) = opval;
5392    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5393  }
5394  {
5395    BI opval = 0;
5396    SET_H_INSN_PREFIXED_P (opval);
5397    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5398  }
5399}
5400}
5401}
5402
5403#undef FLD
5404}
5405  NEXT (vpc);
5406
5407  CASE (sem, INSN_ADD_W_R) : /* add.w $Rs,$Rd */
5408{
5409  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5410  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5411#define FLD(f) abuf->fields.sfmt_add_b_r.f
5412  int UNUSED written = 0;
5413  IADDR UNUSED pc = abuf->addr;
5414  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5415
5416{
5417  HI tmp_tmpopd;
5418  HI tmp_tmpops;
5419  BI tmp_carry;
5420  HI tmp_newval;
5421  tmp_tmpops = GET_H_GR (FLD (f_operand1));
5422  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5423  tmp_carry = CPU (h_cbit);
5424  tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5425{
5426  SI tmp_oldregval;
5427  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5428  {
5429    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5430    SET_H_GR (FLD (f_operand2), opval);
5431    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5432  }
5433}
5434{
5435  {
5436    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))));
5437    CPU (h_cbit) = opval;
5438    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5439  }
5440  {
5441    BI opval = LTHI (tmp_newval, 0);
5442    CPU (h_nbit) = opval;
5443    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5444  }
5445  {
5446    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5447    CPU (h_zbit) = opval;
5448    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5449  }
5450  {
5451    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)));
5452    CPU (h_vbit) = opval;
5453    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5454  }
5455{
5456  {
5457    BI opval = 0;
5458    CPU (h_xbit) = opval;
5459    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5460  }
5461  {
5462    BI opval = 0;
5463    SET_H_INSN_PREFIXED_P (opval);
5464    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5465  }
5466}
5467}
5468}
5469
5470#undef FLD
5471}
5472  NEXT (vpc);
5473
5474  CASE (sem, INSN_ADD_D_R) : /* add.d $Rs,$Rd */
5475{
5476  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5477  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5478#define FLD(f) abuf->fields.sfmt_add_b_r.f
5479  int UNUSED written = 0;
5480  IADDR UNUSED pc = abuf->addr;
5481  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5482
5483{
5484  SI tmp_tmpopd;
5485  SI tmp_tmpops;
5486  BI tmp_carry;
5487  SI tmp_newval;
5488  tmp_tmpops = GET_H_GR (FLD (f_operand1));
5489  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5490  tmp_carry = CPU (h_cbit);
5491  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5492  {
5493    SI opval = tmp_newval;
5494    SET_H_GR (FLD (f_operand2), opval);
5495    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5496  }
5497{
5498  {
5499    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))));
5500    CPU (h_cbit) = opval;
5501    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5502  }
5503  {
5504    BI opval = LTSI (tmp_newval, 0);
5505    CPU (h_nbit) = opval;
5506    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5507  }
5508  {
5509    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5510    CPU (h_zbit) = opval;
5511    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5512  }
5513  {
5514    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)));
5515    CPU (h_vbit) = opval;
5516    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5517  }
5518{
5519  {
5520    BI opval = 0;
5521    CPU (h_xbit) = opval;
5522    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5523  }
5524  {
5525    BI opval = 0;
5526    SET_H_INSN_PREFIXED_P (opval);
5527    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5528  }
5529}
5530}
5531}
5532
5533#undef FLD
5534}
5535  NEXT (vpc);
5536
5537  CASE (sem, INSN_ADD_M_B_M) : /* add-m.b [${Rs}${inc}],${Rd} */
5538{
5539  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5540  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5541#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5542  int UNUSED written = 0;
5543  IADDR UNUSED pc = abuf->addr;
5544  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5545
5546{
5547  QI tmp_tmpopd;
5548  QI tmp_tmpops;
5549  BI tmp_carry;
5550  QI tmp_newval;
5551  tmp_tmpops = ({   SI tmp_addr;
5552  QI tmp_tmp_mem;
5553  BI tmp_postinc;
5554  tmp_postinc = FLD (f_memmode);
5555;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5556;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
5557; if (NEBI (tmp_postinc, 0)) {
5558{
5559if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5560  tmp_addr = ADDSI (tmp_addr, 1);
5561}
5562  {
5563    SI opval = tmp_addr;
5564    SET_H_GR (FLD (f_operand1), opval);
5565    written |= (1 << 12);
5566    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5567  }
5568}
5569}
5570; tmp_tmp_mem; });
5571  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5572  tmp_carry = CPU (h_cbit);
5573  tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5574{
5575  SI tmp_oldregval;
5576  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
5577  {
5578    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5579    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5580    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5581  }
5582}
5583{
5584  {
5585    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))));
5586    CPU (h_cbit) = opval;
5587    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5588  }
5589  {
5590    BI opval = LTQI (tmp_newval, 0);
5591    CPU (h_nbit) = opval;
5592    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5593  }
5594  {
5595    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5596    CPU (h_zbit) = opval;
5597    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5598  }
5599  {
5600    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)));
5601    CPU (h_vbit) = opval;
5602    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5603  }
5604{
5605  {
5606    BI opval = 0;
5607    CPU (h_xbit) = opval;
5608    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5609  }
5610  {
5611    BI opval = 0;
5612    SET_H_INSN_PREFIXED_P (opval);
5613    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5614  }
5615}
5616}
5617}
5618
5619  abuf->written = written;
5620#undef FLD
5621}
5622  NEXT (vpc);
5623
5624  CASE (sem, INSN_ADD_M_W_M) : /* add-m.w [${Rs}${inc}],${Rd} */
5625{
5626  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5627  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5628#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5629  int UNUSED written = 0;
5630  IADDR UNUSED pc = abuf->addr;
5631  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5632
5633{
5634  HI tmp_tmpopd;
5635  HI tmp_tmpops;
5636  BI tmp_carry;
5637  HI tmp_newval;
5638  tmp_tmpops = ({   SI tmp_addr;
5639  HI tmp_tmp_mem;
5640  BI tmp_postinc;
5641  tmp_postinc = FLD (f_memmode);
5642;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5643;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
5644; if (NEBI (tmp_postinc, 0)) {
5645{
5646if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5647  tmp_addr = ADDSI (tmp_addr, 2);
5648}
5649  {
5650    SI opval = tmp_addr;
5651    SET_H_GR (FLD (f_operand1), opval);
5652    written |= (1 << 12);
5653    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5654  }
5655}
5656}
5657; tmp_tmp_mem; });
5658  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5659  tmp_carry = CPU (h_cbit);
5660  tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5661{
5662  SI tmp_oldregval;
5663  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
5664  {
5665    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5666    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5667    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5668  }
5669}
5670{
5671  {
5672    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))));
5673    CPU (h_cbit) = opval;
5674    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5675  }
5676  {
5677    BI opval = LTHI (tmp_newval, 0);
5678    CPU (h_nbit) = opval;
5679    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5680  }
5681  {
5682    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5683    CPU (h_zbit) = opval;
5684    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5685  }
5686  {
5687    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)));
5688    CPU (h_vbit) = opval;
5689    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5690  }
5691{
5692  {
5693    BI opval = 0;
5694    CPU (h_xbit) = opval;
5695    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5696  }
5697  {
5698    BI opval = 0;
5699    SET_H_INSN_PREFIXED_P (opval);
5700    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5701  }
5702}
5703}
5704}
5705
5706  abuf->written = written;
5707#undef FLD
5708}
5709  NEXT (vpc);
5710
5711  CASE (sem, INSN_ADD_M_D_M) : /* add-m.d [${Rs}${inc}],${Rd} */
5712{
5713  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5714  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5715#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5716  int UNUSED written = 0;
5717  IADDR UNUSED pc = abuf->addr;
5718  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5719
5720{
5721  SI tmp_tmpopd;
5722  SI tmp_tmpops;
5723  BI tmp_carry;
5724  SI tmp_newval;
5725  tmp_tmpops = ({   SI tmp_addr;
5726  SI tmp_tmp_mem;
5727  BI tmp_postinc;
5728  tmp_postinc = FLD (f_memmode);
5729;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
5730;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
5731; if (NEBI (tmp_postinc, 0)) {
5732{
5733if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5734  tmp_addr = ADDSI (tmp_addr, 4);
5735}
5736  {
5737    SI opval = tmp_addr;
5738    SET_H_GR (FLD (f_operand1), opval);
5739    written |= (1 << 11);
5740    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5741  }
5742}
5743}
5744; tmp_tmp_mem; });
5745  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5746  tmp_carry = CPU (h_cbit);
5747  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5748  {
5749    SI opval = tmp_newval;
5750    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5751    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5752  }
5753{
5754  {
5755    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))));
5756    CPU (h_cbit) = opval;
5757    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5758  }
5759  {
5760    BI opval = LTSI (tmp_newval, 0);
5761    CPU (h_nbit) = opval;
5762    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5763  }
5764  {
5765    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5766    CPU (h_zbit) = opval;
5767    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5768  }
5769  {
5770    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)));
5771    CPU (h_vbit) = opval;
5772    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5773  }
5774{
5775  {
5776    BI opval = 0;
5777    CPU (h_xbit) = opval;
5778    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5779  }
5780  {
5781    BI opval = 0;
5782    SET_H_INSN_PREFIXED_P (opval);
5783    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5784  }
5785}
5786}
5787}
5788
5789  abuf->written = written;
5790#undef FLD
5791}
5792  NEXT (vpc);
5793
5794  CASE (sem, INSN_ADDCBR) : /* add.b ${sconst8}],${Rd} */
5795{
5796  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5797  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5798#define FLD(f) abuf->fields.sfmt_addcbr.f
5799  int UNUSED written = 0;
5800  IADDR UNUSED pc = abuf->addr;
5801  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5802
5803{
5804  QI tmp_tmpopd;
5805  QI tmp_tmpops;
5806  BI tmp_carry;
5807  QI tmp_newval;
5808  tmp_tmpops = FLD (f_indir_pc__byte);
5809  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5810  tmp_carry = CPU (h_cbit);
5811  tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5812{
5813  SI tmp_oldregval;
5814  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5815  {
5816    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5817    SET_H_GR (FLD (f_operand2), opval);
5818    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5819  }
5820}
5821{
5822  {
5823    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))));
5824    CPU (h_cbit) = opval;
5825    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5826  }
5827  {
5828    BI opval = LTQI (tmp_newval, 0);
5829    CPU (h_nbit) = opval;
5830    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5831  }
5832  {
5833    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5834    CPU (h_zbit) = opval;
5835    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5836  }
5837  {
5838    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)));
5839    CPU (h_vbit) = opval;
5840    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5841  }
5842{
5843  {
5844    BI opval = 0;
5845    CPU (h_xbit) = opval;
5846    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5847  }
5848  {
5849    BI opval = 0;
5850    SET_H_INSN_PREFIXED_P (opval);
5851    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5852  }
5853}
5854}
5855}
5856
5857#undef FLD
5858}
5859  NEXT (vpc);
5860
5861  CASE (sem, INSN_ADDCWR) : /* add.w ${sconst16}],${Rd} */
5862{
5863  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5864  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5865#define FLD(f) abuf->fields.sfmt_addcwr.f
5866  int UNUSED written = 0;
5867  IADDR UNUSED pc = abuf->addr;
5868  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5869
5870{
5871  HI tmp_tmpopd;
5872  HI tmp_tmpops;
5873  BI tmp_carry;
5874  HI tmp_newval;
5875  tmp_tmpops = FLD (f_indir_pc__word);
5876  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5877  tmp_carry = CPU (h_cbit);
5878  tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5879{
5880  SI tmp_oldregval;
5881  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
5882  {
5883    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5884    SET_H_GR (FLD (f_operand2), opval);
5885    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5886  }
5887}
5888{
5889  {
5890    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))));
5891    CPU (h_cbit) = opval;
5892    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5893  }
5894  {
5895    BI opval = LTHI (tmp_newval, 0);
5896    CPU (h_nbit) = opval;
5897    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5898  }
5899  {
5900    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5901    CPU (h_zbit) = opval;
5902    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5903  }
5904  {
5905    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)));
5906    CPU (h_vbit) = opval;
5907    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5908  }
5909{
5910  {
5911    BI opval = 0;
5912    CPU (h_xbit) = opval;
5913    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5914  }
5915  {
5916    BI opval = 0;
5917    SET_H_INSN_PREFIXED_P (opval);
5918    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5919  }
5920}
5921}
5922}
5923
5924#undef FLD
5925}
5926  NEXT (vpc);
5927
5928  CASE (sem, INSN_ADDCDR) : /* add.d ${const32}],${Rd} */
5929{
5930  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5931  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5932#define FLD(f) abuf->fields.sfmt_addcdr.f
5933  int UNUSED written = 0;
5934  IADDR UNUSED pc = abuf->addr;
5935  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
5936
5937{
5938  SI tmp_tmpopd;
5939  SI tmp_tmpops;
5940  BI tmp_carry;
5941  SI tmp_newval;
5942  tmp_tmpops = FLD (f_indir_pc__dword);
5943  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5944  tmp_carry = CPU (h_cbit);
5945  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5946  {
5947    SI opval = tmp_newval;
5948    SET_H_GR (FLD (f_operand2), opval);
5949    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5950  }
5951{
5952  {
5953    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))));
5954    CPU (h_cbit) = opval;
5955    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5956  }
5957  {
5958    BI opval = LTSI (tmp_newval, 0);
5959    CPU (h_nbit) = opval;
5960    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5961  }
5962  {
5963    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5964    CPU (h_zbit) = opval;
5965    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5966  }
5967  {
5968    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)));
5969    CPU (h_vbit) = opval;
5970    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5971  }
5972{
5973  {
5974    BI opval = 0;
5975    CPU (h_xbit) = opval;
5976    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5977  }
5978  {
5979    BI opval = 0;
5980    SET_H_INSN_PREFIXED_P (opval);
5981    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5982  }
5983}
5984}
5985}
5986
5987#undef FLD
5988}
5989  NEXT (vpc);
5990
5991  CASE (sem, INSN_ADDCPC) : /* add.d ${sconst32},PC */
5992{
5993  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5994  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5995#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5996  int UNUSED written = 0;
5997  IADDR UNUSED pc = abuf->addr;
5998  SEM_BRANCH_INIT
5999  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
6000
6001{
6002  SI tmp_newpc;
6003  SI tmp_oldpc;
6004  SI tmp_offs;
6005  tmp_offs = FLD (f_indir_pc__dword);
6006  tmp_oldpc = ADDSI (pc, 6);
6007  tmp_newpc = ADDSI (tmp_oldpc, tmp_offs);
6008  {
6009    USI opval = tmp_newpc;
6010    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
6011    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
6012  }
6013{
6014  {
6015    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))));
6016    CPU (h_cbit) = opval;
6017    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6018  }
6019  {
6020    BI opval = LTSI (tmp_newpc, 0);
6021    CPU (h_nbit) = opval;
6022    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6023  }
6024  {
6025    BI opval = ANDIF (EQSI (tmp_newpc, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6026    CPU (h_zbit) = opval;
6027    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6028  }
6029  {
6030    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)));
6031    CPU (h_vbit) = opval;
6032    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6033  }
6034{
6035  {
6036    BI opval = 0;
6037    CPU (h_xbit) = opval;
6038    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6039  }
6040  {
6041    BI opval = 0;
6042    SET_H_INSN_PREFIXED_P (opval);
6043    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6044  }
6045}
6046}
6047}
6048
6049  SEM_BRANCH_FINI (vpc);
6050#undef FLD
6051}
6052  NEXT (vpc);
6053
6054  CASE (sem, INSN_ADDS_B_R) : /* adds.b $Rs,$Rd */
6055{
6056  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6057  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6058#define FLD(f) abuf->fields.sfmt_add_b_r.f
6059  int UNUSED written = 0;
6060  IADDR UNUSED pc = abuf->addr;
6061  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6062
6063{
6064  SI tmp_tmpopd;
6065  SI tmp_tmpops;
6066  BI tmp_carry;
6067  SI tmp_newval;
6068  tmp_tmpops = EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
6069  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6070  tmp_carry = CPU (h_cbit);
6071  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6072  {
6073    SI opval = tmp_newval;
6074    SET_H_GR (FLD (f_operand2), opval);
6075    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6076  }
6077{
6078  {
6079    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))));
6080    CPU (h_cbit) = opval;
6081    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6082  }
6083  {
6084    BI opval = LTSI (tmp_newval, 0);
6085    CPU (h_nbit) = opval;
6086    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6087  }
6088  {
6089    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6090    CPU (h_zbit) = opval;
6091    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6092  }
6093  {
6094    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)));
6095    CPU (h_vbit) = opval;
6096    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6097  }
6098{
6099  {
6100    BI opval = 0;
6101    CPU (h_xbit) = opval;
6102    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6103  }
6104  {
6105    BI opval = 0;
6106    SET_H_INSN_PREFIXED_P (opval);
6107    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6108  }
6109}
6110}
6111}
6112
6113#undef FLD
6114}
6115  NEXT (vpc);
6116
6117  CASE (sem, INSN_ADDS_W_R) : /* adds.w $Rs,$Rd */
6118{
6119  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6120  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6121#define FLD(f) abuf->fields.sfmt_add_b_r.f
6122  int UNUSED written = 0;
6123  IADDR UNUSED pc = abuf->addr;
6124  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6125
6126{
6127  SI tmp_tmpopd;
6128  SI tmp_tmpops;
6129  BI tmp_carry;
6130  SI tmp_newval;
6131  tmp_tmpops = EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
6132  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6133  tmp_carry = CPU (h_cbit);
6134  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6135  {
6136    SI opval = tmp_newval;
6137    SET_H_GR (FLD (f_operand2), opval);
6138    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6139  }
6140{
6141  {
6142    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))));
6143    CPU (h_cbit) = opval;
6144    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6145  }
6146  {
6147    BI opval = LTSI (tmp_newval, 0);
6148    CPU (h_nbit) = opval;
6149    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6150  }
6151  {
6152    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6153    CPU (h_zbit) = opval;
6154    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6155  }
6156  {
6157    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)));
6158    CPU (h_vbit) = opval;
6159    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6160  }
6161{
6162  {
6163    BI opval = 0;
6164    CPU (h_xbit) = opval;
6165    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6166  }
6167  {
6168    BI opval = 0;
6169    SET_H_INSN_PREFIXED_P (opval);
6170    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6171  }
6172}
6173}
6174}
6175
6176#undef FLD
6177}
6178  NEXT (vpc);
6179
6180  CASE (sem, INSN_ADDS_M_B_M) : /* adds-m.b [${Rs}${inc}],$Rd */
6181{
6182  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6183  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6184#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6185  int UNUSED written = 0;
6186  IADDR UNUSED pc = abuf->addr;
6187  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6188
6189{
6190  SI tmp_tmpopd;
6191  SI tmp_tmpops;
6192  BI tmp_carry;
6193  SI tmp_newval;
6194  tmp_tmpops = EXTQISI (({   SI tmp_addr;
6195  QI tmp_tmp_mem;
6196  BI tmp_postinc;
6197  tmp_postinc = FLD (f_memmode);
6198;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6199;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
6200; if (NEBI (tmp_postinc, 0)) {
6201{
6202if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6203  tmp_addr = ADDSI (tmp_addr, 1);
6204}
6205  {
6206    SI opval = tmp_addr;
6207    SET_H_GR (FLD (f_operand1), opval);
6208    written |= (1 << 11);
6209    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6210  }
6211}
6212}
6213; tmp_tmp_mem; }));
6214  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6215  tmp_carry = CPU (h_cbit);
6216  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6217  {
6218    SI opval = tmp_newval;
6219    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6220    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6221  }
6222{
6223  {
6224    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))));
6225    CPU (h_cbit) = opval;
6226    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6227  }
6228  {
6229    BI opval = LTSI (tmp_newval, 0);
6230    CPU (h_nbit) = opval;
6231    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6232  }
6233  {
6234    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6235    CPU (h_zbit) = opval;
6236    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6237  }
6238  {
6239    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)));
6240    CPU (h_vbit) = opval;
6241    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6242  }
6243{
6244  {
6245    BI opval = 0;
6246    CPU (h_xbit) = opval;
6247    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6248  }
6249  {
6250    BI opval = 0;
6251    SET_H_INSN_PREFIXED_P (opval);
6252    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6253  }
6254}
6255}
6256}
6257
6258  abuf->written = written;
6259#undef FLD
6260}
6261  NEXT (vpc);
6262
6263  CASE (sem, INSN_ADDS_M_W_M) : /* adds-m.w [${Rs}${inc}],$Rd */
6264{
6265  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6266  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6267#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6268  int UNUSED written = 0;
6269  IADDR UNUSED pc = abuf->addr;
6270  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6271
6272{
6273  SI tmp_tmpopd;
6274  SI tmp_tmpops;
6275  BI tmp_carry;
6276  SI tmp_newval;
6277  tmp_tmpops = EXTHISI (({   SI tmp_addr;
6278  HI tmp_tmp_mem;
6279  BI tmp_postinc;
6280  tmp_postinc = FLD (f_memmode);
6281;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6282;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
6283; if (NEBI (tmp_postinc, 0)) {
6284{
6285if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6286  tmp_addr = ADDSI (tmp_addr, 2);
6287}
6288  {
6289    SI opval = tmp_addr;
6290    SET_H_GR (FLD (f_operand1), opval);
6291    written |= (1 << 11);
6292    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6293  }
6294}
6295}
6296; tmp_tmp_mem; }));
6297  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6298  tmp_carry = CPU (h_cbit);
6299  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6300  {
6301    SI opval = tmp_newval;
6302    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6303    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6304  }
6305{
6306  {
6307    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))));
6308    CPU (h_cbit) = opval;
6309    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6310  }
6311  {
6312    BI opval = LTSI (tmp_newval, 0);
6313    CPU (h_nbit) = opval;
6314    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6315  }
6316  {
6317    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6318    CPU (h_zbit) = opval;
6319    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6320  }
6321  {
6322    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)));
6323    CPU (h_vbit) = opval;
6324    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6325  }
6326{
6327  {
6328    BI opval = 0;
6329    CPU (h_xbit) = opval;
6330    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6331  }
6332  {
6333    BI opval = 0;
6334    SET_H_INSN_PREFIXED_P (opval);
6335    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6336  }
6337}
6338}
6339}
6340
6341  abuf->written = written;
6342#undef FLD
6343}
6344  NEXT (vpc);
6345
6346  CASE (sem, INSN_ADDSCBR) : /* [${Rs}${inc}],$Rd */
6347{
6348  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6349  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6350#define FLD(f) abuf->fields.sfmt_addcbr.f
6351  int UNUSED written = 0;
6352  IADDR UNUSED pc = abuf->addr;
6353  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6354
6355{
6356  SI tmp_tmpopd;
6357  SI tmp_tmpops;
6358  BI tmp_carry;
6359  SI tmp_newval;
6360  tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
6361  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6362  tmp_carry = CPU (h_cbit);
6363  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6364  {
6365    SI opval = tmp_newval;
6366    SET_H_GR (FLD (f_operand2), opval);
6367    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6368  }
6369{
6370  {
6371    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))));
6372    CPU (h_cbit) = opval;
6373    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6374  }
6375  {
6376    BI opval = LTSI (tmp_newval, 0);
6377    CPU (h_nbit) = opval;
6378    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6379  }
6380  {
6381    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6382    CPU (h_zbit) = opval;
6383    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6384  }
6385  {
6386    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)));
6387    CPU (h_vbit) = opval;
6388    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6389  }
6390{
6391  {
6392    BI opval = 0;
6393    CPU (h_xbit) = opval;
6394    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6395  }
6396  {
6397    BI opval = 0;
6398    SET_H_INSN_PREFIXED_P (opval);
6399    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6400  }
6401}
6402}
6403}
6404
6405#undef FLD
6406}
6407  NEXT (vpc);
6408
6409  CASE (sem, INSN_ADDSCWR) : /* [${Rs}${inc}],$Rd */
6410{
6411  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6412  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6413#define FLD(f) abuf->fields.sfmt_addcwr.f
6414  int UNUSED written = 0;
6415  IADDR UNUSED pc = abuf->addr;
6416  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6417
6418{
6419  SI tmp_tmpopd;
6420  SI tmp_tmpops;
6421  BI tmp_carry;
6422  SI tmp_newval;
6423  tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
6424  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6425  tmp_carry = CPU (h_cbit);
6426  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6427  {
6428    SI opval = tmp_newval;
6429    SET_H_GR (FLD (f_operand2), opval);
6430    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6431  }
6432{
6433  {
6434    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))));
6435    CPU (h_cbit) = opval;
6436    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6437  }
6438  {
6439    BI opval = LTSI (tmp_newval, 0);
6440    CPU (h_nbit) = opval;
6441    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6442  }
6443  {
6444    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6445    CPU (h_zbit) = opval;
6446    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6447  }
6448  {
6449    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)));
6450    CPU (h_vbit) = opval;
6451    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6452  }
6453{
6454  {
6455    BI opval = 0;
6456    CPU (h_xbit) = opval;
6457    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6458  }
6459  {
6460    BI opval = 0;
6461    SET_H_INSN_PREFIXED_P (opval);
6462    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6463  }
6464}
6465}
6466}
6467
6468#undef FLD
6469}
6470  NEXT (vpc);
6471
6472  CASE (sem, INSN_ADDSPCPC) : /* adds.w [PC],PC */
6473{
6474  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6475  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6476#define FLD(f) abuf->fields.sfmt_empty.f
6477  int UNUSED written = 0;
6478  IADDR UNUSED pc = abuf->addr;
6479  SEM_BRANCH_INIT
6480  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6481
6482{
6483  SI tmp_newpc;
6484  SI tmp_oldpc;
6485  HI tmp_offs;
6486if (NOTBI (GET_H_INSN_PREFIXED_P ())) {
6487cgen_rtx_error (current_cpu, "Unexpected adds.w [PC],PC without prefix");
6488}
6489  tmp_offs = GETMEMHI (current_cpu, pc, CPU (h_prefixreg_pre_v32));
6490  tmp_oldpc = ADDSI (pc, 2);
6491  tmp_newpc = ADDSI (tmp_oldpc, tmp_offs);
6492  {
6493    USI opval = tmp_newpc;
6494    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
6495    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
6496  }
6497{
6498  {
6499    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))));
6500    CPU (h_cbit) = opval;
6501    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6502  }
6503  {
6504    BI opval = LTSI (tmp_newpc, 0);
6505    CPU (h_nbit) = opval;
6506    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6507  }
6508  {
6509    BI opval = ANDIF (EQSI (tmp_newpc, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6510    CPU (h_zbit) = opval;
6511    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6512  }
6513  {
6514    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)));
6515    CPU (h_vbit) = opval;
6516    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6517  }
6518{
6519  {
6520    BI opval = 0;
6521    CPU (h_xbit) = opval;
6522    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6523  }
6524  {
6525    BI opval = 0;
6526    SET_H_INSN_PREFIXED_P (opval);
6527    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6528  }
6529}
6530}
6531}
6532
6533  SEM_BRANCH_FINI (vpc);
6534#undef FLD
6535}
6536  NEXT (vpc);
6537
6538  CASE (sem, INSN_ADDU_B_R) : /* addu.b $Rs,$Rd */
6539{
6540  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6541  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6542#define FLD(f) abuf->fields.sfmt_add_b_r.f
6543  int UNUSED written = 0;
6544  IADDR UNUSED pc = abuf->addr;
6545  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6546
6547{
6548  SI tmp_tmpopd;
6549  SI tmp_tmpops;
6550  BI tmp_carry;
6551  SI tmp_newval;
6552  tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
6553  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6554  tmp_carry = CPU (h_cbit);
6555  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6556  {
6557    SI opval = tmp_newval;
6558    SET_H_GR (FLD (f_operand2), opval);
6559    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6560  }
6561{
6562  {
6563    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))));
6564    CPU (h_cbit) = opval;
6565    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6566  }
6567  {
6568    BI opval = LTSI (tmp_newval, 0);
6569    CPU (h_nbit) = opval;
6570    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6571  }
6572  {
6573    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6574    CPU (h_zbit) = opval;
6575    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6576  }
6577  {
6578    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)));
6579    CPU (h_vbit) = opval;
6580    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6581  }
6582{
6583  {
6584    BI opval = 0;
6585    CPU (h_xbit) = opval;
6586    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6587  }
6588  {
6589    BI opval = 0;
6590    SET_H_INSN_PREFIXED_P (opval);
6591    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6592  }
6593}
6594}
6595}
6596
6597#undef FLD
6598}
6599  NEXT (vpc);
6600
6601  CASE (sem, INSN_ADDU_W_R) : /* addu.w $Rs,$Rd */
6602{
6603  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6604  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6605#define FLD(f) abuf->fields.sfmt_add_b_r.f
6606  int UNUSED written = 0;
6607  IADDR UNUSED pc = abuf->addr;
6608  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6609
6610{
6611  SI tmp_tmpopd;
6612  SI tmp_tmpops;
6613  BI tmp_carry;
6614  SI tmp_newval;
6615  tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
6616  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6617  tmp_carry = CPU (h_cbit);
6618  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6619  {
6620    SI opval = tmp_newval;
6621    SET_H_GR (FLD (f_operand2), opval);
6622    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6623  }
6624{
6625  {
6626    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))));
6627    CPU (h_cbit) = opval;
6628    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6629  }
6630  {
6631    BI opval = LTSI (tmp_newval, 0);
6632    CPU (h_nbit) = opval;
6633    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6634  }
6635  {
6636    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6637    CPU (h_zbit) = opval;
6638    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6639  }
6640  {
6641    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)));
6642    CPU (h_vbit) = opval;
6643    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6644  }
6645{
6646  {
6647    BI opval = 0;
6648    CPU (h_xbit) = opval;
6649    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6650  }
6651  {
6652    BI opval = 0;
6653    SET_H_INSN_PREFIXED_P (opval);
6654    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6655  }
6656}
6657}
6658}
6659
6660#undef FLD
6661}
6662  NEXT (vpc);
6663
6664  CASE (sem, INSN_ADDU_M_B_M) : /* addu-m.b [${Rs}${inc}],$Rd */
6665{
6666  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6667  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6668#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6669  int UNUSED written = 0;
6670  IADDR UNUSED pc = abuf->addr;
6671  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6672
6673{
6674  SI tmp_tmpopd;
6675  SI tmp_tmpops;
6676  BI tmp_carry;
6677  SI tmp_newval;
6678  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
6679  QI tmp_tmp_mem;
6680  BI tmp_postinc;
6681  tmp_postinc = FLD (f_memmode);
6682;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6683;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
6684; if (NEBI (tmp_postinc, 0)) {
6685{
6686if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6687  tmp_addr = ADDSI (tmp_addr, 1);
6688}
6689  {
6690    SI opval = tmp_addr;
6691    SET_H_GR (FLD (f_operand1), opval);
6692    written |= (1 << 11);
6693    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6694  }
6695}
6696}
6697; tmp_tmp_mem; }));
6698  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6699  tmp_carry = CPU (h_cbit);
6700  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6701  {
6702    SI opval = tmp_newval;
6703    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6704    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6705  }
6706{
6707  {
6708    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))));
6709    CPU (h_cbit) = opval;
6710    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6711  }
6712  {
6713    BI opval = LTSI (tmp_newval, 0);
6714    CPU (h_nbit) = opval;
6715    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6716  }
6717  {
6718    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6719    CPU (h_zbit) = opval;
6720    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6721  }
6722  {
6723    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)));
6724    CPU (h_vbit) = opval;
6725    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6726  }
6727{
6728  {
6729    BI opval = 0;
6730    CPU (h_xbit) = opval;
6731    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6732  }
6733  {
6734    BI opval = 0;
6735    SET_H_INSN_PREFIXED_P (opval);
6736    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6737  }
6738}
6739}
6740}
6741
6742  abuf->written = written;
6743#undef FLD
6744}
6745  NEXT (vpc);
6746
6747  CASE (sem, INSN_ADDU_M_W_M) : /* addu-m.w [${Rs}${inc}],$Rd */
6748{
6749  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6750  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6751#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6752  int UNUSED written = 0;
6753  IADDR UNUSED pc = abuf->addr;
6754  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6755
6756{
6757  SI tmp_tmpopd;
6758  SI tmp_tmpops;
6759  BI tmp_carry;
6760  SI tmp_newval;
6761  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
6762  HI tmp_tmp_mem;
6763  BI tmp_postinc;
6764  tmp_postinc = FLD (f_memmode);
6765;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
6766;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
6767; if (NEBI (tmp_postinc, 0)) {
6768{
6769if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6770  tmp_addr = ADDSI (tmp_addr, 2);
6771}
6772  {
6773    SI opval = tmp_addr;
6774    SET_H_GR (FLD (f_operand1), opval);
6775    written |= (1 << 11);
6776    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6777  }
6778}
6779}
6780; tmp_tmp_mem; }));
6781  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6782  tmp_carry = CPU (h_cbit);
6783  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6784  {
6785    SI opval = tmp_newval;
6786    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6787    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6788  }
6789{
6790  {
6791    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))));
6792    CPU (h_cbit) = opval;
6793    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6794  }
6795  {
6796    BI opval = LTSI (tmp_newval, 0);
6797    CPU (h_nbit) = opval;
6798    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6799  }
6800  {
6801    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6802    CPU (h_zbit) = opval;
6803    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6804  }
6805  {
6806    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)));
6807    CPU (h_vbit) = opval;
6808    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6809  }
6810{
6811  {
6812    BI opval = 0;
6813    CPU (h_xbit) = opval;
6814    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6815  }
6816  {
6817    BI opval = 0;
6818    SET_H_INSN_PREFIXED_P (opval);
6819    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6820  }
6821}
6822}
6823}
6824
6825  abuf->written = written;
6826#undef FLD
6827}
6828  NEXT (vpc);
6829
6830  CASE (sem, INSN_ADDUCBR) : /* [${Rs}${inc}],$Rd */
6831{
6832  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6833  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6834#define FLD(f) abuf->fields.sfmt_addcbr.f
6835  int UNUSED written = 0;
6836  IADDR UNUSED pc = abuf->addr;
6837  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6838
6839{
6840  SI tmp_tmpopd;
6841  SI tmp_tmpops;
6842  BI tmp_carry;
6843  SI tmp_newval;
6844  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
6845  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6846  tmp_carry = CPU (h_cbit);
6847  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6848  {
6849    SI opval = tmp_newval;
6850    SET_H_GR (FLD (f_operand2), opval);
6851    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6852  }
6853{
6854  {
6855    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))));
6856    CPU (h_cbit) = opval;
6857    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6858  }
6859  {
6860    BI opval = LTSI (tmp_newval, 0);
6861    CPU (h_nbit) = opval;
6862    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6863  }
6864  {
6865    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6866    CPU (h_zbit) = opval;
6867    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6868  }
6869  {
6870    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)));
6871    CPU (h_vbit) = opval;
6872    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6873  }
6874{
6875  {
6876    BI opval = 0;
6877    CPU (h_xbit) = opval;
6878    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6879  }
6880  {
6881    BI opval = 0;
6882    SET_H_INSN_PREFIXED_P (opval);
6883    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6884  }
6885}
6886}
6887}
6888
6889#undef FLD
6890}
6891  NEXT (vpc);
6892
6893  CASE (sem, INSN_ADDUCWR) : /* [${Rs}${inc}],$Rd */
6894{
6895  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6896  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6897#define FLD(f) abuf->fields.sfmt_addcwr.f
6898  int UNUSED written = 0;
6899  IADDR UNUSED pc = abuf->addr;
6900  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6901
6902{
6903  SI tmp_tmpopd;
6904  SI tmp_tmpops;
6905  BI tmp_carry;
6906  SI tmp_newval;
6907  tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
6908  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6909  tmp_carry = CPU (h_cbit);
6910  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6911  {
6912    SI opval = tmp_newval;
6913    SET_H_GR (FLD (f_operand2), opval);
6914    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6915  }
6916{
6917  {
6918    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))));
6919    CPU (h_cbit) = opval;
6920    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6921  }
6922  {
6923    BI opval = LTSI (tmp_newval, 0);
6924    CPU (h_nbit) = opval;
6925    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6926  }
6927  {
6928    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6929    CPU (h_zbit) = opval;
6930    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6931  }
6932  {
6933    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)));
6934    CPU (h_vbit) = opval;
6935    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6936  }
6937{
6938  {
6939    BI opval = 0;
6940    CPU (h_xbit) = opval;
6941    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6942  }
6943  {
6944    BI opval = 0;
6945    SET_H_INSN_PREFIXED_P (opval);
6946    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6947  }
6948}
6949}
6950}
6951
6952#undef FLD
6953}
6954  NEXT (vpc);
6955
6956  CASE (sem, INSN_SUB_B_R) : /* sub.b $Rs,$Rd */
6957{
6958  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6959  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6960#define FLD(f) abuf->fields.sfmt_add_b_r.f
6961  int UNUSED written = 0;
6962  IADDR UNUSED pc = abuf->addr;
6963  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6964
6965{
6966  QI tmp_tmpopd;
6967  QI tmp_tmpops;
6968  BI tmp_carry;
6969  QI tmp_newval;
6970  tmp_tmpops = GET_H_GR (FLD (f_operand1));
6971  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6972  tmp_carry = CPU (h_cbit);
6973  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6974{
6975  SI tmp_oldregval;
6976  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
6977  {
6978    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
6979    SET_H_GR (FLD (f_operand2), opval);
6980    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6981  }
6982}
6983{
6984  {
6985    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))));
6986    CPU (h_cbit) = opval;
6987    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6988  }
6989  {
6990    BI opval = LTQI (tmp_newval, 0);
6991    CPU (h_nbit) = opval;
6992    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6993  }
6994  {
6995    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6996    CPU (h_zbit) = opval;
6997    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6998  }
6999  {
7000    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)));
7001    CPU (h_vbit) = opval;
7002    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7003  }
7004{
7005  {
7006    BI opval = 0;
7007    CPU (h_xbit) = opval;
7008    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7009  }
7010  {
7011    BI opval = 0;
7012    SET_H_INSN_PREFIXED_P (opval);
7013    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7014  }
7015}
7016}
7017}
7018
7019#undef FLD
7020}
7021  NEXT (vpc);
7022
7023  CASE (sem, INSN_SUB_W_R) : /* sub.w $Rs,$Rd */
7024{
7025  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7026  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7027#define FLD(f) abuf->fields.sfmt_add_b_r.f
7028  int UNUSED written = 0;
7029  IADDR UNUSED pc = abuf->addr;
7030  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7031
7032{
7033  HI tmp_tmpopd;
7034  HI tmp_tmpops;
7035  BI tmp_carry;
7036  HI tmp_newval;
7037  tmp_tmpops = GET_H_GR (FLD (f_operand1));
7038  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7039  tmp_carry = CPU (h_cbit);
7040  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7041{
7042  SI tmp_oldregval;
7043  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
7044  {
7045    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7046    SET_H_GR (FLD (f_operand2), opval);
7047    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7048  }
7049}
7050{
7051  {
7052    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))));
7053    CPU (h_cbit) = opval;
7054    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7055  }
7056  {
7057    BI opval = LTHI (tmp_newval, 0);
7058    CPU (h_nbit) = opval;
7059    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7060  }
7061  {
7062    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7063    CPU (h_zbit) = opval;
7064    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7065  }
7066  {
7067    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)));
7068    CPU (h_vbit) = opval;
7069    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7070  }
7071{
7072  {
7073    BI opval = 0;
7074    CPU (h_xbit) = opval;
7075    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7076  }
7077  {
7078    BI opval = 0;
7079    SET_H_INSN_PREFIXED_P (opval);
7080    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7081  }
7082}
7083}
7084}
7085
7086#undef FLD
7087}
7088  NEXT (vpc);
7089
7090  CASE (sem, INSN_SUB_D_R) : /* sub.d $Rs,$Rd */
7091{
7092  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7093  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7094#define FLD(f) abuf->fields.sfmt_add_b_r.f
7095  int UNUSED written = 0;
7096  IADDR UNUSED pc = abuf->addr;
7097  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7098
7099{
7100  SI tmp_tmpopd;
7101  SI tmp_tmpops;
7102  BI tmp_carry;
7103  SI tmp_newval;
7104  tmp_tmpops = GET_H_GR (FLD (f_operand1));
7105  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7106  tmp_carry = CPU (h_cbit);
7107  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7108  {
7109    SI opval = tmp_newval;
7110    SET_H_GR (FLD (f_operand2), opval);
7111    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7112  }
7113{
7114  {
7115    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))));
7116    CPU (h_cbit) = opval;
7117    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7118  }
7119  {
7120    BI opval = LTSI (tmp_newval, 0);
7121    CPU (h_nbit) = opval;
7122    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7123  }
7124  {
7125    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7126    CPU (h_zbit) = opval;
7127    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7128  }
7129  {
7130    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)));
7131    CPU (h_vbit) = opval;
7132    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7133  }
7134{
7135  {
7136    BI opval = 0;
7137    CPU (h_xbit) = opval;
7138    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7139  }
7140  {
7141    BI opval = 0;
7142    SET_H_INSN_PREFIXED_P (opval);
7143    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7144  }
7145}
7146}
7147}
7148
7149#undef FLD
7150}
7151  NEXT (vpc);
7152
7153  CASE (sem, INSN_SUB_M_B_M) : /* sub-m.b [${Rs}${inc}],${Rd} */
7154{
7155  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7156  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7157#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7158  int UNUSED written = 0;
7159  IADDR UNUSED pc = abuf->addr;
7160  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7161
7162{
7163  QI tmp_tmpopd;
7164  QI tmp_tmpops;
7165  BI tmp_carry;
7166  QI tmp_newval;
7167  tmp_tmpops = ({   SI tmp_addr;
7168  QI tmp_tmp_mem;
7169  BI tmp_postinc;
7170  tmp_postinc = FLD (f_memmode);
7171;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7172;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
7173; if (NEBI (tmp_postinc, 0)) {
7174{
7175if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7176  tmp_addr = ADDSI (tmp_addr, 1);
7177}
7178  {
7179    SI opval = tmp_addr;
7180    SET_H_GR (FLD (f_operand1), opval);
7181    written |= (1 << 12);
7182    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7183  }
7184}
7185}
7186; tmp_tmp_mem; });
7187  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7188  tmp_carry = CPU (h_cbit);
7189  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7190{
7191  SI tmp_oldregval;
7192  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
7193  {
7194    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
7195    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7196    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7197  }
7198}
7199{
7200  {
7201    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))));
7202    CPU (h_cbit) = opval;
7203    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7204  }
7205  {
7206    BI opval = LTQI (tmp_newval, 0);
7207    CPU (h_nbit) = opval;
7208    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7209  }
7210  {
7211    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7212    CPU (h_zbit) = opval;
7213    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7214  }
7215  {
7216    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)));
7217    CPU (h_vbit) = opval;
7218    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7219  }
7220{
7221  {
7222    BI opval = 0;
7223    CPU (h_xbit) = opval;
7224    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7225  }
7226  {
7227    BI opval = 0;
7228    SET_H_INSN_PREFIXED_P (opval);
7229    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7230  }
7231}
7232}
7233}
7234
7235  abuf->written = written;
7236#undef FLD
7237}
7238  NEXT (vpc);
7239
7240  CASE (sem, INSN_SUB_M_W_M) : /* sub-m.w [${Rs}${inc}],${Rd} */
7241{
7242  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7243  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7244#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7245  int UNUSED written = 0;
7246  IADDR UNUSED pc = abuf->addr;
7247  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7248
7249{
7250  HI tmp_tmpopd;
7251  HI tmp_tmpops;
7252  BI tmp_carry;
7253  HI tmp_newval;
7254  tmp_tmpops = ({   SI tmp_addr;
7255  HI tmp_tmp_mem;
7256  BI tmp_postinc;
7257  tmp_postinc = FLD (f_memmode);
7258;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7259;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
7260; if (NEBI (tmp_postinc, 0)) {
7261{
7262if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7263  tmp_addr = ADDSI (tmp_addr, 2);
7264}
7265  {
7266    SI opval = tmp_addr;
7267    SET_H_GR (FLD (f_operand1), opval);
7268    written |= (1 << 12);
7269    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7270  }
7271}
7272}
7273; tmp_tmp_mem; });
7274  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7275  tmp_carry = CPU (h_cbit);
7276  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7277{
7278  SI tmp_oldregval;
7279  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
7280  {
7281    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7282    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7283    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7284  }
7285}
7286{
7287  {
7288    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))));
7289    CPU (h_cbit) = opval;
7290    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7291  }
7292  {
7293    BI opval = LTHI (tmp_newval, 0);
7294    CPU (h_nbit) = opval;
7295    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7296  }
7297  {
7298    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7299    CPU (h_zbit) = opval;
7300    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7301  }
7302  {
7303    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)));
7304    CPU (h_vbit) = opval;
7305    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7306  }
7307{
7308  {
7309    BI opval = 0;
7310    CPU (h_xbit) = opval;
7311    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7312  }
7313  {
7314    BI opval = 0;
7315    SET_H_INSN_PREFIXED_P (opval);
7316    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7317  }
7318}
7319}
7320}
7321
7322  abuf->written = written;
7323#undef FLD
7324}
7325  NEXT (vpc);
7326
7327  CASE (sem, INSN_SUB_M_D_M) : /* sub-m.d [${Rs}${inc}],${Rd} */
7328{
7329  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7330  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7331#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7332  int UNUSED written = 0;
7333  IADDR UNUSED pc = abuf->addr;
7334  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7335
7336{
7337  SI tmp_tmpopd;
7338  SI tmp_tmpops;
7339  BI tmp_carry;
7340  SI tmp_newval;
7341  tmp_tmpops = ({   SI tmp_addr;
7342  SI tmp_tmp_mem;
7343  BI tmp_postinc;
7344  tmp_postinc = FLD (f_memmode);
7345;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7346;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
7347; if (NEBI (tmp_postinc, 0)) {
7348{
7349if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7350  tmp_addr = ADDSI (tmp_addr, 4);
7351}
7352  {
7353    SI opval = tmp_addr;
7354    SET_H_GR (FLD (f_operand1), opval);
7355    written |= (1 << 11);
7356    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7357  }
7358}
7359}
7360; tmp_tmp_mem; });
7361  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7362  tmp_carry = CPU (h_cbit);
7363  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7364  {
7365    SI opval = tmp_newval;
7366    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7367    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7368  }
7369{
7370  {
7371    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))));
7372    CPU (h_cbit) = opval;
7373    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7374  }
7375  {
7376    BI opval = LTSI (tmp_newval, 0);
7377    CPU (h_nbit) = opval;
7378    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7379  }
7380  {
7381    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7382    CPU (h_zbit) = opval;
7383    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7384  }
7385  {
7386    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)));
7387    CPU (h_vbit) = opval;
7388    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7389  }
7390{
7391  {
7392    BI opval = 0;
7393    CPU (h_xbit) = opval;
7394    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7395  }
7396  {
7397    BI opval = 0;
7398    SET_H_INSN_PREFIXED_P (opval);
7399    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7400  }
7401}
7402}
7403}
7404
7405  abuf->written = written;
7406#undef FLD
7407}
7408  NEXT (vpc);
7409
7410  CASE (sem, INSN_SUBCBR) : /* sub.b ${sconst8}],${Rd} */
7411{
7412  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7413  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7414#define FLD(f) abuf->fields.sfmt_addcbr.f
7415  int UNUSED written = 0;
7416  IADDR UNUSED pc = abuf->addr;
7417  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7418
7419{
7420  QI tmp_tmpopd;
7421  QI tmp_tmpops;
7422  BI tmp_carry;
7423  QI tmp_newval;
7424  tmp_tmpops = FLD (f_indir_pc__byte);
7425  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7426  tmp_carry = CPU (h_cbit);
7427  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7428{
7429  SI tmp_oldregval;
7430  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
7431  {
7432    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
7433    SET_H_GR (FLD (f_operand2), opval);
7434    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7435  }
7436}
7437{
7438  {
7439    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))));
7440    CPU (h_cbit) = opval;
7441    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7442  }
7443  {
7444    BI opval = LTQI (tmp_newval, 0);
7445    CPU (h_nbit) = opval;
7446    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7447  }
7448  {
7449    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7450    CPU (h_zbit) = opval;
7451    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7452  }
7453  {
7454    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)));
7455    CPU (h_vbit) = opval;
7456    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7457  }
7458{
7459  {
7460    BI opval = 0;
7461    CPU (h_xbit) = opval;
7462    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7463  }
7464  {
7465    BI opval = 0;
7466    SET_H_INSN_PREFIXED_P (opval);
7467    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7468  }
7469}
7470}
7471}
7472
7473#undef FLD
7474}
7475  NEXT (vpc);
7476
7477  CASE (sem, INSN_SUBCWR) : /* sub.w ${sconst16}],${Rd} */
7478{
7479  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7480  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7481#define FLD(f) abuf->fields.sfmt_addcwr.f
7482  int UNUSED written = 0;
7483  IADDR UNUSED pc = abuf->addr;
7484  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7485
7486{
7487  HI tmp_tmpopd;
7488  HI tmp_tmpops;
7489  BI tmp_carry;
7490  HI tmp_newval;
7491  tmp_tmpops = FLD (f_indir_pc__word);
7492  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7493  tmp_carry = CPU (h_cbit);
7494  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7495{
7496  SI tmp_oldregval;
7497  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
7498  {
7499    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7500    SET_H_GR (FLD (f_operand2), opval);
7501    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7502  }
7503}
7504{
7505  {
7506    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))));
7507    CPU (h_cbit) = opval;
7508    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7509  }
7510  {
7511    BI opval = LTHI (tmp_newval, 0);
7512    CPU (h_nbit) = opval;
7513    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7514  }
7515  {
7516    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7517    CPU (h_zbit) = opval;
7518    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7519  }
7520  {
7521    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)));
7522    CPU (h_vbit) = opval;
7523    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7524  }
7525{
7526  {
7527    BI opval = 0;
7528    CPU (h_xbit) = opval;
7529    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7530  }
7531  {
7532    BI opval = 0;
7533    SET_H_INSN_PREFIXED_P (opval);
7534    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7535  }
7536}
7537}
7538}
7539
7540#undef FLD
7541}
7542  NEXT (vpc);
7543
7544  CASE (sem, INSN_SUBCDR) : /* sub.d ${const32}],${Rd} */
7545{
7546  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7547  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7548#define FLD(f) abuf->fields.sfmt_addcdr.f
7549  int UNUSED written = 0;
7550  IADDR UNUSED pc = abuf->addr;
7551  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
7552
7553{
7554  SI tmp_tmpopd;
7555  SI tmp_tmpops;
7556  BI tmp_carry;
7557  SI tmp_newval;
7558  tmp_tmpops = FLD (f_indir_pc__dword);
7559  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7560  tmp_carry = CPU (h_cbit);
7561  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7562  {
7563    SI opval = tmp_newval;
7564    SET_H_GR (FLD (f_operand2), opval);
7565    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7566  }
7567{
7568  {
7569    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))));
7570    CPU (h_cbit) = opval;
7571    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7572  }
7573  {
7574    BI opval = LTSI (tmp_newval, 0);
7575    CPU (h_nbit) = opval;
7576    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7577  }
7578  {
7579    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7580    CPU (h_zbit) = opval;
7581    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7582  }
7583  {
7584    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)));
7585    CPU (h_vbit) = opval;
7586    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7587  }
7588{
7589  {
7590    BI opval = 0;
7591    CPU (h_xbit) = opval;
7592    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7593  }
7594  {
7595    BI opval = 0;
7596    SET_H_INSN_PREFIXED_P (opval);
7597    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7598  }
7599}
7600}
7601}
7602
7603#undef FLD
7604}
7605  NEXT (vpc);
7606
7607  CASE (sem, INSN_SUBS_B_R) : /* subs.b $Rs,$Rd */
7608{
7609  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7610  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7611#define FLD(f) abuf->fields.sfmt_add_b_r.f
7612  int UNUSED written = 0;
7613  IADDR UNUSED pc = abuf->addr;
7614  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7615
7616{
7617  SI tmp_tmpopd;
7618  SI tmp_tmpops;
7619  BI tmp_carry;
7620  SI tmp_newval;
7621  tmp_tmpops = EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
7622  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7623  tmp_carry = CPU (h_cbit);
7624  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7625  {
7626    SI opval = tmp_newval;
7627    SET_H_GR (FLD (f_operand2), opval);
7628    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7629  }
7630{
7631  {
7632    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))));
7633    CPU (h_cbit) = opval;
7634    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7635  }
7636  {
7637    BI opval = LTSI (tmp_newval, 0);
7638    CPU (h_nbit) = opval;
7639    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7640  }
7641  {
7642    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7643    CPU (h_zbit) = opval;
7644    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7645  }
7646  {
7647    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)));
7648    CPU (h_vbit) = opval;
7649    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7650  }
7651{
7652  {
7653    BI opval = 0;
7654    CPU (h_xbit) = opval;
7655    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7656  }
7657  {
7658    BI opval = 0;
7659    SET_H_INSN_PREFIXED_P (opval);
7660    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7661  }
7662}
7663}
7664}
7665
7666#undef FLD
7667}
7668  NEXT (vpc);
7669
7670  CASE (sem, INSN_SUBS_W_R) : /* subs.w $Rs,$Rd */
7671{
7672  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7673  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7674#define FLD(f) abuf->fields.sfmt_add_b_r.f
7675  int UNUSED written = 0;
7676  IADDR UNUSED pc = abuf->addr;
7677  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7678
7679{
7680  SI tmp_tmpopd;
7681  SI tmp_tmpops;
7682  BI tmp_carry;
7683  SI tmp_newval;
7684  tmp_tmpops = EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
7685  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7686  tmp_carry = CPU (h_cbit);
7687  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7688  {
7689    SI opval = tmp_newval;
7690    SET_H_GR (FLD (f_operand2), opval);
7691    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7692  }
7693{
7694  {
7695    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))));
7696    CPU (h_cbit) = opval;
7697    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7698  }
7699  {
7700    BI opval = LTSI (tmp_newval, 0);
7701    CPU (h_nbit) = opval;
7702    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7703  }
7704  {
7705    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7706    CPU (h_zbit) = opval;
7707    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7708  }
7709  {
7710    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)));
7711    CPU (h_vbit) = opval;
7712    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7713  }
7714{
7715  {
7716    BI opval = 0;
7717    CPU (h_xbit) = opval;
7718    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7719  }
7720  {
7721    BI opval = 0;
7722    SET_H_INSN_PREFIXED_P (opval);
7723    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7724  }
7725}
7726}
7727}
7728
7729#undef FLD
7730}
7731  NEXT (vpc);
7732
7733  CASE (sem, INSN_SUBS_M_B_M) : /* subs-m.b [${Rs}${inc}],$Rd */
7734{
7735  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7736  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7737#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7738  int UNUSED written = 0;
7739  IADDR UNUSED pc = abuf->addr;
7740  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7741
7742{
7743  SI tmp_tmpopd;
7744  SI tmp_tmpops;
7745  BI tmp_carry;
7746  SI tmp_newval;
7747  tmp_tmpops = EXTQISI (({   SI tmp_addr;
7748  QI tmp_tmp_mem;
7749  BI tmp_postinc;
7750  tmp_postinc = FLD (f_memmode);
7751;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7752;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
7753; if (NEBI (tmp_postinc, 0)) {
7754{
7755if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7756  tmp_addr = ADDSI (tmp_addr, 1);
7757}
7758  {
7759    SI opval = tmp_addr;
7760    SET_H_GR (FLD (f_operand1), opval);
7761    written |= (1 << 11);
7762    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7763  }
7764}
7765}
7766; tmp_tmp_mem; }));
7767  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7768  tmp_carry = CPU (h_cbit);
7769  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7770  {
7771    SI opval = tmp_newval;
7772    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7773    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7774  }
7775{
7776  {
7777    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))));
7778    CPU (h_cbit) = opval;
7779    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7780  }
7781  {
7782    BI opval = LTSI (tmp_newval, 0);
7783    CPU (h_nbit) = opval;
7784    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7785  }
7786  {
7787    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7788    CPU (h_zbit) = opval;
7789    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7790  }
7791  {
7792    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)));
7793    CPU (h_vbit) = opval;
7794    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7795  }
7796{
7797  {
7798    BI opval = 0;
7799    CPU (h_xbit) = opval;
7800    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7801  }
7802  {
7803    BI opval = 0;
7804    SET_H_INSN_PREFIXED_P (opval);
7805    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7806  }
7807}
7808}
7809}
7810
7811  abuf->written = written;
7812#undef FLD
7813}
7814  NEXT (vpc);
7815
7816  CASE (sem, INSN_SUBS_M_W_M) : /* subs-m.w [${Rs}${inc}],$Rd */
7817{
7818  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7819  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7820#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7821  int UNUSED written = 0;
7822  IADDR UNUSED pc = abuf->addr;
7823  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7824
7825{
7826  SI tmp_tmpopd;
7827  SI tmp_tmpops;
7828  BI tmp_carry;
7829  SI tmp_newval;
7830  tmp_tmpops = EXTHISI (({   SI tmp_addr;
7831  HI tmp_tmp_mem;
7832  BI tmp_postinc;
7833  tmp_postinc = FLD (f_memmode);
7834;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
7835;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
7836; if (NEBI (tmp_postinc, 0)) {
7837{
7838if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7839  tmp_addr = ADDSI (tmp_addr, 2);
7840}
7841  {
7842    SI opval = tmp_addr;
7843    SET_H_GR (FLD (f_operand1), opval);
7844    written |= (1 << 11);
7845    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7846  }
7847}
7848}
7849; tmp_tmp_mem; }));
7850  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7851  tmp_carry = CPU (h_cbit);
7852  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7853  {
7854    SI opval = tmp_newval;
7855    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7856    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7857  }
7858{
7859  {
7860    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))));
7861    CPU (h_cbit) = opval;
7862    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7863  }
7864  {
7865    BI opval = LTSI (tmp_newval, 0);
7866    CPU (h_nbit) = opval;
7867    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7868  }
7869  {
7870    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7871    CPU (h_zbit) = opval;
7872    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7873  }
7874  {
7875    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)));
7876    CPU (h_vbit) = opval;
7877    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7878  }
7879{
7880  {
7881    BI opval = 0;
7882    CPU (h_xbit) = opval;
7883    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7884  }
7885  {
7886    BI opval = 0;
7887    SET_H_INSN_PREFIXED_P (opval);
7888    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7889  }
7890}
7891}
7892}
7893
7894  abuf->written = written;
7895#undef FLD
7896}
7897  NEXT (vpc);
7898
7899  CASE (sem, INSN_SUBSCBR) : /* [${Rs}${inc}],$Rd */
7900{
7901  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7902  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7903#define FLD(f) abuf->fields.sfmt_addcbr.f
7904  int UNUSED written = 0;
7905  IADDR UNUSED pc = abuf->addr;
7906  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7907
7908{
7909  SI tmp_tmpopd;
7910  SI tmp_tmpops;
7911  BI tmp_carry;
7912  SI tmp_newval;
7913  tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
7914  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7915  tmp_carry = CPU (h_cbit);
7916  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7917  {
7918    SI opval = tmp_newval;
7919    SET_H_GR (FLD (f_operand2), opval);
7920    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7921  }
7922{
7923  {
7924    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))));
7925    CPU (h_cbit) = opval;
7926    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7927  }
7928  {
7929    BI opval = LTSI (tmp_newval, 0);
7930    CPU (h_nbit) = opval;
7931    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7932  }
7933  {
7934    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7935    CPU (h_zbit) = opval;
7936    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7937  }
7938  {
7939    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)));
7940    CPU (h_vbit) = opval;
7941    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7942  }
7943{
7944  {
7945    BI opval = 0;
7946    CPU (h_xbit) = opval;
7947    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7948  }
7949  {
7950    BI opval = 0;
7951    SET_H_INSN_PREFIXED_P (opval);
7952    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7953  }
7954}
7955}
7956}
7957
7958#undef FLD
7959}
7960  NEXT (vpc);
7961
7962  CASE (sem, INSN_SUBSCWR) : /* [${Rs}${inc}],$Rd */
7963{
7964  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7965  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7966#define FLD(f) abuf->fields.sfmt_addcwr.f
7967  int UNUSED written = 0;
7968  IADDR UNUSED pc = abuf->addr;
7969  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7970
7971{
7972  SI tmp_tmpopd;
7973  SI tmp_tmpops;
7974  BI tmp_carry;
7975  SI tmp_newval;
7976  tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
7977  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7978  tmp_carry = CPU (h_cbit);
7979  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7980  {
7981    SI opval = tmp_newval;
7982    SET_H_GR (FLD (f_operand2), opval);
7983    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7984  }
7985{
7986  {
7987    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))));
7988    CPU (h_cbit) = opval;
7989    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7990  }
7991  {
7992    BI opval = LTSI (tmp_newval, 0);
7993    CPU (h_nbit) = opval;
7994    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7995  }
7996  {
7997    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7998    CPU (h_zbit) = opval;
7999    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8000  }
8001  {
8002    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)));
8003    CPU (h_vbit) = opval;
8004    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8005  }
8006{
8007  {
8008    BI opval = 0;
8009    CPU (h_xbit) = opval;
8010    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8011  }
8012  {
8013    BI opval = 0;
8014    SET_H_INSN_PREFIXED_P (opval);
8015    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8016  }
8017}
8018}
8019}
8020
8021#undef FLD
8022}
8023  NEXT (vpc);
8024
8025  CASE (sem, INSN_SUBU_B_R) : /* subu.b $Rs,$Rd */
8026{
8027  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8028  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8029#define FLD(f) abuf->fields.sfmt_add_b_r.f
8030  int UNUSED written = 0;
8031  IADDR UNUSED pc = abuf->addr;
8032  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8033
8034{
8035  SI tmp_tmpopd;
8036  SI tmp_tmpops;
8037  BI tmp_carry;
8038  SI tmp_newval;
8039  tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
8040  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8041  tmp_carry = CPU (h_cbit);
8042  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8043  {
8044    SI opval = tmp_newval;
8045    SET_H_GR (FLD (f_operand2), opval);
8046    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8047  }
8048{
8049  {
8050    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))));
8051    CPU (h_cbit) = opval;
8052    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8053  }
8054  {
8055    BI opval = LTSI (tmp_newval, 0);
8056    CPU (h_nbit) = opval;
8057    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8058  }
8059  {
8060    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8061    CPU (h_zbit) = opval;
8062    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8063  }
8064  {
8065    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)));
8066    CPU (h_vbit) = opval;
8067    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8068  }
8069{
8070  {
8071    BI opval = 0;
8072    CPU (h_xbit) = opval;
8073    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8074  }
8075  {
8076    BI opval = 0;
8077    SET_H_INSN_PREFIXED_P (opval);
8078    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8079  }
8080}
8081}
8082}
8083
8084#undef FLD
8085}
8086  NEXT (vpc);
8087
8088  CASE (sem, INSN_SUBU_W_R) : /* subu.w $Rs,$Rd */
8089{
8090  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8091  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8092#define FLD(f) abuf->fields.sfmt_add_b_r.f
8093  int UNUSED written = 0;
8094  IADDR UNUSED pc = abuf->addr;
8095  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8096
8097{
8098  SI tmp_tmpopd;
8099  SI tmp_tmpops;
8100  BI tmp_carry;
8101  SI tmp_newval;
8102  tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
8103  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8104  tmp_carry = CPU (h_cbit);
8105  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8106  {
8107    SI opval = tmp_newval;
8108    SET_H_GR (FLD (f_operand2), opval);
8109    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8110  }
8111{
8112  {
8113    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))));
8114    CPU (h_cbit) = opval;
8115    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8116  }
8117  {
8118    BI opval = LTSI (tmp_newval, 0);
8119    CPU (h_nbit) = opval;
8120    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8121  }
8122  {
8123    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8124    CPU (h_zbit) = opval;
8125    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8126  }
8127  {
8128    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)));
8129    CPU (h_vbit) = opval;
8130    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8131  }
8132{
8133  {
8134    BI opval = 0;
8135    CPU (h_xbit) = opval;
8136    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8137  }
8138  {
8139    BI opval = 0;
8140    SET_H_INSN_PREFIXED_P (opval);
8141    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8142  }
8143}
8144}
8145}
8146
8147#undef FLD
8148}
8149  NEXT (vpc);
8150
8151  CASE (sem, INSN_SUBU_M_B_M) : /* subu-m.b [${Rs}${inc}],$Rd */
8152{
8153  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8154  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8155#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
8156  int UNUSED written = 0;
8157  IADDR UNUSED pc = abuf->addr;
8158  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8159
8160{
8161  SI tmp_tmpopd;
8162  SI tmp_tmpops;
8163  BI tmp_carry;
8164  SI tmp_newval;
8165  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
8166  QI tmp_tmp_mem;
8167  BI tmp_postinc;
8168  tmp_postinc = FLD (f_memmode);
8169;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8170;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
8171; if (NEBI (tmp_postinc, 0)) {
8172{
8173if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8174  tmp_addr = ADDSI (tmp_addr, 1);
8175}
8176  {
8177    SI opval = tmp_addr;
8178    SET_H_GR (FLD (f_operand1), opval);
8179    written |= (1 << 11);
8180    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8181  }
8182}
8183}
8184; tmp_tmp_mem; }));
8185  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8186  tmp_carry = CPU (h_cbit);
8187  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8188  {
8189    SI opval = tmp_newval;
8190    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
8191    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8192  }
8193{
8194  {
8195    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))));
8196    CPU (h_cbit) = opval;
8197    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8198  }
8199  {
8200    BI opval = LTSI (tmp_newval, 0);
8201    CPU (h_nbit) = opval;
8202    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8203  }
8204  {
8205    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8206    CPU (h_zbit) = opval;
8207    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8208  }
8209  {
8210    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)));
8211    CPU (h_vbit) = opval;
8212    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8213  }
8214{
8215  {
8216    BI opval = 0;
8217    CPU (h_xbit) = opval;
8218    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8219  }
8220  {
8221    BI opval = 0;
8222    SET_H_INSN_PREFIXED_P (opval);
8223    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8224  }
8225}
8226}
8227}
8228
8229  abuf->written = written;
8230#undef FLD
8231}
8232  NEXT (vpc);
8233
8234  CASE (sem, INSN_SUBU_M_W_M) : /* subu-m.w [${Rs}${inc}],$Rd */
8235{
8236  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8237  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8238#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
8239  int UNUSED written = 0;
8240  IADDR UNUSED pc = abuf->addr;
8241  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8242
8243{
8244  SI tmp_tmpopd;
8245  SI tmp_tmpops;
8246  BI tmp_carry;
8247  SI tmp_newval;
8248  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
8249  HI tmp_tmp_mem;
8250  BI tmp_postinc;
8251  tmp_postinc = FLD (f_memmode);
8252;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8253;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
8254; if (NEBI (tmp_postinc, 0)) {
8255{
8256if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8257  tmp_addr = ADDSI (tmp_addr, 2);
8258}
8259  {
8260    SI opval = tmp_addr;
8261    SET_H_GR (FLD (f_operand1), opval);
8262    written |= (1 << 11);
8263    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8264  }
8265}
8266}
8267; tmp_tmp_mem; }));
8268  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8269  tmp_carry = CPU (h_cbit);
8270  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8271  {
8272    SI opval = tmp_newval;
8273    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
8274    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8275  }
8276{
8277  {
8278    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))));
8279    CPU (h_cbit) = opval;
8280    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8281  }
8282  {
8283    BI opval = LTSI (tmp_newval, 0);
8284    CPU (h_nbit) = opval;
8285    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8286  }
8287  {
8288    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8289    CPU (h_zbit) = opval;
8290    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8291  }
8292  {
8293    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)));
8294    CPU (h_vbit) = opval;
8295    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8296  }
8297{
8298  {
8299    BI opval = 0;
8300    CPU (h_xbit) = opval;
8301    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8302  }
8303  {
8304    BI opval = 0;
8305    SET_H_INSN_PREFIXED_P (opval);
8306    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8307  }
8308}
8309}
8310}
8311
8312  abuf->written = written;
8313#undef FLD
8314}
8315  NEXT (vpc);
8316
8317  CASE (sem, INSN_SUBUCBR) : /* [${Rs}${inc}],$Rd */
8318{
8319  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8320  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8321#define FLD(f) abuf->fields.sfmt_addcbr.f
8322  int UNUSED written = 0;
8323  IADDR UNUSED pc = abuf->addr;
8324  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8325
8326{
8327  SI tmp_tmpopd;
8328  SI tmp_tmpops;
8329  BI tmp_carry;
8330  SI tmp_newval;
8331  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
8332  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8333  tmp_carry = CPU (h_cbit);
8334  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8335  {
8336    SI opval = tmp_newval;
8337    SET_H_GR (FLD (f_operand2), opval);
8338    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8339  }
8340{
8341  {
8342    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))));
8343    CPU (h_cbit) = opval;
8344    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8345  }
8346  {
8347    BI opval = LTSI (tmp_newval, 0);
8348    CPU (h_nbit) = opval;
8349    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8350  }
8351  {
8352    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8353    CPU (h_zbit) = opval;
8354    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8355  }
8356  {
8357    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)));
8358    CPU (h_vbit) = opval;
8359    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8360  }
8361{
8362  {
8363    BI opval = 0;
8364    CPU (h_xbit) = opval;
8365    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8366  }
8367  {
8368    BI opval = 0;
8369    SET_H_INSN_PREFIXED_P (opval);
8370    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8371  }
8372}
8373}
8374}
8375
8376#undef FLD
8377}
8378  NEXT (vpc);
8379
8380  CASE (sem, INSN_SUBUCWR) : /* [${Rs}${inc}],$Rd */
8381{
8382  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8383  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8384#define FLD(f) abuf->fields.sfmt_addcwr.f
8385  int UNUSED written = 0;
8386  IADDR UNUSED pc = abuf->addr;
8387  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8388
8389{
8390  SI tmp_tmpopd;
8391  SI tmp_tmpops;
8392  BI tmp_carry;
8393  SI tmp_newval;
8394  tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
8395  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8396  tmp_carry = CPU (h_cbit);
8397  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8398  {
8399    SI opval = tmp_newval;
8400    SET_H_GR (FLD (f_operand2), opval);
8401    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8402  }
8403{
8404  {
8405    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))));
8406    CPU (h_cbit) = opval;
8407    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8408  }
8409  {
8410    BI opval = LTSI (tmp_newval, 0);
8411    CPU (h_nbit) = opval;
8412    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8413  }
8414  {
8415    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8416    CPU (h_zbit) = opval;
8417    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8418  }
8419  {
8420    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)));
8421    CPU (h_vbit) = opval;
8422    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8423  }
8424{
8425  {
8426    BI opval = 0;
8427    CPU (h_xbit) = opval;
8428    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8429  }
8430  {
8431    BI opval = 0;
8432    SET_H_INSN_PREFIXED_P (opval);
8433    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8434  }
8435}
8436}
8437}
8438
8439#undef FLD
8440}
8441  NEXT (vpc);
8442
8443  CASE (sem, INSN_ADDI_B_R) : /* addi.b ${Rs-dfield}.m,${Rd-sfield} */
8444{
8445  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8446  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8447#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8448  int UNUSED written = 0;
8449  IADDR UNUSED pc = abuf->addr;
8450  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8451
8452{
8453  {
8454    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 1));
8455    SET_H_GR (FLD (f_operand1), opval);
8456    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8457  }
8458{
8459  {
8460    BI opval = 0;
8461    CPU (h_xbit) = opval;
8462    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8463  }
8464  {
8465    BI opval = 0;
8466    SET_H_INSN_PREFIXED_P (opval);
8467    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8468  }
8469}
8470}
8471
8472#undef FLD
8473}
8474  NEXT (vpc);
8475
8476  CASE (sem, INSN_ADDI_W_R) : /* addi.w ${Rs-dfield}.m,${Rd-sfield} */
8477{
8478  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8479  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8480#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8481  int UNUSED written = 0;
8482  IADDR UNUSED pc = abuf->addr;
8483  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8484
8485{
8486  {
8487    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 2));
8488    SET_H_GR (FLD (f_operand1), opval);
8489    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8490  }
8491{
8492  {
8493    BI opval = 0;
8494    CPU (h_xbit) = opval;
8495    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8496  }
8497  {
8498    BI opval = 0;
8499    SET_H_INSN_PREFIXED_P (opval);
8500    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8501  }
8502}
8503}
8504
8505#undef FLD
8506}
8507  NEXT (vpc);
8508
8509  CASE (sem, INSN_ADDI_D_R) : /* addi.d ${Rs-dfield}.m,${Rd-sfield} */
8510{
8511  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8512  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8513#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8514  int UNUSED written = 0;
8515  IADDR UNUSED pc = abuf->addr;
8516  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8517
8518{
8519  {
8520    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 4));
8521    SET_H_GR (FLD (f_operand1), opval);
8522    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8523  }
8524{
8525  {
8526    BI opval = 0;
8527    CPU (h_xbit) = opval;
8528    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8529  }
8530  {
8531    BI opval = 0;
8532    SET_H_INSN_PREFIXED_P (opval);
8533    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8534  }
8535}
8536}
8537
8538#undef FLD
8539}
8540  NEXT (vpc);
8541
8542  CASE (sem, INSN_NEG_B_R) : /* neg.b $Rs,$Rd */
8543{
8544  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8545  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8546#define FLD(f) abuf->fields.sfmt_add_b_r.f
8547  int UNUSED written = 0;
8548  IADDR UNUSED pc = abuf->addr;
8549  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8550
8551{
8552  QI tmp_tmpopd;
8553  QI tmp_tmpops;
8554  BI tmp_carry;
8555  QI tmp_newval;
8556  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8557  tmp_tmpopd = 0;
8558  tmp_carry = CPU (h_cbit);
8559  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8560{
8561  SI tmp_oldregval;
8562  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
8563  {
8564    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
8565    SET_H_GR (FLD (f_operand2), opval);
8566    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8567  }
8568}
8569{
8570  {
8571    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))));
8572    CPU (h_cbit) = opval;
8573    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8574  }
8575  {
8576    BI opval = LTQI (tmp_newval, 0);
8577    CPU (h_nbit) = opval;
8578    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8579  }
8580  {
8581    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8582    CPU (h_zbit) = opval;
8583    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8584  }
8585  {
8586    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)));
8587    CPU (h_vbit) = opval;
8588    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8589  }
8590{
8591  {
8592    BI opval = 0;
8593    CPU (h_xbit) = opval;
8594    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8595  }
8596  {
8597    BI opval = 0;
8598    SET_H_INSN_PREFIXED_P (opval);
8599    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8600  }
8601}
8602}
8603}
8604
8605#undef FLD
8606}
8607  NEXT (vpc);
8608
8609  CASE (sem, INSN_NEG_W_R) : /* neg.w $Rs,$Rd */
8610{
8611  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8612  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8613#define FLD(f) abuf->fields.sfmt_add_b_r.f
8614  int UNUSED written = 0;
8615  IADDR UNUSED pc = abuf->addr;
8616  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8617
8618{
8619  HI tmp_tmpopd;
8620  HI tmp_tmpops;
8621  BI tmp_carry;
8622  HI tmp_newval;
8623  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8624  tmp_tmpopd = 0;
8625  tmp_carry = CPU (h_cbit);
8626  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8627{
8628  SI tmp_oldregval;
8629  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
8630  {
8631    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
8632    SET_H_GR (FLD (f_operand2), opval);
8633    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8634  }
8635}
8636{
8637  {
8638    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))));
8639    CPU (h_cbit) = opval;
8640    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8641  }
8642  {
8643    BI opval = LTHI (tmp_newval, 0);
8644    CPU (h_nbit) = opval;
8645    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8646  }
8647  {
8648    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8649    CPU (h_zbit) = opval;
8650    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8651  }
8652  {
8653    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)));
8654    CPU (h_vbit) = opval;
8655    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8656  }
8657{
8658  {
8659    BI opval = 0;
8660    CPU (h_xbit) = opval;
8661    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8662  }
8663  {
8664    BI opval = 0;
8665    SET_H_INSN_PREFIXED_P (opval);
8666    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8667  }
8668}
8669}
8670}
8671
8672#undef FLD
8673}
8674  NEXT (vpc);
8675
8676  CASE (sem, INSN_NEG_D_R) : /* neg.d $Rs,$Rd */
8677{
8678  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8679  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8680#define FLD(f) abuf->fields.sfmt_add_b_r.f
8681  int UNUSED written = 0;
8682  IADDR UNUSED pc = abuf->addr;
8683  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8684
8685{
8686  SI tmp_tmpopd;
8687  SI tmp_tmpops;
8688  BI tmp_carry;
8689  SI tmp_newval;
8690  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8691  tmp_tmpopd = 0;
8692  tmp_carry = CPU (h_cbit);
8693  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8694  {
8695    SI opval = tmp_newval;
8696    SET_H_GR (FLD (f_operand2), opval);
8697    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8698  }
8699{
8700  {
8701    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))));
8702    CPU (h_cbit) = opval;
8703    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8704  }
8705  {
8706    BI opval = LTSI (tmp_newval, 0);
8707    CPU (h_nbit) = opval;
8708    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8709  }
8710  {
8711    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8712    CPU (h_zbit) = opval;
8713    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8714  }
8715  {
8716    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)));
8717    CPU (h_vbit) = opval;
8718    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8719  }
8720{
8721  {
8722    BI opval = 0;
8723    CPU (h_xbit) = opval;
8724    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8725  }
8726  {
8727    BI opval = 0;
8728    SET_H_INSN_PREFIXED_P (opval);
8729    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8730  }
8731}
8732}
8733}
8734
8735#undef FLD
8736}
8737  NEXT (vpc);
8738
8739  CASE (sem, INSN_TEST_M_B_M) : /* test-m.b [${Rs}${inc}] */
8740{
8741  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8742  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8743#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
8744  int UNUSED written = 0;
8745  IADDR UNUSED pc = abuf->addr;
8746  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8747
8748{
8749  QI tmp_tmpd;
8750  tmp_tmpd = ({   SI tmp_addr;
8751  QI tmp_tmp_mem;
8752  BI tmp_postinc;
8753  tmp_postinc = FLD (f_memmode);
8754;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8755;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
8756; if (NEBI (tmp_postinc, 0)) {
8757{
8758if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8759  tmp_addr = ADDSI (tmp_addr, 1);
8760}
8761  {
8762    SI opval = tmp_addr;
8763    SET_H_GR (FLD (f_operand1), opval);
8764    written |= (1 << 8);
8765    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8766  }
8767}
8768}
8769; tmp_tmp_mem; });
8770{
8771  QI tmp_tmpopd;
8772  QI tmp_tmpops;
8773  BI tmp_carry;
8774  QI tmp_newval;
8775  tmp_tmpops = 0;
8776  tmp_tmpopd = tmp_tmpd;
8777  tmp_carry = CPU (h_cbit);
8778  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8779((void) 0); /*nop*/
8780{
8781  {
8782    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))));
8783    CPU (h_cbit) = opval;
8784    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8785  }
8786  {
8787    BI opval = LTQI (tmp_newval, 0);
8788    CPU (h_nbit) = opval;
8789    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8790  }
8791  {
8792    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8793    CPU (h_zbit) = opval;
8794    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8795  }
8796  {
8797    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)));
8798    CPU (h_vbit) = opval;
8799    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8800  }
8801{
8802  {
8803    BI opval = 0;
8804    CPU (h_xbit) = opval;
8805    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8806  }
8807  {
8808    BI opval = 0;
8809    SET_H_INSN_PREFIXED_P (opval);
8810    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8811  }
8812}
8813}
8814}
8815}
8816
8817  abuf->written = written;
8818#undef FLD
8819}
8820  NEXT (vpc);
8821
8822  CASE (sem, INSN_TEST_M_W_M) : /* test-m.w [${Rs}${inc}] */
8823{
8824  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8825  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8826#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
8827  int UNUSED written = 0;
8828  IADDR UNUSED pc = abuf->addr;
8829  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8830
8831{
8832  HI tmp_tmpd;
8833  tmp_tmpd = ({   SI tmp_addr;
8834  HI tmp_tmp_mem;
8835  BI tmp_postinc;
8836  tmp_postinc = FLD (f_memmode);
8837;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8838;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
8839; if (NEBI (tmp_postinc, 0)) {
8840{
8841if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8842  tmp_addr = ADDSI (tmp_addr, 2);
8843}
8844  {
8845    SI opval = tmp_addr;
8846    SET_H_GR (FLD (f_operand1), opval);
8847    written |= (1 << 8);
8848    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8849  }
8850}
8851}
8852; tmp_tmp_mem; });
8853{
8854  HI tmp_tmpopd;
8855  HI tmp_tmpops;
8856  BI tmp_carry;
8857  HI tmp_newval;
8858  tmp_tmpops = 0;
8859  tmp_tmpopd = tmp_tmpd;
8860  tmp_carry = CPU (h_cbit);
8861  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8862((void) 0); /*nop*/
8863{
8864  {
8865    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))));
8866    CPU (h_cbit) = opval;
8867    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8868  }
8869  {
8870    BI opval = LTHI (tmp_newval, 0);
8871    CPU (h_nbit) = opval;
8872    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8873  }
8874  {
8875    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8876    CPU (h_zbit) = opval;
8877    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8878  }
8879  {
8880    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)));
8881    CPU (h_vbit) = opval;
8882    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8883  }
8884{
8885  {
8886    BI opval = 0;
8887    CPU (h_xbit) = opval;
8888    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8889  }
8890  {
8891    BI opval = 0;
8892    SET_H_INSN_PREFIXED_P (opval);
8893    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8894  }
8895}
8896}
8897}
8898}
8899
8900  abuf->written = written;
8901#undef FLD
8902}
8903  NEXT (vpc);
8904
8905  CASE (sem, INSN_TEST_M_D_M) : /* test-m.d [${Rs}${inc}] */
8906{
8907  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8908  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8909#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
8910  int UNUSED written = 0;
8911  IADDR UNUSED pc = abuf->addr;
8912  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8913
8914{
8915  SI tmp_tmpd;
8916  tmp_tmpd = ({   SI tmp_addr;
8917  SI tmp_tmp_mem;
8918  BI tmp_postinc;
8919  tmp_postinc = FLD (f_memmode);
8920;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
8921;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
8922; if (NEBI (tmp_postinc, 0)) {
8923{
8924if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8925  tmp_addr = ADDSI (tmp_addr, 4);
8926}
8927  {
8928    SI opval = tmp_addr;
8929    SET_H_GR (FLD (f_operand1), opval);
8930    written |= (1 << 8);
8931    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8932  }
8933}
8934}
8935; tmp_tmp_mem; });
8936{
8937  SI tmp_tmpopd;
8938  SI tmp_tmpops;
8939  BI tmp_carry;
8940  SI tmp_newval;
8941  tmp_tmpops = 0;
8942  tmp_tmpopd = tmp_tmpd;
8943  tmp_carry = CPU (h_cbit);
8944  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8945((void) 0); /*nop*/
8946{
8947  {
8948    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))));
8949    CPU (h_cbit) = opval;
8950    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8951  }
8952  {
8953    BI opval = LTSI (tmp_newval, 0);
8954    CPU (h_nbit) = opval;
8955    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8956  }
8957  {
8958    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8959    CPU (h_zbit) = opval;
8960    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8961  }
8962  {
8963    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)));
8964    CPU (h_vbit) = opval;
8965    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8966  }
8967{
8968  {
8969    BI opval = 0;
8970    CPU (h_xbit) = opval;
8971    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8972  }
8973  {
8974    BI opval = 0;
8975    SET_H_INSN_PREFIXED_P (opval);
8976    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8977  }
8978}
8979}
8980}
8981}
8982
8983  abuf->written = written;
8984#undef FLD
8985}
8986  NEXT (vpc);
8987
8988  CASE (sem, INSN_MOVE_R_M_B_M) : /* move-r-m.b ${Rs-dfield},[${Rd-sfield}${inc}] */
8989{
8990  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8991  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8992#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
8993  int UNUSED written = 0;
8994  IADDR UNUSED pc = abuf->addr;
8995  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8996
8997{
8998  QI tmp_tmpd;
8999  tmp_tmpd = GET_H_GR (FLD (f_operand2));
9000{
9001  SI tmp_addr;
9002  BI tmp_postinc;
9003  tmp_postinc = FLD (f_memmode);
9004  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9005if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9006if (EQBI (CPU (h_pbit), 0)) {
9007{
9008  {
9009    QI opval = tmp_tmpd;
9010    SETMEMQI (current_cpu, pc, tmp_addr, opval);
9011    written |= (1 << 10);
9012    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9013  }
9014  {
9015    BI opval = CPU (h_pbit);
9016    CPU (h_cbit) = opval;
9017    written |= (1 << 9);
9018    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9019  }
9020}
9021} else {
9022  {
9023    BI opval = 1;
9024    CPU (h_cbit) = opval;
9025    written |= (1 << 9);
9026    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9027  }
9028}
9029} else {
9030  {
9031    QI opval = tmp_tmpd;
9032    SETMEMQI (current_cpu, pc, tmp_addr, opval);
9033    written |= (1 << 10);
9034    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9035  }
9036}
9037if (NEBI (tmp_postinc, 0)) {
9038{
9039if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9040  tmp_addr = ADDSI (tmp_addr, 1);
9041}
9042  {
9043    SI opval = tmp_addr;
9044    SET_H_GR (FLD (f_operand1), opval);
9045    written |= (1 << 8);
9046    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9047  }
9048}
9049}
9050}
9051{
9052  {
9053    BI opval = 0;
9054    CPU (h_xbit) = opval;
9055    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9056  }
9057  {
9058    BI opval = 0;
9059    SET_H_INSN_PREFIXED_P (opval);
9060    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9061  }
9062}
9063}
9064
9065  abuf->written = written;
9066#undef FLD
9067}
9068  NEXT (vpc);
9069
9070  CASE (sem, INSN_MOVE_R_M_W_M) : /* move-r-m.w ${Rs-dfield},[${Rd-sfield}${inc}] */
9071{
9072  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9073  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9074#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
9075  int UNUSED written = 0;
9076  IADDR UNUSED pc = abuf->addr;
9077  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9078
9079{
9080  HI tmp_tmpd;
9081  tmp_tmpd = GET_H_GR (FLD (f_operand2));
9082{
9083  SI tmp_addr;
9084  BI tmp_postinc;
9085  tmp_postinc = FLD (f_memmode);
9086  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9087if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9088if (EQBI (CPU (h_pbit), 0)) {
9089{
9090  {
9091    HI opval = tmp_tmpd;
9092    SETMEMHI (current_cpu, pc, tmp_addr, opval);
9093    written |= (1 << 10);
9094    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9095  }
9096  {
9097    BI opval = CPU (h_pbit);
9098    CPU (h_cbit) = opval;
9099    written |= (1 << 9);
9100    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9101  }
9102}
9103} else {
9104  {
9105    BI opval = 1;
9106    CPU (h_cbit) = opval;
9107    written |= (1 << 9);
9108    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9109  }
9110}
9111} else {
9112  {
9113    HI opval = tmp_tmpd;
9114    SETMEMHI (current_cpu, pc, tmp_addr, opval);
9115    written |= (1 << 10);
9116    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9117  }
9118}
9119if (NEBI (tmp_postinc, 0)) {
9120{
9121if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9122  tmp_addr = ADDSI (tmp_addr, 2);
9123}
9124  {
9125    SI opval = tmp_addr;
9126    SET_H_GR (FLD (f_operand1), opval);
9127    written |= (1 << 8);
9128    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9129  }
9130}
9131}
9132}
9133{
9134  {
9135    BI opval = 0;
9136    CPU (h_xbit) = opval;
9137    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9138  }
9139  {
9140    BI opval = 0;
9141    SET_H_INSN_PREFIXED_P (opval);
9142    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9143  }
9144}
9145}
9146
9147  abuf->written = written;
9148#undef FLD
9149}
9150  NEXT (vpc);
9151
9152  CASE (sem, INSN_MOVE_R_M_D_M) : /* move-r-m.d ${Rs-dfield},[${Rd-sfield}${inc}] */
9153{
9154  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9155  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9156#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
9157  int UNUSED written = 0;
9158  IADDR UNUSED pc = abuf->addr;
9159  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9160
9161{
9162  SI tmp_tmpd;
9163  tmp_tmpd = GET_H_GR (FLD (f_operand2));
9164{
9165  SI tmp_addr;
9166  BI tmp_postinc;
9167  tmp_postinc = FLD (f_memmode);
9168  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9169if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9170if (EQBI (CPU (h_pbit), 0)) {
9171{
9172  {
9173    SI opval = tmp_tmpd;
9174    SETMEMSI (current_cpu, pc, tmp_addr, opval);
9175    written |= (1 << 10);
9176    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9177  }
9178  {
9179    BI opval = CPU (h_pbit);
9180    CPU (h_cbit) = opval;
9181    written |= (1 << 9);
9182    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9183  }
9184}
9185} else {
9186  {
9187    BI opval = 1;
9188    CPU (h_cbit) = opval;
9189    written |= (1 << 9);
9190    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9191  }
9192}
9193} else {
9194  {
9195    SI opval = tmp_tmpd;
9196    SETMEMSI (current_cpu, pc, tmp_addr, opval);
9197    written |= (1 << 10);
9198    CGEN_TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9199  }
9200}
9201if (NEBI (tmp_postinc, 0)) {
9202{
9203if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9204  tmp_addr = ADDSI (tmp_addr, 4);
9205}
9206  {
9207    SI opval = tmp_addr;
9208    SET_H_GR (FLD (f_operand1), opval);
9209    written |= (1 << 8);
9210    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9211  }
9212}
9213}
9214}
9215{
9216  {
9217    BI opval = 0;
9218    CPU (h_xbit) = opval;
9219    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9220  }
9221  {
9222    BI opval = 0;
9223    SET_H_INSN_PREFIXED_P (opval);
9224    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9225  }
9226}
9227}
9228
9229  abuf->written = written;
9230#undef FLD
9231}
9232  NEXT (vpc);
9233
9234  CASE (sem, INSN_MULS_B) : /* muls.b $Rs,$Rd */
9235{
9236  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9237  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9238#define FLD(f) abuf->fields.sfmt_muls_b.f
9239  int UNUSED written = 0;
9240  IADDR UNUSED pc = abuf->addr;
9241  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9242
9243{
9244  DI tmp_src1;
9245  DI tmp_src2;
9246  DI tmp_tmpr;
9247  tmp_src1 = EXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
9248  tmp_src2 = EXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand2))));
9249  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9250  {
9251    SI opval = TRUNCDISI (tmp_tmpr);
9252    SET_H_GR (FLD (f_operand2), opval);
9253    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9254  }
9255  {
9256    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9257    SET_H_SR (((UINT) 7), opval);
9258    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9259  }
9260{
9261  {
9262    BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9263    CPU (h_cbit) = opval;
9264    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9265  }
9266  {
9267    BI opval = LTDI (tmp_tmpr, 0);
9268    CPU (h_nbit) = opval;
9269    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9270  }
9271  {
9272    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9273    CPU (h_zbit) = opval;
9274    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9275  }
9276  {
9277    BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9278    CPU (h_vbit) = opval;
9279    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9280  }
9281{
9282  {
9283    BI opval = 0;
9284    CPU (h_xbit) = opval;
9285    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9286  }
9287  {
9288    BI opval = 0;
9289    SET_H_INSN_PREFIXED_P (opval);
9290    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9291  }
9292}
9293}
9294}
9295
9296#undef FLD
9297}
9298  NEXT (vpc);
9299
9300  CASE (sem, INSN_MULS_W) : /* muls.w $Rs,$Rd */
9301{
9302  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9303  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9304#define FLD(f) abuf->fields.sfmt_muls_b.f
9305  int UNUSED written = 0;
9306  IADDR UNUSED pc = abuf->addr;
9307  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9308
9309{
9310  DI tmp_src1;
9311  DI tmp_src2;
9312  DI tmp_tmpr;
9313  tmp_src1 = EXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
9314  tmp_src2 = EXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand2))));
9315  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9316  {
9317    SI opval = TRUNCDISI (tmp_tmpr);
9318    SET_H_GR (FLD (f_operand2), opval);
9319    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9320  }
9321  {
9322    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9323    SET_H_SR (((UINT) 7), opval);
9324    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9325  }
9326{
9327  {
9328    BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9329    CPU (h_cbit) = opval;
9330    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9331  }
9332  {
9333    BI opval = LTDI (tmp_tmpr, 0);
9334    CPU (h_nbit) = opval;
9335    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9336  }
9337  {
9338    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9339    CPU (h_zbit) = opval;
9340    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9341  }
9342  {
9343    BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9344    CPU (h_vbit) = opval;
9345    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9346  }
9347{
9348  {
9349    BI opval = 0;
9350    CPU (h_xbit) = opval;
9351    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9352  }
9353  {
9354    BI opval = 0;
9355    SET_H_INSN_PREFIXED_P (opval);
9356    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9357  }
9358}
9359}
9360}
9361
9362#undef FLD
9363}
9364  NEXT (vpc);
9365
9366  CASE (sem, INSN_MULS_D) : /* muls.d $Rs,$Rd */
9367{
9368  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9369  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9370#define FLD(f) abuf->fields.sfmt_muls_b.f
9371  int UNUSED written = 0;
9372  IADDR UNUSED pc = abuf->addr;
9373  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9374
9375{
9376  DI tmp_src1;
9377  DI tmp_src2;
9378  DI tmp_tmpr;
9379  tmp_src1 = EXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand1))));
9380  tmp_src2 = EXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand2))));
9381  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9382  {
9383    SI opval = TRUNCDISI (tmp_tmpr);
9384    SET_H_GR (FLD (f_operand2), opval);
9385    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9386  }
9387  {
9388    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9389    SET_H_SR (((UINT) 7), opval);
9390    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9391  }
9392{
9393  {
9394    BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9395    CPU (h_cbit) = opval;
9396    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9397  }
9398  {
9399    BI opval = LTDI (tmp_tmpr, 0);
9400    CPU (h_nbit) = opval;
9401    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9402  }
9403  {
9404    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9405    CPU (h_zbit) = opval;
9406    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9407  }
9408  {
9409    BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9410    CPU (h_vbit) = opval;
9411    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9412  }
9413{
9414  {
9415    BI opval = 0;
9416    CPU (h_xbit) = opval;
9417    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9418  }
9419  {
9420    BI opval = 0;
9421    SET_H_INSN_PREFIXED_P (opval);
9422    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9423  }
9424}
9425}
9426}
9427
9428#undef FLD
9429}
9430  NEXT (vpc);
9431
9432  CASE (sem, INSN_MULU_B) : /* mulu.b $Rs,$Rd */
9433{
9434  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9435  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9436#define FLD(f) abuf->fields.sfmt_muls_b.f
9437  int UNUSED written = 0;
9438  IADDR UNUSED pc = abuf->addr;
9439  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9440
9441{
9442  DI tmp_src1;
9443  DI tmp_src2;
9444  DI tmp_tmpr;
9445  tmp_src1 = ZEXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
9446  tmp_src2 = ZEXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand2))));
9447  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9448  {
9449    SI opval = TRUNCDISI (tmp_tmpr);
9450    SET_H_GR (FLD (f_operand2), opval);
9451    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9452  }
9453  {
9454    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9455    SET_H_SR (((UINT) 7), opval);
9456    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9457  }
9458{
9459  {
9460    BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9461    CPU (h_cbit) = opval;
9462    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9463  }
9464  {
9465    BI opval = LTDI (tmp_tmpr, 0);
9466    CPU (h_nbit) = opval;
9467    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9468  }
9469  {
9470    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9471    CPU (h_zbit) = opval;
9472    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9473  }
9474  {
9475    BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9476    CPU (h_vbit) = opval;
9477    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9478  }
9479{
9480  {
9481    BI opval = 0;
9482    CPU (h_xbit) = opval;
9483    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9484  }
9485  {
9486    BI opval = 0;
9487    SET_H_INSN_PREFIXED_P (opval);
9488    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9489  }
9490}
9491}
9492}
9493
9494#undef FLD
9495}
9496  NEXT (vpc);
9497
9498  CASE (sem, INSN_MULU_W) : /* mulu.w $Rs,$Rd */
9499{
9500  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9501  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9502#define FLD(f) abuf->fields.sfmt_muls_b.f
9503  int UNUSED written = 0;
9504  IADDR UNUSED pc = abuf->addr;
9505  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9506
9507{
9508  DI tmp_src1;
9509  DI tmp_src2;
9510  DI tmp_tmpr;
9511  tmp_src1 = ZEXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
9512  tmp_src2 = ZEXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand2))));
9513  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9514  {
9515    SI opval = TRUNCDISI (tmp_tmpr);
9516    SET_H_GR (FLD (f_operand2), opval);
9517    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9518  }
9519  {
9520    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9521    SET_H_SR (((UINT) 7), opval);
9522    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9523  }
9524{
9525  {
9526    BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9527    CPU (h_cbit) = opval;
9528    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9529  }
9530  {
9531    BI opval = LTDI (tmp_tmpr, 0);
9532    CPU (h_nbit) = opval;
9533    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9534  }
9535  {
9536    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9537    CPU (h_zbit) = opval;
9538    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9539  }
9540  {
9541    BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9542    CPU (h_vbit) = opval;
9543    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9544  }
9545{
9546  {
9547    BI opval = 0;
9548    CPU (h_xbit) = opval;
9549    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9550  }
9551  {
9552    BI opval = 0;
9553    SET_H_INSN_PREFIXED_P (opval);
9554    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9555  }
9556}
9557}
9558}
9559
9560#undef FLD
9561}
9562  NEXT (vpc);
9563
9564  CASE (sem, INSN_MULU_D) : /* mulu.d $Rs,$Rd */
9565{
9566  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9567  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9568#define FLD(f) abuf->fields.sfmt_muls_b.f
9569  int UNUSED written = 0;
9570  IADDR UNUSED pc = abuf->addr;
9571  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9572
9573{
9574  DI tmp_src1;
9575  DI tmp_src2;
9576  DI tmp_tmpr;
9577  tmp_src1 = ZEXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand1))));
9578  tmp_src2 = ZEXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand2))));
9579  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9580  {
9581    SI opval = TRUNCDISI (tmp_tmpr);
9582    SET_H_GR (FLD (f_operand2), opval);
9583    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9584  }
9585  {
9586    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9587    SET_H_SR (((UINT) 7), opval);
9588    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9589  }
9590{
9591  {
9592    BI opval = ANDIF (GET_H_V32_NON_V32 (), CPU (h_cbit));
9593    CPU (h_cbit) = opval;
9594    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9595  }
9596  {
9597    BI opval = LTDI (tmp_tmpr, 0);
9598    CPU (h_nbit) = opval;
9599    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9600  }
9601  {
9602    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9603    CPU (h_zbit) = opval;
9604    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9605  }
9606  {
9607    BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9608    CPU (h_vbit) = opval;
9609    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9610  }
9611{
9612  {
9613    BI opval = 0;
9614    CPU (h_xbit) = opval;
9615    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9616  }
9617  {
9618    BI opval = 0;
9619    SET_H_INSN_PREFIXED_P (opval);
9620    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9621  }
9622}
9623}
9624}
9625
9626#undef FLD
9627}
9628  NEXT (vpc);
9629
9630  CASE (sem, INSN_MSTEP) : /* mstep $Rs,$Rd */
9631{
9632  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9633  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9634#define FLD(f) abuf->fields.sfmt_muls_b.f
9635  int UNUSED written = 0;
9636  IADDR UNUSED pc = abuf->addr;
9637  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9638
9639{
9640  SI tmp_tmpd;
9641  SI tmp_tmps;
9642  tmp_tmps = GET_H_GR (FLD (f_operand1));
9643  tmp_tmpd = ADDSI (SLLSI (GET_H_GR (FLD (f_operand2)), 1), ((CPU (h_nbit)) ? (tmp_tmps) : (0)));
9644  {
9645    SI opval = tmp_tmpd;
9646    SET_H_GR (FLD (f_operand2), opval);
9647    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9648  }
9649{
9650  {
9651    BI opval = LTSI (tmp_tmpd, 0);
9652    CPU (h_nbit) = opval;
9653    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9654  }
9655  {
9656    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9657    CPU (h_zbit) = opval;
9658    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9659  }
9660SET_H_CBIT_MOVE (0);
9661SET_H_VBIT_MOVE (0);
9662{
9663  {
9664    BI opval = 0;
9665    CPU (h_xbit) = opval;
9666    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9667  }
9668  {
9669    BI opval = 0;
9670    SET_H_INSN_PREFIXED_P (opval);
9671    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9672  }
9673}
9674}
9675}
9676
9677#undef FLD
9678}
9679  NEXT (vpc);
9680
9681  CASE (sem, INSN_DSTEP) : /* dstep $Rs,$Rd */
9682{
9683  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9684  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9685#define FLD(f) abuf->fields.sfmt_muls_b.f
9686  int UNUSED written = 0;
9687  IADDR UNUSED pc = abuf->addr;
9688  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9689
9690{
9691  SI tmp_tmp;
9692  SI tmp_tmps;
9693  SI tmp_tmpd;
9694  tmp_tmps = GET_H_GR (FLD (f_operand1));
9695  tmp_tmp = SLLSI (GET_H_GR (FLD (f_operand2)), 1);
9696  tmp_tmpd = ((GEUSI (tmp_tmp, tmp_tmps)) ? (SUBSI (tmp_tmp, tmp_tmps)) : (tmp_tmp));
9697  {
9698    SI opval = tmp_tmpd;
9699    SET_H_GR (FLD (f_operand2), opval);
9700    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9701  }
9702{
9703  {
9704    BI opval = LTSI (tmp_tmpd, 0);
9705    CPU (h_nbit) = opval;
9706    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9707  }
9708  {
9709    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9710    CPU (h_zbit) = opval;
9711    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9712  }
9713SET_H_CBIT_MOVE (0);
9714SET_H_VBIT_MOVE (0);
9715{
9716  {
9717    BI opval = 0;
9718    CPU (h_xbit) = opval;
9719    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9720  }
9721  {
9722    BI opval = 0;
9723    SET_H_INSN_PREFIXED_P (opval);
9724    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9725  }
9726}
9727}
9728}
9729
9730#undef FLD
9731}
9732  NEXT (vpc);
9733
9734  CASE (sem, INSN_ABS) : /* abs $Rs,$Rd */
9735{
9736  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9737  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9738#define FLD(f) abuf->fields.sfmt_muls_b.f
9739  int UNUSED written = 0;
9740  IADDR UNUSED pc = abuf->addr;
9741  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9742
9743{
9744  SI tmp_tmpd;
9745  tmp_tmpd = ABSSI (GET_H_GR (FLD (f_operand1)));
9746  {
9747    SI opval = tmp_tmpd;
9748    SET_H_GR (FLD (f_operand2), opval);
9749    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9750  }
9751{
9752  {
9753    BI opval = LTSI (tmp_tmpd, 0);
9754    CPU (h_nbit) = opval;
9755    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9756  }
9757  {
9758    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9759    CPU (h_zbit) = opval;
9760    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9761  }
9762SET_H_CBIT_MOVE (0);
9763SET_H_VBIT_MOVE (0);
9764{
9765  {
9766    BI opval = 0;
9767    CPU (h_xbit) = opval;
9768    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9769  }
9770  {
9771    BI opval = 0;
9772    SET_H_INSN_PREFIXED_P (opval);
9773    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9774  }
9775}
9776}
9777}
9778
9779#undef FLD
9780}
9781  NEXT (vpc);
9782
9783  CASE (sem, INSN_AND_B_R) : /* and.b $Rs,$Rd */
9784{
9785  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9786  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9787#define FLD(f) abuf->fields.sfmt_add_b_r.f
9788  int UNUSED written = 0;
9789  IADDR UNUSED pc = abuf->addr;
9790  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9791
9792{
9793  QI tmp_tmpd;
9794  tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
9795{
9796  SI tmp_oldregval;
9797  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
9798  {
9799    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
9800    SET_H_GR (FLD (f_operand2), opval);
9801    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9802  }
9803}
9804{
9805  {
9806    BI opval = LTQI (tmp_tmpd, 0);
9807    CPU (h_nbit) = opval;
9808    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9809  }
9810  {
9811    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9812    CPU (h_zbit) = opval;
9813    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9814  }
9815SET_H_CBIT_MOVE (0);
9816SET_H_VBIT_MOVE (0);
9817{
9818  {
9819    BI opval = 0;
9820    CPU (h_xbit) = opval;
9821    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9822  }
9823  {
9824    BI opval = 0;
9825    SET_H_INSN_PREFIXED_P (opval);
9826    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9827  }
9828}
9829}
9830}
9831
9832#undef FLD
9833}
9834  NEXT (vpc);
9835
9836  CASE (sem, INSN_AND_W_R) : /* and.w $Rs,$Rd */
9837{
9838  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9839  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9840#define FLD(f) abuf->fields.sfmt_add_b_r.f
9841  int UNUSED written = 0;
9842  IADDR UNUSED pc = abuf->addr;
9843  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9844
9845{
9846  HI tmp_tmpd;
9847  tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
9848{
9849  SI tmp_oldregval;
9850  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
9851  {
9852    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
9853    SET_H_GR (FLD (f_operand2), opval);
9854    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9855  }
9856}
9857{
9858  {
9859    BI opval = LTHI (tmp_tmpd, 0);
9860    CPU (h_nbit) = opval;
9861    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9862  }
9863  {
9864    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9865    CPU (h_zbit) = opval;
9866    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9867  }
9868SET_H_CBIT_MOVE (0);
9869SET_H_VBIT_MOVE (0);
9870{
9871  {
9872    BI opval = 0;
9873    CPU (h_xbit) = opval;
9874    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9875  }
9876  {
9877    BI opval = 0;
9878    SET_H_INSN_PREFIXED_P (opval);
9879    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9880  }
9881}
9882}
9883}
9884
9885#undef FLD
9886}
9887  NEXT (vpc);
9888
9889  CASE (sem, INSN_AND_D_R) : /* and.d $Rs,$Rd */
9890{
9891  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9892  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9893#define FLD(f) abuf->fields.sfmt_add_b_r.f
9894  int UNUSED written = 0;
9895  IADDR UNUSED pc = abuf->addr;
9896  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9897
9898{
9899  SI tmp_tmpd;
9900  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
9901  {
9902    SI opval = tmp_tmpd;
9903    SET_H_GR (FLD (f_operand2), opval);
9904    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9905  }
9906{
9907  {
9908    BI opval = LTSI (tmp_tmpd, 0);
9909    CPU (h_nbit) = opval;
9910    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9911  }
9912  {
9913    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9914    CPU (h_zbit) = opval;
9915    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9916  }
9917SET_H_CBIT_MOVE (0);
9918SET_H_VBIT_MOVE (0);
9919{
9920  {
9921    BI opval = 0;
9922    CPU (h_xbit) = opval;
9923    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9924  }
9925  {
9926    BI opval = 0;
9927    SET_H_INSN_PREFIXED_P (opval);
9928    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9929  }
9930}
9931}
9932}
9933
9934#undef FLD
9935}
9936  NEXT (vpc);
9937
9938  CASE (sem, INSN_AND_M_B_M) : /* and-m.b [${Rs}${inc}],${Rd} */
9939{
9940  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9941  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9942#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
9943  int UNUSED written = 0;
9944  IADDR UNUSED pc = abuf->addr;
9945  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9946
9947{
9948  QI tmp_tmpd;
9949  tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
9950  QI tmp_tmp_mem;
9951  BI tmp_postinc;
9952  tmp_postinc = FLD (f_memmode);
9953;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
9954;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
9955; if (NEBI (tmp_postinc, 0)) {
9956{
9957if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9958  tmp_addr = ADDSI (tmp_addr, 1);
9959}
9960  {
9961    SI opval = tmp_addr;
9962    SET_H_GR (FLD (f_operand1), opval);
9963    written |= (1 << 11);
9964    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9965  }
9966}
9967}
9968; tmp_tmp_mem; }));
9969{
9970  SI tmp_oldregval;
9971  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
9972  {
9973    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
9974    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
9975    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9976  }
9977}
9978{
9979  {
9980    BI opval = LTQI (tmp_tmpd, 0);
9981    CPU (h_nbit) = opval;
9982    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9983  }
9984  {
9985    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9986    CPU (h_zbit) = opval;
9987    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9988  }
9989SET_H_CBIT_MOVE (0);
9990SET_H_VBIT_MOVE (0);
9991{
9992  {
9993    BI opval = 0;
9994    CPU (h_xbit) = opval;
9995    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9996  }
9997  {
9998    BI opval = 0;
9999    SET_H_INSN_PREFIXED_P (opval);
10000    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10001  }
10002}
10003}
10004}
10005
10006  abuf->written = written;
10007#undef FLD
10008}
10009  NEXT (vpc);
10010
10011  CASE (sem, INSN_AND_M_W_M) : /* and-m.w [${Rs}${inc}],${Rd} */
10012{
10013  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10014  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10015#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10016  int UNUSED written = 0;
10017  IADDR UNUSED pc = abuf->addr;
10018  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10019
10020{
10021  HI tmp_tmpd;
10022  tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10023  HI tmp_tmp_mem;
10024  BI tmp_postinc;
10025  tmp_postinc = FLD (f_memmode);
10026;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10027;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
10028; if (NEBI (tmp_postinc, 0)) {
10029{
10030if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10031  tmp_addr = ADDSI (tmp_addr, 2);
10032}
10033  {
10034    SI opval = tmp_addr;
10035    SET_H_GR (FLD (f_operand1), opval);
10036    written |= (1 << 11);
10037    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10038  }
10039}
10040}
10041; tmp_tmp_mem; }));
10042{
10043  SI tmp_oldregval;
10044  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10045  {
10046    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10047    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10048    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10049  }
10050}
10051{
10052  {
10053    BI opval = LTHI (tmp_tmpd, 0);
10054    CPU (h_nbit) = opval;
10055    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10056  }
10057  {
10058    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10059    CPU (h_zbit) = opval;
10060    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10061  }
10062SET_H_CBIT_MOVE (0);
10063SET_H_VBIT_MOVE (0);
10064{
10065  {
10066    BI opval = 0;
10067    CPU (h_xbit) = opval;
10068    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10069  }
10070  {
10071    BI opval = 0;
10072    SET_H_INSN_PREFIXED_P (opval);
10073    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10074  }
10075}
10076}
10077}
10078
10079  abuf->written = written;
10080#undef FLD
10081}
10082  NEXT (vpc);
10083
10084  CASE (sem, INSN_AND_M_D_M) : /* and-m.d [${Rs}${inc}],${Rd} */
10085{
10086  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10087  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10088#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10089  int UNUSED written = 0;
10090  IADDR UNUSED pc = abuf->addr;
10091  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10092
10093{
10094  SI tmp_tmpd;
10095  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10096  SI tmp_tmp_mem;
10097  BI tmp_postinc;
10098  tmp_postinc = FLD (f_memmode);
10099;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10100;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
10101; if (NEBI (tmp_postinc, 0)) {
10102{
10103if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10104  tmp_addr = ADDSI (tmp_addr, 4);
10105}
10106  {
10107    SI opval = tmp_addr;
10108    SET_H_GR (FLD (f_operand1), opval);
10109    written |= (1 << 10);
10110    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10111  }
10112}
10113}
10114; tmp_tmp_mem; }));
10115  {
10116    SI opval = tmp_tmpd;
10117    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10118    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10119  }
10120{
10121  {
10122    BI opval = LTSI (tmp_tmpd, 0);
10123    CPU (h_nbit) = opval;
10124    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10125  }
10126  {
10127    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10128    CPU (h_zbit) = opval;
10129    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10130  }
10131SET_H_CBIT_MOVE (0);
10132SET_H_VBIT_MOVE (0);
10133{
10134  {
10135    BI opval = 0;
10136    CPU (h_xbit) = opval;
10137    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10138  }
10139  {
10140    BI opval = 0;
10141    SET_H_INSN_PREFIXED_P (opval);
10142    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10143  }
10144}
10145}
10146}
10147
10148  abuf->written = written;
10149#undef FLD
10150}
10151  NEXT (vpc);
10152
10153  CASE (sem, INSN_ANDCBR) : /* and.b ${sconst8}],${Rd} */
10154{
10155  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10156  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10157#define FLD(f) abuf->fields.sfmt_addcbr.f
10158  int UNUSED written = 0;
10159  IADDR UNUSED pc = abuf->addr;
10160  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10161
10162{
10163  QI tmp_tmpd;
10164  tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__byte));
10165{
10166  SI tmp_oldregval;
10167  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10168  {
10169    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10170    SET_H_GR (FLD (f_operand2), opval);
10171    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10172  }
10173}
10174{
10175  {
10176    BI opval = LTQI (tmp_tmpd, 0);
10177    CPU (h_nbit) = opval;
10178    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10179  }
10180  {
10181    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10182    CPU (h_zbit) = opval;
10183    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10184  }
10185SET_H_CBIT_MOVE (0);
10186SET_H_VBIT_MOVE (0);
10187{
10188  {
10189    BI opval = 0;
10190    CPU (h_xbit) = opval;
10191    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10192  }
10193  {
10194    BI opval = 0;
10195    SET_H_INSN_PREFIXED_P (opval);
10196    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10197  }
10198}
10199}
10200}
10201
10202#undef FLD
10203}
10204  NEXT (vpc);
10205
10206  CASE (sem, INSN_ANDCWR) : /* and.w ${sconst16}],${Rd} */
10207{
10208  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10209  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10210#define FLD(f) abuf->fields.sfmt_addcwr.f
10211  int UNUSED written = 0;
10212  IADDR UNUSED pc = abuf->addr;
10213  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10214
10215{
10216  HI tmp_tmpd;
10217  tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__word));
10218{
10219  SI tmp_oldregval;
10220  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10221  {
10222    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10223    SET_H_GR (FLD (f_operand2), opval);
10224    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10225  }
10226}
10227{
10228  {
10229    BI opval = LTHI (tmp_tmpd, 0);
10230    CPU (h_nbit) = opval;
10231    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10232  }
10233  {
10234    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10235    CPU (h_zbit) = opval;
10236    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10237  }
10238SET_H_CBIT_MOVE (0);
10239SET_H_VBIT_MOVE (0);
10240{
10241  {
10242    BI opval = 0;
10243    CPU (h_xbit) = opval;
10244    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10245  }
10246  {
10247    BI opval = 0;
10248    SET_H_INSN_PREFIXED_P (opval);
10249    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10250  }
10251}
10252}
10253}
10254
10255#undef FLD
10256}
10257  NEXT (vpc);
10258
10259  CASE (sem, INSN_ANDCDR) : /* and.d ${const32}],${Rd} */
10260{
10261  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10262  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10263#define FLD(f) abuf->fields.sfmt_addcdr.f
10264  int UNUSED written = 0;
10265  IADDR UNUSED pc = abuf->addr;
10266  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
10267
10268{
10269  SI tmp_tmpd;
10270  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
10271  {
10272    SI opval = tmp_tmpd;
10273    SET_H_GR (FLD (f_operand2), opval);
10274    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10275  }
10276{
10277  {
10278    BI opval = LTSI (tmp_tmpd, 0);
10279    CPU (h_nbit) = opval;
10280    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10281  }
10282  {
10283    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10284    CPU (h_zbit) = opval;
10285    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10286  }
10287SET_H_CBIT_MOVE (0);
10288SET_H_VBIT_MOVE (0);
10289{
10290  {
10291    BI opval = 0;
10292    CPU (h_xbit) = opval;
10293    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10294  }
10295  {
10296    BI opval = 0;
10297    SET_H_INSN_PREFIXED_P (opval);
10298    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10299  }
10300}
10301}
10302}
10303
10304#undef FLD
10305}
10306  NEXT (vpc);
10307
10308  CASE (sem, INSN_ANDQ) : /* andq $i,$Rd */
10309{
10310  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10311  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10312#define FLD(f) abuf->fields.sfmt_andq.f
10313  int UNUSED written = 0;
10314  IADDR UNUSED pc = abuf->addr;
10315  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10316
10317{
10318  SI tmp_tmpd;
10319  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), FLD (f_s6));
10320  {
10321    SI opval = tmp_tmpd;
10322    SET_H_GR (FLD (f_operand2), opval);
10323    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10324  }
10325{
10326  {
10327    BI opval = LTSI (tmp_tmpd, 0);
10328    CPU (h_nbit) = opval;
10329    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10330  }
10331  {
10332    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10333    CPU (h_zbit) = opval;
10334    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10335  }
10336SET_H_CBIT_MOVE (0);
10337SET_H_VBIT_MOVE (0);
10338{
10339  {
10340    BI opval = 0;
10341    CPU (h_xbit) = opval;
10342    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10343  }
10344  {
10345    BI opval = 0;
10346    SET_H_INSN_PREFIXED_P (opval);
10347    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10348  }
10349}
10350}
10351}
10352
10353#undef FLD
10354}
10355  NEXT (vpc);
10356
10357  CASE (sem, INSN_ORR_B_R) : /* orr.b $Rs,$Rd */
10358{
10359  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10360  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10361#define FLD(f) abuf->fields.sfmt_add_b_r.f
10362  int UNUSED written = 0;
10363  IADDR UNUSED pc = abuf->addr;
10364  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10365
10366{
10367  QI tmp_tmpd;
10368  tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10369{
10370  SI tmp_oldregval;
10371  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10372  {
10373    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10374    SET_H_GR (FLD (f_operand2), opval);
10375    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10376  }
10377}
10378{
10379  {
10380    BI opval = LTQI (tmp_tmpd, 0);
10381    CPU (h_nbit) = opval;
10382    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10383  }
10384  {
10385    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10386    CPU (h_zbit) = opval;
10387    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10388  }
10389SET_H_CBIT_MOVE (0);
10390SET_H_VBIT_MOVE (0);
10391{
10392  {
10393    BI opval = 0;
10394    CPU (h_xbit) = opval;
10395    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10396  }
10397  {
10398    BI opval = 0;
10399    SET_H_INSN_PREFIXED_P (opval);
10400    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10401  }
10402}
10403}
10404}
10405
10406#undef FLD
10407}
10408  NEXT (vpc);
10409
10410  CASE (sem, INSN_ORR_W_R) : /* orr.w $Rs,$Rd */
10411{
10412  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10413  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10414#define FLD(f) abuf->fields.sfmt_add_b_r.f
10415  int UNUSED written = 0;
10416  IADDR UNUSED pc = abuf->addr;
10417  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10418
10419{
10420  HI tmp_tmpd;
10421  tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10422{
10423  SI tmp_oldregval;
10424  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10425  {
10426    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10427    SET_H_GR (FLD (f_operand2), opval);
10428    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10429  }
10430}
10431{
10432  {
10433    BI opval = LTHI (tmp_tmpd, 0);
10434    CPU (h_nbit) = opval;
10435    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10436  }
10437  {
10438    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10439    CPU (h_zbit) = opval;
10440    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10441  }
10442SET_H_CBIT_MOVE (0);
10443SET_H_VBIT_MOVE (0);
10444{
10445  {
10446    BI opval = 0;
10447    CPU (h_xbit) = opval;
10448    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10449  }
10450  {
10451    BI opval = 0;
10452    SET_H_INSN_PREFIXED_P (opval);
10453    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10454  }
10455}
10456}
10457}
10458
10459#undef FLD
10460}
10461  NEXT (vpc);
10462
10463  CASE (sem, INSN_ORR_D_R) : /* orr.d $Rs,$Rd */
10464{
10465  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10466  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10467#define FLD(f) abuf->fields.sfmt_add_b_r.f
10468  int UNUSED written = 0;
10469  IADDR UNUSED pc = abuf->addr;
10470  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10471
10472{
10473  SI tmp_tmpd;
10474  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10475  {
10476    SI opval = tmp_tmpd;
10477    SET_H_GR (FLD (f_operand2), opval);
10478    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10479  }
10480{
10481  {
10482    BI opval = LTSI (tmp_tmpd, 0);
10483    CPU (h_nbit) = opval;
10484    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10485  }
10486  {
10487    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10488    CPU (h_zbit) = opval;
10489    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10490  }
10491SET_H_CBIT_MOVE (0);
10492SET_H_VBIT_MOVE (0);
10493{
10494  {
10495    BI opval = 0;
10496    CPU (h_xbit) = opval;
10497    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10498  }
10499  {
10500    BI opval = 0;
10501    SET_H_INSN_PREFIXED_P (opval);
10502    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10503  }
10504}
10505}
10506}
10507
10508#undef FLD
10509}
10510  NEXT (vpc);
10511
10512  CASE (sem, INSN_OR_M_B_M) : /* or-m.b [${Rs}${inc}],${Rd} */
10513{
10514  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10515  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10516#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10517  int UNUSED written = 0;
10518  IADDR UNUSED pc = abuf->addr;
10519  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10520
10521{
10522  QI tmp_tmpd;
10523  tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10524  QI tmp_tmp_mem;
10525  BI tmp_postinc;
10526  tmp_postinc = FLD (f_memmode);
10527;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10528;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
10529; if (NEBI (tmp_postinc, 0)) {
10530{
10531if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10532  tmp_addr = ADDSI (tmp_addr, 1);
10533}
10534  {
10535    SI opval = tmp_addr;
10536    SET_H_GR (FLD (f_operand1), opval);
10537    written |= (1 << 11);
10538    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10539  }
10540}
10541}
10542; tmp_tmp_mem; }));
10543{
10544  SI tmp_oldregval;
10545  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10546  {
10547    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10548    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10549    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10550  }
10551}
10552{
10553  {
10554    BI opval = LTQI (tmp_tmpd, 0);
10555    CPU (h_nbit) = opval;
10556    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10557  }
10558  {
10559    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10560    CPU (h_zbit) = opval;
10561    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10562  }
10563SET_H_CBIT_MOVE (0);
10564SET_H_VBIT_MOVE (0);
10565{
10566  {
10567    BI opval = 0;
10568    CPU (h_xbit) = opval;
10569    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10570  }
10571  {
10572    BI opval = 0;
10573    SET_H_INSN_PREFIXED_P (opval);
10574    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10575  }
10576}
10577}
10578}
10579
10580  abuf->written = written;
10581#undef FLD
10582}
10583  NEXT (vpc);
10584
10585  CASE (sem, INSN_OR_M_W_M) : /* or-m.w [${Rs}${inc}],${Rd} */
10586{
10587  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10588  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10589#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10590  int UNUSED written = 0;
10591  IADDR UNUSED pc = abuf->addr;
10592  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10593
10594{
10595  HI tmp_tmpd;
10596  tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10597  HI tmp_tmp_mem;
10598  BI tmp_postinc;
10599  tmp_postinc = FLD (f_memmode);
10600;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10601;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
10602; if (NEBI (tmp_postinc, 0)) {
10603{
10604if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10605  tmp_addr = ADDSI (tmp_addr, 2);
10606}
10607  {
10608    SI opval = tmp_addr;
10609    SET_H_GR (FLD (f_operand1), opval);
10610    written |= (1 << 11);
10611    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10612  }
10613}
10614}
10615; tmp_tmp_mem; }));
10616{
10617  SI tmp_oldregval;
10618  tmp_oldregval = GET_H_RAW_GR_PC (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10619  {
10620    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10621    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10622    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10623  }
10624}
10625{
10626  {
10627    BI opval = LTHI (tmp_tmpd, 0);
10628    CPU (h_nbit) = opval;
10629    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10630  }
10631  {
10632    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10633    CPU (h_zbit) = opval;
10634    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10635  }
10636SET_H_CBIT_MOVE (0);
10637SET_H_VBIT_MOVE (0);
10638{
10639  {
10640    BI opval = 0;
10641    CPU (h_xbit) = opval;
10642    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10643  }
10644  {
10645    BI opval = 0;
10646    SET_H_INSN_PREFIXED_P (opval);
10647    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10648  }
10649}
10650}
10651}
10652
10653  abuf->written = written;
10654#undef FLD
10655}
10656  NEXT (vpc);
10657
10658  CASE (sem, INSN_OR_M_D_M) : /* or-m.d [${Rs}${inc}],${Rd} */
10659{
10660  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10661  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10662#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10663  int UNUSED written = 0;
10664  IADDR UNUSED pc = abuf->addr;
10665  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10666
10667{
10668  SI tmp_tmpd;
10669  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10670  SI tmp_tmp_mem;
10671  BI tmp_postinc;
10672  tmp_postinc = FLD (f_memmode);
10673;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
10674;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
10675; if (NEBI (tmp_postinc, 0)) {
10676{
10677if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10678  tmp_addr = ADDSI (tmp_addr, 4);
10679}
10680  {
10681    SI opval = tmp_addr;
10682    SET_H_GR (FLD (f_operand1), opval);
10683    written |= (1 << 10);
10684    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10685  }
10686}
10687}
10688; tmp_tmp_mem; }));
10689  {
10690    SI opval = tmp_tmpd;
10691    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10692    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10693  }
10694{
10695  {
10696    BI opval = LTSI (tmp_tmpd, 0);
10697    CPU (h_nbit) = opval;
10698    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10699  }
10700  {
10701    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10702    CPU (h_zbit) = opval;
10703    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10704  }
10705SET_H_CBIT_MOVE (0);
10706SET_H_VBIT_MOVE (0);
10707{
10708  {
10709    BI opval = 0;
10710    CPU (h_xbit) = opval;
10711    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10712  }
10713  {
10714    BI opval = 0;
10715    SET_H_INSN_PREFIXED_P (opval);
10716    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10717  }
10718}
10719}
10720}
10721
10722  abuf->written = written;
10723#undef FLD
10724}
10725  NEXT (vpc);
10726
10727  CASE (sem, INSN_ORCBR) : /* or.b ${sconst8}],${Rd} */
10728{
10729  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10730  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10731#define FLD(f) abuf->fields.sfmt_addcbr.f
10732  int UNUSED written = 0;
10733  IADDR UNUSED pc = abuf->addr;
10734  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10735
10736{
10737  QI tmp_tmpd;
10738  tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__byte));
10739{
10740  SI tmp_oldregval;
10741  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10742  {
10743    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10744    SET_H_GR (FLD (f_operand2), opval);
10745    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10746  }
10747}
10748{
10749  {
10750    BI opval = LTQI (tmp_tmpd, 0);
10751    CPU (h_nbit) = opval;
10752    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10753  }
10754  {
10755    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10756    CPU (h_zbit) = opval;
10757    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10758  }
10759SET_H_CBIT_MOVE (0);
10760SET_H_VBIT_MOVE (0);
10761{
10762  {
10763    BI opval = 0;
10764    CPU (h_xbit) = opval;
10765    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10766  }
10767  {
10768    BI opval = 0;
10769    SET_H_INSN_PREFIXED_P (opval);
10770    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10771  }
10772}
10773}
10774}
10775
10776#undef FLD
10777}
10778  NEXT (vpc);
10779
10780  CASE (sem, INSN_ORCWR) : /* or.w ${sconst16}],${Rd} */
10781{
10782  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10783  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10784#define FLD(f) abuf->fields.sfmt_addcwr.f
10785  int UNUSED written = 0;
10786  IADDR UNUSED pc = abuf->addr;
10787  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10788
10789{
10790  HI tmp_tmpd;
10791  tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__word));
10792{
10793  SI tmp_oldregval;
10794  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
10795  {
10796    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10797    SET_H_GR (FLD (f_operand2), opval);
10798    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10799  }
10800}
10801{
10802  {
10803    BI opval = LTHI (tmp_tmpd, 0);
10804    CPU (h_nbit) = opval;
10805    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10806  }
10807  {
10808    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10809    CPU (h_zbit) = opval;
10810    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10811  }
10812SET_H_CBIT_MOVE (0);
10813SET_H_VBIT_MOVE (0);
10814{
10815  {
10816    BI opval = 0;
10817    CPU (h_xbit) = opval;
10818    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10819  }
10820  {
10821    BI opval = 0;
10822    SET_H_INSN_PREFIXED_P (opval);
10823    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10824  }
10825}
10826}
10827}
10828
10829#undef FLD
10830}
10831  NEXT (vpc);
10832
10833  CASE (sem, INSN_ORCDR) : /* or.d ${const32}],${Rd} */
10834{
10835  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10836  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10837#define FLD(f) abuf->fields.sfmt_addcdr.f
10838  int UNUSED written = 0;
10839  IADDR UNUSED pc = abuf->addr;
10840  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
10841
10842{
10843  SI tmp_tmpd;
10844  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
10845  {
10846    SI opval = tmp_tmpd;
10847    SET_H_GR (FLD (f_operand2), opval);
10848    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10849  }
10850{
10851  {
10852    BI opval = LTSI (tmp_tmpd, 0);
10853    CPU (h_nbit) = opval;
10854    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10855  }
10856  {
10857    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10858    CPU (h_zbit) = opval;
10859    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10860  }
10861SET_H_CBIT_MOVE (0);
10862SET_H_VBIT_MOVE (0);
10863{
10864  {
10865    BI opval = 0;
10866    CPU (h_xbit) = opval;
10867    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10868  }
10869  {
10870    BI opval = 0;
10871    SET_H_INSN_PREFIXED_P (opval);
10872    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10873  }
10874}
10875}
10876}
10877
10878#undef FLD
10879}
10880  NEXT (vpc);
10881
10882  CASE (sem, INSN_ORQ) : /* orq $i,$Rd */
10883{
10884  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10885  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10886#define FLD(f) abuf->fields.sfmt_andq.f
10887  int UNUSED written = 0;
10888  IADDR UNUSED pc = abuf->addr;
10889  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10890
10891{
10892  SI tmp_tmpd;
10893  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), FLD (f_s6));
10894  {
10895    SI opval = tmp_tmpd;
10896    SET_H_GR (FLD (f_operand2), opval);
10897    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10898  }
10899{
10900  {
10901    BI opval = LTSI (tmp_tmpd, 0);
10902    CPU (h_nbit) = opval;
10903    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10904  }
10905  {
10906    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10907    CPU (h_zbit) = opval;
10908    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10909  }
10910SET_H_CBIT_MOVE (0);
10911SET_H_VBIT_MOVE (0);
10912{
10913  {
10914    BI opval = 0;
10915    CPU (h_xbit) = opval;
10916    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10917  }
10918  {
10919    BI opval = 0;
10920    SET_H_INSN_PREFIXED_P (opval);
10921    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10922  }
10923}
10924}
10925}
10926
10927#undef FLD
10928}
10929  NEXT (vpc);
10930
10931  CASE (sem, INSN_XOR) : /* xor $Rs,$Rd */
10932{
10933  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10934  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10935#define FLD(f) abuf->fields.sfmt_muls_b.f
10936  int UNUSED written = 0;
10937  IADDR UNUSED pc = abuf->addr;
10938  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10939
10940{
10941  SI tmp_tmpd;
10942  tmp_tmpd = XORSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10943  {
10944    SI opval = tmp_tmpd;
10945    SET_H_GR (FLD (f_operand2), opval);
10946    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10947  }
10948{
10949  {
10950    BI opval = LTSI (tmp_tmpd, 0);
10951    CPU (h_nbit) = opval;
10952    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10953  }
10954  {
10955    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10956    CPU (h_zbit) = opval;
10957    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10958  }
10959SET_H_CBIT_MOVE (0);
10960SET_H_VBIT_MOVE (0);
10961{
10962  {
10963    BI opval = 0;
10964    CPU (h_xbit) = opval;
10965    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10966  }
10967  {
10968    BI opval = 0;
10969    SET_H_INSN_PREFIXED_P (opval);
10970    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10971  }
10972}
10973}
10974}
10975
10976#undef FLD
10977}
10978  NEXT (vpc);
10979
10980  CASE (sem, INSN_SWAP) : /* swap${swapoption} ${Rs} */
10981{
10982  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10983  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10984#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
10985  int UNUSED written = 0;
10986  IADDR UNUSED pc = abuf->addr;
10987  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10988
10989{
10990  SI tmp_tmps;
10991  SI tmp_tmpd;
10992  tmp_tmps = GET_H_GR (FLD (f_operand1));
10993  tmp_tmpd = ({   SI tmp_tmpcode;
10994  SI tmp_tmpval;
10995  SI tmp_tmpres;
10996  tmp_tmpcode = FLD (f_operand2);
10997;   tmp_tmpval = tmp_tmps;
10998; if (EQSI (tmp_tmpcode, 0)) {
10999  tmp_tmpres = (cgen_rtx_error (current_cpu, "SWAP without swap modifier isn't implemented"), 0);
11000}
11001 else if (EQSI (tmp_tmpcode, 1)) {
11002  tmp_tmpres = ({   SI tmp_tmpr;
11003  tmp_tmpr = tmp_tmpval;
11004; 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)))))))); });
11005}
11006 else if (EQSI (tmp_tmpcode, 2)) {
11007  tmp_tmpres = ({   SI tmp_tmpb;
11008  tmp_tmpb = tmp_tmpval;
11009; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11010}
11011 else if (EQSI (tmp_tmpcode, 3)) {
11012  tmp_tmpres = ({   SI tmp_tmpr;
11013  tmp_tmpr = ({   SI tmp_tmpb;
11014  tmp_tmpb = tmp_tmpval;
11015; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11016; 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)))))))); });
11017}
11018 else if (EQSI (tmp_tmpcode, 4)) {
11019  tmp_tmpres = ({   SI tmp_tmpb;
11020  tmp_tmpb = tmp_tmpval;
11021; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11022}
11023 else if (EQSI (tmp_tmpcode, 5)) {
11024  tmp_tmpres = ({   SI tmp_tmpr;
11025  tmp_tmpr = ({   SI tmp_tmpb;
11026  tmp_tmpb = tmp_tmpval;
11027; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11028; 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)))))))); });
11029}
11030 else if (EQSI (tmp_tmpcode, 6)) {
11031  tmp_tmpres = ({   SI tmp_tmpb;
11032  tmp_tmpb = ({   SI tmp_tmpb;
11033  tmp_tmpb = tmp_tmpval;
11034; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11035; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11036}
11037 else if (EQSI (tmp_tmpcode, 7)) {
11038  tmp_tmpres = ({   SI tmp_tmpr;
11039  tmp_tmpr = ({   SI tmp_tmpb;
11040  tmp_tmpb = ({   SI tmp_tmpb;
11041  tmp_tmpb = tmp_tmpval;
11042; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11043; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11044; 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)))))))); });
11045}
11046 else if (EQSI (tmp_tmpcode, 8)) {
11047  tmp_tmpres = INVSI (tmp_tmpval);
11048}
11049 else if (EQSI (tmp_tmpcode, 9)) {
11050  tmp_tmpres = ({   SI tmp_tmpr;
11051  tmp_tmpr = INVSI (tmp_tmpval);
11052; 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)))))))); });
11053}
11054 else if (EQSI (tmp_tmpcode, 10)) {
11055  tmp_tmpres = ({   SI tmp_tmpb;
11056  tmp_tmpb = INVSI (tmp_tmpval);
11057; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11058}
11059 else if (EQSI (tmp_tmpcode, 11)) {
11060  tmp_tmpres = ({   SI tmp_tmpr;
11061  tmp_tmpr = ({   SI tmp_tmpb;
11062  tmp_tmpb = INVSI (tmp_tmpval);
11063; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11064; 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)))))))); });
11065}
11066 else if (EQSI (tmp_tmpcode, 12)) {
11067  tmp_tmpres = ({   SI tmp_tmpb;
11068  tmp_tmpb = INVSI (tmp_tmpval);
11069; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11070}
11071 else if (EQSI (tmp_tmpcode, 13)) {
11072  tmp_tmpres = ({   SI tmp_tmpr;
11073  tmp_tmpr = ({   SI tmp_tmpb;
11074  tmp_tmpb = INVSI (tmp_tmpval);
11075; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11076; 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)))))))); });
11077}
11078 else if (EQSI (tmp_tmpcode, 14)) {
11079  tmp_tmpres = ({   SI tmp_tmpb;
11080  tmp_tmpb = ({   SI tmp_tmpb;
11081  tmp_tmpb = INVSI (tmp_tmpval);
11082; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11083; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11084}
11085 else if (EQSI (tmp_tmpcode, 15)) {
11086  tmp_tmpres = ({   SI tmp_tmpr;
11087  tmp_tmpr = ({   SI tmp_tmpb;
11088  tmp_tmpb = ({   SI tmp_tmpb;
11089  tmp_tmpb = INVSI (tmp_tmpval);
11090; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11091; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11092; 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)))))))); });
11093}
11094; tmp_tmpres; });
11095  {
11096    SI opval = tmp_tmpd;
11097    SET_H_GR (FLD (f_operand1), opval);
11098    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11099  }
11100{
11101  {
11102    BI opval = LTSI (tmp_tmpd, 0);
11103    CPU (h_nbit) = opval;
11104    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11105  }
11106  {
11107    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11108    CPU (h_zbit) = opval;
11109    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11110  }
11111SET_H_CBIT_MOVE (0);
11112SET_H_VBIT_MOVE (0);
11113{
11114  {
11115    BI opval = 0;
11116    CPU (h_xbit) = opval;
11117    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11118  }
11119  {
11120    BI opval = 0;
11121    SET_H_INSN_PREFIXED_P (opval);
11122    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11123  }
11124}
11125}
11126}
11127
11128#undef FLD
11129}
11130  NEXT (vpc);
11131
11132  CASE (sem, INSN_ASRR_B_R) : /* asrr.b $Rs,$Rd */
11133{
11134  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11135  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11136#define FLD(f) abuf->fields.sfmt_add_b_r.f
11137  int UNUSED written = 0;
11138  IADDR UNUSED pc = abuf->addr;
11139  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11140
11141{
11142  QI tmp_tmpd;
11143  SI tmp_cnt1;
11144  SI tmp_cnt2;
11145  tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11146  tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11147  tmp_tmpd = SRASI (EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11148{
11149  SI tmp_oldregval;
11150  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11151  {
11152    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11153    SET_H_GR (FLD (f_operand2), opval);
11154    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11155  }
11156}
11157{
11158  {
11159    BI opval = LTQI (tmp_tmpd, 0);
11160    CPU (h_nbit) = opval;
11161    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11162  }
11163  {
11164    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11165    CPU (h_zbit) = opval;
11166    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11167  }
11168SET_H_CBIT_MOVE (0);
11169SET_H_VBIT_MOVE (0);
11170{
11171  {
11172    BI opval = 0;
11173    CPU (h_xbit) = opval;
11174    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11175  }
11176  {
11177    BI opval = 0;
11178    SET_H_INSN_PREFIXED_P (opval);
11179    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11180  }
11181}
11182}
11183}
11184
11185#undef FLD
11186}
11187  NEXT (vpc);
11188
11189  CASE (sem, INSN_ASRR_W_R) : /* asrr.w $Rs,$Rd */
11190{
11191  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11192  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11193#define FLD(f) abuf->fields.sfmt_add_b_r.f
11194  int UNUSED written = 0;
11195  IADDR UNUSED pc = abuf->addr;
11196  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11197
11198{
11199  HI tmp_tmpd;
11200  SI tmp_cnt1;
11201  SI tmp_cnt2;
11202  tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11203  tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11204  tmp_tmpd = SRASI (EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11205{
11206  SI tmp_oldregval;
11207  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11208  {
11209    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11210    SET_H_GR (FLD (f_operand2), opval);
11211    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11212  }
11213}
11214{
11215  {
11216    BI opval = LTHI (tmp_tmpd, 0);
11217    CPU (h_nbit) = opval;
11218    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11219  }
11220  {
11221    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11222    CPU (h_zbit) = opval;
11223    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11224  }
11225SET_H_CBIT_MOVE (0);
11226SET_H_VBIT_MOVE (0);
11227{
11228  {
11229    BI opval = 0;
11230    CPU (h_xbit) = opval;
11231    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11232  }
11233  {
11234    BI opval = 0;
11235    SET_H_INSN_PREFIXED_P (opval);
11236    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11237  }
11238}
11239}
11240}
11241
11242#undef FLD
11243}
11244  NEXT (vpc);
11245
11246  CASE (sem, INSN_ASRR_D_R) : /* asrr.d $Rs,$Rd */
11247{
11248  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11249  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11250#define FLD(f) abuf->fields.sfmt_add_b_r.f
11251  int UNUSED written = 0;
11252  IADDR UNUSED pc = abuf->addr;
11253  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11254
11255{
11256  SI tmp_tmpd;
11257  SI tmp_cnt1;
11258  SI tmp_cnt2;
11259  tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11260  tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11261  tmp_tmpd = SRASI (EXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11262  {
11263    SI opval = tmp_tmpd;
11264    SET_H_GR (FLD (f_operand2), opval);
11265    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11266  }
11267{
11268  {
11269    BI opval = LTSI (tmp_tmpd, 0);
11270    CPU (h_nbit) = opval;
11271    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11272  }
11273  {
11274    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11275    CPU (h_zbit) = opval;
11276    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11277  }
11278SET_H_CBIT_MOVE (0);
11279SET_H_VBIT_MOVE (0);
11280{
11281  {
11282    BI opval = 0;
11283    CPU (h_xbit) = opval;
11284    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11285  }
11286  {
11287    BI opval = 0;
11288    SET_H_INSN_PREFIXED_P (opval);
11289    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11290  }
11291}
11292}
11293}
11294
11295#undef FLD
11296}
11297  NEXT (vpc);
11298
11299  CASE (sem, INSN_ASRQ) : /* asrq $c,${Rd} */
11300{
11301  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11302  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11303#define FLD(f) abuf->fields.sfmt_asrq.f
11304  int UNUSED written = 0;
11305  IADDR UNUSED pc = abuf->addr;
11306  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11307
11308{
11309  SI tmp_tmpd;
11310  tmp_tmpd = SRASI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11311  {
11312    SI opval = tmp_tmpd;
11313    SET_H_GR (FLD (f_operand2), opval);
11314    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11315  }
11316{
11317  {
11318    BI opval = LTSI (tmp_tmpd, 0);
11319    CPU (h_nbit) = opval;
11320    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11321  }
11322  {
11323    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11324    CPU (h_zbit) = opval;
11325    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11326  }
11327SET_H_CBIT_MOVE (0);
11328SET_H_VBIT_MOVE (0);
11329{
11330  {
11331    BI opval = 0;
11332    CPU (h_xbit) = opval;
11333    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11334  }
11335  {
11336    BI opval = 0;
11337    SET_H_INSN_PREFIXED_P (opval);
11338    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11339  }
11340}
11341}
11342}
11343
11344#undef FLD
11345}
11346  NEXT (vpc);
11347
11348  CASE (sem, INSN_LSRR_B_R) : /* lsrr.b $Rs,$Rd */
11349{
11350  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11351  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11352#define FLD(f) abuf->fields.sfmt_add_b_r.f
11353  int UNUSED written = 0;
11354  IADDR UNUSED pc = abuf->addr;
11355  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11356
11357{
11358  SI tmp_tmpd;
11359  SI tmp_cnt;
11360  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11361  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11362{
11363  SI tmp_oldregval;
11364  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11365  {
11366    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11367    SET_H_GR (FLD (f_operand2), opval);
11368    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11369  }
11370}
11371{
11372  {
11373    BI opval = LTQI (tmp_tmpd, 0);
11374    CPU (h_nbit) = opval;
11375    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11376  }
11377  {
11378    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11379    CPU (h_zbit) = opval;
11380    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11381  }
11382SET_H_CBIT_MOVE (0);
11383SET_H_VBIT_MOVE (0);
11384{
11385  {
11386    BI opval = 0;
11387    CPU (h_xbit) = opval;
11388    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11389  }
11390  {
11391    BI opval = 0;
11392    SET_H_INSN_PREFIXED_P (opval);
11393    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11394  }
11395}
11396}
11397}
11398
11399#undef FLD
11400}
11401  NEXT (vpc);
11402
11403  CASE (sem, INSN_LSRR_W_R) : /* lsrr.w $Rs,$Rd */
11404{
11405  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11406  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11407#define FLD(f) abuf->fields.sfmt_add_b_r.f
11408  int UNUSED written = 0;
11409  IADDR UNUSED pc = abuf->addr;
11410  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11411
11412{
11413  SI tmp_tmpd;
11414  SI tmp_cnt;
11415  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11416  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11417{
11418  SI tmp_oldregval;
11419  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11420  {
11421    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11422    SET_H_GR (FLD (f_operand2), opval);
11423    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11424  }
11425}
11426{
11427  {
11428    BI opval = LTHI (tmp_tmpd, 0);
11429    CPU (h_nbit) = opval;
11430    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11431  }
11432  {
11433    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11434    CPU (h_zbit) = opval;
11435    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11436  }
11437SET_H_CBIT_MOVE (0);
11438SET_H_VBIT_MOVE (0);
11439{
11440  {
11441    BI opval = 0;
11442    CPU (h_xbit) = opval;
11443    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11444  }
11445  {
11446    BI opval = 0;
11447    SET_H_INSN_PREFIXED_P (opval);
11448    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11449  }
11450}
11451}
11452}
11453
11454#undef FLD
11455}
11456  NEXT (vpc);
11457
11458  CASE (sem, INSN_LSRR_D_R) : /* lsrr.d $Rs,$Rd */
11459{
11460  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11461  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11462#define FLD(f) abuf->fields.sfmt_add_b_r.f
11463  int UNUSED written = 0;
11464  IADDR UNUSED pc = abuf->addr;
11465  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11466
11467{
11468  SI tmp_tmpd;
11469  SI tmp_cnt;
11470  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11471  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11472  {
11473    SI opval = tmp_tmpd;
11474    SET_H_GR (FLD (f_operand2), opval);
11475    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11476  }
11477{
11478  {
11479    BI opval = LTSI (tmp_tmpd, 0);
11480    CPU (h_nbit) = opval;
11481    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11482  }
11483  {
11484    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11485    CPU (h_zbit) = opval;
11486    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11487  }
11488SET_H_CBIT_MOVE (0);
11489SET_H_VBIT_MOVE (0);
11490{
11491  {
11492    BI opval = 0;
11493    CPU (h_xbit) = opval;
11494    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11495  }
11496  {
11497    BI opval = 0;
11498    SET_H_INSN_PREFIXED_P (opval);
11499    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11500  }
11501}
11502}
11503}
11504
11505#undef FLD
11506}
11507  NEXT (vpc);
11508
11509  CASE (sem, INSN_LSRQ) : /* lsrq $c,${Rd} */
11510{
11511  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11512  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11513#define FLD(f) abuf->fields.sfmt_asrq.f
11514  int UNUSED written = 0;
11515  IADDR UNUSED pc = abuf->addr;
11516  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11517
11518{
11519  SI tmp_tmpd;
11520  tmp_tmpd = SRLSI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11521  {
11522    SI opval = tmp_tmpd;
11523    SET_H_GR (FLD (f_operand2), opval);
11524    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11525  }
11526{
11527  {
11528    BI opval = LTSI (tmp_tmpd, 0);
11529    CPU (h_nbit) = opval;
11530    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11531  }
11532  {
11533    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11534    CPU (h_zbit) = opval;
11535    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11536  }
11537SET_H_CBIT_MOVE (0);
11538SET_H_VBIT_MOVE (0);
11539{
11540  {
11541    BI opval = 0;
11542    CPU (h_xbit) = opval;
11543    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11544  }
11545  {
11546    BI opval = 0;
11547    SET_H_INSN_PREFIXED_P (opval);
11548    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11549  }
11550}
11551}
11552}
11553
11554#undef FLD
11555}
11556  NEXT (vpc);
11557
11558  CASE (sem, INSN_LSLR_B_R) : /* lslr.b $Rs,$Rd */
11559{
11560  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11561  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11562#define FLD(f) abuf->fields.sfmt_add_b_r.f
11563  int UNUSED written = 0;
11564  IADDR UNUSED pc = abuf->addr;
11565  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11566
11567{
11568  SI tmp_tmpd;
11569  SI tmp_cnt;
11570  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11571  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11572{
11573  SI tmp_oldregval;
11574  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11575  {
11576    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11577    SET_H_GR (FLD (f_operand2), opval);
11578    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11579  }
11580}
11581{
11582  {
11583    BI opval = LTQI (tmp_tmpd, 0);
11584    CPU (h_nbit) = opval;
11585    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11586  }
11587  {
11588    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11589    CPU (h_zbit) = opval;
11590    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11591  }
11592SET_H_CBIT_MOVE (0);
11593SET_H_VBIT_MOVE (0);
11594{
11595  {
11596    BI opval = 0;
11597    CPU (h_xbit) = opval;
11598    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11599  }
11600  {
11601    BI opval = 0;
11602    SET_H_INSN_PREFIXED_P (opval);
11603    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11604  }
11605}
11606}
11607}
11608
11609#undef FLD
11610}
11611  NEXT (vpc);
11612
11613  CASE (sem, INSN_LSLR_W_R) : /* lslr.w $Rs,$Rd */
11614{
11615  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11616  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11617#define FLD(f) abuf->fields.sfmt_add_b_r.f
11618  int UNUSED written = 0;
11619  IADDR UNUSED pc = abuf->addr;
11620  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11621
11622{
11623  SI tmp_tmpd;
11624  SI tmp_cnt;
11625  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11626  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11627{
11628  SI tmp_oldregval;
11629  tmp_oldregval = GET_H_RAW_GR_PC (FLD (f_operand2));
11630  {
11631    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11632    SET_H_GR (FLD (f_operand2), opval);
11633    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11634  }
11635}
11636{
11637  {
11638    BI opval = LTHI (tmp_tmpd, 0);
11639    CPU (h_nbit) = opval;
11640    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11641  }
11642  {
11643    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11644    CPU (h_zbit) = opval;
11645    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11646  }
11647SET_H_CBIT_MOVE (0);
11648SET_H_VBIT_MOVE (0);
11649{
11650  {
11651    BI opval = 0;
11652    CPU (h_xbit) = opval;
11653    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11654  }
11655  {
11656    BI opval = 0;
11657    SET_H_INSN_PREFIXED_P (opval);
11658    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11659  }
11660}
11661}
11662}
11663
11664#undef FLD
11665}
11666  NEXT (vpc);
11667
11668  CASE (sem, INSN_LSLR_D_R) : /* lslr.d $Rs,$Rd */
11669{
11670  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11671  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11672#define FLD(f) abuf->fields.sfmt_add_b_r.f
11673  int UNUSED written = 0;
11674  IADDR UNUSED pc = abuf->addr;
11675  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11676
11677{
11678  SI tmp_tmpd;
11679  SI tmp_cnt;
11680  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11681  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11682  {
11683    SI opval = tmp_tmpd;
11684    SET_H_GR (FLD (f_operand2), opval);
11685    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11686  }
11687{
11688  {
11689    BI opval = LTSI (tmp_tmpd, 0);
11690    CPU (h_nbit) = opval;
11691    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11692  }
11693  {
11694    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11695    CPU (h_zbit) = opval;
11696    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11697  }
11698SET_H_CBIT_MOVE (0);
11699SET_H_VBIT_MOVE (0);
11700{
11701  {
11702    BI opval = 0;
11703    CPU (h_xbit) = opval;
11704    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11705  }
11706  {
11707    BI opval = 0;
11708    SET_H_INSN_PREFIXED_P (opval);
11709    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11710  }
11711}
11712}
11713}
11714
11715#undef FLD
11716}
11717  NEXT (vpc);
11718
11719  CASE (sem, INSN_LSLQ) : /* lslq $c,${Rd} */
11720{
11721  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11722  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11723#define FLD(f) abuf->fields.sfmt_asrq.f
11724  int UNUSED written = 0;
11725  IADDR UNUSED pc = abuf->addr;
11726  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11727
11728{
11729  SI tmp_tmpd;
11730  tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11731  {
11732    SI opval = tmp_tmpd;
11733    SET_H_GR (FLD (f_operand2), opval);
11734    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11735  }
11736{
11737  {
11738    BI opval = LTSI (tmp_tmpd, 0);
11739    CPU (h_nbit) = opval;
11740    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11741  }
11742  {
11743    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11744    CPU (h_zbit) = opval;
11745    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11746  }
11747SET_H_CBIT_MOVE (0);
11748SET_H_VBIT_MOVE (0);
11749{
11750  {
11751    BI opval = 0;
11752    CPU (h_xbit) = opval;
11753    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11754  }
11755  {
11756    BI opval = 0;
11757    SET_H_INSN_PREFIXED_P (opval);
11758    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11759  }
11760}
11761}
11762}
11763
11764#undef FLD
11765}
11766  NEXT (vpc);
11767
11768  CASE (sem, INSN_BTST) : /* $Rs,$Rd */
11769{
11770  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11771  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11772#define FLD(f) abuf->fields.sfmt_add_b_r.f
11773  int UNUSED written = 0;
11774  IADDR UNUSED pc = abuf->addr;
11775  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11776
11777{
11778  SI tmp_tmpd;
11779  SI tmp_cnt;
11780  tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), SUBSI (31, ANDSI (GET_H_GR (FLD (f_operand1)), 31)));
11781{
11782  {
11783    BI opval = LTSI (tmp_tmpd, 0);
11784    CPU (h_nbit) = opval;
11785    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11786  }
11787  {
11788    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11789    CPU (h_zbit) = opval;
11790    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11791  }
11792SET_H_CBIT_MOVE (0);
11793SET_H_VBIT_MOVE (0);
11794{
11795  {
11796    BI opval = 0;
11797    CPU (h_xbit) = opval;
11798    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11799  }
11800  {
11801    BI opval = 0;
11802    SET_H_INSN_PREFIXED_P (opval);
11803    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11804  }
11805}
11806}
11807}
11808
11809#undef FLD
11810}
11811  NEXT (vpc);
11812
11813  CASE (sem, INSN_BTSTQ) : /* btstq $c,${Rd} */
11814{
11815  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11816  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11817#define FLD(f) abuf->fields.sfmt_asrq.f
11818  int UNUSED written = 0;
11819  IADDR UNUSED pc = abuf->addr;
11820  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11821
11822{
11823  SI tmp_tmpd;
11824  tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), SUBSI (31, FLD (f_u5)));
11825{
11826  {
11827    BI opval = LTSI (tmp_tmpd, 0);
11828    CPU (h_nbit) = opval;
11829    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11830  }
11831  {
11832    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11833    CPU (h_zbit) = opval;
11834    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11835  }
11836SET_H_CBIT_MOVE (0);
11837SET_H_VBIT_MOVE (0);
11838{
11839  {
11840    BI opval = 0;
11841    CPU (h_xbit) = opval;
11842    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11843  }
11844  {
11845    BI opval = 0;
11846    SET_H_INSN_PREFIXED_P (opval);
11847    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11848  }
11849}
11850}
11851}
11852
11853#undef FLD
11854}
11855  NEXT (vpc);
11856
11857  CASE (sem, INSN_SETF) : /* setf ${list-of-flags} */
11858{
11859  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11860  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11861#define FLD(f) abuf->fields.sfmt_setf.f
11862  int UNUSED written = 0;
11863  IADDR UNUSED pc = abuf->addr;
11864  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11865
11866{
11867  SI tmp_tmp;
11868  tmp_tmp = FLD (f_dstsrc);
11869if (NESI (ANDSI (tmp_tmp, SLLSI (1, 0)), 0)) {
11870  {
11871    BI opval = 1;
11872    CPU (h_cbit) = opval;
11873    written |= (1 << 1);
11874    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
11875  }
11876}
11877if (NESI (ANDSI (tmp_tmp, SLLSI (1, 1)), 0)) {
11878  {
11879    BI opval = 1;
11880    CPU (h_vbit) = opval;
11881    written |= (1 << 7);
11882    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
11883  }
11884}
11885if (NESI (ANDSI (tmp_tmp, SLLSI (1, 2)), 0)) {
11886  {
11887    BI opval = 1;
11888    CPU (h_zbit) = opval;
11889    written |= (1 << 9);
11890    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11891  }
11892}
11893if (NESI (ANDSI (tmp_tmp, SLLSI (1, 3)), 0)) {
11894  {
11895    BI opval = 1;
11896    CPU (h_nbit) = opval;
11897    written |= (1 << 3);
11898    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11899  }
11900}
11901if (NESI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
11902  {
11903    BI opval = 1;
11904    CPU (h_xbit) = opval;
11905    written |= (1 << 8);
11906    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11907  }
11908}
11909if (NESI (ANDSI (tmp_tmp, SLLSI (1, 5)), 0)) {
11910  {
11911    BI opval = 1;
11912    SET_H_IBIT (opval);
11913    written |= (1 << 2);
11914    CGEN_TRACE_RESULT (current_cpu, abuf, "ibit", 'x', opval);
11915  }
11916}
11917if (NESI (ANDSI (tmp_tmp, SLLSI (1, 6)), 0)) {
11918  {
11919    BI opval = 1;
11920    SET_H_UBIT (opval);
11921    written |= (1 << 6);
11922    CGEN_TRACE_RESULT (current_cpu, abuf, "ubit", 'x', opval);
11923  }
11924}
11925if (NESI (ANDSI (tmp_tmp, SLLSI (1, 7)), 0)) {
11926  {
11927    BI opval = 1;
11928    CPU (h_pbit) = opval;
11929    written |= (1 << 4);
11930    CGEN_TRACE_RESULT (current_cpu, abuf, "pbit", 'x', opval);
11931  }
11932}
11933  {
11934    BI opval = 0;
11935    SET_H_INSN_PREFIXED_P (opval);
11936    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11937  }
11938if (EQSI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
11939  {
11940    BI opval = 0;
11941    CPU (h_xbit) = opval;
11942    written |= (1 << 8);
11943    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11944  }
11945}
11946}
11947
11948  abuf->written = written;
11949#undef FLD
11950}
11951  NEXT (vpc);
11952
11953  CASE (sem, INSN_CLEARF) : /* clearf ${list-of-flags} */
11954{
11955  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11956  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11957#define FLD(f) abuf->fields.sfmt_setf.f
11958  int UNUSED written = 0;
11959  IADDR UNUSED pc = abuf->addr;
11960  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11961
11962{
11963  SI tmp_tmp;
11964  tmp_tmp = FLD (f_dstsrc);
11965if (NESI (ANDSI (tmp_tmp, SLLSI (1, 0)), 0)) {
11966  {
11967    BI opval = 0;
11968    CPU (h_cbit) = opval;
11969    written |= (1 << 1);
11970    CGEN_TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
11971  }
11972}
11973if (NESI (ANDSI (tmp_tmp, SLLSI (1, 1)), 0)) {
11974  {
11975    BI opval = 0;
11976    CPU (h_vbit) = opval;
11977    written |= (1 << 7);
11978    CGEN_TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
11979  }
11980}
11981if (NESI (ANDSI (tmp_tmp, SLLSI (1, 2)), 0)) {
11982  {
11983    BI opval = 0;
11984    CPU (h_zbit) = opval;
11985    written |= (1 << 9);
11986    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11987  }
11988}
11989if (NESI (ANDSI (tmp_tmp, SLLSI (1, 3)), 0)) {
11990  {
11991    BI opval = 0;
11992    CPU (h_nbit) = opval;
11993    written |= (1 << 3);
11994    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11995  }
11996}
11997if (NESI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
11998  {
11999    BI opval = 0;
12000    CPU (h_xbit) = opval;
12001    written |= (1 << 8);
12002    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12003  }
12004}
12005if (NESI (ANDSI (tmp_tmp, SLLSI (1, 5)), 0)) {
12006  {
12007    BI opval = 0;
12008    SET_H_IBIT (opval);
12009    written |= (1 << 2);
12010    CGEN_TRACE_RESULT (current_cpu, abuf, "ibit", 'x', opval);
12011  }
12012}
12013if (NESI (ANDSI (tmp_tmp, SLLSI (1, 6)), 0)) {
12014  {
12015    BI opval = 0;
12016    SET_H_UBIT (opval);
12017    written |= (1 << 6);
12018    CGEN_TRACE_RESULT (current_cpu, abuf, "ubit", 'x', opval);
12019  }
12020}
12021if (NESI (ANDSI (tmp_tmp, SLLSI (1, 7)), 0)) {
12022  {
12023    BI opval = 0;
12024    CPU (h_pbit) = opval;
12025    written |= (1 << 4);
12026    CGEN_TRACE_RESULT (current_cpu, abuf, "pbit", 'x', opval);
12027  }
12028}
12029{
12030  {
12031    BI opval = 0;
12032    CPU (h_xbit) = opval;
12033    written |= (1 << 8);
12034    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12035  }
12036  {
12037    BI opval = 0;
12038    SET_H_INSN_PREFIXED_P (opval);
12039    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12040  }
12041}
12042}
12043
12044  abuf->written = written;
12045#undef FLD
12046}
12047  NEXT (vpc);
12048
12049  CASE (sem, INSN_BCC_B) : /* b${cc} ${o-pcrel} */
12050{
12051  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12052  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12053#define FLD(f) abuf->fields.sfmt_bcc_b.f
12054  int UNUSED written = 0;
12055  IADDR UNUSED pc = abuf->addr;
12056  SEM_BRANCH_INIT
12057  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12058
12059{
12060  BI tmp_truthval;
12061  tmp_truthval = ({   SI tmp_tmpcond;
12062  BI tmp_condres;
12063  tmp_tmpcond = FLD (f_operand2);
12064; if (EQSI (tmp_tmpcond, 0)) {
12065  tmp_condres = NOTBI (CPU (h_cbit));
12066}
12067 else if (EQSI (tmp_tmpcond, 1)) {
12068  tmp_condres = CPU (h_cbit);
12069}
12070 else if (EQSI (tmp_tmpcond, 2)) {
12071  tmp_condres = NOTBI (CPU (h_zbit));
12072}
12073 else if (EQSI (tmp_tmpcond, 3)) {
12074  tmp_condres = CPU (h_zbit);
12075}
12076 else if (EQSI (tmp_tmpcond, 4)) {
12077  tmp_condres = NOTBI (CPU (h_vbit));
12078}
12079 else if (EQSI (tmp_tmpcond, 5)) {
12080  tmp_condres = CPU (h_vbit);
12081}
12082 else if (EQSI (tmp_tmpcond, 6)) {
12083  tmp_condres = NOTBI (CPU (h_nbit));
12084}
12085 else if (EQSI (tmp_tmpcond, 7)) {
12086  tmp_condres = CPU (h_nbit);
12087}
12088 else if (EQSI (tmp_tmpcond, 8)) {
12089  tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
12090}
12091 else if (EQSI (tmp_tmpcond, 9)) {
12092  tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
12093}
12094 else if (EQSI (tmp_tmpcond, 10)) {
12095  tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
12096}
12097 else if (EQSI (tmp_tmpcond, 11)) {
12098  tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
12099}
12100 else if (EQSI (tmp_tmpcond, 12)) {
12101  tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
12102}
12103 else if (EQSI (tmp_tmpcond, 13)) {
12104  tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
12105}
12106 else if (EQSI (tmp_tmpcond, 14)) {
12107  tmp_condres = 1;
12108}
12109 else if (EQSI (tmp_tmpcond, 15)) {
12110  tmp_condres = CPU (h_pbit);
12111}
12112; tmp_condres; });
12113crisv10f_branch_taken (current_cpu, pc, FLD (i_o_pcrel), tmp_truthval);
12114{
12115  {
12116    BI opval = 0;
12117    CPU (h_xbit) = opval;
12118    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12119  }
12120  {
12121    BI opval = 0;
12122    SET_H_INSN_PREFIXED_P (opval);
12123    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12124  }
12125}
12126if (tmp_truthval) {
12127{
12128  {
12129    USI opval = FLD (i_o_pcrel);
12130    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12131    written |= (1 << 8);
12132    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12133  }
12134}
12135}
12136}
12137
12138  abuf->written = written;
12139  SEM_BRANCH_FINI (vpc);
12140#undef FLD
12141}
12142  NEXT (vpc);
12143
12144  CASE (sem, INSN_BA_B) : /* ba ${o-pcrel} */
12145{
12146  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12147  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12148#define FLD(f) abuf->fields.sfmt_bcc_b.f
12149  int UNUSED written = 0;
12150  IADDR UNUSED pc = abuf->addr;
12151  SEM_BRANCH_INIT
12152  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12153
12154{
12155{
12156  {
12157    BI opval = 0;
12158    CPU (h_xbit) = opval;
12159    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12160  }
12161  {
12162    BI opval = 0;
12163    SET_H_INSN_PREFIXED_P (opval);
12164    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12165  }
12166}
12167{
12168  {
12169    USI opval = FLD (i_o_pcrel);
12170    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12171    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12172  }
12173}
12174}
12175
12176  SEM_BRANCH_FINI (vpc);
12177#undef FLD
12178}
12179  NEXT (vpc);
12180
12181  CASE (sem, INSN_BCC_W) : /* b${cc} ${o-word-pcrel} */
12182{
12183  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12184  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12185#define FLD(f) abuf->fields.sfmt_bcc_w.f
12186  int UNUSED written = 0;
12187  IADDR UNUSED pc = abuf->addr;
12188  SEM_BRANCH_INIT
12189  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12190
12191{
12192  BI tmp_truthval;
12193  tmp_truthval = ({   SI tmp_tmpcond;
12194  BI tmp_condres;
12195  tmp_tmpcond = FLD (f_operand2);
12196; if (EQSI (tmp_tmpcond, 0)) {
12197  tmp_condres = NOTBI (CPU (h_cbit));
12198}
12199 else if (EQSI (tmp_tmpcond, 1)) {
12200  tmp_condres = CPU (h_cbit);
12201}
12202 else if (EQSI (tmp_tmpcond, 2)) {
12203  tmp_condres = NOTBI (CPU (h_zbit));
12204}
12205 else if (EQSI (tmp_tmpcond, 3)) {
12206  tmp_condres = CPU (h_zbit);
12207}
12208 else if (EQSI (tmp_tmpcond, 4)) {
12209  tmp_condres = NOTBI (CPU (h_vbit));
12210}
12211 else if (EQSI (tmp_tmpcond, 5)) {
12212  tmp_condres = CPU (h_vbit);
12213}
12214 else if (EQSI (tmp_tmpcond, 6)) {
12215  tmp_condres = NOTBI (CPU (h_nbit));
12216}
12217 else if (EQSI (tmp_tmpcond, 7)) {
12218  tmp_condres = CPU (h_nbit);
12219}
12220 else if (EQSI (tmp_tmpcond, 8)) {
12221  tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
12222}
12223 else if (EQSI (tmp_tmpcond, 9)) {
12224  tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
12225}
12226 else if (EQSI (tmp_tmpcond, 10)) {
12227  tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
12228}
12229 else if (EQSI (tmp_tmpcond, 11)) {
12230  tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
12231}
12232 else if (EQSI (tmp_tmpcond, 12)) {
12233  tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
12234}
12235 else if (EQSI (tmp_tmpcond, 13)) {
12236  tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
12237}
12238 else if (EQSI (tmp_tmpcond, 14)) {
12239  tmp_condres = 1;
12240}
12241 else if (EQSI (tmp_tmpcond, 15)) {
12242  tmp_condres = CPU (h_pbit);
12243}
12244; tmp_condres; });
12245crisv10f_branch_taken (current_cpu, pc, FLD (i_o_word_pcrel), tmp_truthval);
12246{
12247  {
12248    BI opval = 0;
12249    CPU (h_xbit) = opval;
12250    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12251  }
12252  {
12253    BI opval = 0;
12254    SET_H_INSN_PREFIXED_P (opval);
12255    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12256  }
12257}
12258if (tmp_truthval) {
12259{
12260  {
12261    USI opval = FLD (i_o_word_pcrel);
12262    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12263    written |= (1 << 8);
12264    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12265  }
12266}
12267}
12268}
12269
12270  abuf->written = written;
12271  SEM_BRANCH_FINI (vpc);
12272#undef FLD
12273}
12274  NEXT (vpc);
12275
12276  CASE (sem, INSN_BA_W) : /* ba ${o-word-pcrel} */
12277{
12278  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12279  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12280#define FLD(f) abuf->fields.sfmt_bcc_w.f
12281  int UNUSED written = 0;
12282  IADDR UNUSED pc = abuf->addr;
12283  SEM_BRANCH_INIT
12284  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12285
12286{
12287{
12288  {
12289    BI opval = 0;
12290    CPU (h_xbit) = opval;
12291    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12292  }
12293  {
12294    BI opval = 0;
12295    SET_H_INSN_PREFIXED_P (opval);
12296    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12297  }
12298}
12299{
12300  {
12301    USI opval = FLD (i_o_word_pcrel);
12302    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12303    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12304  }
12305}
12306}
12307
12308  SEM_BRANCH_FINI (vpc);
12309#undef FLD
12310}
12311  NEXT (vpc);
12312
12313  CASE (sem, INSN_JUMP_R) : /* jump/jsr/jir ${Rs} */
12314{
12315  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12316  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12317#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
12318  int UNUSED written = 0;
12319  IADDR UNUSED pc = abuf->addr;
12320  SEM_BRANCH_INIT
12321  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12322
12323{
12324  {
12325    SI opval = ADDSI (pc, 2);
12326    SET_H_SR (FLD (f_operand2), opval);
12327    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12328  }
12329  {
12330    USI opval = GET_H_GR (FLD (f_operand1));
12331    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12332    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12333  }
12334{
12335  {
12336    BI opval = 0;
12337    CPU (h_xbit) = opval;
12338    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12339  }
12340  {
12341    BI opval = 0;
12342    SET_H_INSN_PREFIXED_P (opval);
12343    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12344  }
12345}
12346}
12347
12348  SEM_BRANCH_FINI (vpc);
12349#undef FLD
12350}
12351  NEXT (vpc);
12352
12353  CASE (sem, INSN_JUMP_M) : /* jump/jsr/jir [${Rs}${inc}] */
12354{
12355  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12356  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12357#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
12358  int UNUSED written = 0;
12359  IADDR UNUSED pc = abuf->addr;
12360  SEM_BRANCH_INIT
12361  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12362
12363{
12364  {
12365    SI opval = ADDSI (pc, 2);
12366    SET_H_SR (FLD (f_operand2), opval);
12367    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12368  }
12369  {
12370    USI opval = ({   SI tmp_addr;
12371  SI tmp_tmp_mem;
12372  BI tmp_postinc;
12373  tmp_postinc = FLD (f_memmode);
12374;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12375;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
12376; if (NEBI (tmp_postinc, 0)) {
12377{
12378if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12379  tmp_addr = ADDSI (tmp_addr, 4);
12380}
12381  {
12382    SI opval = tmp_addr;
12383    SET_H_GR (FLD (f_operand1), opval);
12384    written |= (1 << 7);
12385    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12386  }
12387}
12388}
12389; tmp_tmp_mem; });
12390    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12391    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12392  }
12393{
12394  {
12395    BI opval = 0;
12396    CPU (h_xbit) = opval;
12397    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12398  }
12399  {
12400    BI opval = 0;
12401    SET_H_INSN_PREFIXED_P (opval);
12402    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12403  }
12404}
12405}
12406
12407  abuf->written = written;
12408  SEM_BRANCH_FINI (vpc);
12409#undef FLD
12410}
12411  NEXT (vpc);
12412
12413  CASE (sem, INSN_JUMP_C) : /* jump/jsr/jir ${const32} */
12414{
12415  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12416  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12417#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
12418  int UNUSED written = 0;
12419  IADDR UNUSED pc = abuf->addr;
12420  SEM_BRANCH_INIT
12421  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
12422
12423{
12424  {
12425    SI opval = ADDSI (pc, 6);
12426    SET_H_SR (FLD (f_operand2), opval);
12427    CGEN_TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12428  }
12429  {
12430    USI opval = FLD (f_indir_pc__dword);
12431    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12432    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12433  }
12434{
12435  {
12436    BI opval = 0;
12437    CPU (h_xbit) = opval;
12438    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12439  }
12440  {
12441    BI opval = 0;
12442    SET_H_INSN_PREFIXED_P (opval);
12443    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12444  }
12445}
12446}
12447
12448  SEM_BRANCH_FINI (vpc);
12449#undef FLD
12450}
12451  NEXT (vpc);
12452
12453  CASE (sem, INSN_BREAK) : /* break $n */
12454{
12455  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12456  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12457#define FLD(f) abuf->fields.sfmt_break.f
12458  int UNUSED written = 0;
12459  IADDR UNUSED pc = abuf->addr;
12460  SEM_BRANCH_INIT
12461  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12462
12463{
12464{
12465  {
12466    BI opval = 0;
12467    CPU (h_xbit) = opval;
12468    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12469  }
12470  {
12471    BI opval = 0;
12472    SET_H_INSN_PREFIXED_P (opval);
12473    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12474  }
12475}
12476  {
12477    USI opval = crisv10f_break_handler (current_cpu, FLD (f_u4), pc);
12478    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12479    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12480  }
12481}
12482
12483  SEM_BRANCH_FINI (vpc);
12484#undef FLD
12485}
12486  NEXT (vpc);
12487
12488  CASE (sem, INSN_BOUND_R_B_R) : /* bound-r.b ${Rs},${Rd} */
12489{
12490  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12491  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12492#define FLD(f) abuf->fields.sfmt_muls_b.f
12493  int UNUSED written = 0;
12494  IADDR UNUSED pc = abuf->addr;
12495  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12496
12497{
12498  SI tmp_tmpopd;
12499  SI tmp_tmpops;
12500  SI tmp_newval;
12501  tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
12502  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12503  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12504  {
12505    SI opval = tmp_newval;
12506    SET_H_GR (FLD (f_operand2), opval);
12507    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12508  }
12509{
12510  {
12511    BI opval = LTSI (tmp_newval, 0);
12512    CPU (h_nbit) = opval;
12513    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12514  }
12515  {
12516    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12517    CPU (h_zbit) = opval;
12518    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12519  }
12520SET_H_CBIT_MOVE (0);
12521SET_H_VBIT_MOVE (0);
12522{
12523  {
12524    BI opval = 0;
12525    CPU (h_xbit) = opval;
12526    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12527  }
12528  {
12529    BI opval = 0;
12530    SET_H_INSN_PREFIXED_P (opval);
12531    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12532  }
12533}
12534}
12535}
12536
12537#undef FLD
12538}
12539  NEXT (vpc);
12540
12541  CASE (sem, INSN_BOUND_R_W_R) : /* bound-r.w ${Rs},${Rd} */
12542{
12543  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12544  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12545#define FLD(f) abuf->fields.sfmt_muls_b.f
12546  int UNUSED written = 0;
12547  IADDR UNUSED pc = abuf->addr;
12548  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12549
12550{
12551  SI tmp_tmpopd;
12552  SI tmp_tmpops;
12553  SI tmp_newval;
12554  tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
12555  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12556  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12557  {
12558    SI opval = tmp_newval;
12559    SET_H_GR (FLD (f_operand2), opval);
12560    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12561  }
12562{
12563  {
12564    BI opval = LTSI (tmp_newval, 0);
12565    CPU (h_nbit) = opval;
12566    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12567  }
12568  {
12569    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12570    CPU (h_zbit) = opval;
12571    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12572  }
12573SET_H_CBIT_MOVE (0);
12574SET_H_VBIT_MOVE (0);
12575{
12576  {
12577    BI opval = 0;
12578    CPU (h_xbit) = opval;
12579    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12580  }
12581  {
12582    BI opval = 0;
12583    SET_H_INSN_PREFIXED_P (opval);
12584    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12585  }
12586}
12587}
12588}
12589
12590#undef FLD
12591}
12592  NEXT (vpc);
12593
12594  CASE (sem, INSN_BOUND_R_D_R) : /* bound-r.d ${Rs},${Rd} */
12595{
12596  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12597  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12598#define FLD(f) abuf->fields.sfmt_muls_b.f
12599  int UNUSED written = 0;
12600  IADDR UNUSED pc = abuf->addr;
12601  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12602
12603{
12604  SI tmp_tmpopd;
12605  SI tmp_tmpops;
12606  SI tmp_newval;
12607  tmp_tmpops = TRUNCSISI (GET_H_GR (FLD (f_operand1)));
12608  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12609  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12610  {
12611    SI opval = tmp_newval;
12612    SET_H_GR (FLD (f_operand2), opval);
12613    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12614  }
12615{
12616  {
12617    BI opval = LTSI (tmp_newval, 0);
12618    CPU (h_nbit) = opval;
12619    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12620  }
12621  {
12622    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12623    CPU (h_zbit) = opval;
12624    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12625  }
12626SET_H_CBIT_MOVE (0);
12627SET_H_VBIT_MOVE (0);
12628{
12629  {
12630    BI opval = 0;
12631    CPU (h_xbit) = opval;
12632    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12633  }
12634  {
12635    BI opval = 0;
12636    SET_H_INSN_PREFIXED_P (opval);
12637    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12638  }
12639}
12640}
12641}
12642
12643#undef FLD
12644}
12645  NEXT (vpc);
12646
12647  CASE (sem, INSN_BOUND_M_B_M) : /* bound-m.b [${Rs}${inc}],${Rd} */
12648{
12649  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12650  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12651#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
12652  int UNUSED written = 0;
12653  IADDR UNUSED pc = abuf->addr;
12654  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12655
12656{
12657  SI tmp_tmpopd;
12658  SI tmp_tmpops;
12659  SI tmp_newval;
12660  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
12661  QI tmp_tmp_mem;
12662  BI tmp_postinc;
12663  tmp_postinc = FLD (f_memmode);
12664;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12665;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
12666; if (NEBI (tmp_postinc, 0)) {
12667{
12668if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12669  tmp_addr = ADDSI (tmp_addr, 1);
12670}
12671  {
12672    SI opval = tmp_addr;
12673    SET_H_GR (FLD (f_operand1), opval);
12674    written |= (1 << 9);
12675    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12676  }
12677}
12678}
12679; tmp_tmp_mem; }));
12680  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12681  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12682if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
12683  {
12684    SI opval = tmp_newval;
12685    SET_H_GR (FLD (f_operand1), opval);
12686    written |= (1 << 9);
12687    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12688  }
12689} else {
12690  {
12691    SI opval = tmp_newval;
12692    SET_H_GR (FLD (f_operand2), opval);
12693    written |= (1 << 8);
12694    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12695  }
12696}
12697{
12698  {
12699    BI opval = LTSI (tmp_newval, 0);
12700    CPU (h_nbit) = opval;
12701    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12702  }
12703  {
12704    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12705    CPU (h_zbit) = opval;
12706    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12707  }
12708SET_H_CBIT_MOVE (0);
12709SET_H_VBIT_MOVE (0);
12710{
12711  {
12712    BI opval = 0;
12713    CPU (h_xbit) = opval;
12714    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12715  }
12716  {
12717    BI opval = 0;
12718    SET_H_INSN_PREFIXED_P (opval);
12719    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12720  }
12721}
12722}
12723}
12724
12725  abuf->written = written;
12726#undef FLD
12727}
12728  NEXT (vpc);
12729
12730  CASE (sem, INSN_BOUND_M_W_M) : /* bound-m.w [${Rs}${inc}],${Rd} */
12731{
12732  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12733  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12734#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
12735  int UNUSED written = 0;
12736  IADDR UNUSED pc = abuf->addr;
12737  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12738
12739{
12740  SI tmp_tmpopd;
12741  SI tmp_tmpops;
12742  SI tmp_newval;
12743  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
12744  HI tmp_tmp_mem;
12745  BI tmp_postinc;
12746  tmp_postinc = FLD (f_memmode);
12747;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12748;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
12749; if (NEBI (tmp_postinc, 0)) {
12750{
12751if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12752  tmp_addr = ADDSI (tmp_addr, 2);
12753}
12754  {
12755    SI opval = tmp_addr;
12756    SET_H_GR (FLD (f_operand1), opval);
12757    written |= (1 << 9);
12758    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12759  }
12760}
12761}
12762; tmp_tmp_mem; }));
12763  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12764  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12765if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
12766  {
12767    SI opval = tmp_newval;
12768    SET_H_GR (FLD (f_operand1), opval);
12769    written |= (1 << 9);
12770    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12771  }
12772} else {
12773  {
12774    SI opval = tmp_newval;
12775    SET_H_GR (FLD (f_operand2), opval);
12776    written |= (1 << 8);
12777    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12778  }
12779}
12780{
12781  {
12782    BI opval = LTSI (tmp_newval, 0);
12783    CPU (h_nbit) = opval;
12784    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12785  }
12786  {
12787    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12788    CPU (h_zbit) = opval;
12789    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12790  }
12791SET_H_CBIT_MOVE (0);
12792SET_H_VBIT_MOVE (0);
12793{
12794  {
12795    BI opval = 0;
12796    CPU (h_xbit) = opval;
12797    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12798  }
12799  {
12800    BI opval = 0;
12801    SET_H_INSN_PREFIXED_P (opval);
12802    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12803  }
12804}
12805}
12806}
12807
12808  abuf->written = written;
12809#undef FLD
12810}
12811  NEXT (vpc);
12812
12813  CASE (sem, INSN_BOUND_M_D_M) : /* bound-m.d [${Rs}${inc}],${Rd} */
12814{
12815  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12816  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12817#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
12818  int UNUSED written = 0;
12819  IADDR UNUSED pc = abuf->addr;
12820  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12821
12822{
12823  SI tmp_tmpopd;
12824  SI tmp_tmpops;
12825  SI tmp_newval;
12826  tmp_tmpops = ({   SI tmp_addr;
12827  SI tmp_tmp_mem;
12828  BI tmp_postinc;
12829  tmp_postinc = FLD (f_memmode);
12830;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
12831;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
12832; if (NEBI (tmp_postinc, 0)) {
12833{
12834if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
12835  tmp_addr = ADDSI (tmp_addr, 4);
12836}
12837  {
12838    SI opval = tmp_addr;
12839    SET_H_GR (FLD (f_operand1), opval);
12840    written |= (1 << 9);
12841    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12842  }
12843}
12844}
12845; tmp_tmp_mem; });
12846  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12847  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12848if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
12849  {
12850    SI opval = tmp_newval;
12851    SET_H_GR (FLD (f_operand1), opval);
12852    written |= (1 << 9);
12853    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12854  }
12855} else {
12856  {
12857    SI opval = tmp_newval;
12858    SET_H_GR (FLD (f_operand2), opval);
12859    written |= (1 << 8);
12860    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12861  }
12862}
12863{
12864  {
12865    BI opval = LTSI (tmp_newval, 0);
12866    CPU (h_nbit) = opval;
12867    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12868  }
12869  {
12870    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12871    CPU (h_zbit) = opval;
12872    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12873  }
12874SET_H_CBIT_MOVE (0);
12875SET_H_VBIT_MOVE (0);
12876{
12877  {
12878    BI opval = 0;
12879    CPU (h_xbit) = opval;
12880    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12881  }
12882  {
12883    BI opval = 0;
12884    SET_H_INSN_PREFIXED_P (opval);
12885    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12886  }
12887}
12888}
12889}
12890
12891  abuf->written = written;
12892#undef FLD
12893}
12894  NEXT (vpc);
12895
12896  CASE (sem, INSN_BOUND_CB) : /* bound.b [PC+],${Rd} */
12897{
12898  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12899  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12900#define FLD(f) abuf->fields.sfmt_bound_cb.f
12901  int UNUSED written = 0;
12902  IADDR UNUSED pc = abuf->addr;
12903  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12904
12905{
12906  SI tmp_tmpopd;
12907  SI tmp_tmpops;
12908  SI tmp_newval;
12909  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
12910  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12911  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12912  {
12913    SI opval = tmp_newval;
12914    SET_H_GR (FLD (f_operand2), opval);
12915    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12916  }
12917{
12918  {
12919    BI opval = LTSI (tmp_newval, 0);
12920    CPU (h_nbit) = opval;
12921    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12922  }
12923  {
12924    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12925    CPU (h_zbit) = opval;
12926    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12927  }
12928SET_H_CBIT_MOVE (0);
12929SET_H_VBIT_MOVE (0);
12930{
12931  {
12932    BI opval = 0;
12933    CPU (h_xbit) = opval;
12934    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12935  }
12936  {
12937    BI opval = 0;
12938    SET_H_INSN_PREFIXED_P (opval);
12939    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12940  }
12941}
12942}
12943}
12944
12945#undef FLD
12946}
12947  NEXT (vpc);
12948
12949  CASE (sem, INSN_BOUND_CW) : /* bound.w [PC+],${Rd} */
12950{
12951  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12952  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12953#define FLD(f) abuf->fields.sfmt_bound_cw.f
12954  int UNUSED written = 0;
12955  IADDR UNUSED pc = abuf->addr;
12956  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12957
12958{
12959  SI tmp_tmpopd;
12960  SI tmp_tmpops;
12961  SI tmp_newval;
12962  tmp_tmpops = ZEXTSISI (FLD (f_indir_pc__word));
12963  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
12964  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
12965  {
12966    SI opval = tmp_newval;
12967    SET_H_GR (FLD (f_operand2), opval);
12968    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12969  }
12970{
12971  {
12972    BI opval = LTSI (tmp_newval, 0);
12973    CPU (h_nbit) = opval;
12974    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12975  }
12976  {
12977    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12978    CPU (h_zbit) = opval;
12979    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12980  }
12981SET_H_CBIT_MOVE (0);
12982SET_H_VBIT_MOVE (0);
12983{
12984  {
12985    BI opval = 0;
12986    CPU (h_xbit) = opval;
12987    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12988  }
12989  {
12990    BI opval = 0;
12991    SET_H_INSN_PREFIXED_P (opval);
12992    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12993  }
12994}
12995}
12996}
12997
12998#undef FLD
12999}
13000  NEXT (vpc);
13001
13002  CASE (sem, INSN_BOUND_CD) : /* bound.d [PC+],${Rd} */
13003{
13004  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13005  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13006#define FLD(f) abuf->fields.sfmt_bound_cd.f
13007  int UNUSED written = 0;
13008  IADDR UNUSED pc = abuf->addr;
13009  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13010
13011{
13012  SI tmp_tmpopd;
13013  SI tmp_tmpops;
13014  SI tmp_newval;
13015  tmp_tmpops = FLD (f_indir_pc__dword);
13016  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13017  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13018  {
13019    SI opval = tmp_newval;
13020    SET_H_GR (FLD (f_operand2), opval);
13021    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13022  }
13023{
13024  {
13025    BI opval = LTSI (tmp_newval, 0);
13026    CPU (h_nbit) = opval;
13027    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13028  }
13029  {
13030    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13031    CPU (h_zbit) = opval;
13032    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13033  }
13034SET_H_CBIT_MOVE (0);
13035SET_H_VBIT_MOVE (0);
13036{
13037  {
13038    BI opval = 0;
13039    CPU (h_xbit) = opval;
13040    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13041  }
13042  {
13043    BI opval = 0;
13044    SET_H_INSN_PREFIXED_P (opval);
13045    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13046  }
13047}
13048}
13049}
13050
13051#undef FLD
13052}
13053  NEXT (vpc);
13054
13055  CASE (sem, INSN_SCC) : /* s${cc} ${Rd-sfield} */
13056{
13057  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13058  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13059#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
13060  int UNUSED written = 0;
13061  IADDR UNUSED pc = abuf->addr;
13062  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13063
13064{
13065  BI tmp_truthval;
13066  tmp_truthval = ({   SI tmp_tmpcond;
13067  BI tmp_condres;
13068  tmp_tmpcond = FLD (f_operand2);
13069; if (EQSI (tmp_tmpcond, 0)) {
13070  tmp_condres = NOTBI (CPU (h_cbit));
13071}
13072 else if (EQSI (tmp_tmpcond, 1)) {
13073  tmp_condres = CPU (h_cbit);
13074}
13075 else if (EQSI (tmp_tmpcond, 2)) {
13076  tmp_condres = NOTBI (CPU (h_zbit));
13077}
13078 else if (EQSI (tmp_tmpcond, 3)) {
13079  tmp_condres = CPU (h_zbit);
13080}
13081 else if (EQSI (tmp_tmpcond, 4)) {
13082  tmp_condres = NOTBI (CPU (h_vbit));
13083}
13084 else if (EQSI (tmp_tmpcond, 5)) {
13085  tmp_condres = CPU (h_vbit);
13086}
13087 else if (EQSI (tmp_tmpcond, 6)) {
13088  tmp_condres = NOTBI (CPU (h_nbit));
13089}
13090 else if (EQSI (tmp_tmpcond, 7)) {
13091  tmp_condres = CPU (h_nbit);
13092}
13093 else if (EQSI (tmp_tmpcond, 8)) {
13094  tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
13095}
13096 else if (EQSI (tmp_tmpcond, 9)) {
13097  tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
13098}
13099 else if (EQSI (tmp_tmpcond, 10)) {
13100  tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
13101}
13102 else if (EQSI (tmp_tmpcond, 11)) {
13103  tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
13104}
13105 else if (EQSI (tmp_tmpcond, 12)) {
13106  tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
13107}
13108 else if (EQSI (tmp_tmpcond, 13)) {
13109  tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
13110}
13111 else if (EQSI (tmp_tmpcond, 14)) {
13112  tmp_condres = 1;
13113}
13114 else if (EQSI (tmp_tmpcond, 15)) {
13115  tmp_condres = CPU (h_pbit);
13116}
13117; tmp_condres; });
13118  {
13119    SI opval = ZEXTBISI (tmp_truthval);
13120    SET_H_GR (FLD (f_operand1), opval);
13121    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13122  }
13123{
13124  {
13125    BI opval = 0;
13126    CPU (h_xbit) = opval;
13127    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13128  }
13129  {
13130    BI opval = 0;
13131    SET_H_INSN_PREFIXED_P (opval);
13132    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13133  }
13134}
13135}
13136
13137#undef FLD
13138}
13139  NEXT (vpc);
13140
13141  CASE (sem, INSN_LZ) : /* lz ${Rs},${Rd} */
13142{
13143  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13144  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13145#define FLD(f) abuf->fields.sfmt_muls_b.f
13146  int UNUSED written = 0;
13147  IADDR UNUSED pc = abuf->addr;
13148  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13149
13150{
13151  SI tmp_tmpd;
13152  SI tmp_tmp;
13153  tmp_tmp = GET_H_GR (FLD (f_operand1));
13154  tmp_tmpd = 0;
13155{
13156if (GESI (tmp_tmp, 0)) {
13157{
13158  tmp_tmp = SLLSI (tmp_tmp, 1);
13159  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13160}
13161}
13162if (GESI (tmp_tmp, 0)) {
13163{
13164  tmp_tmp = SLLSI (tmp_tmp, 1);
13165  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13166}
13167}
13168if (GESI (tmp_tmp, 0)) {
13169{
13170  tmp_tmp = SLLSI (tmp_tmp, 1);
13171  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13172}
13173}
13174if (GESI (tmp_tmp, 0)) {
13175{
13176  tmp_tmp = SLLSI (tmp_tmp, 1);
13177  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13178}
13179}
13180if (GESI (tmp_tmp, 0)) {
13181{
13182  tmp_tmp = SLLSI (tmp_tmp, 1);
13183  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13184}
13185}
13186if (GESI (tmp_tmp, 0)) {
13187{
13188  tmp_tmp = SLLSI (tmp_tmp, 1);
13189  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13190}
13191}
13192if (GESI (tmp_tmp, 0)) {
13193{
13194  tmp_tmp = SLLSI (tmp_tmp, 1);
13195  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13196}
13197}
13198if (GESI (tmp_tmp, 0)) {
13199{
13200  tmp_tmp = SLLSI (tmp_tmp, 1);
13201  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13202}
13203}
13204if (GESI (tmp_tmp, 0)) {
13205{
13206  tmp_tmp = SLLSI (tmp_tmp, 1);
13207  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13208}
13209}
13210if (GESI (tmp_tmp, 0)) {
13211{
13212  tmp_tmp = SLLSI (tmp_tmp, 1);
13213  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13214}
13215}
13216if (GESI (tmp_tmp, 0)) {
13217{
13218  tmp_tmp = SLLSI (tmp_tmp, 1);
13219  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13220}
13221}
13222if (GESI (tmp_tmp, 0)) {
13223{
13224  tmp_tmp = SLLSI (tmp_tmp, 1);
13225  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13226}
13227}
13228if (GESI (tmp_tmp, 0)) {
13229{
13230  tmp_tmp = SLLSI (tmp_tmp, 1);
13231  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13232}
13233}
13234if (GESI (tmp_tmp, 0)) {
13235{
13236  tmp_tmp = SLLSI (tmp_tmp, 1);
13237  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13238}
13239}
13240if (GESI (tmp_tmp, 0)) {
13241{
13242  tmp_tmp = SLLSI (tmp_tmp, 1);
13243  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13244}
13245}
13246if (GESI (tmp_tmp, 0)) {
13247{
13248  tmp_tmp = SLLSI (tmp_tmp, 1);
13249  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13250}
13251}
13252if (GESI (tmp_tmp, 0)) {
13253{
13254  tmp_tmp = SLLSI (tmp_tmp, 1);
13255  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13256}
13257}
13258if (GESI (tmp_tmp, 0)) {
13259{
13260  tmp_tmp = SLLSI (tmp_tmp, 1);
13261  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13262}
13263}
13264if (GESI (tmp_tmp, 0)) {
13265{
13266  tmp_tmp = SLLSI (tmp_tmp, 1);
13267  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13268}
13269}
13270if (GESI (tmp_tmp, 0)) {
13271{
13272  tmp_tmp = SLLSI (tmp_tmp, 1);
13273  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13274}
13275}
13276if (GESI (tmp_tmp, 0)) {
13277{
13278  tmp_tmp = SLLSI (tmp_tmp, 1);
13279  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13280}
13281}
13282if (GESI (tmp_tmp, 0)) {
13283{
13284  tmp_tmp = SLLSI (tmp_tmp, 1);
13285  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13286}
13287}
13288if (GESI (tmp_tmp, 0)) {
13289{
13290  tmp_tmp = SLLSI (tmp_tmp, 1);
13291  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13292}
13293}
13294if (GESI (tmp_tmp, 0)) {
13295{
13296  tmp_tmp = SLLSI (tmp_tmp, 1);
13297  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13298}
13299}
13300if (GESI (tmp_tmp, 0)) {
13301{
13302  tmp_tmp = SLLSI (tmp_tmp, 1);
13303  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13304}
13305}
13306if (GESI (tmp_tmp, 0)) {
13307{
13308  tmp_tmp = SLLSI (tmp_tmp, 1);
13309  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13310}
13311}
13312if (GESI (tmp_tmp, 0)) {
13313{
13314  tmp_tmp = SLLSI (tmp_tmp, 1);
13315  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13316}
13317}
13318if (GESI (tmp_tmp, 0)) {
13319{
13320  tmp_tmp = SLLSI (tmp_tmp, 1);
13321  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13322}
13323}
13324if (GESI (tmp_tmp, 0)) {
13325{
13326  tmp_tmp = SLLSI (tmp_tmp, 1);
13327  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13328}
13329}
13330if (GESI (tmp_tmp, 0)) {
13331{
13332  tmp_tmp = SLLSI (tmp_tmp, 1);
13333  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13334}
13335}
13336if (GESI (tmp_tmp, 0)) {
13337{
13338  tmp_tmp = SLLSI (tmp_tmp, 1);
13339  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13340}
13341}
13342if (GESI (tmp_tmp, 0)) {
13343{
13344  tmp_tmp = SLLSI (tmp_tmp, 1);
13345  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13346}
13347}
13348}
13349  {
13350    SI opval = tmp_tmpd;
13351    SET_H_GR (FLD (f_operand2), opval);
13352    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13353  }
13354{
13355  {
13356    BI opval = LTSI (tmp_tmpd, 0);
13357    CPU (h_nbit) = opval;
13358    CGEN_TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13359  }
13360  {
13361    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13362    CPU (h_zbit) = opval;
13363    CGEN_TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13364  }
13365SET_H_CBIT_MOVE (0);
13366SET_H_VBIT_MOVE (0);
13367{
13368  {
13369    BI opval = 0;
13370    CPU (h_xbit) = opval;
13371    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13372  }
13373  {
13374    BI opval = 0;
13375    SET_H_INSN_PREFIXED_P (opval);
13376    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13377  }
13378}
13379}
13380}
13381
13382#undef FLD
13383}
13384  NEXT (vpc);
13385
13386  CASE (sem, INSN_ADDOQ) : /* addoq $o,$Rs,ACR */
13387{
13388  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13389  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13390#define FLD(f) abuf->fields.sfmt_addoq.f
13391  int UNUSED written = 0;
13392  IADDR UNUSED pc = abuf->addr;
13393  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13394
13395{
13396  {
13397    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), FLD (f_s8));
13398    CPU (h_prefixreg_pre_v32) = opval;
13399    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13400  }
13401  {
13402    BI opval = 1;
13403    SET_H_INSN_PREFIXED_P (opval);
13404    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13405  }
13406}
13407
13408#undef FLD
13409}
13410  NEXT (vpc);
13411
13412  CASE (sem, INSN_BDAPQPC) : /* bdapq $o,PC */
13413{
13414  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13415  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13416#define FLD(f) abuf->fields.sfmt_addoq.f
13417  int UNUSED written = 0;
13418  IADDR UNUSED pc = abuf->addr;
13419  SEM_BRANCH_INIT
13420  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13421
13422{
13423  {
13424    SI opval = ADDSI (ADDSI (pc, 2), FLD (f_s8));
13425    CPU (h_prefixreg_pre_v32) = opval;
13426    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13427  }
13428  {
13429    BI opval = 1;
13430    SET_H_INSN_PREFIXED_P (opval);
13431    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13432  }
13433cris_flush_simulator_decode_cache (current_cpu, pc);
13434}
13435
13436  SEM_BRANCH_FINI (vpc);
13437#undef FLD
13438}
13439  NEXT (vpc);
13440
13441  CASE (sem, INSN_BDAP_32_PC) : /* bdap ${sconst32},PC */
13442{
13443  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13444  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13445#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
13446  int UNUSED written = 0;
13447  IADDR UNUSED pc = abuf->addr;
13448  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13449
13450{
13451  SI tmp_newpc;
13452  SI tmp_oldpc;
13453  SI tmp_offs;
13454  tmp_offs = FLD (f_indir_pc__dword);
13455  tmp_oldpc = ADDSI (pc, 6);
13456  tmp_newpc = ADDSI (tmp_oldpc, tmp_offs);
13457  {
13458    SI opval = tmp_newpc;
13459    CPU (h_prefixreg_pre_v32) = opval;
13460    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13461  }
13462  {
13463    BI opval = 1;
13464    SET_H_INSN_PREFIXED_P (opval);
13465    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13466  }
13467}
13468
13469#undef FLD
13470}
13471  NEXT (vpc);
13472
13473  CASE (sem, INSN_MOVE_M_PCPLUS_P0) : /* move [PC+],P0 */
13474{
13475  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13476  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13477#define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
13478  int UNUSED written = 0;
13479  IADDR UNUSED pc = abuf->addr;
13480  SEM_BRANCH_INIT
13481  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13482
13483if (GET_H_INSN_PREFIXED_P ()) {
13484{
13485  QI tmp_dummy;
13486  tmp_dummy = ({   SI tmp_addr;
13487  QI tmp_tmp_mem;
13488  BI tmp_postinc;
13489  tmp_postinc = FLD (f_memmode);
13490;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (pc) : (CPU (h_prefixreg_pre_v32)));
13491;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
13492; if (NEBI (tmp_postinc, 0)) {
13493{
13494if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13495  tmp_addr = ADDSI (tmp_addr, 1);
13496}
13497  {
13498    USI opval = tmp_addr;
13499    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
13500    written |= (1 << 5);
13501    CGEN_TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
13502  }
13503}
13504}
13505; tmp_tmp_mem; });
13506{
13507  {
13508    BI opval = 0;
13509    CPU (h_xbit) = opval;
13510    written |= (1 << 7);
13511    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13512  }
13513  {
13514    BI opval = 0;
13515    SET_H_INSN_PREFIXED_P (opval);
13516    written |= (1 << 6);
13517    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13518  }
13519}
13520}
13521} else {
13522cgen_rtx_error (current_cpu, "move [PC+],P0 without prefix is not implemented");
13523}
13524
13525  abuf->written = written;
13526  SEM_BRANCH_FINI (vpc);
13527#undef FLD
13528}
13529  NEXT (vpc);
13530
13531  CASE (sem, INSN_MOVE_M_SPPLUS_P8) : /* move [SP+],P8 */
13532{
13533  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13534  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13535#define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
13536  int UNUSED written = 0;
13537  IADDR UNUSED pc = abuf->addr;
13538  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13539
13540if (GET_H_INSN_PREFIXED_P ()) {
13541{
13542  SI tmp_dummy;
13543  tmp_dummy = ({   SI tmp_addr;
13544  SI tmp_tmp_mem;
13545  BI tmp_postinc;
13546  tmp_postinc = FLD (f_memmode);
13547;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (((UINT) 14))) : (CPU (h_prefixreg_pre_v32)));
13548;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13549; if (NEBI (tmp_postinc, 0)) {
13550{
13551if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13552  tmp_addr = ADDSI (tmp_addr, 4);
13553}
13554  {
13555    SI opval = tmp_addr;
13556    SET_H_GR (((UINT) 14), opval);
13557    written |= (1 << 5);
13558    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13559  }
13560}
13561}
13562; tmp_tmp_mem; });
13563{
13564  {
13565    BI opval = 0;
13566    CPU (h_xbit) = opval;
13567    written |= (1 << 7);
13568    CGEN_TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13569  }
13570  {
13571    BI opval = 0;
13572    SET_H_INSN_PREFIXED_P (opval);
13573    written |= (1 << 6);
13574    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13575  }
13576}
13577}
13578} else {
13579cgen_rtx_error (current_cpu, "move [SP+],P8 without prefix is not implemented");
13580}
13581
13582  abuf->written = written;
13583#undef FLD
13584}
13585  NEXT (vpc);
13586
13587  CASE (sem, INSN_ADDO_M_B_M) : /* addo-m.b [${Rs}${inc}],$Rd,ACR */
13588{
13589  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13590  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13591#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
13592  int UNUSED written = 0;
13593  IADDR UNUSED pc = abuf->addr;
13594  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13595
13596{
13597  QI tmp_tmps;
13598  tmp_tmps = ({   SI tmp_addr;
13599  QI tmp_tmp_mem;
13600  BI tmp_postinc;
13601  tmp_postinc = FLD (f_memmode);
13602;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13603;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
13604; if (NEBI (tmp_postinc, 0)) {
13605{
13606if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13607  tmp_addr = ADDSI (tmp_addr, 1);
13608}
13609  {
13610    SI opval = tmp_addr;
13611    SET_H_GR (FLD (f_operand1), opval);
13612    written |= (1 << 6);
13613    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13614  }
13615}
13616}
13617; tmp_tmp_mem; });
13618  {
13619    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTQISI (tmp_tmps));
13620    CPU (h_prefixreg_pre_v32) = opval;
13621    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13622  }
13623  {
13624    BI opval = 1;
13625    SET_H_INSN_PREFIXED_P (opval);
13626    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13627  }
13628}
13629
13630  abuf->written = written;
13631#undef FLD
13632}
13633  NEXT (vpc);
13634
13635  CASE (sem, INSN_ADDO_M_W_M) : /* addo-m.w [${Rs}${inc}],$Rd,ACR */
13636{
13637  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13638  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13639#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
13640  int UNUSED written = 0;
13641  IADDR UNUSED pc = abuf->addr;
13642  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13643
13644{
13645  HI tmp_tmps;
13646  tmp_tmps = ({   SI tmp_addr;
13647  HI tmp_tmp_mem;
13648  BI tmp_postinc;
13649  tmp_postinc = FLD (f_memmode);
13650;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13651;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
13652; if (NEBI (tmp_postinc, 0)) {
13653{
13654if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13655  tmp_addr = ADDSI (tmp_addr, 2);
13656}
13657  {
13658    SI opval = tmp_addr;
13659    SET_H_GR (FLD (f_operand1), opval);
13660    written |= (1 << 6);
13661    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13662  }
13663}
13664}
13665; tmp_tmp_mem; });
13666  {
13667    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTHISI (tmp_tmps));
13668    CPU (h_prefixreg_pre_v32) = opval;
13669    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13670  }
13671  {
13672    BI opval = 1;
13673    SET_H_INSN_PREFIXED_P (opval);
13674    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13675  }
13676}
13677
13678  abuf->written = written;
13679#undef FLD
13680}
13681  NEXT (vpc);
13682
13683  CASE (sem, INSN_ADDO_M_D_M) : /* addo-m.d [${Rs}${inc}],$Rd,ACR */
13684{
13685  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13686  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13687#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
13688  int UNUSED written = 0;
13689  IADDR UNUSED pc = abuf->addr;
13690  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13691
13692{
13693  SI tmp_tmps;
13694  tmp_tmps = ({   SI tmp_addr;
13695  SI tmp_tmp_mem;
13696  BI tmp_postinc;
13697  tmp_postinc = FLD (f_memmode);
13698;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13699;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13700; if (NEBI (tmp_postinc, 0)) {
13701{
13702if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13703  tmp_addr = ADDSI (tmp_addr, 4);
13704}
13705  {
13706    SI opval = tmp_addr;
13707    SET_H_GR (FLD (f_operand1), opval);
13708    written |= (1 << 6);
13709    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13710  }
13711}
13712}
13713; tmp_tmp_mem; });
13714  {
13715    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), tmp_tmps);
13716    CPU (h_prefixreg_pre_v32) = opval;
13717    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13718  }
13719  {
13720    BI opval = 1;
13721    SET_H_INSN_PREFIXED_P (opval);
13722    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13723  }
13724}
13725
13726  abuf->written = written;
13727#undef FLD
13728}
13729  NEXT (vpc);
13730
13731  CASE (sem, INSN_ADDO_CB) : /* addo.b [PC+],$Rd,ACR */
13732{
13733  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13734  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13735#define FLD(f) abuf->fields.sfmt_bound_cb.f
13736  int UNUSED written = 0;
13737  IADDR UNUSED pc = abuf->addr;
13738  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13739
13740{
13741  {
13742    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte))));
13743    CPU (h_prefixreg_pre_v32) = opval;
13744    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13745  }
13746  {
13747    BI opval = 1;
13748    SET_H_INSN_PREFIXED_P (opval);
13749    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13750  }
13751}
13752
13753#undef FLD
13754}
13755  NEXT (vpc);
13756
13757  CASE (sem, INSN_ADDO_CW) : /* addo.w [PC+],$Rd,ACR */
13758{
13759  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13760  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13761#define FLD(f) abuf->fields.sfmt_bound_cw.f
13762  int UNUSED written = 0;
13763  IADDR UNUSED pc = abuf->addr;
13764  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13765
13766{
13767  {
13768    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word))));
13769    CPU (h_prefixreg_pre_v32) = opval;
13770    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13771  }
13772  {
13773    BI opval = 1;
13774    SET_H_INSN_PREFIXED_P (opval);
13775    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13776  }
13777}
13778
13779#undef FLD
13780}
13781  NEXT (vpc);
13782
13783  CASE (sem, INSN_ADDO_CD) : /* addo.d [PC+],$Rd,ACR */
13784{
13785  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13786  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13787#define FLD(f) abuf->fields.sfmt_bound_cd.f
13788  int UNUSED written = 0;
13789  IADDR UNUSED pc = abuf->addr;
13790  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13791
13792{
13793  {
13794    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
13795    CPU (h_prefixreg_pre_v32) = opval;
13796    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13797  }
13798  {
13799    BI opval = 1;
13800    SET_H_INSN_PREFIXED_P (opval);
13801    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13802  }
13803}
13804
13805#undef FLD
13806}
13807  NEXT (vpc);
13808
13809  CASE (sem, INSN_DIP_M) : /* dip [${Rs}${inc}] */
13810{
13811  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13812  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13813#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
13814  int UNUSED written = 0;
13815  IADDR UNUSED pc = abuf->addr;
13816  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13817
13818{
13819  SI tmp_tmps;
13820  tmp_tmps = ({   SI tmp_addr;
13821  SI tmp_tmp_mem;
13822  BI tmp_postinc;
13823  tmp_postinc = FLD (f_memmode);
13824;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (CPU (h_prefixreg_pre_v32)));
13825;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13826; if (NEBI (tmp_postinc, 0)) {
13827{
13828if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13829  tmp_addr = ADDSI (tmp_addr, 4);
13830}
13831  {
13832    SI opval = tmp_addr;
13833    SET_H_GR (FLD (f_operand1), opval);
13834    written |= (1 << 5);
13835    CGEN_TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13836  }
13837}
13838}
13839; tmp_tmp_mem; });
13840  {
13841    SI opval = tmp_tmps;
13842    CPU (h_prefixreg_pre_v32) = opval;
13843    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13844  }
13845  {
13846    BI opval = 1;
13847    SET_H_INSN_PREFIXED_P (opval);
13848    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13849  }
13850}
13851
13852  abuf->written = written;
13853#undef FLD
13854}
13855  NEXT (vpc);
13856
13857  CASE (sem, INSN_DIP_C) : /* dip [PC+] */
13858{
13859  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13860  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13861#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
13862  int UNUSED written = 0;
13863  IADDR UNUSED pc = abuf->addr;
13864  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13865
13866{
13867  {
13868    SI opval = FLD (f_indir_pc__dword);
13869    CPU (h_prefixreg_pre_v32) = opval;
13870    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13871  }
13872  {
13873    BI opval = 1;
13874    SET_H_INSN_PREFIXED_P (opval);
13875    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13876  }
13877}
13878
13879#undef FLD
13880}
13881  NEXT (vpc);
13882
13883  CASE (sem, INSN_ADDI_ACR_B_R) : /* addi-acr.b ${Rs-dfield}.m,${Rd-sfield},ACR */
13884{
13885  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13886  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13887#define FLD(f) abuf->fields.sfmt_add_b_r.f
13888  int UNUSED written = 0;
13889  IADDR UNUSED pc = abuf->addr;
13890  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13891
13892{
13893  {
13894    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 1));
13895    CPU (h_prefixreg_pre_v32) = opval;
13896    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13897  }
13898  {
13899    BI opval = 1;
13900    SET_H_INSN_PREFIXED_P (opval);
13901    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13902  }
13903}
13904
13905#undef FLD
13906}
13907  NEXT (vpc);
13908
13909  CASE (sem, INSN_ADDI_ACR_W_R) : /* addi-acr.w ${Rs-dfield}.m,${Rd-sfield},ACR */
13910{
13911  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13912  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13913#define FLD(f) abuf->fields.sfmt_add_b_r.f
13914  int UNUSED written = 0;
13915  IADDR UNUSED pc = abuf->addr;
13916  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13917
13918{
13919  {
13920    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 2));
13921    CPU (h_prefixreg_pre_v32) = opval;
13922    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13923  }
13924  {
13925    BI opval = 1;
13926    SET_H_INSN_PREFIXED_P (opval);
13927    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13928  }
13929}
13930
13931#undef FLD
13932}
13933  NEXT (vpc);
13934
13935  CASE (sem, INSN_ADDI_ACR_D_R) : /* addi-acr.d ${Rs-dfield}.m,${Rd-sfield},ACR */
13936{
13937  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13938  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13939#define FLD(f) abuf->fields.sfmt_add_b_r.f
13940  int UNUSED written = 0;
13941  IADDR UNUSED pc = abuf->addr;
13942  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13943
13944{
13945  {
13946    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 4));
13947    CPU (h_prefixreg_pre_v32) = opval;
13948    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13949  }
13950  {
13951    BI opval = 1;
13952    SET_H_INSN_PREFIXED_P (opval);
13953    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13954  }
13955}
13956
13957#undef FLD
13958}
13959  NEXT (vpc);
13960
13961  CASE (sem, INSN_BIAP_PC_B_R) : /* biap-pc.b ${Rs-dfield}.m,PC */
13962{
13963  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13964  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13965#define FLD(f) abuf->fields.sfmt_addoq.f
13966  int UNUSED written = 0;
13967  IADDR UNUSED pc = abuf->addr;
13968  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13969
13970{
13971  {
13972    SI opval = ADDSI (ADDSI (pc, 4), MULSI (GET_H_GR (FLD (f_operand2)), 1));
13973    CPU (h_prefixreg_pre_v32) = opval;
13974    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13975  }
13976  {
13977    BI opval = 1;
13978    SET_H_INSN_PREFIXED_P (opval);
13979    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13980  }
13981}
13982
13983#undef FLD
13984}
13985  NEXT (vpc);
13986
13987  CASE (sem, INSN_BIAP_PC_W_R) : /* biap-pc.w ${Rs-dfield}.m,PC */
13988{
13989  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13990  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13991#define FLD(f) abuf->fields.sfmt_addoq.f
13992  int UNUSED written = 0;
13993  IADDR UNUSED pc = abuf->addr;
13994  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13995
13996{
13997  {
13998    SI opval = ADDSI (ADDSI (pc, 4), MULSI (GET_H_GR (FLD (f_operand2)), 2));
13999    CPU (h_prefixreg_pre_v32) = opval;
14000    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
14001  }
14002  {
14003    BI opval = 1;
14004    SET_H_INSN_PREFIXED_P (opval);
14005    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
14006  }
14007}
14008
14009#undef FLD
14010}
14011  NEXT (vpc);
14012
14013  CASE (sem, INSN_BIAP_PC_D_R) : /* biap-pc.d ${Rs-dfield}.m,PC */
14014{
14015  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14016  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14017#define FLD(f) abuf->fields.sfmt_addoq.f
14018  int UNUSED written = 0;
14019  IADDR UNUSED pc = abuf->addr;
14020  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14021
14022{
14023  {
14024    SI opval = ADDSI (ADDSI (pc, 4), MULSI (GET_H_GR (FLD (f_operand2)), 4));
14025    CPU (h_prefixreg_pre_v32) = opval;
14026    CGEN_TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
14027  }
14028  {
14029    BI opval = 1;
14030    SET_H_INSN_PREFIXED_P (opval);
14031    CGEN_TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
14032  }
14033}
14034
14035#undef FLD
14036}
14037  NEXT (vpc);
14038
14039
14040    }
14041  ENDSWITCH (sem) /* End of semantic switch.  */
14042
14043  /* At this point `vpc' contains the next insn to execute.  */
14044}
14045
14046#undef DEFINE_SWITCH
14047#endif /* DEFINE_SWITCH */
14048