sim: parse_args: display getopt error ourselves
[external/binutils.git] / sim / cris / semcrisv10f-switch.c
1 /* Simulator instruction semantics for crisv10f.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2016 Free Software Foundation, Inc.
6
7 This 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
281 SWITCH (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   }
500 SET_H_CBIT_MOVE (0);
501 SET_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   }
553 SET_H_CBIT_MOVE (0);
554 SET_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   }
602 SET_H_CBIT_MOVE (0);
603 SET_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   }
652 SET_H_CBIT_MOVE (0);
653 SET_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 {
692 SET_H_NBIT_MOVE (LTSI (tmp_newval, 0));
693 SET_H_ZBIT_MOVE (ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1))));
694 SET_H_CBIT_MOVE (0);
695 SET_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   }
745 SET_H_CBIT_MOVE (0);
746 SET_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   }
796 SET_H_CBIT_MOVE (0);
797 SET_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   }
847 SET_H_CBIT_MOVE (0);
848 SET_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   }
898 SET_H_CBIT_MOVE (0);
899 SET_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   }
951 SET_H_CBIT_MOVE (0);
952 SET_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   }
1004 SET_H_CBIT_MOVE (0);
1005 SET_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   }
1053 SET_H_CBIT_MOVE (0);
1054 SET_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   }
1102 SET_H_CBIT_MOVE (0);
1103 SET_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   }
1151 SET_H_CBIT_MOVE (0);
1152 SET_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   }
1200 SET_H_CBIT_MOVE (0);
1201 SET_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   }
1249 SET_H_CBIT_MOVE (0);
1250 SET_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 {
1595 if (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 {
1674 if (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 {
1753 if (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 {
2068 if (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 {
2147 if (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 {
2344 if (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 {
2423 if (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 {
2617 if (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   }
2649 SET_H_CBIT_MOVE (0);
2650 SET_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 {
2690 if (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   }
2722 SET_H_CBIT_MOVE (0);
2723 SET_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 {
2763 if (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   }
2791 SET_H_CBIT_MOVE (0);
2792 SET_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 {
2832 if (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; }));
2844 if (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   }
2870 SET_H_CBIT_MOVE (0);
2871 SET_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 {
2911 if (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; }));
2923 if (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   }
2949 SET_H_CBIT_MOVE (0);
2950 SET_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 {
2990 if (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; }));
3002 if (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   }
3028 SET_H_CBIT_MOVE (0);
3029 SET_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 {
3069 if (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; }));
3081 if (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   }
3107 SET_H_CBIT_MOVE (0);
3108 SET_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);
3143 if (ORIF (ORIF (EQSI (tmp_rno, 0), EQSI (tmp_rno, 1)), ORIF (EQSI (tmp_rno, 4), EQSI (tmp_rno, 8)))) {
3144 cgen_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));
3188 if (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 {
3309 cgen_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);
3382 if (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 {
3391 if (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 {
3413 if (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 {
3435 if (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 {
3457 if (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 {
3479 if (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 {
3501 if (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 {
3523 if (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 {
3545 if (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 {
3567 if (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 {
3581 cgen_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);
3916 if (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)));
3922 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
3923 if (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 }
3954 if (NEBI (tmp_postinc, 0)) {
3955 {
3956 if (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)));
3975 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
3976 if (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 }
4007 if (NEBI (tmp_postinc, 0)) {
4008 {
4009 if (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)));
4028 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4029 if (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 }
4060 if (NEBI (tmp_postinc, 0)) {
4061 {
4062 if (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)));
4081 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4082 if (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 }
4113 if (NEBI (tmp_postinc, 0)) {
4114 {
4115 if (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)));
4134 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4135 if (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 }
4166 if (NEBI (tmp_postinc, 0)) {
4167 {
4168 if (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)));
4187 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4188 if (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 }
4219 if (NEBI (tmp_postinc, 0)) {
4220 {
4221 if (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)));
4240 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4241 if (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 }
4272 if (NEBI (tmp_postinc, 0)) {
4273 {
4274 if (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)));
4293 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4294 if (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 }
4325 if (NEBI (tmp_postinc, 0)) {
4326 {
4327 if (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)));
4346 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4347 if (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 }
4378 if (NEBI (tmp_postinc, 0)) {
4379 {
4380 if (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)));
4399 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4400 if (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 }
4431 if (NEBI (tmp_postinc, 0)) {
4432 {
4433 if (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)));
4452 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4453 if (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 }
4484 if (NEBI (tmp_postinc, 0)) {
4485 {
4486 if (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)));
4505 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4506 if (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 }
4537 if (NEBI (tmp_postinc, 0)) {
4538 {
4539 if (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)));
4558 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
4559 if (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 }
4590 if (NEBI (tmp_postinc, 0)) {
4591 {
4592 if (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 {
4606 cgen_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
4636 cgen_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 {
4661 if (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 }
4674 if (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 }
4687 if (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 }
4700 if (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 }
4713 if (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 }
4726 if (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 }
4739 if (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 }
4752 if (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 }
4765 if (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 }
4778 if (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 }
4791 if (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 }
4804 if (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 }
4817 if (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 }
4830 if (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 }
4843 if (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 }
4856 if (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 }
4870 if (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 {
4916 if (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 }
4929 if (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 }
4942 if (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 }
4955 if (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 }
4968 if (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 }
4981 if (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 }
4994 if (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 }
5007 if (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 }
5020 if (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 }
5033 if (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 }
5046 if (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 }
5059 if (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 }
5072 if (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 }
5085 if (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 }
5098 if (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 }
5112 if (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 }
5312 if (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 {
5559 if (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 {
5646 if (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 {
5733 if (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 {
6202 if (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 {
6285 if (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;
6486 if (NOTBI (GET_H_INSN_PREFIXED_P ())) {
6487 cgen_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 {
6686 if (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 {
6769 if (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 {
7175 if (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 {
7262 if (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 {
7349 if (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 {
7755 if (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 {
7838 if (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 {
8173 if (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 {
8256 if (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 {
8758 if (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 {
8841 if (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 {
8924 if (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)));
9005 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9006 if (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 }
9037 if (NEBI (tmp_postinc, 0)) {
9038 {
9039 if (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)));
9087 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9088 if (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 }
9119 if (NEBI (tmp_postinc, 0)) {
9120 {
9121 if (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)));
9169 if (ANDIF (GET_H_V32_NON_V32 (), NEBI (CPU (h_xbit), 0))) {
9170 if (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 }
9201 if (NEBI (tmp_postinc, 0)) {
9202 {
9203 if (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   }
9660 SET_H_CBIT_MOVE (0);
9661 SET_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   }
9713 SET_H_CBIT_MOVE (0);
9714 SET_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   }
9762 SET_H_CBIT_MOVE (0);
9763 SET_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   }
9815 SET_H_CBIT_MOVE (0);
9816 SET_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   }
9868 SET_H_CBIT_MOVE (0);
9869 SET_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   }
9917 SET_H_CBIT_MOVE (0);
9918 SET_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 {
9957 if (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   }
9989 SET_H_CBIT_MOVE (0);
9990 SET_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 {
10030 if (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   }
10062 SET_H_CBIT_MOVE (0);
10063 SET_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 {
10103 if (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   }
10131 SET_H_CBIT_MOVE (0);
10132 SET_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   }
10185 SET_H_CBIT_MOVE (0);
10186 SET_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   }
10238 SET_H_CBIT_MOVE (0);
10239 SET_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   }
10287 SET_H_CBIT_MOVE (0);
10288 SET_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   }
10336 SET_H_CBIT_MOVE (0);
10337 SET_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   }
10389 SET_H_CBIT_MOVE (0);
10390 SET_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   }
10442 SET_H_CBIT_MOVE (0);
10443 SET_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   }
10491 SET_H_CBIT_MOVE (0);
10492 SET_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 {
10531 if (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   }
10563 SET_H_CBIT_MOVE (0);
10564 SET_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 {
10604 if (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   }
10636 SET_H_CBIT_MOVE (0);
10637 SET_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 {
10677 if (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   }
10705 SET_H_CBIT_MOVE (0);
10706 SET_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   }
10759 SET_H_CBIT_MOVE (0);
10760 SET_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   }
10812 SET_H_CBIT_MOVE (0);
10813 SET_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   }
10861 SET_H_CBIT_MOVE (0);
10862 SET_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   }
10910 SET_H_CBIT_MOVE (0);
10911 SET_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   }
10959 SET_H_CBIT_MOVE (0);
10960 SET_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   }
11111 SET_H_CBIT_MOVE (0);
11112 SET_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   }
11168 SET_H_CBIT_MOVE (0);
11169 SET_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   }
11225 SET_H_CBIT_MOVE (0);
11226 SET_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   }
11278 SET_H_CBIT_MOVE (0);
11279 SET_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   }
11327 SET_H_CBIT_MOVE (0);
11328 SET_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   }
11382 SET_H_CBIT_MOVE (0);
11383 SET_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   }
11437 SET_H_CBIT_MOVE (0);
11438 SET_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   }
11488 SET_H_CBIT_MOVE (0);
11489 SET_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   }
11537 SET_H_CBIT_MOVE (0);
11538 SET_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   }
11592 SET_H_CBIT_MOVE (0);
11593 SET_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   }
11647 SET_H_CBIT_MOVE (0);
11648 SET_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   }
11698 SET_H_CBIT_MOVE (0);
11699 SET_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   }
11747 SET_H_CBIT_MOVE (0);
11748 SET_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   }
11792 SET_H_CBIT_MOVE (0);
11793 SET_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   }
11836 SET_H_CBIT_MOVE (0);
11837 SET_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);
11869 if (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 }
11877 if (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 }
11885 if (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 }
11893 if (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 }
11901 if (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 }
11909 if (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 }
11917 if (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 }
11925 if (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   }
11938 if (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);
11965 if (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 }
11973 if (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 }
11981 if (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 }
11989 if (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 }
11997 if (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 }
12005 if (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 }
12013 if (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 }
12021 if (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; });
12113 crisv10f_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 }
12126 if (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; });
12245 crisv10f_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 }
12258 if (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 {
12378 if (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   }
12520 SET_H_CBIT_MOVE (0);
12521 SET_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   }
12573 SET_H_CBIT_MOVE (0);
12574 SET_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   }
12626 SET_H_CBIT_MOVE (0);
12627 SET_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 {
12668 if (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));
12682 if (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   }
12708 SET_H_CBIT_MOVE (0);
12709 SET_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 {
12751 if (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));
12765 if (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   }
12791 SET_H_CBIT_MOVE (0);
12792 SET_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 {
12834 if (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));
12848 if (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   }
12874 SET_H_CBIT_MOVE (0);
12875 SET_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   }
12928 SET_H_CBIT_MOVE (0);
12929 SET_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   }
12981 SET_H_CBIT_MOVE (0);
12982 SET_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   }
13034 SET_H_CBIT_MOVE (0);
13035 SET_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 {
13156 if (GESI (tmp_tmp, 0)) {
13157 {
13158   tmp_tmp = SLLSI (tmp_tmp, 1);
13159   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13160 }
13161 }
13162 if (GESI (tmp_tmp, 0)) {
13163 {
13164   tmp_tmp = SLLSI (tmp_tmp, 1);
13165   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13166 }
13167 }
13168 if (GESI (tmp_tmp, 0)) {
13169 {
13170   tmp_tmp = SLLSI (tmp_tmp, 1);
13171   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13172 }
13173 }
13174 if (GESI (tmp_tmp, 0)) {
13175 {
13176   tmp_tmp = SLLSI (tmp_tmp, 1);
13177   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13178 }
13179 }
13180 if (GESI (tmp_tmp, 0)) {
13181 {
13182   tmp_tmp = SLLSI (tmp_tmp, 1);
13183   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13184 }
13185 }
13186 if (GESI (tmp_tmp, 0)) {
13187 {
13188   tmp_tmp = SLLSI (tmp_tmp, 1);
13189   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13190 }
13191 }
13192 if (GESI (tmp_tmp, 0)) {
13193 {
13194   tmp_tmp = SLLSI (tmp_tmp, 1);
13195   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13196 }
13197 }
13198 if (GESI (tmp_tmp, 0)) {
13199 {
13200   tmp_tmp = SLLSI (tmp_tmp, 1);
13201   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13202 }
13203 }
13204 if (GESI (tmp_tmp, 0)) {
13205 {
13206   tmp_tmp = SLLSI (tmp_tmp, 1);
13207   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13208 }
13209 }
13210 if (GESI (tmp_tmp, 0)) {
13211 {
13212   tmp_tmp = SLLSI (tmp_tmp, 1);
13213   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13214 }
13215 }
13216 if (GESI (tmp_tmp, 0)) {
13217 {
13218   tmp_tmp = SLLSI (tmp_tmp, 1);
13219   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13220 }
13221 }
13222 if (GESI (tmp_tmp, 0)) {
13223 {
13224   tmp_tmp = SLLSI (tmp_tmp, 1);
13225   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13226 }
13227 }
13228 if (GESI (tmp_tmp, 0)) {
13229 {
13230   tmp_tmp = SLLSI (tmp_tmp, 1);
13231   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13232 }
13233 }
13234 if (GESI (tmp_tmp, 0)) {
13235 {
13236   tmp_tmp = SLLSI (tmp_tmp, 1);
13237   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13238 }
13239 }
13240 if (GESI (tmp_tmp, 0)) {
13241 {
13242   tmp_tmp = SLLSI (tmp_tmp, 1);
13243   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13244 }
13245 }
13246 if (GESI (tmp_tmp, 0)) {
13247 {
13248   tmp_tmp = SLLSI (tmp_tmp, 1);
13249   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13250 }
13251 }
13252 if (GESI (tmp_tmp, 0)) {
13253 {
13254   tmp_tmp = SLLSI (tmp_tmp, 1);
13255   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13256 }
13257 }
13258 if (GESI (tmp_tmp, 0)) {
13259 {
13260   tmp_tmp = SLLSI (tmp_tmp, 1);
13261   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13262 }
13263 }
13264 if (GESI (tmp_tmp, 0)) {
13265 {
13266   tmp_tmp = SLLSI (tmp_tmp, 1);
13267   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13268 }
13269 }
13270 if (GESI (tmp_tmp, 0)) {
13271 {
13272   tmp_tmp = SLLSI (tmp_tmp, 1);
13273   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13274 }
13275 }
13276 if (GESI (tmp_tmp, 0)) {
13277 {
13278   tmp_tmp = SLLSI (tmp_tmp, 1);
13279   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13280 }
13281 }
13282 if (GESI (tmp_tmp, 0)) {
13283 {
13284   tmp_tmp = SLLSI (tmp_tmp, 1);
13285   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13286 }
13287 }
13288 if (GESI (tmp_tmp, 0)) {
13289 {
13290   tmp_tmp = SLLSI (tmp_tmp, 1);
13291   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13292 }
13293 }
13294 if (GESI (tmp_tmp, 0)) {
13295 {
13296   tmp_tmp = SLLSI (tmp_tmp, 1);
13297   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13298 }
13299 }
13300 if (GESI (tmp_tmp, 0)) {
13301 {
13302   tmp_tmp = SLLSI (tmp_tmp, 1);
13303   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13304 }
13305 }
13306 if (GESI (tmp_tmp, 0)) {
13307 {
13308   tmp_tmp = SLLSI (tmp_tmp, 1);
13309   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13310 }
13311 }
13312 if (GESI (tmp_tmp, 0)) {
13313 {
13314   tmp_tmp = SLLSI (tmp_tmp, 1);
13315   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13316 }
13317 }
13318 if (GESI (tmp_tmp, 0)) {
13319 {
13320   tmp_tmp = SLLSI (tmp_tmp, 1);
13321   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13322 }
13323 }
13324 if (GESI (tmp_tmp, 0)) {
13325 {
13326   tmp_tmp = SLLSI (tmp_tmp, 1);
13327   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13328 }
13329 }
13330 if (GESI (tmp_tmp, 0)) {
13331 {
13332   tmp_tmp = SLLSI (tmp_tmp, 1);
13333   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13334 }
13335 }
13336 if (GESI (tmp_tmp, 0)) {
13337 {
13338   tmp_tmp = SLLSI (tmp_tmp, 1);
13339   tmp_tmpd = ADDSI (tmp_tmpd, 1);
13340 }
13341 }
13342 if (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   }
13365 SET_H_CBIT_MOVE (0);
13366 SET_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   }
13433 cris_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
13483 if (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 {
13494 if (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 {
13522 cgen_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
13540 if (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 {
13551 if (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 {
13579 cgen_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 {
13606 if (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 {
13654 if (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 {
13702 if (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 {
13828 if (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 */