OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [sim/] [cris/] [semcrisv32f-switch.c] - Blame information for rev 853

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 330 jeremybenn
/* Simulator instruction semantics for crisv32f.
2
 
3
THIS FILE IS MACHINE GENERATED WITH CGEN.
4
 
5
Copyright 1996-2010 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, write to the Free Software Foundation, Inc.,
21
   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22
 
23
*/
24
 
25
#ifdef DEFINE_LABELS
26
 
27
  /* The labels have the case they have because the enum of insn types
28
     is all uppercase and in the non-stdc case the insn symbol is built
29
     into the enum name.  */
30
 
31
  static struct {
32
    int index;
33
    void *label;
34
  } labels[] = {
35
    { CRISV32F_INSN_X_INVALID, && case_sem_INSN_X_INVALID },
36
    { CRISV32F_INSN_X_AFTER, && case_sem_INSN_X_AFTER },
37
    { CRISV32F_INSN_X_BEFORE, && case_sem_INSN_X_BEFORE },
38
    { CRISV32F_INSN_X_CTI_CHAIN, && case_sem_INSN_X_CTI_CHAIN },
39
    { CRISV32F_INSN_X_CHAIN, && case_sem_INSN_X_CHAIN },
40
    { CRISV32F_INSN_X_BEGIN, && case_sem_INSN_X_BEGIN },
41
    { CRISV32F_INSN_MOVE_B_R, && case_sem_INSN_MOVE_B_R },
42
    { CRISV32F_INSN_MOVE_W_R, && case_sem_INSN_MOVE_W_R },
43
    { CRISV32F_INSN_MOVE_D_R, && case_sem_INSN_MOVE_D_R },
44
    { CRISV32F_INSN_MOVEQ, && case_sem_INSN_MOVEQ },
45
    { CRISV32F_INSN_MOVS_B_R, && case_sem_INSN_MOVS_B_R },
46
    { CRISV32F_INSN_MOVS_W_R, && case_sem_INSN_MOVS_W_R },
47
    { CRISV32F_INSN_MOVU_B_R, && case_sem_INSN_MOVU_B_R },
48
    { CRISV32F_INSN_MOVU_W_R, && case_sem_INSN_MOVU_W_R },
49
    { CRISV32F_INSN_MOVECBR, && case_sem_INSN_MOVECBR },
50
    { CRISV32F_INSN_MOVECWR, && case_sem_INSN_MOVECWR },
51
    { CRISV32F_INSN_MOVECDR, && case_sem_INSN_MOVECDR },
52
    { CRISV32F_INSN_MOVSCBR, && case_sem_INSN_MOVSCBR },
53
    { CRISV32F_INSN_MOVSCWR, && case_sem_INSN_MOVSCWR },
54
    { CRISV32F_INSN_MOVUCBR, && case_sem_INSN_MOVUCBR },
55
    { CRISV32F_INSN_MOVUCWR, && case_sem_INSN_MOVUCWR },
56
    { CRISV32F_INSN_ADDQ, && case_sem_INSN_ADDQ },
57
    { CRISV32F_INSN_SUBQ, && case_sem_INSN_SUBQ },
58
    { CRISV32F_INSN_CMP_R_B_R, && case_sem_INSN_CMP_R_B_R },
59
    { CRISV32F_INSN_CMP_R_W_R, && case_sem_INSN_CMP_R_W_R },
60
    { CRISV32F_INSN_CMP_R_D_R, && case_sem_INSN_CMP_R_D_R },
61
    { CRISV32F_INSN_CMP_M_B_M, && case_sem_INSN_CMP_M_B_M },
62
    { CRISV32F_INSN_CMP_M_W_M, && case_sem_INSN_CMP_M_W_M },
63
    { CRISV32F_INSN_CMP_M_D_M, && case_sem_INSN_CMP_M_D_M },
64
    { CRISV32F_INSN_CMPCBR, && case_sem_INSN_CMPCBR },
65
    { CRISV32F_INSN_CMPCWR, && case_sem_INSN_CMPCWR },
66
    { CRISV32F_INSN_CMPCDR, && case_sem_INSN_CMPCDR },
67
    { CRISV32F_INSN_CMPQ, && case_sem_INSN_CMPQ },
68
    { CRISV32F_INSN_CMPS_M_B_M, && case_sem_INSN_CMPS_M_B_M },
69
    { CRISV32F_INSN_CMPS_M_W_M, && case_sem_INSN_CMPS_M_W_M },
70
    { CRISV32F_INSN_CMPSCBR, && case_sem_INSN_CMPSCBR },
71
    { CRISV32F_INSN_CMPSCWR, && case_sem_INSN_CMPSCWR },
72
    { CRISV32F_INSN_CMPU_M_B_M, && case_sem_INSN_CMPU_M_B_M },
73
    { CRISV32F_INSN_CMPU_M_W_M, && case_sem_INSN_CMPU_M_W_M },
74
    { CRISV32F_INSN_CMPUCBR, && case_sem_INSN_CMPUCBR },
75
    { CRISV32F_INSN_CMPUCWR, && case_sem_INSN_CMPUCWR },
76
    { CRISV32F_INSN_MOVE_M_B_M, && case_sem_INSN_MOVE_M_B_M },
77
    { CRISV32F_INSN_MOVE_M_W_M, && case_sem_INSN_MOVE_M_W_M },
78
    { CRISV32F_INSN_MOVE_M_D_M, && case_sem_INSN_MOVE_M_D_M },
79
    { CRISV32F_INSN_MOVS_M_B_M, && case_sem_INSN_MOVS_M_B_M },
80
    { CRISV32F_INSN_MOVS_M_W_M, && case_sem_INSN_MOVS_M_W_M },
81
    { CRISV32F_INSN_MOVU_M_B_M, && case_sem_INSN_MOVU_M_B_M },
82
    { CRISV32F_INSN_MOVU_M_W_M, && case_sem_INSN_MOVU_M_W_M },
83
    { CRISV32F_INSN_MOVE_R_SPRV32, && case_sem_INSN_MOVE_R_SPRV32 },
84
    { CRISV32F_INSN_MOVE_SPR_RV32, && case_sem_INSN_MOVE_SPR_RV32 },
85
    { CRISV32F_INSN_MOVE_M_SPRV32, && case_sem_INSN_MOVE_M_SPRV32 },
86
    { CRISV32F_INSN_MOVE_C_SPRV32_P2, && case_sem_INSN_MOVE_C_SPRV32_P2 },
87
    { CRISV32F_INSN_MOVE_C_SPRV32_P3, && case_sem_INSN_MOVE_C_SPRV32_P3 },
88
    { CRISV32F_INSN_MOVE_C_SPRV32_P5, && case_sem_INSN_MOVE_C_SPRV32_P5 },
89
    { CRISV32F_INSN_MOVE_C_SPRV32_P6, && case_sem_INSN_MOVE_C_SPRV32_P6 },
90
    { CRISV32F_INSN_MOVE_C_SPRV32_P7, && case_sem_INSN_MOVE_C_SPRV32_P7 },
91
    { CRISV32F_INSN_MOVE_C_SPRV32_P9, && case_sem_INSN_MOVE_C_SPRV32_P9 },
92
    { CRISV32F_INSN_MOVE_C_SPRV32_P10, && case_sem_INSN_MOVE_C_SPRV32_P10 },
93
    { CRISV32F_INSN_MOVE_C_SPRV32_P11, && case_sem_INSN_MOVE_C_SPRV32_P11 },
94
    { CRISV32F_INSN_MOVE_C_SPRV32_P12, && case_sem_INSN_MOVE_C_SPRV32_P12 },
95
    { CRISV32F_INSN_MOVE_C_SPRV32_P13, && case_sem_INSN_MOVE_C_SPRV32_P13 },
96
    { CRISV32F_INSN_MOVE_C_SPRV32_P14, && case_sem_INSN_MOVE_C_SPRV32_P14 },
97
    { CRISV32F_INSN_MOVE_C_SPRV32_P15, && case_sem_INSN_MOVE_C_SPRV32_P15 },
98
    { CRISV32F_INSN_MOVE_SPR_MV32, && case_sem_INSN_MOVE_SPR_MV32 },
99
    { CRISV32F_INSN_MOVE_SS_R, && case_sem_INSN_MOVE_SS_R },
100
    { CRISV32F_INSN_MOVE_R_SS, && case_sem_INSN_MOVE_R_SS },
101
    { CRISV32F_INSN_MOVEM_R_M_V32, && case_sem_INSN_MOVEM_R_M_V32 },
102
    { CRISV32F_INSN_MOVEM_M_R_V32, && case_sem_INSN_MOVEM_M_R_V32 },
103
    { CRISV32F_INSN_ADD_B_R, && case_sem_INSN_ADD_B_R },
104
    { CRISV32F_INSN_ADD_W_R, && case_sem_INSN_ADD_W_R },
105
    { CRISV32F_INSN_ADD_D_R, && case_sem_INSN_ADD_D_R },
106
    { CRISV32F_INSN_ADD_M_B_M, && case_sem_INSN_ADD_M_B_M },
107
    { CRISV32F_INSN_ADD_M_W_M, && case_sem_INSN_ADD_M_W_M },
108
    { CRISV32F_INSN_ADD_M_D_M, && case_sem_INSN_ADD_M_D_M },
109
    { CRISV32F_INSN_ADDCBR, && case_sem_INSN_ADDCBR },
110
    { CRISV32F_INSN_ADDCWR, && case_sem_INSN_ADDCWR },
111
    { CRISV32F_INSN_ADDCDR, && case_sem_INSN_ADDCDR },
112
    { CRISV32F_INSN_ADDS_B_R, && case_sem_INSN_ADDS_B_R },
113
    { CRISV32F_INSN_ADDS_W_R, && case_sem_INSN_ADDS_W_R },
114
    { CRISV32F_INSN_ADDS_M_B_M, && case_sem_INSN_ADDS_M_B_M },
115
    { CRISV32F_INSN_ADDS_M_W_M, && case_sem_INSN_ADDS_M_W_M },
116
    { CRISV32F_INSN_ADDSCBR, && case_sem_INSN_ADDSCBR },
117
    { CRISV32F_INSN_ADDSCWR, && case_sem_INSN_ADDSCWR },
118
    { CRISV32F_INSN_ADDU_B_R, && case_sem_INSN_ADDU_B_R },
119
    { CRISV32F_INSN_ADDU_W_R, && case_sem_INSN_ADDU_W_R },
120
    { CRISV32F_INSN_ADDU_M_B_M, && case_sem_INSN_ADDU_M_B_M },
121
    { CRISV32F_INSN_ADDU_M_W_M, && case_sem_INSN_ADDU_M_W_M },
122
    { CRISV32F_INSN_ADDUCBR, && case_sem_INSN_ADDUCBR },
123
    { CRISV32F_INSN_ADDUCWR, && case_sem_INSN_ADDUCWR },
124
    { CRISV32F_INSN_SUB_B_R, && case_sem_INSN_SUB_B_R },
125
    { CRISV32F_INSN_SUB_W_R, && case_sem_INSN_SUB_W_R },
126
    { CRISV32F_INSN_SUB_D_R, && case_sem_INSN_SUB_D_R },
127
    { CRISV32F_INSN_SUB_M_B_M, && case_sem_INSN_SUB_M_B_M },
128
    { CRISV32F_INSN_SUB_M_W_M, && case_sem_INSN_SUB_M_W_M },
129
    { CRISV32F_INSN_SUB_M_D_M, && case_sem_INSN_SUB_M_D_M },
130
    { CRISV32F_INSN_SUBCBR, && case_sem_INSN_SUBCBR },
131
    { CRISV32F_INSN_SUBCWR, && case_sem_INSN_SUBCWR },
132
    { CRISV32F_INSN_SUBCDR, && case_sem_INSN_SUBCDR },
133
    { CRISV32F_INSN_SUBS_B_R, && case_sem_INSN_SUBS_B_R },
134
    { CRISV32F_INSN_SUBS_W_R, && case_sem_INSN_SUBS_W_R },
135
    { CRISV32F_INSN_SUBS_M_B_M, && case_sem_INSN_SUBS_M_B_M },
136
    { CRISV32F_INSN_SUBS_M_W_M, && case_sem_INSN_SUBS_M_W_M },
137
    { CRISV32F_INSN_SUBSCBR, && case_sem_INSN_SUBSCBR },
138
    { CRISV32F_INSN_SUBSCWR, && case_sem_INSN_SUBSCWR },
139
    { CRISV32F_INSN_SUBU_B_R, && case_sem_INSN_SUBU_B_R },
140
    { CRISV32F_INSN_SUBU_W_R, && case_sem_INSN_SUBU_W_R },
141
    { CRISV32F_INSN_SUBU_M_B_M, && case_sem_INSN_SUBU_M_B_M },
142
    { CRISV32F_INSN_SUBU_M_W_M, && case_sem_INSN_SUBU_M_W_M },
143
    { CRISV32F_INSN_SUBUCBR, && case_sem_INSN_SUBUCBR },
144
    { CRISV32F_INSN_SUBUCWR, && case_sem_INSN_SUBUCWR },
145
    { CRISV32F_INSN_ADDC_R, && case_sem_INSN_ADDC_R },
146
    { CRISV32F_INSN_ADDC_M, && case_sem_INSN_ADDC_M },
147
    { CRISV32F_INSN_ADDC_C, && case_sem_INSN_ADDC_C },
148
    { CRISV32F_INSN_LAPC_D, && case_sem_INSN_LAPC_D },
149
    { CRISV32F_INSN_LAPCQ, && case_sem_INSN_LAPCQ },
150
    { CRISV32F_INSN_ADDI_B_R, && case_sem_INSN_ADDI_B_R },
151
    { CRISV32F_INSN_ADDI_W_R, && case_sem_INSN_ADDI_W_R },
152
    { CRISV32F_INSN_ADDI_D_R, && case_sem_INSN_ADDI_D_R },
153
    { CRISV32F_INSN_NEG_B_R, && case_sem_INSN_NEG_B_R },
154
    { CRISV32F_INSN_NEG_W_R, && case_sem_INSN_NEG_W_R },
155
    { CRISV32F_INSN_NEG_D_R, && case_sem_INSN_NEG_D_R },
156
    { CRISV32F_INSN_TEST_M_B_M, && case_sem_INSN_TEST_M_B_M },
157
    { CRISV32F_INSN_TEST_M_W_M, && case_sem_INSN_TEST_M_W_M },
158
    { CRISV32F_INSN_TEST_M_D_M, && case_sem_INSN_TEST_M_D_M },
159
    { CRISV32F_INSN_MOVE_R_M_B_M, && case_sem_INSN_MOVE_R_M_B_M },
160
    { CRISV32F_INSN_MOVE_R_M_W_M, && case_sem_INSN_MOVE_R_M_W_M },
161
    { CRISV32F_INSN_MOVE_R_M_D_M, && case_sem_INSN_MOVE_R_M_D_M },
162
    { CRISV32F_INSN_MULS_B, && case_sem_INSN_MULS_B },
163
    { CRISV32F_INSN_MULS_W, && case_sem_INSN_MULS_W },
164
    { CRISV32F_INSN_MULS_D, && case_sem_INSN_MULS_D },
165
    { CRISV32F_INSN_MULU_B, && case_sem_INSN_MULU_B },
166
    { CRISV32F_INSN_MULU_W, && case_sem_INSN_MULU_W },
167
    { CRISV32F_INSN_MULU_D, && case_sem_INSN_MULU_D },
168
    { CRISV32F_INSN_MCP, && case_sem_INSN_MCP },
169
    { CRISV32F_INSN_DSTEP, && case_sem_INSN_DSTEP },
170
    { CRISV32F_INSN_ABS, && case_sem_INSN_ABS },
171
    { CRISV32F_INSN_AND_B_R, && case_sem_INSN_AND_B_R },
172
    { CRISV32F_INSN_AND_W_R, && case_sem_INSN_AND_W_R },
173
    { CRISV32F_INSN_AND_D_R, && case_sem_INSN_AND_D_R },
174
    { CRISV32F_INSN_AND_M_B_M, && case_sem_INSN_AND_M_B_M },
175
    { CRISV32F_INSN_AND_M_W_M, && case_sem_INSN_AND_M_W_M },
176
    { CRISV32F_INSN_AND_M_D_M, && case_sem_INSN_AND_M_D_M },
177
    { CRISV32F_INSN_ANDCBR, && case_sem_INSN_ANDCBR },
178
    { CRISV32F_INSN_ANDCWR, && case_sem_INSN_ANDCWR },
179
    { CRISV32F_INSN_ANDCDR, && case_sem_INSN_ANDCDR },
180
    { CRISV32F_INSN_ANDQ, && case_sem_INSN_ANDQ },
181
    { CRISV32F_INSN_ORR_B_R, && case_sem_INSN_ORR_B_R },
182
    { CRISV32F_INSN_ORR_W_R, && case_sem_INSN_ORR_W_R },
183
    { CRISV32F_INSN_ORR_D_R, && case_sem_INSN_ORR_D_R },
184
    { CRISV32F_INSN_OR_M_B_M, && case_sem_INSN_OR_M_B_M },
185
    { CRISV32F_INSN_OR_M_W_M, && case_sem_INSN_OR_M_W_M },
186
    { CRISV32F_INSN_OR_M_D_M, && case_sem_INSN_OR_M_D_M },
187
    { CRISV32F_INSN_ORCBR, && case_sem_INSN_ORCBR },
188
    { CRISV32F_INSN_ORCWR, && case_sem_INSN_ORCWR },
189
    { CRISV32F_INSN_ORCDR, && case_sem_INSN_ORCDR },
190
    { CRISV32F_INSN_ORQ, && case_sem_INSN_ORQ },
191
    { CRISV32F_INSN_XOR, && case_sem_INSN_XOR },
192
    { CRISV32F_INSN_SWAP, && case_sem_INSN_SWAP },
193
    { CRISV32F_INSN_ASRR_B_R, && case_sem_INSN_ASRR_B_R },
194
    { CRISV32F_INSN_ASRR_W_R, && case_sem_INSN_ASRR_W_R },
195
    { CRISV32F_INSN_ASRR_D_R, && case_sem_INSN_ASRR_D_R },
196
    { CRISV32F_INSN_ASRQ, && case_sem_INSN_ASRQ },
197
    { CRISV32F_INSN_LSRR_B_R, && case_sem_INSN_LSRR_B_R },
198
    { CRISV32F_INSN_LSRR_W_R, && case_sem_INSN_LSRR_W_R },
199
    { CRISV32F_INSN_LSRR_D_R, && case_sem_INSN_LSRR_D_R },
200
    { CRISV32F_INSN_LSRQ, && case_sem_INSN_LSRQ },
201
    { CRISV32F_INSN_LSLR_B_R, && case_sem_INSN_LSLR_B_R },
202
    { CRISV32F_INSN_LSLR_W_R, && case_sem_INSN_LSLR_W_R },
203
    { CRISV32F_INSN_LSLR_D_R, && case_sem_INSN_LSLR_D_R },
204
    { CRISV32F_INSN_LSLQ, && case_sem_INSN_LSLQ },
205
    { CRISV32F_INSN_BTST, && case_sem_INSN_BTST },
206
    { CRISV32F_INSN_BTSTQ, && case_sem_INSN_BTSTQ },
207
    { CRISV32F_INSN_SETF, && case_sem_INSN_SETF },
208
    { CRISV32F_INSN_CLEARF, && case_sem_INSN_CLEARF },
209
    { CRISV32F_INSN_RFE, && case_sem_INSN_RFE },
210
    { CRISV32F_INSN_SFE, && case_sem_INSN_SFE },
211
    { CRISV32F_INSN_RFG, && case_sem_INSN_RFG },
212
    { CRISV32F_INSN_RFN, && case_sem_INSN_RFN },
213
    { CRISV32F_INSN_HALT, && case_sem_INSN_HALT },
214
    { CRISV32F_INSN_BCC_B, && case_sem_INSN_BCC_B },
215
    { CRISV32F_INSN_BA_B, && case_sem_INSN_BA_B },
216
    { CRISV32F_INSN_BCC_W, && case_sem_INSN_BCC_W },
217
    { CRISV32F_INSN_BA_W, && case_sem_INSN_BA_W },
218
    { CRISV32F_INSN_JAS_R, && case_sem_INSN_JAS_R },
219
    { CRISV32F_INSN_JAS_C, && case_sem_INSN_JAS_C },
220
    { CRISV32F_INSN_JUMP_P, && case_sem_INSN_JUMP_P },
221
    { CRISV32F_INSN_BAS_C, && case_sem_INSN_BAS_C },
222
    { CRISV32F_INSN_JASC_R, && case_sem_INSN_JASC_R },
223
    { CRISV32F_INSN_JASC_C, && case_sem_INSN_JASC_C },
224
    { CRISV32F_INSN_BASC_C, && case_sem_INSN_BASC_C },
225
    { CRISV32F_INSN_BREAK, && case_sem_INSN_BREAK },
226
    { CRISV32F_INSN_BOUND_R_B_R, && case_sem_INSN_BOUND_R_B_R },
227
    { CRISV32F_INSN_BOUND_R_W_R, && case_sem_INSN_BOUND_R_W_R },
228
    { CRISV32F_INSN_BOUND_R_D_R, && case_sem_INSN_BOUND_R_D_R },
229
    { CRISV32F_INSN_BOUND_CB, && case_sem_INSN_BOUND_CB },
230
    { CRISV32F_INSN_BOUND_CW, && case_sem_INSN_BOUND_CW },
231
    { CRISV32F_INSN_BOUND_CD, && case_sem_INSN_BOUND_CD },
232
    { CRISV32F_INSN_SCC, && case_sem_INSN_SCC },
233
    { CRISV32F_INSN_LZ, && case_sem_INSN_LZ },
234
    { CRISV32F_INSN_ADDOQ, && case_sem_INSN_ADDOQ },
235
    { CRISV32F_INSN_ADDO_M_B_M, && case_sem_INSN_ADDO_M_B_M },
236
    { CRISV32F_INSN_ADDO_M_W_M, && case_sem_INSN_ADDO_M_W_M },
237
    { CRISV32F_INSN_ADDO_M_D_M, && case_sem_INSN_ADDO_M_D_M },
238
    { CRISV32F_INSN_ADDO_CB, && case_sem_INSN_ADDO_CB },
239
    { CRISV32F_INSN_ADDO_CW, && case_sem_INSN_ADDO_CW },
240
    { CRISV32F_INSN_ADDO_CD, && case_sem_INSN_ADDO_CD },
241
    { CRISV32F_INSN_ADDI_ACR_B_R, && case_sem_INSN_ADDI_ACR_B_R },
242
    { CRISV32F_INSN_ADDI_ACR_W_R, && case_sem_INSN_ADDI_ACR_W_R },
243
    { CRISV32F_INSN_ADDI_ACR_D_R, && case_sem_INSN_ADDI_ACR_D_R },
244
    { CRISV32F_INSN_FIDXI, && case_sem_INSN_FIDXI },
245
    { CRISV32F_INSN_FTAGI, && case_sem_INSN_FTAGI },
246
    { CRISV32F_INSN_FIDXD, && case_sem_INSN_FIDXD },
247
    { CRISV32F_INSN_FTAGD, && case_sem_INSN_FTAGD },
248
    { 0, 0 }
249
  };
250
  int i;
251
 
252
  for (i = 0; labels[i].label != 0; ++i)
253
    {
254
#if FAST_P
255
      CPU_IDESC (current_cpu) [labels[i].index].sem_fast_lab = labels[i].label;
256
#else
257
      CPU_IDESC (current_cpu) [labels[i].index].sem_full_lab = labels[i].label;
258
#endif
259
    }
260
 
261
#undef DEFINE_LABELS
262
#endif /* DEFINE_LABELS */
263
 
264
#ifdef DEFINE_SWITCH
265
 
266
/* If hyper-fast [well not unnecessarily slow] execution is selected, turn
267
   off frills like tracing and profiling.  */
268
/* FIXME: A better way would be to have TRACE_RESULT check for something
269
   that can cause it to be optimized out.  Another way would be to emit
270
   special handlers into the instruction "stream".  */
271
 
272
#if FAST_P
273
#undef TRACE_RESULT
274
#define TRACE_RESULT(cpu, abuf, name, type, val)
275
#endif
276
 
277
#undef GET_ATTR
278
#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
279
 
280
{
281
 
282
#if WITH_SCACHE_PBB
283
 
284
/* Branch to next handler without going around main loop.  */
285
#define NEXT(vpc) goto * SEM_ARGBUF (vpc) -> semantic.sem_case
286
SWITCH (sem, SEM_ARGBUF (vpc) -> semantic.sem_case)
287
 
288
#else /* ! WITH_SCACHE_PBB */
289
 
290
#define NEXT(vpc) BREAK (sem)
291
#ifdef __GNUC__
292
#if FAST_P
293
  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_fast_lab)
294
#else
295
  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->sem_full_lab)
296
#endif
297
#else
298
  SWITCH (sem, SEM_ARGBUF (sc) -> idesc->num)
299
#endif
300
 
301
#endif /* ! WITH_SCACHE_PBB */
302
 
303
    {
304
 
305
  CASE (sem, INSN_X_INVALID) : /* --invalid-- */
306
{
307
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
308
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
309
#define FLD(f) abuf->fields.sfmt_empty.f
310
  int UNUSED written = 0;
311
  IADDR UNUSED pc = abuf->addr;
312
  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
313
 
314
  {
315
    /* Update the recorded pc in the cpu state struct.
316
       Only necessary for WITH_SCACHE case, but to avoid the
317
       conditional compilation ....  */
318
    SET_H_PC (pc);
319
    /* Virtual insns have zero size.  Overwrite vpc with address of next insn
320
       using the default-insn-bitsize spec.  When executing insns in parallel
321
       we may want to queue the fault and continue execution.  */
322
    vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
323
    vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
324
  }
325
 
326
#undef FLD
327
}
328
  NEXT (vpc);
329
 
330
  CASE (sem, INSN_X_AFTER) : /* --after-- */
331
{
332
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
333
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
334
#define FLD(f) abuf->fields.sfmt_empty.f
335
  int UNUSED written = 0;
336
  IADDR UNUSED pc = abuf->addr;
337
  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
338
 
339
  {
340
#if WITH_SCACHE_PBB_CRISV32F
341
    crisv32f_pbb_after (current_cpu, sem_arg);
342
#endif
343
  }
344
 
345
#undef FLD
346
}
347
  NEXT (vpc);
348
 
349
  CASE (sem, INSN_X_BEFORE) : /* --before-- */
350
{
351
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
352
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
353
#define FLD(f) abuf->fields.sfmt_empty.f
354
  int UNUSED written = 0;
355
  IADDR UNUSED pc = abuf->addr;
356
  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
357
 
358
  {
359
#if WITH_SCACHE_PBB_CRISV32F
360
    crisv32f_pbb_before (current_cpu, sem_arg);
361
#endif
362
  }
363
 
364
#undef FLD
365
}
366
  NEXT (vpc);
367
 
368
  CASE (sem, INSN_X_CTI_CHAIN) : /* --cti-chain-- */
369
{
370
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
371
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
372
#define FLD(f) abuf->fields.sfmt_empty.f
373
  int UNUSED written = 0;
374
  IADDR UNUSED pc = abuf->addr;
375
  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
376
 
377
  {
378
#if WITH_SCACHE_PBB_CRISV32F
379
#ifdef DEFINE_SWITCH
380
    vpc = crisv32f_pbb_cti_chain (current_cpu, sem_arg,
381
                               pbb_br_type, pbb_br_npc);
382
    BREAK (sem);
383
#else
384
    /* FIXME: Allow provision of explicit ifmt spec in insn spec.  */
385
    vpc = crisv32f_pbb_cti_chain (current_cpu, sem_arg,
386
                               CPU_PBB_BR_TYPE (current_cpu),
387
                               CPU_PBB_BR_NPC (current_cpu));
388
#endif
389
#endif
390
  }
391
 
392
#undef FLD
393
}
394
  NEXT (vpc);
395
 
396
  CASE (sem, INSN_X_CHAIN) : /* --chain-- */
397
{
398
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
399
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
400
#define FLD(f) abuf->fields.sfmt_empty.f
401
  int UNUSED written = 0;
402
  IADDR UNUSED pc = abuf->addr;
403
  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
404
 
405
  {
406
#if WITH_SCACHE_PBB_CRISV32F
407
    vpc = crisv32f_pbb_chain (current_cpu, sem_arg);
408
#ifdef DEFINE_SWITCH
409
    BREAK (sem);
410
#endif
411
#endif
412
  }
413
 
414
#undef FLD
415
}
416
  NEXT (vpc);
417
 
418
  CASE (sem, INSN_X_BEGIN) : /* --begin-- */
419
{
420
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
421
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
422
#define FLD(f) abuf->fields.sfmt_empty.f
423
  int UNUSED written = 0;
424
  IADDR UNUSED pc = abuf->addr;
425
  vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
426
 
427
  {
428
#if WITH_SCACHE_PBB_CRISV32F
429
#if defined DEFINE_SWITCH || defined FAST_P
430
    /* In the switch case FAST_P is a constant, allowing several optimizations
431
       in any called inline functions.  */
432
    vpc = crisv32f_pbb_begin (current_cpu, FAST_P);
433
#else
434
#if 0 /* cgen engine can't handle dynamic fast/full switching yet.  */
435
    vpc = crisv32f_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
436
#else
437
    vpc = crisv32f_pbb_begin (current_cpu, 0);
438
#endif
439
#endif
440
#endif
441
  }
442
 
443
#undef FLD
444
}
445
  NEXT (vpc);
446
 
447
  CASE (sem, INSN_MOVE_B_R) : /* move.b move.m ${Rs},${Rd} */
448
{
449
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
450
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
451
#define FLD(f) abuf->fields.sfmt_addc_m.f
452
  int UNUSED written = 0;
453
  IADDR UNUSED pc = abuf->addr;
454
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
455
 
456
{
457
  QI tmp_newval;
458
  tmp_newval = GET_H_GR (FLD (f_operand1));
459
{
460
  SI tmp_oldregval;
461
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
462
  {
463
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
464
    SET_H_GR (FLD (f_operand2), opval);
465
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
466
  }
467
}
468
{
469
  {
470
    BI opval = LTQI (tmp_newval, 0);
471
    CPU (h_nbit) = opval;
472
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
473
  }
474
  {
475
    BI opval = ANDIF (EQQI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
476
    CPU (h_zbit) = opval;
477
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
478
  }
479
SET_H_CBIT_MOVE (0);
480
SET_H_VBIT_MOVE (0);
481
{
482
  {
483
    BI opval = 0;
484
    CPU (h_xbit) = opval;
485
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
486
  }
487
  {
488
    BI opval = 0;
489
    SET_H_INSN_PREFIXED_P (opval);
490
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
491
  }
492
}
493
}
494
}
495
 
496
#undef FLD
497
}
498
  NEXT (vpc);
499
 
500
  CASE (sem, INSN_MOVE_W_R) : /* move.w move.m ${Rs},${Rd} */
501
{
502
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
503
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
504
#define FLD(f) abuf->fields.sfmt_addc_m.f
505
  int UNUSED written = 0;
506
  IADDR UNUSED pc = abuf->addr;
507
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
508
 
509
{
510
  HI tmp_newval;
511
  tmp_newval = GET_H_GR (FLD (f_operand1));
512
{
513
  SI tmp_oldregval;
514
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
515
  {
516
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
517
    SET_H_GR (FLD (f_operand2), opval);
518
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
519
  }
520
}
521
{
522
  {
523
    BI opval = LTHI (tmp_newval, 0);
524
    CPU (h_nbit) = opval;
525
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
526
  }
527
  {
528
    BI opval = ANDIF (EQHI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
529
    CPU (h_zbit) = opval;
530
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
531
  }
532
SET_H_CBIT_MOVE (0);
533
SET_H_VBIT_MOVE (0);
534
{
535
  {
536
    BI opval = 0;
537
    CPU (h_xbit) = opval;
538
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
539
  }
540
  {
541
    BI opval = 0;
542
    SET_H_INSN_PREFIXED_P (opval);
543
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
544
  }
545
}
546
}
547
}
548
 
549
#undef FLD
550
}
551
  NEXT (vpc);
552
 
553
  CASE (sem, INSN_MOVE_D_R) : /* move.d move.m ${Rs},${Rd} */
554
{
555
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
556
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
557
#define FLD(f) abuf->fields.sfmt_addc_m.f
558
  int UNUSED written = 0;
559
  IADDR UNUSED pc = abuf->addr;
560
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
561
 
562
{
563
  SI tmp_newval;
564
  tmp_newval = GET_H_GR (FLD (f_operand1));
565
  {
566
    SI opval = tmp_newval;
567
    SET_H_GR (FLD (f_operand2), opval);
568
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
569
  }
570
{
571
  {
572
    BI opval = LTSI (tmp_newval, 0);
573
    CPU (h_nbit) = opval;
574
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
575
  }
576
  {
577
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
578
    CPU (h_zbit) = opval;
579
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
580
  }
581
SET_H_CBIT_MOVE (0);
582
SET_H_VBIT_MOVE (0);
583
{
584
  {
585
    BI opval = 0;
586
    CPU (h_xbit) = opval;
587
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
588
  }
589
  {
590
    BI opval = 0;
591
    SET_H_INSN_PREFIXED_P (opval);
592
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
593
  }
594
}
595
}
596
}
597
 
598
#undef FLD
599
}
600
  NEXT (vpc);
601
 
602
  CASE (sem, INSN_MOVEQ) : /* moveq $i,$Rd */
603
{
604
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
605
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
606
#define FLD(f) abuf->fields.sfmt_moveq.f
607
  int UNUSED written = 0;
608
  IADDR UNUSED pc = abuf->addr;
609
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
610
 
611
{
612
  SI tmp_newval;
613
  tmp_newval = FLD (f_s6);
614
  {
615
    SI opval = tmp_newval;
616
    SET_H_GR (FLD (f_operand2), opval);
617
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
618
  }
619
{
620
SET_H_NBIT_MOVE (LTSI (tmp_newval, 0));
621
SET_H_ZBIT_MOVE (ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1))));
622
SET_H_CBIT_MOVE (0);
623
SET_H_VBIT_MOVE (0);
624
{
625
  {
626
    BI opval = 0;
627
    CPU (h_xbit) = opval;
628
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
629
  }
630
  {
631
    BI opval = 0;
632
    SET_H_INSN_PREFIXED_P (opval);
633
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
634
  }
635
}
636
}
637
}
638
 
639
#undef FLD
640
}
641
  NEXT (vpc);
642
 
643
  CASE (sem, INSN_MOVS_B_R) : /* movs.b movs.m ${Rs},${Rd} */
644
{
645
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
646
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
647
#define FLD(f) abuf->fields.sfmt_muls_b.f
648
  int UNUSED written = 0;
649
  IADDR UNUSED pc = abuf->addr;
650
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
651
 
652
{
653
  QI tmp_tmpops;
654
  SI tmp_newval;
655
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
656
  tmp_newval = EXTQISI (tmp_tmpops);
657
  {
658
    SI opval = tmp_newval;
659
    SET_H_GR (FLD (f_operand2), opval);
660
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
661
  }
662
{
663
  {
664
    BI opval = LTSI (tmp_newval, 0);
665
    CPU (h_nbit) = opval;
666
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
667
  }
668
  {
669
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
670
    CPU (h_zbit) = opval;
671
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
672
  }
673
SET_H_CBIT_MOVE (0);
674
SET_H_VBIT_MOVE (0);
675
{
676
  {
677
    BI opval = 0;
678
    CPU (h_xbit) = opval;
679
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
680
  }
681
  {
682
    BI opval = 0;
683
    SET_H_INSN_PREFIXED_P (opval);
684
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
685
  }
686
}
687
}
688
}
689
 
690
#undef FLD
691
}
692
  NEXT (vpc);
693
 
694
  CASE (sem, INSN_MOVS_W_R) : /* movs.w movs.m ${Rs},${Rd} */
695
{
696
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
697
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
698
#define FLD(f) abuf->fields.sfmt_muls_b.f
699
  int UNUSED written = 0;
700
  IADDR UNUSED pc = abuf->addr;
701
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
702
 
703
{
704
  HI tmp_tmpops;
705
  SI tmp_newval;
706
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
707
  tmp_newval = EXTHISI (tmp_tmpops);
708
  {
709
    SI opval = tmp_newval;
710
    SET_H_GR (FLD (f_operand2), opval);
711
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
712
  }
713
{
714
  {
715
    BI opval = LTSI (tmp_newval, 0);
716
    CPU (h_nbit) = opval;
717
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
718
  }
719
  {
720
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
721
    CPU (h_zbit) = opval;
722
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
723
  }
724
SET_H_CBIT_MOVE (0);
725
SET_H_VBIT_MOVE (0);
726
{
727
  {
728
    BI opval = 0;
729
    CPU (h_xbit) = opval;
730
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
731
  }
732
  {
733
    BI opval = 0;
734
    SET_H_INSN_PREFIXED_P (opval);
735
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
736
  }
737
}
738
}
739
}
740
 
741
#undef FLD
742
}
743
  NEXT (vpc);
744
 
745
  CASE (sem, INSN_MOVU_B_R) : /* movu.b movu.m ${Rs},${Rd} */
746
{
747
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
748
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
749
#define FLD(f) abuf->fields.sfmt_muls_b.f
750
  int UNUSED written = 0;
751
  IADDR UNUSED pc = abuf->addr;
752
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
753
 
754
{
755
  QI tmp_tmpops;
756
  SI tmp_newval;
757
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
758
  tmp_newval = ZEXTQISI (tmp_tmpops);
759
  {
760
    SI opval = tmp_newval;
761
    SET_H_GR (FLD (f_operand2), opval);
762
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
763
  }
764
{
765
  {
766
    BI opval = LTSI (tmp_newval, 0);
767
    CPU (h_nbit) = opval;
768
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
769
  }
770
  {
771
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
772
    CPU (h_zbit) = opval;
773
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
774
  }
775
SET_H_CBIT_MOVE (0);
776
SET_H_VBIT_MOVE (0);
777
{
778
  {
779
    BI opval = 0;
780
    CPU (h_xbit) = opval;
781
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
782
  }
783
  {
784
    BI opval = 0;
785
    SET_H_INSN_PREFIXED_P (opval);
786
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
787
  }
788
}
789
}
790
}
791
 
792
#undef FLD
793
}
794
  NEXT (vpc);
795
 
796
  CASE (sem, INSN_MOVU_W_R) : /* movu.w movu.m ${Rs},${Rd} */
797
{
798
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
799
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
800
#define FLD(f) abuf->fields.sfmt_muls_b.f
801
  int UNUSED written = 0;
802
  IADDR UNUSED pc = abuf->addr;
803
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
804
 
805
{
806
  HI tmp_tmpops;
807
  SI tmp_newval;
808
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
809
  tmp_newval = ZEXTHISI (tmp_tmpops);
810
  {
811
    SI opval = tmp_newval;
812
    SET_H_GR (FLD (f_operand2), opval);
813
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
814
  }
815
{
816
  {
817
    BI opval = LTSI (tmp_newval, 0);
818
    CPU (h_nbit) = opval;
819
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
820
  }
821
  {
822
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
823
    CPU (h_zbit) = opval;
824
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
825
  }
826
SET_H_CBIT_MOVE (0);
827
SET_H_VBIT_MOVE (0);
828
{
829
  {
830
    BI opval = 0;
831
    CPU (h_xbit) = opval;
832
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
833
  }
834
  {
835
    BI opval = 0;
836
    SET_H_INSN_PREFIXED_P (opval);
837
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
838
  }
839
}
840
}
841
}
842
 
843
#undef FLD
844
}
845
  NEXT (vpc);
846
 
847
  CASE (sem, INSN_MOVECBR) : /* move.b ${sconst8},${Rd} */
848
{
849
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
850
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
851
#define FLD(f) abuf->fields.sfmt_addcbr.f
852
  int UNUSED written = 0;
853
  IADDR UNUSED pc = abuf->addr;
854
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
855
 
856
{
857
  QI tmp_newval;
858
  tmp_newval = FLD (f_indir_pc__byte);
859
{
860
  SI tmp_oldregval;
861
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
862
  {
863
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
864
    SET_H_GR (FLD (f_operand2), opval);
865
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
866
  }
867
}
868
{
869
  {
870
    BI opval = LTQI (tmp_newval, 0);
871
    CPU (h_nbit) = opval;
872
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
873
  }
874
  {
875
    BI opval = ANDIF (EQQI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
876
    CPU (h_zbit) = opval;
877
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
878
  }
879
SET_H_CBIT_MOVE (0);
880
SET_H_VBIT_MOVE (0);
881
{
882
  {
883
    BI opval = 0;
884
    CPU (h_xbit) = opval;
885
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
886
  }
887
  {
888
    BI opval = 0;
889
    SET_H_INSN_PREFIXED_P (opval);
890
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
891
  }
892
}
893
}
894
}
895
 
896
#undef FLD
897
}
898
  NEXT (vpc);
899
 
900
  CASE (sem, INSN_MOVECWR) : /* move.w ${sconst16},${Rd} */
901
{
902
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
903
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
904
#define FLD(f) abuf->fields.sfmt_addcwr.f
905
  int UNUSED written = 0;
906
  IADDR UNUSED pc = abuf->addr;
907
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
908
 
909
{
910
  HI tmp_newval;
911
  tmp_newval = FLD (f_indir_pc__word);
912
{
913
  SI tmp_oldregval;
914
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
915
  {
916
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
917
    SET_H_GR (FLD (f_operand2), opval);
918
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
919
  }
920
}
921
{
922
  {
923
    BI opval = LTHI (tmp_newval, 0);
924
    CPU (h_nbit) = opval;
925
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
926
  }
927
  {
928
    BI opval = ANDIF (EQHI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
929
    CPU (h_zbit) = opval;
930
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
931
  }
932
SET_H_CBIT_MOVE (0);
933
SET_H_VBIT_MOVE (0);
934
{
935
  {
936
    BI opval = 0;
937
    CPU (h_xbit) = opval;
938
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
939
  }
940
  {
941
    BI opval = 0;
942
    SET_H_INSN_PREFIXED_P (opval);
943
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
944
  }
945
}
946
}
947
}
948
 
949
#undef FLD
950
}
951
  NEXT (vpc);
952
 
953
  CASE (sem, INSN_MOVECDR) : /* move.d ${const32},${Rd} */
954
{
955
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
956
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
957
#define FLD(f) abuf->fields.sfmt_bound_cd.f
958
  int UNUSED written = 0;
959
  IADDR UNUSED pc = abuf->addr;
960
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
961
 
962
{
963
  SI tmp_newval;
964
  tmp_newval = FLD (f_indir_pc__dword);
965
  {
966
    SI opval = tmp_newval;
967
    SET_H_GR (FLD (f_operand2), opval);
968
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
969
  }
970
{
971
  {
972
    BI opval = LTSI (tmp_newval, 0);
973
    CPU (h_nbit) = opval;
974
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
975
  }
976
  {
977
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
978
    CPU (h_zbit) = opval;
979
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
980
  }
981
SET_H_CBIT_MOVE (0);
982
SET_H_VBIT_MOVE (0);
983
{
984
  {
985
    BI opval = 0;
986
    CPU (h_xbit) = opval;
987
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
988
  }
989
  {
990
    BI opval = 0;
991
    SET_H_INSN_PREFIXED_P (opval);
992
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
993
  }
994
}
995
}
996
}
997
 
998
#undef FLD
999
}
1000
  NEXT (vpc);
1001
 
1002
  CASE (sem, INSN_MOVSCBR) : /* movs.b ${sconst8},${Rd} */
1003
{
1004
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1005
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1006
#define FLD(f) abuf->fields.sfmt_bound_cb.f
1007
  int UNUSED written = 0;
1008
  IADDR UNUSED pc = abuf->addr;
1009
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1010
 
1011
{
1012
  SI tmp_newval;
1013
  tmp_newval = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
1014
  {
1015
    SI opval = tmp_newval;
1016
    SET_H_GR (FLD (f_operand2), opval);
1017
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1018
  }
1019
{
1020
  {
1021
    BI opval = LTSI (tmp_newval, 0);
1022
    CPU (h_nbit) = opval;
1023
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1024
  }
1025
  {
1026
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1027
    CPU (h_zbit) = opval;
1028
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1029
  }
1030
SET_H_CBIT_MOVE (0);
1031
SET_H_VBIT_MOVE (0);
1032
{
1033
  {
1034
    BI opval = 0;
1035
    CPU (h_xbit) = opval;
1036
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1037
  }
1038
  {
1039
    BI opval = 0;
1040
    SET_H_INSN_PREFIXED_P (opval);
1041
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1042
  }
1043
}
1044
}
1045
}
1046
 
1047
#undef FLD
1048
}
1049
  NEXT (vpc);
1050
 
1051
  CASE (sem, INSN_MOVSCWR) : /* movs.w ${sconst16},${Rd} */
1052
{
1053
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1054
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1055
#define FLD(f) abuf->fields.sfmt_bound_cw.f
1056
  int UNUSED written = 0;
1057
  IADDR UNUSED pc = abuf->addr;
1058
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1059
 
1060
{
1061
  SI tmp_newval;
1062
  tmp_newval = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
1063
  {
1064
    SI opval = tmp_newval;
1065
    SET_H_GR (FLD (f_operand2), opval);
1066
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1067
  }
1068
{
1069
  {
1070
    BI opval = LTSI (tmp_newval, 0);
1071
    CPU (h_nbit) = opval;
1072
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1073
  }
1074
  {
1075
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1076
    CPU (h_zbit) = opval;
1077
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1078
  }
1079
SET_H_CBIT_MOVE (0);
1080
SET_H_VBIT_MOVE (0);
1081
{
1082
  {
1083
    BI opval = 0;
1084
    CPU (h_xbit) = opval;
1085
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1086
  }
1087
  {
1088
    BI opval = 0;
1089
    SET_H_INSN_PREFIXED_P (opval);
1090
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1091
  }
1092
}
1093
}
1094
}
1095
 
1096
#undef FLD
1097
}
1098
  NEXT (vpc);
1099
 
1100
  CASE (sem, INSN_MOVUCBR) : /* movu.b ${uconst8},${Rd} */
1101
{
1102
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1103
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1104
#define FLD(f) abuf->fields.sfmt_bound_cb.f
1105
  int UNUSED written = 0;
1106
  IADDR UNUSED pc = abuf->addr;
1107
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1108
 
1109
{
1110
  SI tmp_newval;
1111
  tmp_newval = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
1112
  {
1113
    SI opval = tmp_newval;
1114
    SET_H_GR (FLD (f_operand2), opval);
1115
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1116
  }
1117
{
1118
  {
1119
    BI opval = LTSI (tmp_newval, 0);
1120
    CPU (h_nbit) = opval;
1121
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1122
  }
1123
  {
1124
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1125
    CPU (h_zbit) = opval;
1126
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1127
  }
1128
SET_H_CBIT_MOVE (0);
1129
SET_H_VBIT_MOVE (0);
1130
{
1131
  {
1132
    BI opval = 0;
1133
    CPU (h_xbit) = opval;
1134
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1135
  }
1136
  {
1137
    BI opval = 0;
1138
    SET_H_INSN_PREFIXED_P (opval);
1139
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1140
  }
1141
}
1142
}
1143
}
1144
 
1145
#undef FLD
1146
}
1147
  NEXT (vpc);
1148
 
1149
  CASE (sem, INSN_MOVUCWR) : /* movu.w ${uconst16},${Rd} */
1150
{
1151
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1152
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1153
#define FLD(f) abuf->fields.sfmt_bound_cw.f
1154
  int UNUSED written = 0;
1155
  IADDR UNUSED pc = abuf->addr;
1156
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1157
 
1158
{
1159
  SI tmp_newval;
1160
  tmp_newval = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
1161
  {
1162
    SI opval = tmp_newval;
1163
    SET_H_GR (FLD (f_operand2), opval);
1164
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1165
  }
1166
{
1167
  {
1168
    BI opval = LTSI (tmp_newval, 0);
1169
    CPU (h_nbit) = opval;
1170
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1171
  }
1172
  {
1173
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
1174
    CPU (h_zbit) = opval;
1175
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1176
  }
1177
SET_H_CBIT_MOVE (0);
1178
SET_H_VBIT_MOVE (0);
1179
{
1180
  {
1181
    BI opval = 0;
1182
    CPU (h_xbit) = opval;
1183
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1184
  }
1185
  {
1186
    BI opval = 0;
1187
    SET_H_INSN_PREFIXED_P (opval);
1188
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1189
  }
1190
}
1191
}
1192
}
1193
 
1194
#undef FLD
1195
}
1196
  NEXT (vpc);
1197
 
1198
  CASE (sem, INSN_ADDQ) : /* addq $j,$Rd */
1199
{
1200
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1201
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1202
#define FLD(f) abuf->fields.sfmt_addq.f
1203
  int UNUSED written = 0;
1204
  IADDR UNUSED pc = abuf->addr;
1205
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1206
 
1207
{
1208
  SI tmp_tmpopd;
1209
  SI tmp_tmpops;
1210
  BI tmp_carry;
1211
  SI tmp_newval;
1212
  tmp_tmpops = FLD (f_u6);
1213
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1214
  tmp_carry = CPU (h_cbit);
1215
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1216
  {
1217
    SI opval = tmp_newval;
1218
    SET_H_GR (FLD (f_operand2), opval);
1219
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1220
  }
1221
{
1222
  {
1223
    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))));
1224
    CPU (h_cbit) = opval;
1225
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1226
  }
1227
  {
1228
    BI opval = LTSI (tmp_newval, 0);
1229
    CPU (h_nbit) = opval;
1230
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1231
  }
1232
  {
1233
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1234
    CPU (h_zbit) = opval;
1235
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1236
  }
1237
  {
1238
    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)));
1239
    CPU (h_vbit) = opval;
1240
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1241
  }
1242
{
1243
  {
1244
    BI opval = 0;
1245
    CPU (h_xbit) = opval;
1246
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1247
  }
1248
  {
1249
    BI opval = 0;
1250
    SET_H_INSN_PREFIXED_P (opval);
1251
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1252
  }
1253
}
1254
}
1255
}
1256
 
1257
#undef FLD
1258
}
1259
  NEXT (vpc);
1260
 
1261
  CASE (sem, INSN_SUBQ) : /* subq $j,$Rd */
1262
{
1263
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1264
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1265
#define FLD(f) abuf->fields.sfmt_addq.f
1266
  int UNUSED written = 0;
1267
  IADDR UNUSED pc = abuf->addr;
1268
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1269
 
1270
{
1271
  SI tmp_tmpopd;
1272
  SI tmp_tmpops;
1273
  BI tmp_carry;
1274
  SI tmp_newval;
1275
  tmp_tmpops = FLD (f_u6);
1276
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1277
  tmp_carry = CPU (h_cbit);
1278
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1279
  {
1280
    SI opval = tmp_newval;
1281
    SET_H_GR (FLD (f_operand2), opval);
1282
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1283
  }
1284
{
1285
  {
1286
    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))));
1287
    CPU (h_cbit) = opval;
1288
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1289
  }
1290
  {
1291
    BI opval = LTSI (tmp_newval, 0);
1292
    CPU (h_nbit) = opval;
1293
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1294
  }
1295
  {
1296
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1297
    CPU (h_zbit) = opval;
1298
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1299
  }
1300
  {
1301
    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)));
1302
    CPU (h_vbit) = opval;
1303
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1304
  }
1305
{
1306
  {
1307
    BI opval = 0;
1308
    CPU (h_xbit) = opval;
1309
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1310
  }
1311
  {
1312
    BI opval = 0;
1313
    SET_H_INSN_PREFIXED_P (opval);
1314
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1315
  }
1316
}
1317
}
1318
}
1319
 
1320
#undef FLD
1321
}
1322
  NEXT (vpc);
1323
 
1324
  CASE (sem, INSN_CMP_R_B_R) : /* cmp-r.b $Rs,$Rd */
1325
{
1326
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1327
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1328
#define FLD(f) abuf->fields.sfmt_muls_b.f
1329
  int UNUSED written = 0;
1330
  IADDR UNUSED pc = abuf->addr;
1331
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1332
 
1333
{
1334
  QI tmp_tmpopd;
1335
  QI tmp_tmpops;
1336
  BI tmp_carry;
1337
  QI tmp_newval;
1338
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
1339
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1340
  tmp_carry = CPU (h_cbit);
1341
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1342
((void) 0); /*nop*/
1343
{
1344
  {
1345
    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))));
1346
    CPU (h_cbit) = opval;
1347
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1348
  }
1349
  {
1350
    BI opval = LTQI (tmp_newval, 0);
1351
    CPU (h_nbit) = opval;
1352
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1353
  }
1354
  {
1355
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1356
    CPU (h_zbit) = opval;
1357
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1358
  }
1359
  {
1360
    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)));
1361
    CPU (h_vbit) = opval;
1362
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1363
  }
1364
{
1365
  {
1366
    BI opval = 0;
1367
    CPU (h_xbit) = opval;
1368
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1369
  }
1370
  {
1371
    BI opval = 0;
1372
    SET_H_INSN_PREFIXED_P (opval);
1373
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1374
  }
1375
}
1376
}
1377
}
1378
 
1379
#undef FLD
1380
}
1381
  NEXT (vpc);
1382
 
1383
  CASE (sem, INSN_CMP_R_W_R) : /* cmp-r.w $Rs,$Rd */
1384
{
1385
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1386
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1387
#define FLD(f) abuf->fields.sfmt_muls_b.f
1388
  int UNUSED written = 0;
1389
  IADDR UNUSED pc = abuf->addr;
1390
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1391
 
1392
{
1393
  HI tmp_tmpopd;
1394
  HI tmp_tmpops;
1395
  BI tmp_carry;
1396
  HI tmp_newval;
1397
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
1398
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1399
  tmp_carry = CPU (h_cbit);
1400
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1401
((void) 0); /*nop*/
1402
{
1403
  {
1404
    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))));
1405
    CPU (h_cbit) = opval;
1406
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1407
  }
1408
  {
1409
    BI opval = LTHI (tmp_newval, 0);
1410
    CPU (h_nbit) = opval;
1411
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1412
  }
1413
  {
1414
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1415
    CPU (h_zbit) = opval;
1416
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1417
  }
1418
  {
1419
    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)));
1420
    CPU (h_vbit) = opval;
1421
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1422
  }
1423
{
1424
  {
1425
    BI opval = 0;
1426
    CPU (h_xbit) = opval;
1427
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1428
  }
1429
  {
1430
    BI opval = 0;
1431
    SET_H_INSN_PREFIXED_P (opval);
1432
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1433
  }
1434
}
1435
}
1436
}
1437
 
1438
#undef FLD
1439
}
1440
  NEXT (vpc);
1441
 
1442
  CASE (sem, INSN_CMP_R_D_R) : /* cmp-r.d $Rs,$Rd */
1443
{
1444
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1445
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1446
#define FLD(f) abuf->fields.sfmt_muls_b.f
1447
  int UNUSED written = 0;
1448
  IADDR UNUSED pc = abuf->addr;
1449
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1450
 
1451
{
1452
  SI tmp_tmpopd;
1453
  SI tmp_tmpops;
1454
  BI tmp_carry;
1455
  SI tmp_newval;
1456
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
1457
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1458
  tmp_carry = CPU (h_cbit);
1459
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1460
((void) 0); /*nop*/
1461
{
1462
  {
1463
    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))));
1464
    CPU (h_cbit) = opval;
1465
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1466
  }
1467
  {
1468
    BI opval = LTSI (tmp_newval, 0);
1469
    CPU (h_nbit) = opval;
1470
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1471
  }
1472
  {
1473
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1474
    CPU (h_zbit) = opval;
1475
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1476
  }
1477
  {
1478
    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)));
1479
    CPU (h_vbit) = opval;
1480
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1481
  }
1482
{
1483
  {
1484
    BI opval = 0;
1485
    CPU (h_xbit) = opval;
1486
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1487
  }
1488
  {
1489
    BI opval = 0;
1490
    SET_H_INSN_PREFIXED_P (opval);
1491
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1492
  }
1493
}
1494
}
1495
}
1496
 
1497
#undef FLD
1498
}
1499
  NEXT (vpc);
1500
 
1501
  CASE (sem, INSN_CMP_M_B_M) : /* cmp-m.b [${Rs}${inc}],${Rd} */
1502
{
1503
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1504
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1505
#define FLD(f) abuf->fields.sfmt_addc_m.f
1506
  int UNUSED written = 0;
1507
  IADDR UNUSED pc = abuf->addr;
1508
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1509
 
1510
{
1511
  QI tmp_tmpopd;
1512
  QI tmp_tmpops;
1513
  BI tmp_carry;
1514
  QI tmp_newval;
1515
  tmp_tmpops = ({   SI tmp_addr;
1516
  QI tmp_tmp_mem;
1517
  BI tmp_postinc;
1518
  tmp_postinc = FLD (f_memmode);
1519
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
1520
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
1521
; if (NEBI (tmp_postinc, 0)) {
1522
{
1523
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1524
  tmp_addr = ADDSI (tmp_addr, 1);
1525
}
1526
  {
1527
    SI opval = tmp_addr;
1528
    SET_H_GR (FLD (f_operand1), opval);
1529
    written |= (1 << 9);
1530
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1531
  }
1532
}
1533
}
1534
; tmp_tmp_mem; });
1535
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1536
  tmp_carry = CPU (h_cbit);
1537
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1538
((void) 0); /*nop*/
1539
{
1540
  {
1541
    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))));
1542
    CPU (h_cbit) = opval;
1543
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1544
  }
1545
  {
1546
    BI opval = LTQI (tmp_newval, 0);
1547
    CPU (h_nbit) = opval;
1548
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1549
  }
1550
  {
1551
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1552
    CPU (h_zbit) = opval;
1553
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1554
  }
1555
  {
1556
    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)));
1557
    CPU (h_vbit) = opval;
1558
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1559
  }
1560
{
1561
  {
1562
    BI opval = 0;
1563
    CPU (h_xbit) = opval;
1564
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1565
  }
1566
  {
1567
    BI opval = 0;
1568
    SET_H_INSN_PREFIXED_P (opval);
1569
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1570
  }
1571
}
1572
}
1573
}
1574
 
1575
  abuf->written = written;
1576
#undef FLD
1577
}
1578
  NEXT (vpc);
1579
 
1580
  CASE (sem, INSN_CMP_M_W_M) : /* cmp-m.w [${Rs}${inc}],${Rd} */
1581
{
1582
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1583
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1584
#define FLD(f) abuf->fields.sfmt_addc_m.f
1585
  int UNUSED written = 0;
1586
  IADDR UNUSED pc = abuf->addr;
1587
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1588
 
1589
{
1590
  HI tmp_tmpopd;
1591
  HI tmp_tmpops;
1592
  BI tmp_carry;
1593
  HI tmp_newval;
1594
  tmp_tmpops = ({   SI tmp_addr;
1595
  HI tmp_tmp_mem;
1596
  BI tmp_postinc;
1597
  tmp_postinc = FLD (f_memmode);
1598
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
1599
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
1600
; if (NEBI (tmp_postinc, 0)) {
1601
{
1602
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1603
  tmp_addr = ADDSI (tmp_addr, 2);
1604
}
1605
  {
1606
    SI opval = tmp_addr;
1607
    SET_H_GR (FLD (f_operand1), opval);
1608
    written |= (1 << 9);
1609
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1610
  }
1611
}
1612
}
1613
; tmp_tmp_mem; });
1614
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1615
  tmp_carry = CPU (h_cbit);
1616
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1617
((void) 0); /*nop*/
1618
{
1619
  {
1620
    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))));
1621
    CPU (h_cbit) = opval;
1622
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1623
  }
1624
  {
1625
    BI opval = LTHI (tmp_newval, 0);
1626
    CPU (h_nbit) = opval;
1627
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1628
  }
1629
  {
1630
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1631
    CPU (h_zbit) = opval;
1632
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1633
  }
1634
  {
1635
    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)));
1636
    CPU (h_vbit) = opval;
1637
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1638
  }
1639
{
1640
  {
1641
    BI opval = 0;
1642
    CPU (h_xbit) = opval;
1643
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1644
  }
1645
  {
1646
    BI opval = 0;
1647
    SET_H_INSN_PREFIXED_P (opval);
1648
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1649
  }
1650
}
1651
}
1652
}
1653
 
1654
  abuf->written = written;
1655
#undef FLD
1656
}
1657
  NEXT (vpc);
1658
 
1659
  CASE (sem, INSN_CMP_M_D_M) : /* cmp-m.d [${Rs}${inc}],${Rd} */
1660
{
1661
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1662
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1663
#define FLD(f) abuf->fields.sfmt_addc_m.f
1664
  int UNUSED written = 0;
1665
  IADDR UNUSED pc = abuf->addr;
1666
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1667
 
1668
{
1669
  SI tmp_tmpopd;
1670
  SI tmp_tmpops;
1671
  BI tmp_carry;
1672
  SI tmp_newval;
1673
  tmp_tmpops = ({   SI tmp_addr;
1674
  SI tmp_tmp_mem;
1675
  BI tmp_postinc;
1676
  tmp_postinc = FLD (f_memmode);
1677
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
1678
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
1679
; if (NEBI (tmp_postinc, 0)) {
1680
{
1681
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1682
  tmp_addr = ADDSI (tmp_addr, 4);
1683
}
1684
  {
1685
    SI opval = tmp_addr;
1686
    SET_H_GR (FLD (f_operand1), opval);
1687
    written |= (1 << 9);
1688
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1689
  }
1690
}
1691
}
1692
; tmp_tmp_mem; });
1693
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1694
  tmp_carry = CPU (h_cbit);
1695
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1696
((void) 0); /*nop*/
1697
{
1698
  {
1699
    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))));
1700
    CPU (h_cbit) = opval;
1701
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1702
  }
1703
  {
1704
    BI opval = LTSI (tmp_newval, 0);
1705
    CPU (h_nbit) = opval;
1706
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1707
  }
1708
  {
1709
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1710
    CPU (h_zbit) = opval;
1711
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1712
  }
1713
  {
1714
    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)));
1715
    CPU (h_vbit) = opval;
1716
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1717
  }
1718
{
1719
  {
1720
    BI opval = 0;
1721
    CPU (h_xbit) = opval;
1722
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1723
  }
1724
  {
1725
    BI opval = 0;
1726
    SET_H_INSN_PREFIXED_P (opval);
1727
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1728
  }
1729
}
1730
}
1731
}
1732
 
1733
  abuf->written = written;
1734
#undef FLD
1735
}
1736
  NEXT (vpc);
1737
 
1738
  CASE (sem, INSN_CMPCBR) : /* cmp.b $sconst8,$Rd */
1739
{
1740
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1741
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1742
#define FLD(f) abuf->fields.sfmt_bound_cb.f
1743
  int UNUSED written = 0;
1744
  IADDR UNUSED pc = abuf->addr;
1745
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1746
 
1747
{
1748
  QI tmp_tmpopd;
1749
  QI tmp_tmpops;
1750
  BI tmp_carry;
1751
  QI tmp_newval;
1752
  tmp_tmpops = TRUNCSIQI (FLD (f_indir_pc__byte));
1753
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1754
  tmp_carry = CPU (h_cbit);
1755
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1756
((void) 0); /*nop*/
1757
{
1758
  {
1759
    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))));
1760
    CPU (h_cbit) = opval;
1761
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1762
  }
1763
  {
1764
    BI opval = LTQI (tmp_newval, 0);
1765
    CPU (h_nbit) = opval;
1766
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1767
  }
1768
  {
1769
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1770
    CPU (h_zbit) = opval;
1771
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1772
  }
1773
  {
1774
    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)));
1775
    CPU (h_vbit) = opval;
1776
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1777
  }
1778
{
1779
  {
1780
    BI opval = 0;
1781
    CPU (h_xbit) = opval;
1782
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1783
  }
1784
  {
1785
    BI opval = 0;
1786
    SET_H_INSN_PREFIXED_P (opval);
1787
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1788
  }
1789
}
1790
}
1791
}
1792
 
1793
#undef FLD
1794
}
1795
  NEXT (vpc);
1796
 
1797
  CASE (sem, INSN_CMPCWR) : /* cmp.w $sconst16,$Rd */
1798
{
1799
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1800
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1801
#define FLD(f) abuf->fields.sfmt_bound_cw.f
1802
  int UNUSED written = 0;
1803
  IADDR UNUSED pc = abuf->addr;
1804
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1805
 
1806
{
1807
  HI tmp_tmpopd;
1808
  HI tmp_tmpops;
1809
  BI tmp_carry;
1810
  HI tmp_newval;
1811
  tmp_tmpops = TRUNCSIHI (FLD (f_indir_pc__word));
1812
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1813
  tmp_carry = CPU (h_cbit);
1814
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1815
((void) 0); /*nop*/
1816
{
1817
  {
1818
    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))));
1819
    CPU (h_cbit) = opval;
1820
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1821
  }
1822
  {
1823
    BI opval = LTHI (tmp_newval, 0);
1824
    CPU (h_nbit) = opval;
1825
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1826
  }
1827
  {
1828
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1829
    CPU (h_zbit) = opval;
1830
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1831
  }
1832
  {
1833
    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)));
1834
    CPU (h_vbit) = opval;
1835
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1836
  }
1837
{
1838
  {
1839
    BI opval = 0;
1840
    CPU (h_xbit) = opval;
1841
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1842
  }
1843
  {
1844
    BI opval = 0;
1845
    SET_H_INSN_PREFIXED_P (opval);
1846
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1847
  }
1848
}
1849
}
1850
}
1851
 
1852
#undef FLD
1853
}
1854
  NEXT (vpc);
1855
 
1856
  CASE (sem, INSN_CMPCDR) : /* cmp.d $const32,$Rd */
1857
{
1858
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1859
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1860
#define FLD(f) abuf->fields.sfmt_bound_cd.f
1861
  int UNUSED written = 0;
1862
  IADDR UNUSED pc = abuf->addr;
1863
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
1864
 
1865
{
1866
  SI tmp_tmpopd;
1867
  SI tmp_tmpops;
1868
  BI tmp_carry;
1869
  SI tmp_newval;
1870
  tmp_tmpops = FLD (f_indir_pc__dword);
1871
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1872
  tmp_carry = CPU (h_cbit);
1873
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1874
((void) 0); /*nop*/
1875
{
1876
  {
1877
    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))));
1878
    CPU (h_cbit) = opval;
1879
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1880
  }
1881
  {
1882
    BI opval = LTSI (tmp_newval, 0);
1883
    CPU (h_nbit) = opval;
1884
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1885
  }
1886
  {
1887
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1888
    CPU (h_zbit) = opval;
1889
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1890
  }
1891
  {
1892
    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)));
1893
    CPU (h_vbit) = opval;
1894
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1895
  }
1896
{
1897
  {
1898
    BI opval = 0;
1899
    CPU (h_xbit) = opval;
1900
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1901
  }
1902
  {
1903
    BI opval = 0;
1904
    SET_H_INSN_PREFIXED_P (opval);
1905
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1906
  }
1907
}
1908
}
1909
}
1910
 
1911
#undef FLD
1912
}
1913
  NEXT (vpc);
1914
 
1915
  CASE (sem, INSN_CMPQ) : /* cmpq $i,$Rd */
1916
{
1917
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1918
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1919
#define FLD(f) abuf->fields.sfmt_andq.f
1920
  int UNUSED written = 0;
1921
  IADDR UNUSED pc = abuf->addr;
1922
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1923
 
1924
{
1925
  SI tmp_tmpopd;
1926
  SI tmp_tmpops;
1927
  BI tmp_carry;
1928
  SI tmp_newval;
1929
  tmp_tmpops = FLD (f_s6);
1930
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
1931
  tmp_carry = CPU (h_cbit);
1932
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
1933
((void) 0); /*nop*/
1934
{
1935
  {
1936
    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))));
1937
    CPU (h_cbit) = opval;
1938
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
1939
  }
1940
  {
1941
    BI opval = LTSI (tmp_newval, 0);
1942
    CPU (h_nbit) = opval;
1943
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
1944
  }
1945
  {
1946
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
1947
    CPU (h_zbit) = opval;
1948
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
1949
  }
1950
  {
1951
    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)));
1952
    CPU (h_vbit) = opval;
1953
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
1954
  }
1955
{
1956
  {
1957
    BI opval = 0;
1958
    CPU (h_xbit) = opval;
1959
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
1960
  }
1961
  {
1962
    BI opval = 0;
1963
    SET_H_INSN_PREFIXED_P (opval);
1964
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
1965
  }
1966
}
1967
}
1968
}
1969
 
1970
#undef FLD
1971
}
1972
  NEXT (vpc);
1973
 
1974
  CASE (sem, INSN_CMPS_M_B_M) : /* cmps-m.b [${Rs}${inc}],$Rd */
1975
{
1976
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
1977
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1978
#define FLD(f) abuf->fields.sfmt_addc_m.f
1979
  int UNUSED written = 0;
1980
  IADDR UNUSED pc = abuf->addr;
1981
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
1982
 
1983
{
1984
  SI tmp_tmpopd;
1985
  SI tmp_tmpops;
1986
  BI tmp_carry;
1987
  SI tmp_newval;
1988
  tmp_tmpops = EXTQISI (({   SI tmp_addr;
1989
  QI tmp_tmp_mem;
1990
  BI tmp_postinc;
1991
  tmp_postinc = FLD (f_memmode);
1992
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
1993
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
1994
; if (NEBI (tmp_postinc, 0)) {
1995
{
1996
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
1997
  tmp_addr = ADDSI (tmp_addr, 1);
1998
}
1999
  {
2000
    SI opval = tmp_addr;
2001
    SET_H_GR (FLD (f_operand1), opval);
2002
    written |= (1 << 9);
2003
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2004
  }
2005
}
2006
}
2007
; tmp_tmp_mem; }));
2008
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2009
  tmp_carry = CPU (h_cbit);
2010
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2011
((void) 0); /*nop*/
2012
{
2013
  {
2014
    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))));
2015
    CPU (h_cbit) = opval;
2016
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2017
  }
2018
  {
2019
    BI opval = LTSI (tmp_newval, 0);
2020
    CPU (h_nbit) = opval;
2021
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2022
  }
2023
  {
2024
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2025
    CPU (h_zbit) = opval;
2026
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2027
  }
2028
  {
2029
    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)));
2030
    CPU (h_vbit) = opval;
2031
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2032
  }
2033
{
2034
  {
2035
    BI opval = 0;
2036
    CPU (h_xbit) = opval;
2037
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2038
  }
2039
  {
2040
    BI opval = 0;
2041
    SET_H_INSN_PREFIXED_P (opval);
2042
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2043
  }
2044
}
2045
}
2046
}
2047
 
2048
  abuf->written = written;
2049
#undef FLD
2050
}
2051
  NEXT (vpc);
2052
 
2053
  CASE (sem, INSN_CMPS_M_W_M) : /* cmps-m.w [${Rs}${inc}],$Rd */
2054
{
2055
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2056
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2057
#define FLD(f) abuf->fields.sfmt_addc_m.f
2058
  int UNUSED written = 0;
2059
  IADDR UNUSED pc = abuf->addr;
2060
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2061
 
2062
{
2063
  SI tmp_tmpopd;
2064
  SI tmp_tmpops;
2065
  BI tmp_carry;
2066
  SI tmp_newval;
2067
  tmp_tmpops = EXTHISI (({   SI tmp_addr;
2068
  HI tmp_tmp_mem;
2069
  BI tmp_postinc;
2070
  tmp_postinc = FLD (f_memmode);
2071
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2072
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2073
; if (NEBI (tmp_postinc, 0)) {
2074
{
2075
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2076
  tmp_addr = ADDSI (tmp_addr, 2);
2077
}
2078
  {
2079
    SI opval = tmp_addr;
2080
    SET_H_GR (FLD (f_operand1), opval);
2081
    written |= (1 << 9);
2082
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2083
  }
2084
}
2085
}
2086
; tmp_tmp_mem; }));
2087
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2088
  tmp_carry = CPU (h_cbit);
2089
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2090
((void) 0); /*nop*/
2091
{
2092
  {
2093
    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))));
2094
    CPU (h_cbit) = opval;
2095
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2096
  }
2097
  {
2098
    BI opval = LTSI (tmp_newval, 0);
2099
    CPU (h_nbit) = opval;
2100
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2101
  }
2102
  {
2103
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2104
    CPU (h_zbit) = opval;
2105
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2106
  }
2107
  {
2108
    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)));
2109
    CPU (h_vbit) = opval;
2110
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2111
  }
2112
{
2113
  {
2114
    BI opval = 0;
2115
    CPU (h_xbit) = opval;
2116
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2117
  }
2118
  {
2119
    BI opval = 0;
2120
    SET_H_INSN_PREFIXED_P (opval);
2121
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2122
  }
2123
}
2124
}
2125
}
2126
 
2127
  abuf->written = written;
2128
#undef FLD
2129
}
2130
  NEXT (vpc);
2131
 
2132
  CASE (sem, INSN_CMPSCBR) : /* [${Rs}${inc}],$Rd */
2133
{
2134
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2135
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2136
#define FLD(f) abuf->fields.sfmt_bound_cb.f
2137
  int UNUSED written = 0;
2138
  IADDR UNUSED pc = abuf->addr;
2139
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2140
 
2141
{
2142
  SI tmp_tmpopd;
2143
  SI tmp_tmpops;
2144
  BI tmp_carry;
2145
  SI tmp_newval;
2146
  tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
2147
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2148
  tmp_carry = CPU (h_cbit);
2149
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2150
((void) 0); /*nop*/
2151
{
2152
  {
2153
    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))));
2154
    CPU (h_cbit) = opval;
2155
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2156
  }
2157
  {
2158
    BI opval = LTSI (tmp_newval, 0);
2159
    CPU (h_nbit) = opval;
2160
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2161
  }
2162
  {
2163
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2164
    CPU (h_zbit) = opval;
2165
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2166
  }
2167
  {
2168
    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)));
2169
    CPU (h_vbit) = opval;
2170
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2171
  }
2172
{
2173
  {
2174
    BI opval = 0;
2175
    CPU (h_xbit) = opval;
2176
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2177
  }
2178
  {
2179
    BI opval = 0;
2180
    SET_H_INSN_PREFIXED_P (opval);
2181
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2182
  }
2183
}
2184
}
2185
}
2186
 
2187
#undef FLD
2188
}
2189
  NEXT (vpc);
2190
 
2191
  CASE (sem, INSN_CMPSCWR) : /* [${Rs}${inc}],$Rd */
2192
{
2193
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2194
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2195
#define FLD(f) abuf->fields.sfmt_bound_cw.f
2196
  int UNUSED written = 0;
2197
  IADDR UNUSED pc = abuf->addr;
2198
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2199
 
2200
{
2201
  SI tmp_tmpopd;
2202
  SI tmp_tmpops;
2203
  BI tmp_carry;
2204
  SI tmp_newval;
2205
  tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
2206
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2207
  tmp_carry = CPU (h_cbit);
2208
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2209
((void) 0); /*nop*/
2210
{
2211
  {
2212
    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))));
2213
    CPU (h_cbit) = opval;
2214
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2215
  }
2216
  {
2217
    BI opval = LTSI (tmp_newval, 0);
2218
    CPU (h_nbit) = opval;
2219
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2220
  }
2221
  {
2222
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2223
    CPU (h_zbit) = opval;
2224
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2225
  }
2226
  {
2227
    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)));
2228
    CPU (h_vbit) = opval;
2229
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2230
  }
2231
{
2232
  {
2233
    BI opval = 0;
2234
    CPU (h_xbit) = opval;
2235
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2236
  }
2237
  {
2238
    BI opval = 0;
2239
    SET_H_INSN_PREFIXED_P (opval);
2240
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2241
  }
2242
}
2243
}
2244
}
2245
 
2246
#undef FLD
2247
}
2248
  NEXT (vpc);
2249
 
2250
  CASE (sem, INSN_CMPU_M_B_M) : /* cmpu-m.b [${Rs}${inc}],$Rd */
2251
{
2252
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2253
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2254
#define FLD(f) abuf->fields.sfmt_addc_m.f
2255
  int UNUSED written = 0;
2256
  IADDR UNUSED pc = abuf->addr;
2257
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2258
 
2259
{
2260
  SI tmp_tmpopd;
2261
  SI tmp_tmpops;
2262
  BI tmp_carry;
2263
  SI tmp_newval;
2264
  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
2265
  QI tmp_tmp_mem;
2266
  BI tmp_postinc;
2267
  tmp_postinc = FLD (f_memmode);
2268
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2269
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2270
; if (NEBI (tmp_postinc, 0)) {
2271
{
2272
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2273
  tmp_addr = ADDSI (tmp_addr, 1);
2274
}
2275
  {
2276
    SI opval = tmp_addr;
2277
    SET_H_GR (FLD (f_operand1), opval);
2278
    written |= (1 << 9);
2279
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2280
  }
2281
}
2282
}
2283
; tmp_tmp_mem; }));
2284
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2285
  tmp_carry = CPU (h_cbit);
2286
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2287
((void) 0); /*nop*/
2288
{
2289
  {
2290
    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))));
2291
    CPU (h_cbit) = opval;
2292
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2293
  }
2294
  {
2295
    BI opval = LTSI (tmp_newval, 0);
2296
    CPU (h_nbit) = opval;
2297
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2298
  }
2299
  {
2300
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2301
    CPU (h_zbit) = opval;
2302
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2303
  }
2304
  {
2305
    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)));
2306
    CPU (h_vbit) = opval;
2307
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2308
  }
2309
{
2310
  {
2311
    BI opval = 0;
2312
    CPU (h_xbit) = opval;
2313
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2314
  }
2315
  {
2316
    BI opval = 0;
2317
    SET_H_INSN_PREFIXED_P (opval);
2318
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2319
  }
2320
}
2321
}
2322
}
2323
 
2324
  abuf->written = written;
2325
#undef FLD
2326
}
2327
  NEXT (vpc);
2328
 
2329
  CASE (sem, INSN_CMPU_M_W_M) : /* cmpu-m.w [${Rs}${inc}],$Rd */
2330
{
2331
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2332
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2333
#define FLD(f) abuf->fields.sfmt_addc_m.f
2334
  int UNUSED written = 0;
2335
  IADDR UNUSED pc = abuf->addr;
2336
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2337
 
2338
{
2339
  SI tmp_tmpopd;
2340
  SI tmp_tmpops;
2341
  BI tmp_carry;
2342
  SI tmp_newval;
2343
  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
2344
  HI tmp_tmp_mem;
2345
  BI tmp_postinc;
2346
  tmp_postinc = FLD (f_memmode);
2347
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2348
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2349
; if (NEBI (tmp_postinc, 0)) {
2350
{
2351
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2352
  tmp_addr = ADDSI (tmp_addr, 2);
2353
}
2354
  {
2355
    SI opval = tmp_addr;
2356
    SET_H_GR (FLD (f_operand1), opval);
2357
    written |= (1 << 9);
2358
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2359
  }
2360
}
2361
}
2362
; tmp_tmp_mem; }));
2363
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2364
  tmp_carry = CPU (h_cbit);
2365
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2366
((void) 0); /*nop*/
2367
{
2368
  {
2369
    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))));
2370
    CPU (h_cbit) = opval;
2371
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2372
  }
2373
  {
2374
    BI opval = LTSI (tmp_newval, 0);
2375
    CPU (h_nbit) = opval;
2376
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2377
  }
2378
  {
2379
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2380
    CPU (h_zbit) = opval;
2381
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2382
  }
2383
  {
2384
    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)));
2385
    CPU (h_vbit) = opval;
2386
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2387
  }
2388
{
2389
  {
2390
    BI opval = 0;
2391
    CPU (h_xbit) = opval;
2392
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2393
  }
2394
  {
2395
    BI opval = 0;
2396
    SET_H_INSN_PREFIXED_P (opval);
2397
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2398
  }
2399
}
2400
}
2401
}
2402
 
2403
  abuf->written = written;
2404
#undef FLD
2405
}
2406
  NEXT (vpc);
2407
 
2408
  CASE (sem, INSN_CMPUCBR) : /* [${Rs}${inc}],$Rd */
2409
{
2410
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2411
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2412
#define FLD(f) abuf->fields.sfmt_bound_cb.f
2413
  int UNUSED written = 0;
2414
  IADDR UNUSED pc = abuf->addr;
2415
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2416
 
2417
{
2418
  SI tmp_tmpopd;
2419
  SI tmp_tmpops;
2420
  BI tmp_carry;
2421
  SI tmp_newval;
2422
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
2423
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2424
  tmp_carry = CPU (h_cbit);
2425
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2426
((void) 0); /*nop*/
2427
{
2428
  {
2429
    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))));
2430
    CPU (h_cbit) = opval;
2431
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2432
  }
2433
  {
2434
    BI opval = LTSI (tmp_newval, 0);
2435
    CPU (h_nbit) = opval;
2436
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2437
  }
2438
  {
2439
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2440
    CPU (h_zbit) = opval;
2441
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2442
  }
2443
  {
2444
    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)));
2445
    CPU (h_vbit) = opval;
2446
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2447
  }
2448
{
2449
  {
2450
    BI opval = 0;
2451
    CPU (h_xbit) = opval;
2452
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2453
  }
2454
  {
2455
    BI opval = 0;
2456
    SET_H_INSN_PREFIXED_P (opval);
2457
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2458
  }
2459
}
2460
}
2461
}
2462
 
2463
#undef FLD
2464
}
2465
  NEXT (vpc);
2466
 
2467
  CASE (sem, INSN_CMPUCWR) : /* [${Rs}${inc}],$Rd */
2468
{
2469
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2470
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2471
#define FLD(f) abuf->fields.sfmt_bound_cw.f
2472
  int UNUSED written = 0;
2473
  IADDR UNUSED pc = abuf->addr;
2474
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2475
 
2476
{
2477
  SI tmp_tmpopd;
2478
  SI tmp_tmpops;
2479
  BI tmp_carry;
2480
  SI tmp_newval;
2481
  tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
2482
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
2483
  tmp_carry = CPU (h_cbit);
2484
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
2485
((void) 0); /*nop*/
2486
{
2487
  {
2488
    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))));
2489
    CPU (h_cbit) = opval;
2490
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
2491
  }
2492
  {
2493
    BI opval = LTSI (tmp_newval, 0);
2494
    CPU (h_nbit) = opval;
2495
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2496
  }
2497
  {
2498
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
2499
    CPU (h_zbit) = opval;
2500
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2501
  }
2502
  {
2503
    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)));
2504
    CPU (h_vbit) = opval;
2505
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
2506
  }
2507
{
2508
  {
2509
    BI opval = 0;
2510
    CPU (h_xbit) = opval;
2511
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2512
  }
2513
  {
2514
    BI opval = 0;
2515
    SET_H_INSN_PREFIXED_P (opval);
2516
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2517
  }
2518
}
2519
}
2520
}
2521
 
2522
#undef FLD
2523
}
2524
  NEXT (vpc);
2525
 
2526
  CASE (sem, INSN_MOVE_M_B_M) : /* move-m.b [${Rs}${inc}],${Rd} */
2527
{
2528
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2529
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2530
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2531
  int UNUSED written = 0;
2532
  IADDR UNUSED pc = abuf->addr;
2533
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2534
 
2535
{
2536
  SI tmp_tmp;
2537
  tmp_tmp = ({   SI tmp_addr;
2538
  QI tmp_tmp_mem;
2539
  BI tmp_postinc;
2540
  tmp_postinc = FLD (f_memmode);
2541
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2542
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2543
; if (NEBI (tmp_postinc, 0)) {
2544
{
2545
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2546
  tmp_addr = ADDSI (tmp_addr, 1);
2547
}
2548
  {
2549
    SI opval = tmp_addr;
2550
    SET_H_GR (FLD (f_operand1), opval);
2551
    written |= (1 << 10);
2552
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2553
  }
2554
}
2555
}
2556
; tmp_tmp_mem; });
2557
{
2558
  SI tmp_oldregval;
2559
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
2560
  {
2561
    SI opval = ORSI (ANDSI (tmp_tmp, 255), ANDSI (tmp_oldregval, 0xffffff00));
2562
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2563
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2564
  }
2565
}
2566
{
2567
  {
2568
    BI opval = LTQI (tmp_tmp, 0);
2569
    CPU (h_nbit) = opval;
2570
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2571
  }
2572
  {
2573
    BI opval = ANDIF (EQQI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2574
    CPU (h_zbit) = opval;
2575
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2576
  }
2577
SET_H_CBIT_MOVE (0);
2578
SET_H_VBIT_MOVE (0);
2579
{
2580
  {
2581
    BI opval = 0;
2582
    CPU (h_xbit) = opval;
2583
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2584
  }
2585
  {
2586
    BI opval = 0;
2587
    SET_H_INSN_PREFIXED_P (opval);
2588
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2589
  }
2590
}
2591
}
2592
}
2593
 
2594
  abuf->written = written;
2595
#undef FLD
2596
}
2597
  NEXT (vpc);
2598
 
2599
  CASE (sem, INSN_MOVE_M_W_M) : /* move-m.w [${Rs}${inc}],${Rd} */
2600
{
2601
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2602
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2603
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2604
  int UNUSED written = 0;
2605
  IADDR UNUSED pc = abuf->addr;
2606
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2607
 
2608
{
2609
  SI tmp_tmp;
2610
  tmp_tmp = ({   SI tmp_addr;
2611
  HI tmp_tmp_mem;
2612
  BI tmp_postinc;
2613
  tmp_postinc = FLD (f_memmode);
2614
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2615
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2616
; if (NEBI (tmp_postinc, 0)) {
2617
{
2618
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2619
  tmp_addr = ADDSI (tmp_addr, 2);
2620
}
2621
  {
2622
    SI opval = tmp_addr;
2623
    SET_H_GR (FLD (f_operand1), opval);
2624
    written |= (1 << 10);
2625
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2626
  }
2627
}
2628
}
2629
; tmp_tmp_mem; });
2630
{
2631
  SI tmp_oldregval;
2632
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
2633
  {
2634
    SI opval = ORSI (ANDSI (tmp_tmp, 65535), ANDSI (tmp_oldregval, 0xffff0000));
2635
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2636
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2637
  }
2638
}
2639
{
2640
  {
2641
    BI opval = LTHI (tmp_tmp, 0);
2642
    CPU (h_nbit) = opval;
2643
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2644
  }
2645
  {
2646
    BI opval = ANDIF (EQHI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2647
    CPU (h_zbit) = opval;
2648
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2649
  }
2650
SET_H_CBIT_MOVE (0);
2651
SET_H_VBIT_MOVE (0);
2652
{
2653
  {
2654
    BI opval = 0;
2655
    CPU (h_xbit) = opval;
2656
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2657
  }
2658
  {
2659
    BI opval = 0;
2660
    SET_H_INSN_PREFIXED_P (opval);
2661
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2662
  }
2663
}
2664
}
2665
}
2666
 
2667
  abuf->written = written;
2668
#undef FLD
2669
}
2670
  NEXT (vpc);
2671
 
2672
  CASE (sem, INSN_MOVE_M_D_M) : /* move-m.d [${Rs}${inc}],${Rd} */
2673
{
2674
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2675
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2676
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2677
  int UNUSED written = 0;
2678
  IADDR UNUSED pc = abuf->addr;
2679
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2680
 
2681
{
2682
  SI tmp_tmp;
2683
  tmp_tmp = ({   SI tmp_addr;
2684
  SI tmp_tmp_mem;
2685
  BI tmp_postinc;
2686
  tmp_postinc = FLD (f_memmode);
2687
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2688
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
2689
; if (NEBI (tmp_postinc, 0)) {
2690
{
2691
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2692
  tmp_addr = ADDSI (tmp_addr, 4);
2693
}
2694
  {
2695
    SI opval = tmp_addr;
2696
    SET_H_GR (FLD (f_operand1), opval);
2697
    written |= (1 << 9);
2698
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2699
  }
2700
}
2701
}
2702
; tmp_tmp_mem; });
2703
  {
2704
    SI opval = tmp_tmp;
2705
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
2706
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2707
  }
2708
{
2709
  {
2710
    BI opval = LTSI (tmp_tmp, 0);
2711
    CPU (h_nbit) = opval;
2712
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2713
  }
2714
  {
2715
    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2716
    CPU (h_zbit) = opval;
2717
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2718
  }
2719
SET_H_CBIT_MOVE (0);
2720
SET_H_VBIT_MOVE (0);
2721
{
2722
  {
2723
    BI opval = 0;
2724
    CPU (h_xbit) = opval;
2725
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2726
  }
2727
  {
2728
    BI opval = 0;
2729
    SET_H_INSN_PREFIXED_P (opval);
2730
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2731
  }
2732
}
2733
}
2734
}
2735
 
2736
  abuf->written = written;
2737
#undef FLD
2738
}
2739
  NEXT (vpc);
2740
 
2741
  CASE (sem, INSN_MOVS_M_B_M) : /* movs-m.b [${Rs}${inc}],${Rd} */
2742
{
2743
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2744
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2745
#define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2746
  int UNUSED written = 0;
2747
  IADDR UNUSED pc = abuf->addr;
2748
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2749
 
2750
{
2751
  SI tmp_tmp;
2752
  tmp_tmp = EXTQISI (({   SI tmp_addr;
2753
  QI tmp_tmp_mem;
2754
  BI tmp_postinc;
2755
  tmp_postinc = FLD (f_memmode);
2756
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2757
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2758
; if (NEBI (tmp_postinc, 0)) {
2759
{
2760
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2761
  tmp_addr = ADDSI (tmp_addr, 1);
2762
}
2763
  {
2764
    SI opval = tmp_addr;
2765
    SET_H_GR (FLD (f_operand1), opval);
2766
    written |= (1 << 8);
2767
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2768
  }
2769
}
2770
}
2771
; tmp_tmp_mem; }));
2772
if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2773
  {
2774
    SI opval = tmp_tmp;
2775
    SET_H_GR (FLD (f_operand1), opval);
2776
    written |= (1 << 8);
2777
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2778
  }
2779
} else {
2780
  {
2781
    SI opval = tmp_tmp;
2782
    SET_H_GR (FLD (f_operand2), opval);
2783
    written |= (1 << 7);
2784
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2785
  }
2786
}
2787
{
2788
  {
2789
    BI opval = LTSI (tmp_tmp, 0);
2790
    CPU (h_nbit) = opval;
2791
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2792
  }
2793
  {
2794
    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2795
    CPU (h_zbit) = opval;
2796
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2797
  }
2798
SET_H_CBIT_MOVE (0);
2799
SET_H_VBIT_MOVE (0);
2800
{
2801
  {
2802
    BI opval = 0;
2803
    CPU (h_xbit) = opval;
2804
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2805
  }
2806
  {
2807
    BI opval = 0;
2808
    SET_H_INSN_PREFIXED_P (opval);
2809
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2810
  }
2811
}
2812
}
2813
}
2814
 
2815
  abuf->written = written;
2816
#undef FLD
2817
}
2818
  NEXT (vpc);
2819
 
2820
  CASE (sem, INSN_MOVS_M_W_M) : /* movs-m.w [${Rs}${inc}],${Rd} */
2821
{
2822
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2823
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2824
#define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2825
  int UNUSED written = 0;
2826
  IADDR UNUSED pc = abuf->addr;
2827
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2828
 
2829
{
2830
  SI tmp_tmp;
2831
  tmp_tmp = EXTHISI (({   SI tmp_addr;
2832
  HI tmp_tmp_mem;
2833
  BI tmp_postinc;
2834
  tmp_postinc = FLD (f_memmode);
2835
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2836
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2837
; if (NEBI (tmp_postinc, 0)) {
2838
{
2839
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2840
  tmp_addr = ADDSI (tmp_addr, 2);
2841
}
2842
  {
2843
    SI opval = tmp_addr;
2844
    SET_H_GR (FLD (f_operand1), opval);
2845
    written |= (1 << 8);
2846
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2847
  }
2848
}
2849
}
2850
; tmp_tmp_mem; }));
2851
if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2852
  {
2853
    SI opval = tmp_tmp;
2854
    SET_H_GR (FLD (f_operand1), opval);
2855
    written |= (1 << 8);
2856
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2857
  }
2858
} else {
2859
  {
2860
    SI opval = tmp_tmp;
2861
    SET_H_GR (FLD (f_operand2), opval);
2862
    written |= (1 << 7);
2863
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2864
  }
2865
}
2866
{
2867
  {
2868
    BI opval = LTSI (tmp_tmp, 0);
2869
    CPU (h_nbit) = opval;
2870
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2871
  }
2872
  {
2873
    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2874
    CPU (h_zbit) = opval;
2875
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2876
  }
2877
SET_H_CBIT_MOVE (0);
2878
SET_H_VBIT_MOVE (0);
2879
{
2880
  {
2881
    BI opval = 0;
2882
    CPU (h_xbit) = opval;
2883
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2884
  }
2885
  {
2886
    BI opval = 0;
2887
    SET_H_INSN_PREFIXED_P (opval);
2888
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2889
  }
2890
}
2891
}
2892
}
2893
 
2894
  abuf->written = written;
2895
#undef FLD
2896
}
2897
  NEXT (vpc);
2898
 
2899
  CASE (sem, INSN_MOVU_M_B_M) : /* movu-m.b [${Rs}${inc}],${Rd} */
2900
{
2901
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2902
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2903
#define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2904
  int UNUSED written = 0;
2905
  IADDR UNUSED pc = abuf->addr;
2906
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2907
 
2908
{
2909
  SI tmp_tmp;
2910
  tmp_tmp = ZEXTQISI (({   SI tmp_addr;
2911
  QI tmp_tmp_mem;
2912
  BI tmp_postinc;
2913
  tmp_postinc = FLD (f_memmode);
2914
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2915
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
2916
; if (NEBI (tmp_postinc, 0)) {
2917
{
2918
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2919
  tmp_addr = ADDSI (tmp_addr, 1);
2920
}
2921
  {
2922
    SI opval = tmp_addr;
2923
    SET_H_GR (FLD (f_operand1), opval);
2924
    written |= (1 << 8);
2925
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2926
  }
2927
}
2928
}
2929
; tmp_tmp_mem; }));
2930
if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
2931
  {
2932
    SI opval = tmp_tmp;
2933
    SET_H_GR (FLD (f_operand1), opval);
2934
    written |= (1 << 8);
2935
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2936
  }
2937
} else {
2938
  {
2939
    SI opval = tmp_tmp;
2940
    SET_H_GR (FLD (f_operand2), opval);
2941
    written |= (1 << 7);
2942
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2943
  }
2944
}
2945
{
2946
  {
2947
    BI opval = LTSI (tmp_tmp, 0);
2948
    CPU (h_nbit) = opval;
2949
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
2950
  }
2951
  {
2952
    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
2953
    CPU (h_zbit) = opval;
2954
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
2955
  }
2956
SET_H_CBIT_MOVE (0);
2957
SET_H_VBIT_MOVE (0);
2958
{
2959
  {
2960
    BI opval = 0;
2961
    CPU (h_xbit) = opval;
2962
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
2963
  }
2964
  {
2965
    BI opval = 0;
2966
    SET_H_INSN_PREFIXED_P (opval);
2967
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
2968
  }
2969
}
2970
}
2971
}
2972
 
2973
  abuf->written = written;
2974
#undef FLD
2975
}
2976
  NEXT (vpc);
2977
 
2978
  CASE (sem, INSN_MOVU_M_W_M) : /* movu-m.w [${Rs}${inc}],${Rd} */
2979
{
2980
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
2981
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2982
#define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2983
  int UNUSED written = 0;
2984
  IADDR UNUSED pc = abuf->addr;
2985
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
2986
 
2987
{
2988
  SI tmp_tmp;
2989
  tmp_tmp = ZEXTHISI (({   SI tmp_addr;
2990
  HI tmp_tmp_mem;
2991
  BI tmp_postinc;
2992
  tmp_postinc = FLD (f_memmode);
2993
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
2994
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
2995
; if (NEBI (tmp_postinc, 0)) {
2996
{
2997
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
2998
  tmp_addr = ADDSI (tmp_addr, 2);
2999
}
3000
  {
3001
    SI opval = tmp_addr;
3002
    SET_H_GR (FLD (f_operand1), opval);
3003
    written |= (1 << 8);
3004
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3005
  }
3006
}
3007
}
3008
; tmp_tmp_mem; }));
3009
if (ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) {
3010
  {
3011
    SI opval = tmp_tmp;
3012
    SET_H_GR (FLD (f_operand1), opval);
3013
    written |= (1 << 8);
3014
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3015
  }
3016
} else {
3017
  {
3018
    SI opval = tmp_tmp;
3019
    SET_H_GR (FLD (f_operand2), opval);
3020
    written |= (1 << 7);
3021
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3022
  }
3023
}
3024
{
3025
  {
3026
    BI opval = LTSI (tmp_tmp, 0);
3027
    CPU (h_nbit) = opval;
3028
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
3029
  }
3030
  {
3031
    BI opval = ANDIF (EQSI (tmp_tmp, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
3032
    CPU (h_zbit) = opval;
3033
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
3034
  }
3035
SET_H_CBIT_MOVE (0);
3036
SET_H_VBIT_MOVE (0);
3037
{
3038
  {
3039
    BI opval = 0;
3040
    CPU (h_xbit) = opval;
3041
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3042
  }
3043
  {
3044
    BI opval = 0;
3045
    SET_H_INSN_PREFIXED_P (opval);
3046
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3047
  }
3048
}
3049
}
3050
}
3051
 
3052
  abuf->written = written;
3053
#undef FLD
3054
}
3055
  NEXT (vpc);
3056
 
3057
  CASE (sem, INSN_MOVE_R_SPRV32) : /* move ${Rs},${Pd} */
3058
{
3059
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3060
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3061
#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3062
  int UNUSED written = 0;
3063
  IADDR UNUSED pc = abuf->addr;
3064
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3065
 
3066
{
3067
  SI tmp_tmp;
3068
  SI tmp_rno;
3069
  tmp_tmp = GET_H_GR (FLD (f_operand1));
3070
  tmp_rno = FLD (f_operand2);
3071
if (ORIF (ORIF (EQSI (tmp_rno, 0), EQSI (tmp_rno, 1)), ORIF (EQSI (tmp_rno, 4), EQSI (tmp_rno, 8)))) {
3072
cgen_rtx_error (current_cpu, "move-r-spr: trying to set a read-only special register");
3073
}
3074
 else {
3075
  {
3076
    SI opval = tmp_tmp;
3077
    SET_H_SR (FLD (f_operand2), opval);
3078
    written |= (1 << 2);
3079
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3080
  }
3081
}
3082
{
3083
  {
3084
    BI opval = 0;
3085
    CPU (h_xbit) = opval;
3086
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3087
  }
3088
  {
3089
    BI opval = 0;
3090
    SET_H_INSN_PREFIXED_P (opval);
3091
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3092
  }
3093
}
3094
}
3095
 
3096
  abuf->written = written;
3097
#undef FLD
3098
}
3099
  NEXT (vpc);
3100
 
3101
  CASE (sem, INSN_MOVE_SPR_RV32) : /* move ${Ps},${Rd-sfield} */
3102
{
3103
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3104
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3105
#define FLD(f) abuf->fields.sfmt_mcp.f
3106
  int UNUSED written = 0;
3107
  IADDR UNUSED pc = abuf->addr;
3108
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3109
 
3110
{
3111
  SI tmp_grno;
3112
  SI tmp_prno;
3113
  SI tmp_newval;
3114
  tmp_prno = FLD (f_operand2);
3115
  tmp_newval = GET_H_SR (FLD (f_operand2));
3116
if (EQSI (tmp_prno, 2)) {
3117
  {
3118
    SI opval = tmp_newval;
3119
    SET_H_GR (FLD (f_operand1), opval);
3120
    written |= (1 << 4);
3121
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3122
  }
3123
}
3124
 else if (EQSI (tmp_prno, 3)) {
3125
{
3126
  SI tmp_oldregval;
3127
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand1));
3128
  {
3129
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3130
    SET_H_GR (FLD (f_operand1), opval);
3131
    written |= (1 << 4);
3132
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3133
  }
3134
}
3135
}
3136
 else if (EQSI (tmp_prno, 5)) {
3137
  {
3138
    SI opval = tmp_newval;
3139
    SET_H_GR (FLD (f_operand1), opval);
3140
    written |= (1 << 4);
3141
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3142
  }
3143
}
3144
 else if (EQSI (tmp_prno, 6)) {
3145
  {
3146
    SI opval = tmp_newval;
3147
    SET_H_GR (FLD (f_operand1), opval);
3148
    written |= (1 << 4);
3149
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3150
  }
3151
}
3152
 else if (EQSI (tmp_prno, 7)) {
3153
  {
3154
    SI opval = tmp_newval;
3155
    SET_H_GR (FLD (f_operand1), opval);
3156
    written |= (1 << 4);
3157
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3158
  }
3159
}
3160
 else if (EQSI (tmp_prno, 9)) {
3161
  {
3162
    SI opval = tmp_newval;
3163
    SET_H_GR (FLD (f_operand1), opval);
3164
    written |= (1 << 4);
3165
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3166
  }
3167
}
3168
 else if (EQSI (tmp_prno, 10)) {
3169
  {
3170
    SI opval = tmp_newval;
3171
    SET_H_GR (FLD (f_operand1), opval);
3172
    written |= (1 << 4);
3173
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3174
  }
3175
}
3176
 else if (EQSI (tmp_prno, 11)) {
3177
  {
3178
    SI opval = tmp_newval;
3179
    SET_H_GR (FLD (f_operand1), opval);
3180
    written |= (1 << 4);
3181
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3182
  }
3183
}
3184
 else if (EQSI (tmp_prno, 12)) {
3185
  {
3186
    SI opval = tmp_newval;
3187
    SET_H_GR (FLD (f_operand1), opval);
3188
    written |= (1 << 4);
3189
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3190
  }
3191
}
3192
 else if (EQSI (tmp_prno, 13)) {
3193
  {
3194
    SI opval = tmp_newval;
3195
    SET_H_GR (FLD (f_operand1), opval);
3196
    written |= (1 << 4);
3197
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3198
  }
3199
}
3200
 else if (EQSI (tmp_prno, 14)) {
3201
  {
3202
    SI opval = tmp_newval;
3203
    SET_H_GR (FLD (f_operand1), opval);
3204
    written |= (1 << 4);
3205
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3206
  }
3207
}
3208
 else if (EQSI (tmp_prno, 15)) {
3209
  {
3210
    SI opval = tmp_newval;
3211
    SET_H_GR (FLD (f_operand1), opval);
3212
    written |= (1 << 4);
3213
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3214
  }
3215
}
3216
 else if (EQSI (tmp_prno, 0)) {
3217
{
3218
  SI tmp_oldregval;
3219
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand1));
3220
  {
3221
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3222
    SET_H_GR (FLD (f_operand1), opval);
3223
    written |= (1 << 4);
3224
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3225
  }
3226
}
3227
}
3228
 else if (EQSI (tmp_prno, 1)) {
3229
{
3230
  SI tmp_oldregval;
3231
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand1));
3232
  {
3233
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
3234
    SET_H_GR (FLD (f_operand1), opval);
3235
    written |= (1 << 4);
3236
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3237
  }
3238
}
3239
}
3240
 else if (EQSI (tmp_prno, 4)) {
3241
{
3242
  SI tmp_oldregval;
3243
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand1));
3244
  {
3245
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
3246
    SET_H_GR (FLD (f_operand1), opval);
3247
    written |= (1 << 4);
3248
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3249
  }
3250
}
3251
}
3252
 else if (EQSI (tmp_prno, 8)) {
3253
  {
3254
    SI opval = tmp_newval;
3255
    SET_H_GR (FLD (f_operand1), opval);
3256
    written |= (1 << 4);
3257
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3258
  }
3259
}
3260
 else {
3261
cgen_rtx_error (current_cpu, "move-spr-r from unimplemented register");
3262
}
3263
{
3264
  {
3265
    BI opval = 0;
3266
    CPU (h_xbit) = opval;
3267
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3268
  }
3269
  {
3270
    BI opval = 0;
3271
    SET_H_INSN_PREFIXED_P (opval);
3272
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3273
  }
3274
}
3275
}
3276
 
3277
  abuf->written = written;
3278
#undef FLD
3279
}
3280
  NEXT (vpc);
3281
 
3282
  CASE (sem, INSN_MOVE_M_SPRV32) : /* move [${Rs}${inc}],${Pd} */
3283
{
3284
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3285
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3286
#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3287
  int UNUSED written = 0;
3288
  IADDR UNUSED pc = abuf->addr;
3289
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3290
 
3291
{
3292
  SI tmp_rno;
3293
  SI tmp_newval;
3294
  tmp_rno = FLD (f_operand2);
3295
if (EQSI (tmp_rno, 2)) {
3296
  tmp_newval = ({   SI tmp_addr;
3297
  SI tmp_tmp_mem;
3298
  BI tmp_postinc;
3299
  tmp_postinc = FLD (f_memmode);
3300
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3301
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3302
; if (NEBI (tmp_postinc, 0)) {
3303
{
3304
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3305
  tmp_addr = ADDSI (tmp_addr, 4);
3306
}
3307
  {
3308
    SI opval = tmp_addr;
3309
    SET_H_GR (FLD (f_operand1), opval);
3310
    written |= (1 << 8);
3311
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3312
  }
3313
}
3314
}
3315
; tmp_tmp_mem; });
3316
}
3317
 else if (EQSI (tmp_rno, 3)) {
3318
  tmp_newval = EXTQISI (({   SI tmp_addr;
3319
  QI tmp_tmp_mem;
3320
  BI tmp_postinc;
3321
  tmp_postinc = FLD (f_memmode);
3322
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3323
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
3324
; if (NEBI (tmp_postinc, 0)) {
3325
{
3326
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3327
  tmp_addr = ADDSI (tmp_addr, 1);
3328
}
3329
  {
3330
    SI opval = tmp_addr;
3331
    SET_H_GR (FLD (f_operand1), opval);
3332
    written |= (1 << 8);
3333
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3334
  }
3335
}
3336
}
3337
; tmp_tmp_mem; }));
3338
}
3339
 else if (EQSI (tmp_rno, 5)) {
3340
  tmp_newval = ({   SI tmp_addr;
3341
  SI tmp_tmp_mem;
3342
  BI tmp_postinc;
3343
  tmp_postinc = FLD (f_memmode);
3344
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3345
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3346
; if (NEBI (tmp_postinc, 0)) {
3347
{
3348
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3349
  tmp_addr = ADDSI (tmp_addr, 4);
3350
}
3351
  {
3352
    SI opval = tmp_addr;
3353
    SET_H_GR (FLD (f_operand1), opval);
3354
    written |= (1 << 8);
3355
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3356
  }
3357
}
3358
}
3359
; tmp_tmp_mem; });
3360
}
3361
 else if (EQSI (tmp_rno, 6)) {
3362
  tmp_newval = ({   SI tmp_addr;
3363
  SI tmp_tmp_mem;
3364
  BI tmp_postinc;
3365
  tmp_postinc = FLD (f_memmode);
3366
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3367
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3368
; if (NEBI (tmp_postinc, 0)) {
3369
{
3370
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3371
  tmp_addr = ADDSI (tmp_addr, 4);
3372
}
3373
  {
3374
    SI opval = tmp_addr;
3375
    SET_H_GR (FLD (f_operand1), opval);
3376
    written |= (1 << 8);
3377
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3378
  }
3379
}
3380
}
3381
; tmp_tmp_mem; });
3382
}
3383
 else if (EQSI (tmp_rno, 7)) {
3384
  tmp_newval = ({   SI tmp_addr;
3385
  SI tmp_tmp_mem;
3386
  BI tmp_postinc;
3387
  tmp_postinc = FLD (f_memmode);
3388
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3389
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3390
; if (NEBI (tmp_postinc, 0)) {
3391
{
3392
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3393
  tmp_addr = ADDSI (tmp_addr, 4);
3394
}
3395
  {
3396
    SI opval = tmp_addr;
3397
    SET_H_GR (FLD (f_operand1), opval);
3398
    written |= (1 << 8);
3399
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3400
  }
3401
}
3402
}
3403
; tmp_tmp_mem; });
3404
}
3405
 else if (EQSI (tmp_rno, 9)) {
3406
  tmp_newval = ({   SI tmp_addr;
3407
  SI tmp_tmp_mem;
3408
  BI tmp_postinc;
3409
  tmp_postinc = FLD (f_memmode);
3410
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3411
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3412
; if (NEBI (tmp_postinc, 0)) {
3413
{
3414
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3415
  tmp_addr = ADDSI (tmp_addr, 4);
3416
}
3417
  {
3418
    SI opval = tmp_addr;
3419
    SET_H_GR (FLD (f_operand1), opval);
3420
    written |= (1 << 8);
3421
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3422
  }
3423
}
3424
}
3425
; tmp_tmp_mem; });
3426
}
3427
 else if (EQSI (tmp_rno, 10)) {
3428
  tmp_newval = ({   SI tmp_addr;
3429
  SI tmp_tmp_mem;
3430
  BI tmp_postinc;
3431
  tmp_postinc = FLD (f_memmode);
3432
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3433
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3434
; if (NEBI (tmp_postinc, 0)) {
3435
{
3436
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3437
  tmp_addr = ADDSI (tmp_addr, 4);
3438
}
3439
  {
3440
    SI opval = tmp_addr;
3441
    SET_H_GR (FLD (f_operand1), opval);
3442
    written |= (1 << 8);
3443
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3444
  }
3445
}
3446
}
3447
; tmp_tmp_mem; });
3448
}
3449
 else if (EQSI (tmp_rno, 11)) {
3450
  tmp_newval = ({   SI tmp_addr;
3451
  SI tmp_tmp_mem;
3452
  BI tmp_postinc;
3453
  tmp_postinc = FLD (f_memmode);
3454
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3455
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3456
; if (NEBI (tmp_postinc, 0)) {
3457
{
3458
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3459
  tmp_addr = ADDSI (tmp_addr, 4);
3460
}
3461
  {
3462
    SI opval = tmp_addr;
3463
    SET_H_GR (FLD (f_operand1), opval);
3464
    written |= (1 << 8);
3465
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3466
  }
3467
}
3468
}
3469
; tmp_tmp_mem; });
3470
}
3471
 else if (EQSI (tmp_rno, 12)) {
3472
  tmp_newval = ({   SI tmp_addr;
3473
  SI tmp_tmp_mem;
3474
  BI tmp_postinc;
3475
  tmp_postinc = FLD (f_memmode);
3476
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3477
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3478
; if (NEBI (tmp_postinc, 0)) {
3479
{
3480
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3481
  tmp_addr = ADDSI (tmp_addr, 4);
3482
}
3483
  {
3484
    SI opval = tmp_addr;
3485
    SET_H_GR (FLD (f_operand1), opval);
3486
    written |= (1 << 8);
3487
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3488
  }
3489
}
3490
}
3491
; tmp_tmp_mem; });
3492
}
3493
 else if (EQSI (tmp_rno, 13)) {
3494
  tmp_newval = ({   SI tmp_addr;
3495
  SI tmp_tmp_mem;
3496
  BI tmp_postinc;
3497
  tmp_postinc = FLD (f_memmode);
3498
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3499
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3500
; if (NEBI (tmp_postinc, 0)) {
3501
{
3502
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3503
  tmp_addr = ADDSI (tmp_addr, 4);
3504
}
3505
  {
3506
    SI opval = tmp_addr;
3507
    SET_H_GR (FLD (f_operand1), opval);
3508
    written |= (1 << 8);
3509
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3510
  }
3511
}
3512
}
3513
; tmp_tmp_mem; });
3514
}
3515
 else if (EQSI (tmp_rno, 14)) {
3516
  tmp_newval = ({   SI tmp_addr;
3517
  SI tmp_tmp_mem;
3518
  BI tmp_postinc;
3519
  tmp_postinc = FLD (f_memmode);
3520
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3521
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3522
; if (NEBI (tmp_postinc, 0)) {
3523
{
3524
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3525
  tmp_addr = ADDSI (tmp_addr, 4);
3526
}
3527
  {
3528
    SI opval = tmp_addr;
3529
    SET_H_GR (FLD (f_operand1), opval);
3530
    written |= (1 << 8);
3531
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3532
  }
3533
}
3534
}
3535
; tmp_tmp_mem; });
3536
}
3537
 else if (EQSI (tmp_rno, 15)) {
3538
  tmp_newval = ({   SI tmp_addr;
3539
  SI tmp_tmp_mem;
3540
  BI tmp_postinc;
3541
  tmp_postinc = FLD (f_memmode);
3542
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
3543
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
3544
; if (NEBI (tmp_postinc, 0)) {
3545
{
3546
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
3547
  tmp_addr = ADDSI (tmp_addr, 4);
3548
}
3549
  {
3550
    SI opval = tmp_addr;
3551
    SET_H_GR (FLD (f_operand1), opval);
3552
    written |= (1 << 8);
3553
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3554
  }
3555
}
3556
}
3557
; tmp_tmp_mem; });
3558
}
3559
 else {
3560
cgen_rtx_error (current_cpu, "Trying to set unimplemented special register");
3561
}
3562
  {
3563
    SI opval = tmp_newval;
3564
    SET_H_SR (FLD (f_operand2), opval);
3565
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3566
  }
3567
{
3568
  {
3569
    BI opval = 0;
3570
    CPU (h_xbit) = opval;
3571
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3572
  }
3573
  {
3574
    BI opval = 0;
3575
    SET_H_INSN_PREFIXED_P (opval);
3576
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3577
  }
3578
}
3579
}
3580
 
3581
  abuf->written = written;
3582
#undef FLD
3583
}
3584
  NEXT (vpc);
3585
 
3586
  CASE (sem, INSN_MOVE_C_SPRV32_P2) : /* move ${const32},${Pd} */
3587
{
3588
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3589
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3590
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3591
  int UNUSED written = 0;
3592
  IADDR UNUSED pc = abuf->addr;
3593
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3594
 
3595
{
3596
  {
3597
    SI opval = FLD (f_indir_pc__dword);
3598
    SET_H_SR (FLD (f_operand2), opval);
3599
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3600
  }
3601
{
3602
  {
3603
    BI opval = 0;
3604
    CPU (h_xbit) = opval;
3605
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3606
  }
3607
  {
3608
    BI opval = 0;
3609
    SET_H_INSN_PREFIXED_P (opval);
3610
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3611
  }
3612
}
3613
}
3614
 
3615
#undef FLD
3616
}
3617
  NEXT (vpc);
3618
 
3619
  CASE (sem, INSN_MOVE_C_SPRV32_P3) : /* move ${const32},${Pd} */
3620
{
3621
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3622
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3623
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3624
  int UNUSED written = 0;
3625
  IADDR UNUSED pc = abuf->addr;
3626
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3627
 
3628
{
3629
  {
3630
    SI opval = FLD (f_indir_pc__dword);
3631
    SET_H_SR (FLD (f_operand2), opval);
3632
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3633
  }
3634
{
3635
  {
3636
    BI opval = 0;
3637
    CPU (h_xbit) = opval;
3638
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3639
  }
3640
  {
3641
    BI opval = 0;
3642
    SET_H_INSN_PREFIXED_P (opval);
3643
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3644
  }
3645
}
3646
}
3647
 
3648
#undef FLD
3649
}
3650
  NEXT (vpc);
3651
 
3652
  CASE (sem, INSN_MOVE_C_SPRV32_P5) : /* move ${const32},${Pd} */
3653
{
3654
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3655
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3656
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3657
  int UNUSED written = 0;
3658
  IADDR UNUSED pc = abuf->addr;
3659
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3660
 
3661
{
3662
  {
3663
    SI opval = FLD (f_indir_pc__dword);
3664
    SET_H_SR (FLD (f_operand2), opval);
3665
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3666
  }
3667
{
3668
  {
3669
    BI opval = 0;
3670
    CPU (h_xbit) = opval;
3671
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3672
  }
3673
  {
3674
    BI opval = 0;
3675
    SET_H_INSN_PREFIXED_P (opval);
3676
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3677
  }
3678
}
3679
}
3680
 
3681
#undef FLD
3682
}
3683
  NEXT (vpc);
3684
 
3685
  CASE (sem, INSN_MOVE_C_SPRV32_P6) : /* move ${const32},${Pd} */
3686
{
3687
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3688
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3689
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3690
  int UNUSED written = 0;
3691
  IADDR UNUSED pc = abuf->addr;
3692
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3693
 
3694
{
3695
  {
3696
    SI opval = FLD (f_indir_pc__dword);
3697
    SET_H_SR (FLD (f_operand2), opval);
3698
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3699
  }
3700
{
3701
  {
3702
    BI opval = 0;
3703
    CPU (h_xbit) = opval;
3704
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3705
  }
3706
  {
3707
    BI opval = 0;
3708
    SET_H_INSN_PREFIXED_P (opval);
3709
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3710
  }
3711
}
3712
}
3713
 
3714
#undef FLD
3715
}
3716
  NEXT (vpc);
3717
 
3718
  CASE (sem, INSN_MOVE_C_SPRV32_P7) : /* move ${const32},${Pd} */
3719
{
3720
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3721
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3722
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3723
  int UNUSED written = 0;
3724
  IADDR UNUSED pc = abuf->addr;
3725
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3726
 
3727
{
3728
  {
3729
    SI opval = FLD (f_indir_pc__dword);
3730
    SET_H_SR (FLD (f_operand2), opval);
3731
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3732
  }
3733
{
3734
  {
3735
    BI opval = 0;
3736
    CPU (h_xbit) = opval;
3737
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3738
  }
3739
  {
3740
    BI opval = 0;
3741
    SET_H_INSN_PREFIXED_P (opval);
3742
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3743
  }
3744
}
3745
}
3746
 
3747
#undef FLD
3748
}
3749
  NEXT (vpc);
3750
 
3751
  CASE (sem, INSN_MOVE_C_SPRV32_P9) : /* move ${const32},${Pd} */
3752
{
3753
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3754
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3755
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3756
  int UNUSED written = 0;
3757
  IADDR UNUSED pc = abuf->addr;
3758
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3759
 
3760
{
3761
  {
3762
    SI opval = FLD (f_indir_pc__dword);
3763
    SET_H_SR (FLD (f_operand2), opval);
3764
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3765
  }
3766
{
3767
  {
3768
    BI opval = 0;
3769
    CPU (h_xbit) = opval;
3770
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3771
  }
3772
  {
3773
    BI opval = 0;
3774
    SET_H_INSN_PREFIXED_P (opval);
3775
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3776
  }
3777
}
3778
}
3779
 
3780
#undef FLD
3781
}
3782
  NEXT (vpc);
3783
 
3784
  CASE (sem, INSN_MOVE_C_SPRV32_P10) : /* move ${const32},${Pd} */
3785
{
3786
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3787
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3788
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3789
  int UNUSED written = 0;
3790
  IADDR UNUSED pc = abuf->addr;
3791
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3792
 
3793
{
3794
  {
3795
    SI opval = FLD (f_indir_pc__dword);
3796
    SET_H_SR (FLD (f_operand2), opval);
3797
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3798
  }
3799
{
3800
  {
3801
    BI opval = 0;
3802
    CPU (h_xbit) = opval;
3803
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3804
  }
3805
  {
3806
    BI opval = 0;
3807
    SET_H_INSN_PREFIXED_P (opval);
3808
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3809
  }
3810
}
3811
}
3812
 
3813
#undef FLD
3814
}
3815
  NEXT (vpc);
3816
 
3817
  CASE (sem, INSN_MOVE_C_SPRV32_P11) : /* move ${const32},${Pd} */
3818
{
3819
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3820
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3821
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3822
  int UNUSED written = 0;
3823
  IADDR UNUSED pc = abuf->addr;
3824
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3825
 
3826
{
3827
  {
3828
    SI opval = FLD (f_indir_pc__dword);
3829
    SET_H_SR (FLD (f_operand2), opval);
3830
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3831
  }
3832
{
3833
  {
3834
    BI opval = 0;
3835
    CPU (h_xbit) = opval;
3836
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3837
  }
3838
  {
3839
    BI opval = 0;
3840
    SET_H_INSN_PREFIXED_P (opval);
3841
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3842
  }
3843
}
3844
}
3845
 
3846
#undef FLD
3847
}
3848
  NEXT (vpc);
3849
 
3850
  CASE (sem, INSN_MOVE_C_SPRV32_P12) : /* move ${const32},${Pd} */
3851
{
3852
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3853
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3854
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3855
  int UNUSED written = 0;
3856
  IADDR UNUSED pc = abuf->addr;
3857
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3858
 
3859
{
3860
  {
3861
    SI opval = FLD (f_indir_pc__dword);
3862
    SET_H_SR (FLD (f_operand2), opval);
3863
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3864
  }
3865
{
3866
  {
3867
    BI opval = 0;
3868
    CPU (h_xbit) = opval;
3869
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3870
  }
3871
  {
3872
    BI opval = 0;
3873
    SET_H_INSN_PREFIXED_P (opval);
3874
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3875
  }
3876
}
3877
}
3878
 
3879
#undef FLD
3880
}
3881
  NEXT (vpc);
3882
 
3883
  CASE (sem, INSN_MOVE_C_SPRV32_P13) : /* move ${const32},${Pd} */
3884
{
3885
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3886
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3887
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3888
  int UNUSED written = 0;
3889
  IADDR UNUSED pc = abuf->addr;
3890
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3891
 
3892
{
3893
  {
3894
    SI opval = FLD (f_indir_pc__dword);
3895
    SET_H_SR (FLD (f_operand2), opval);
3896
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3897
  }
3898
{
3899
  {
3900
    BI opval = 0;
3901
    CPU (h_xbit) = opval;
3902
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3903
  }
3904
  {
3905
    BI opval = 0;
3906
    SET_H_INSN_PREFIXED_P (opval);
3907
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3908
  }
3909
}
3910
}
3911
 
3912
#undef FLD
3913
}
3914
  NEXT (vpc);
3915
 
3916
  CASE (sem, INSN_MOVE_C_SPRV32_P14) : /* move ${const32},${Pd} */
3917
{
3918
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3919
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3920
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3921
  int UNUSED written = 0;
3922
  IADDR UNUSED pc = abuf->addr;
3923
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3924
 
3925
{
3926
  {
3927
    SI opval = FLD (f_indir_pc__dword);
3928
    SET_H_SR (FLD (f_operand2), opval);
3929
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3930
  }
3931
{
3932
  {
3933
    BI opval = 0;
3934
    CPU (h_xbit) = opval;
3935
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3936
  }
3937
  {
3938
    BI opval = 0;
3939
    SET_H_INSN_PREFIXED_P (opval);
3940
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3941
  }
3942
}
3943
}
3944
 
3945
#undef FLD
3946
}
3947
  NEXT (vpc);
3948
 
3949
  CASE (sem, INSN_MOVE_C_SPRV32_P15) : /* move ${const32},${Pd} */
3950
{
3951
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3952
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3953
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3954
  int UNUSED written = 0;
3955
  IADDR UNUSED pc = abuf->addr;
3956
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
3957
 
3958
{
3959
  {
3960
    SI opval = FLD (f_indir_pc__dword);
3961
    SET_H_SR (FLD (f_operand2), opval);
3962
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
3963
  }
3964
{
3965
  {
3966
    BI opval = 0;
3967
    CPU (h_xbit) = opval;
3968
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
3969
  }
3970
  {
3971
    BI opval = 0;
3972
    SET_H_INSN_PREFIXED_P (opval);
3973
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
3974
  }
3975
}
3976
}
3977
 
3978
#undef FLD
3979
}
3980
  NEXT (vpc);
3981
 
3982
  CASE (sem, INSN_MOVE_SPR_MV32) : /* move ${Ps},[${Rd-sfield}${inc}] */
3983
{
3984
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
3985
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3986
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3987
  int UNUSED written = 0;
3988
  IADDR UNUSED pc = abuf->addr;
3989
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
3990
 
3991
{
3992
  SI tmp_rno;
3993
  tmp_rno = FLD (f_operand2);
3994
if (EQSI (tmp_rno, 2)) {
3995
{
3996
  SI tmp_addr;
3997
  BI tmp_postinc;
3998
  tmp_postinc = FLD (f_memmode);
3999
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4000
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4001
if (EQBI (CPU (h_pbit), 0)) {
4002
{
4003
  {
4004
    SI opval = GET_H_SR (FLD (f_operand2));
4005
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4006
    written |= (1 << 13);
4007
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4008
  }
4009
  {
4010
    BI opval = CPU (h_pbit);
4011
    CPU (h_cbit) = opval;
4012
    written |= (1 << 10);
4013
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4014
  }
4015
}
4016
} else {
4017
  {
4018
    BI opval = 1;
4019
    CPU (h_cbit) = opval;
4020
    written |= (1 << 10);
4021
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4022
  }
4023
}
4024
} else {
4025
  {
4026
    SI opval = GET_H_SR (FLD (f_operand2));
4027
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4028
    written |= (1 << 13);
4029
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4030
  }
4031
}
4032
if (NEBI (tmp_postinc, 0)) {
4033
{
4034
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4035
  tmp_addr = ADDSI (tmp_addr, 4);
4036
}
4037
  {
4038
    SI opval = tmp_addr;
4039
    SET_H_GR (FLD (f_operand1), opval);
4040
    written |= (1 << 9);
4041
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4042
  }
4043
}
4044
}
4045
}
4046
}
4047
 else if (EQSI (tmp_rno, 3)) {
4048
{
4049
  SI tmp_addr;
4050
  BI tmp_postinc;
4051
  tmp_postinc = FLD (f_memmode);
4052
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4053
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4054
if (EQBI (CPU (h_pbit), 0)) {
4055
{
4056
  {
4057
    QI opval = GET_H_SR (FLD (f_operand2));
4058
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4059
    written |= (1 << 12);
4060
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4061
  }
4062
  {
4063
    BI opval = CPU (h_pbit);
4064
    CPU (h_cbit) = opval;
4065
    written |= (1 << 10);
4066
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4067
  }
4068
}
4069
} else {
4070
  {
4071
    BI opval = 1;
4072
    CPU (h_cbit) = opval;
4073
    written |= (1 << 10);
4074
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4075
  }
4076
}
4077
} else {
4078
  {
4079
    QI opval = GET_H_SR (FLD (f_operand2));
4080
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4081
    written |= (1 << 12);
4082
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4083
  }
4084
}
4085
if (NEBI (tmp_postinc, 0)) {
4086
{
4087
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4088
  tmp_addr = ADDSI (tmp_addr, 1);
4089
}
4090
  {
4091
    SI opval = tmp_addr;
4092
    SET_H_GR (FLD (f_operand1), opval);
4093
    written |= (1 << 9);
4094
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4095
  }
4096
}
4097
}
4098
}
4099
}
4100
 else if (EQSI (tmp_rno, 5)) {
4101
{
4102
  SI tmp_addr;
4103
  BI tmp_postinc;
4104
  tmp_postinc = FLD (f_memmode);
4105
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4106
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4107
if (EQBI (CPU (h_pbit), 0)) {
4108
{
4109
  {
4110
    SI opval = GET_H_SR (FLD (f_operand2));
4111
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4112
    written |= (1 << 13);
4113
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4114
  }
4115
  {
4116
    BI opval = CPU (h_pbit);
4117
    CPU (h_cbit) = opval;
4118
    written |= (1 << 10);
4119
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4120
  }
4121
}
4122
} else {
4123
  {
4124
    BI opval = 1;
4125
    CPU (h_cbit) = opval;
4126
    written |= (1 << 10);
4127
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4128
  }
4129
}
4130
} else {
4131
  {
4132
    SI opval = GET_H_SR (FLD (f_operand2));
4133
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4134
    written |= (1 << 13);
4135
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4136
  }
4137
}
4138
if (NEBI (tmp_postinc, 0)) {
4139
{
4140
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4141
  tmp_addr = ADDSI (tmp_addr, 4);
4142
}
4143
  {
4144
    SI opval = tmp_addr;
4145
    SET_H_GR (FLD (f_operand1), opval);
4146
    written |= (1 << 9);
4147
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4148
  }
4149
}
4150
}
4151
}
4152
}
4153
 else if (EQSI (tmp_rno, 6)) {
4154
{
4155
  SI tmp_addr;
4156
  BI tmp_postinc;
4157
  tmp_postinc = FLD (f_memmode);
4158
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4159
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4160
if (EQBI (CPU (h_pbit), 0)) {
4161
{
4162
  {
4163
    SI opval = GET_H_SR (FLD (f_operand2));
4164
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4165
    written |= (1 << 13);
4166
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4167
  }
4168
  {
4169
    BI opval = CPU (h_pbit);
4170
    CPU (h_cbit) = opval;
4171
    written |= (1 << 10);
4172
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4173
  }
4174
}
4175
} else {
4176
  {
4177
    BI opval = 1;
4178
    CPU (h_cbit) = opval;
4179
    written |= (1 << 10);
4180
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4181
  }
4182
}
4183
} else {
4184
  {
4185
    SI opval = GET_H_SR (FLD (f_operand2));
4186
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4187
    written |= (1 << 13);
4188
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4189
  }
4190
}
4191
if (NEBI (tmp_postinc, 0)) {
4192
{
4193
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4194
  tmp_addr = ADDSI (tmp_addr, 4);
4195
}
4196
  {
4197
    SI opval = tmp_addr;
4198
    SET_H_GR (FLD (f_operand1), opval);
4199
    written |= (1 << 9);
4200
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4201
  }
4202
}
4203
}
4204
}
4205
}
4206
 else if (EQSI (tmp_rno, 7)) {
4207
{
4208
  SI tmp_addr;
4209
  BI tmp_postinc;
4210
  tmp_postinc = FLD (f_memmode);
4211
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4212
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4213
if (EQBI (CPU (h_pbit), 0)) {
4214
{
4215
  {
4216
    SI opval = GET_H_SR (FLD (f_operand2));
4217
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4218
    written |= (1 << 13);
4219
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4220
  }
4221
  {
4222
    BI opval = CPU (h_pbit);
4223
    CPU (h_cbit) = opval;
4224
    written |= (1 << 10);
4225
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4226
  }
4227
}
4228
} else {
4229
  {
4230
    BI opval = 1;
4231
    CPU (h_cbit) = opval;
4232
    written |= (1 << 10);
4233
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4234
  }
4235
}
4236
} else {
4237
  {
4238
    SI opval = GET_H_SR (FLD (f_operand2));
4239
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4240
    written |= (1 << 13);
4241
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4242
  }
4243
}
4244
if (NEBI (tmp_postinc, 0)) {
4245
{
4246
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4247
  tmp_addr = ADDSI (tmp_addr, 4);
4248
}
4249
  {
4250
    SI opval = tmp_addr;
4251
    SET_H_GR (FLD (f_operand1), opval);
4252
    written |= (1 << 9);
4253
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4254
  }
4255
}
4256
}
4257
}
4258
}
4259
 else if (EQSI (tmp_rno, 9)) {
4260
{
4261
  SI tmp_addr;
4262
  BI tmp_postinc;
4263
  tmp_postinc = FLD (f_memmode);
4264
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4265
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4266
if (EQBI (CPU (h_pbit), 0)) {
4267
{
4268
  {
4269
    SI opval = GET_H_SR (FLD (f_operand2));
4270
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4271
    written |= (1 << 13);
4272
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4273
  }
4274
  {
4275
    BI opval = CPU (h_pbit);
4276
    CPU (h_cbit) = opval;
4277
    written |= (1 << 10);
4278
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4279
  }
4280
}
4281
} else {
4282
  {
4283
    BI opval = 1;
4284
    CPU (h_cbit) = opval;
4285
    written |= (1 << 10);
4286
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4287
  }
4288
}
4289
} else {
4290
  {
4291
    SI opval = GET_H_SR (FLD (f_operand2));
4292
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4293
    written |= (1 << 13);
4294
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4295
  }
4296
}
4297
if (NEBI (tmp_postinc, 0)) {
4298
{
4299
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4300
  tmp_addr = ADDSI (tmp_addr, 4);
4301
}
4302
  {
4303
    SI opval = tmp_addr;
4304
    SET_H_GR (FLD (f_operand1), opval);
4305
    written |= (1 << 9);
4306
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4307
  }
4308
}
4309
}
4310
}
4311
}
4312
 else if (EQSI (tmp_rno, 10)) {
4313
{
4314
  SI tmp_addr;
4315
  BI tmp_postinc;
4316
  tmp_postinc = FLD (f_memmode);
4317
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4318
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4319
if (EQBI (CPU (h_pbit), 0)) {
4320
{
4321
  {
4322
    SI opval = GET_H_SR (FLD (f_operand2));
4323
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4324
    written |= (1 << 13);
4325
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4326
  }
4327
  {
4328
    BI opval = CPU (h_pbit);
4329
    CPU (h_cbit) = opval;
4330
    written |= (1 << 10);
4331
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4332
  }
4333
}
4334
} else {
4335
  {
4336
    BI opval = 1;
4337
    CPU (h_cbit) = opval;
4338
    written |= (1 << 10);
4339
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4340
  }
4341
}
4342
} else {
4343
  {
4344
    SI opval = GET_H_SR (FLD (f_operand2));
4345
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4346
    written |= (1 << 13);
4347
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4348
  }
4349
}
4350
if (NEBI (tmp_postinc, 0)) {
4351
{
4352
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4353
  tmp_addr = ADDSI (tmp_addr, 4);
4354
}
4355
  {
4356
    SI opval = tmp_addr;
4357
    SET_H_GR (FLD (f_operand1), opval);
4358
    written |= (1 << 9);
4359
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4360
  }
4361
}
4362
}
4363
}
4364
}
4365
 else if (EQSI (tmp_rno, 11)) {
4366
{
4367
  SI tmp_addr;
4368
  BI tmp_postinc;
4369
  tmp_postinc = FLD (f_memmode);
4370
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4371
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4372
if (EQBI (CPU (h_pbit), 0)) {
4373
{
4374
  {
4375
    SI opval = GET_H_SR (FLD (f_operand2));
4376
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4377
    written |= (1 << 13);
4378
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4379
  }
4380
  {
4381
    BI opval = CPU (h_pbit);
4382
    CPU (h_cbit) = opval;
4383
    written |= (1 << 10);
4384
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4385
  }
4386
}
4387
} else {
4388
  {
4389
    BI opval = 1;
4390
    CPU (h_cbit) = opval;
4391
    written |= (1 << 10);
4392
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4393
  }
4394
}
4395
} else {
4396
  {
4397
    SI opval = GET_H_SR (FLD (f_operand2));
4398
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4399
    written |= (1 << 13);
4400
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4401
  }
4402
}
4403
if (NEBI (tmp_postinc, 0)) {
4404
{
4405
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4406
  tmp_addr = ADDSI (tmp_addr, 4);
4407
}
4408
  {
4409
    SI opval = tmp_addr;
4410
    SET_H_GR (FLD (f_operand1), opval);
4411
    written |= (1 << 9);
4412
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4413
  }
4414
}
4415
}
4416
}
4417
}
4418
 else if (EQSI (tmp_rno, 12)) {
4419
{
4420
  SI tmp_addr;
4421
  BI tmp_postinc;
4422
  tmp_postinc = FLD (f_memmode);
4423
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4424
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4425
if (EQBI (CPU (h_pbit), 0)) {
4426
{
4427
  {
4428
    SI opval = GET_H_SR (FLD (f_operand2));
4429
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4430
    written |= (1 << 13);
4431
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4432
  }
4433
  {
4434
    BI opval = CPU (h_pbit);
4435
    CPU (h_cbit) = opval;
4436
    written |= (1 << 10);
4437
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4438
  }
4439
}
4440
} else {
4441
  {
4442
    BI opval = 1;
4443
    CPU (h_cbit) = opval;
4444
    written |= (1 << 10);
4445
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4446
  }
4447
}
4448
} else {
4449
  {
4450
    SI opval = GET_H_SR (FLD (f_operand2));
4451
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4452
    written |= (1 << 13);
4453
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4454
  }
4455
}
4456
if (NEBI (tmp_postinc, 0)) {
4457
{
4458
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4459
  tmp_addr = ADDSI (tmp_addr, 4);
4460
}
4461
  {
4462
    SI opval = tmp_addr;
4463
    SET_H_GR (FLD (f_operand1), opval);
4464
    written |= (1 << 9);
4465
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4466
  }
4467
}
4468
}
4469
}
4470
}
4471
 else if (EQSI (tmp_rno, 13)) {
4472
{
4473
  SI tmp_addr;
4474
  BI tmp_postinc;
4475
  tmp_postinc = FLD (f_memmode);
4476
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4477
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4478
if (EQBI (CPU (h_pbit), 0)) {
4479
{
4480
  {
4481
    SI opval = GET_H_SR (FLD (f_operand2));
4482
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4483
    written |= (1 << 13);
4484
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4485
  }
4486
  {
4487
    BI opval = CPU (h_pbit);
4488
    CPU (h_cbit) = opval;
4489
    written |= (1 << 10);
4490
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4491
  }
4492
}
4493
} else {
4494
  {
4495
    BI opval = 1;
4496
    CPU (h_cbit) = opval;
4497
    written |= (1 << 10);
4498
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4499
  }
4500
}
4501
} else {
4502
  {
4503
    SI opval = GET_H_SR (FLD (f_operand2));
4504
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4505
    written |= (1 << 13);
4506
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4507
  }
4508
}
4509
if (NEBI (tmp_postinc, 0)) {
4510
{
4511
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4512
  tmp_addr = ADDSI (tmp_addr, 4);
4513
}
4514
  {
4515
    SI opval = tmp_addr;
4516
    SET_H_GR (FLD (f_operand1), opval);
4517
    written |= (1 << 9);
4518
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4519
  }
4520
}
4521
}
4522
}
4523
}
4524
 else if (EQSI (tmp_rno, 14)) {
4525
{
4526
  SI tmp_addr;
4527
  BI tmp_postinc;
4528
  tmp_postinc = FLD (f_memmode);
4529
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4530
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4531
if (EQBI (CPU (h_pbit), 0)) {
4532
{
4533
  {
4534
    SI opval = GET_H_SR (FLD (f_operand2));
4535
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4536
    written |= (1 << 13);
4537
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4538
  }
4539
  {
4540
    BI opval = CPU (h_pbit);
4541
    CPU (h_cbit) = opval;
4542
    written |= (1 << 10);
4543
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4544
  }
4545
}
4546
} else {
4547
  {
4548
    BI opval = 1;
4549
    CPU (h_cbit) = opval;
4550
    written |= (1 << 10);
4551
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4552
  }
4553
}
4554
} else {
4555
  {
4556
    SI opval = GET_H_SR (FLD (f_operand2));
4557
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4558
    written |= (1 << 13);
4559
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4560
  }
4561
}
4562
if (NEBI (tmp_postinc, 0)) {
4563
{
4564
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4565
  tmp_addr = ADDSI (tmp_addr, 4);
4566
}
4567
  {
4568
    SI opval = tmp_addr;
4569
    SET_H_GR (FLD (f_operand1), opval);
4570
    written |= (1 << 9);
4571
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4572
  }
4573
}
4574
}
4575
}
4576
}
4577
 else if (EQSI (tmp_rno, 15)) {
4578
{
4579
  SI tmp_addr;
4580
  BI tmp_postinc;
4581
  tmp_postinc = FLD (f_memmode);
4582
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4583
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4584
if (EQBI (CPU (h_pbit), 0)) {
4585
{
4586
  {
4587
    SI opval = GET_H_SR (FLD (f_operand2));
4588
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4589
    written |= (1 << 13);
4590
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4591
  }
4592
  {
4593
    BI opval = CPU (h_pbit);
4594
    CPU (h_cbit) = opval;
4595
    written |= (1 << 10);
4596
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4597
  }
4598
}
4599
} else {
4600
  {
4601
    BI opval = 1;
4602
    CPU (h_cbit) = opval;
4603
    written |= (1 << 10);
4604
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4605
  }
4606
}
4607
} else {
4608
  {
4609
    SI opval = GET_H_SR (FLD (f_operand2));
4610
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4611
    written |= (1 << 13);
4612
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4613
  }
4614
}
4615
if (NEBI (tmp_postinc, 0)) {
4616
{
4617
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4618
  tmp_addr = ADDSI (tmp_addr, 4);
4619
}
4620
  {
4621
    SI opval = tmp_addr;
4622
    SET_H_GR (FLD (f_operand1), opval);
4623
    written |= (1 << 9);
4624
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4625
  }
4626
}
4627
}
4628
}
4629
}
4630
 else if (EQSI (tmp_rno, 0)) {
4631
{
4632
  SI tmp_addr;
4633
  BI tmp_postinc;
4634
  tmp_postinc = FLD (f_memmode);
4635
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4636
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4637
if (EQBI (CPU (h_pbit), 0)) {
4638
{
4639
  {
4640
    QI opval = GET_H_SR (FLD (f_operand2));
4641
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4642
    written |= (1 << 12);
4643
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4644
  }
4645
  {
4646
    BI opval = CPU (h_pbit);
4647
    CPU (h_cbit) = opval;
4648
    written |= (1 << 10);
4649
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4650
  }
4651
}
4652
} else {
4653
  {
4654
    BI opval = 1;
4655
    CPU (h_cbit) = opval;
4656
    written |= (1 << 10);
4657
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4658
  }
4659
}
4660
} else {
4661
  {
4662
    QI opval = GET_H_SR (FLD (f_operand2));
4663
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4664
    written |= (1 << 12);
4665
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4666
  }
4667
}
4668
if (NEBI (tmp_postinc, 0)) {
4669
{
4670
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4671
  tmp_addr = ADDSI (tmp_addr, 1);
4672
}
4673
  {
4674
    SI opval = tmp_addr;
4675
    SET_H_GR (FLD (f_operand1), opval);
4676
    written |= (1 << 9);
4677
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4678
  }
4679
}
4680
}
4681
}
4682
}
4683
 else if (EQSI (tmp_rno, 1)) {
4684
{
4685
  SI tmp_addr;
4686
  BI tmp_postinc;
4687
  tmp_postinc = FLD (f_memmode);
4688
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4689
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4690
if (EQBI (CPU (h_pbit), 0)) {
4691
{
4692
  {
4693
    QI opval = GET_H_SR (FLD (f_operand2));
4694
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4695
    written |= (1 << 12);
4696
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4697
  }
4698
  {
4699
    BI opval = CPU (h_pbit);
4700
    CPU (h_cbit) = opval;
4701
    written |= (1 << 10);
4702
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4703
  }
4704
}
4705
} else {
4706
  {
4707
    BI opval = 1;
4708
    CPU (h_cbit) = opval;
4709
    written |= (1 << 10);
4710
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4711
  }
4712
}
4713
} else {
4714
  {
4715
    QI opval = GET_H_SR (FLD (f_operand2));
4716
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
4717
    written |= (1 << 12);
4718
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4719
  }
4720
}
4721
if (NEBI (tmp_postinc, 0)) {
4722
{
4723
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4724
  tmp_addr = ADDSI (tmp_addr, 1);
4725
}
4726
  {
4727
    SI opval = tmp_addr;
4728
    SET_H_GR (FLD (f_operand1), opval);
4729
    written |= (1 << 9);
4730
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4731
  }
4732
}
4733
}
4734
}
4735
}
4736
 else if (EQSI (tmp_rno, 4)) {
4737
{
4738
  SI tmp_addr;
4739
  BI tmp_postinc;
4740
  tmp_postinc = FLD (f_memmode);
4741
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4742
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4743
if (EQBI (CPU (h_pbit), 0)) {
4744
{
4745
  {
4746
    HI opval = GET_H_SR (FLD (f_operand2));
4747
    SETMEMHI (current_cpu, pc, tmp_addr, opval);
4748
    written |= (1 << 11);
4749
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4750
  }
4751
  {
4752
    BI opval = CPU (h_pbit);
4753
    CPU (h_cbit) = opval;
4754
    written |= (1 << 10);
4755
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4756
  }
4757
}
4758
} else {
4759
  {
4760
    BI opval = 1;
4761
    CPU (h_cbit) = opval;
4762
    written |= (1 << 10);
4763
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4764
  }
4765
}
4766
} else {
4767
  {
4768
    HI opval = GET_H_SR (FLD (f_operand2));
4769
    SETMEMHI (current_cpu, pc, tmp_addr, opval);
4770
    written |= (1 << 11);
4771
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4772
  }
4773
}
4774
if (NEBI (tmp_postinc, 0)) {
4775
{
4776
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4777
  tmp_addr = ADDSI (tmp_addr, 2);
4778
}
4779
  {
4780
    SI opval = tmp_addr;
4781
    SET_H_GR (FLD (f_operand1), opval);
4782
    written |= (1 << 9);
4783
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4784
  }
4785
}
4786
}
4787
}
4788
}
4789
 else if (EQSI (tmp_rno, 8)) {
4790
{
4791
  SI tmp_addr;
4792
  BI tmp_postinc;
4793
  tmp_postinc = FLD (f_memmode);
4794
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
4795
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
4796
if (EQBI (CPU (h_pbit), 0)) {
4797
{
4798
  {
4799
    SI opval = GET_H_SR (FLD (f_operand2));
4800
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4801
    written |= (1 << 13);
4802
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4803
  }
4804
  {
4805
    BI opval = CPU (h_pbit);
4806
    CPU (h_cbit) = opval;
4807
    written |= (1 << 10);
4808
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4809
  }
4810
}
4811
} else {
4812
  {
4813
    BI opval = 1;
4814
    CPU (h_cbit) = opval;
4815
    written |= (1 << 10);
4816
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
4817
  }
4818
}
4819
} else {
4820
  {
4821
    SI opval = GET_H_SR (FLD (f_operand2));
4822
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4823
    written |= (1 << 13);
4824
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4825
  }
4826
}
4827
if (NEBI (tmp_postinc, 0)) {
4828
{
4829
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
4830
  tmp_addr = ADDSI (tmp_addr, 4);
4831
}
4832
  {
4833
    SI opval = tmp_addr;
4834
    SET_H_GR (FLD (f_operand1), opval);
4835
    written |= (1 << 9);
4836
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4837
  }
4838
}
4839
}
4840
}
4841
}
4842
 else {
4843
cgen_rtx_error (current_cpu, "write from unimplemented special register");
4844
}
4845
{
4846
  {
4847
    BI opval = 0;
4848
    CPU (h_xbit) = opval;
4849
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4850
  }
4851
  {
4852
    BI opval = 0;
4853
    SET_H_INSN_PREFIXED_P (opval);
4854
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4855
  }
4856
}
4857
}
4858
 
4859
  abuf->written = written;
4860
#undef FLD
4861
}
4862
  NEXT (vpc);
4863
 
4864
  CASE (sem, INSN_MOVE_SS_R) : /* move ${Ss},${Rd-sfield} */
4865
{
4866
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4867
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4868
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4869
  int UNUSED written = 0;
4870
  IADDR UNUSED pc = abuf->addr;
4871
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4872
 
4873
{
4874
  {
4875
    SI opval = GET_H_SUPR (FLD (f_operand2));
4876
    SET_H_GR (FLD (f_operand1), opval);
4877
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4878
  }
4879
{
4880
  {
4881
    BI opval = 0;
4882
    CPU (h_xbit) = opval;
4883
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4884
  }
4885
  {
4886
    BI opval = 0;
4887
    SET_H_INSN_PREFIXED_P (opval);
4888
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4889
  }
4890
}
4891
}
4892
 
4893
#undef FLD
4894
}
4895
  NEXT (vpc);
4896
 
4897
  CASE (sem, INSN_MOVE_R_SS) : /* move ${Rs},${Sd} */
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_mcp.f
4902
  int UNUSED written = 0;
4903
  IADDR UNUSED pc = abuf->addr;
4904
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4905
 
4906
{
4907
  {
4908
    SI opval = GET_H_GR (FLD (f_operand1));
4909
    SET_H_SUPR (FLD (f_operand2), opval);
4910
    TRACE_RESULT (current_cpu, abuf, "supr", 'x', opval);
4911
  }
4912
{
4913
  {
4914
    BI opval = 0;
4915
    CPU (h_xbit) = opval;
4916
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
4917
  }
4918
  {
4919
    BI opval = 0;
4920
    SET_H_INSN_PREFIXED_P (opval);
4921
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
4922
  }
4923
}
4924
}
4925
 
4926
#undef FLD
4927
}
4928
  NEXT (vpc);
4929
 
4930
  CASE (sem, INSN_MOVEM_R_M_V32) : /* movem ${Rs-dfield},[${Rd-sfield}${inc}] */
4931
{
4932
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
4933
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4934
#define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
4935
  int UNUSED written = 0;
4936
  IADDR UNUSED pc = abuf->addr;
4937
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
4938
 
4939
{
4940
  SI tmp_addr;
4941
  BI tmp_postinc;
4942
  tmp_postinc = FLD (f_memmode);
4943
{
4944
  SI tmp_dummy;
4945
  tmp_dummy = GET_H_GR (FLD (f_operand2));
4946
}
4947
  tmp_addr = GET_H_GR (FLD (f_operand1));
4948
{
4949
if (GESI (FLD (f_operand2), 0)) {
4950
{
4951
  SI tmp_tmp;
4952
  tmp_tmp = GET_H_GR (((UINT) 0));
4953
  {
4954
    SI opval = tmp_tmp;
4955
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4956
    written |= (1 << 21);
4957
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4958
  }
4959
  tmp_addr = ADDSI (tmp_addr, 4);
4960
}
4961
}
4962
if (GESI (FLD (f_operand2), 1)) {
4963
{
4964
  SI tmp_tmp;
4965
  tmp_tmp = GET_H_GR (((UINT) 1));
4966
  {
4967
    SI opval = tmp_tmp;
4968
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4969
    written |= (1 << 21);
4970
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4971
  }
4972
  tmp_addr = ADDSI (tmp_addr, 4);
4973
}
4974
}
4975
if (GESI (FLD (f_operand2), 2)) {
4976
{
4977
  SI tmp_tmp;
4978
  tmp_tmp = GET_H_GR (((UINT) 2));
4979
  {
4980
    SI opval = tmp_tmp;
4981
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4982
    written |= (1 << 21);
4983
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4984
  }
4985
  tmp_addr = ADDSI (tmp_addr, 4);
4986
}
4987
}
4988
if (GESI (FLD (f_operand2), 3)) {
4989
{
4990
  SI tmp_tmp;
4991
  tmp_tmp = GET_H_GR (((UINT) 3));
4992
  {
4993
    SI opval = tmp_tmp;
4994
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
4995
    written |= (1 << 21);
4996
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
4997
  }
4998
  tmp_addr = ADDSI (tmp_addr, 4);
4999
}
5000
}
5001
if (GESI (FLD (f_operand2), 4)) {
5002
{
5003
  SI tmp_tmp;
5004
  tmp_tmp = GET_H_GR (((UINT) 4));
5005
  {
5006
    SI opval = tmp_tmp;
5007
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5008
    written |= (1 << 21);
5009
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5010
  }
5011
  tmp_addr = ADDSI (tmp_addr, 4);
5012
}
5013
}
5014
if (GESI (FLD (f_operand2), 5)) {
5015
{
5016
  SI tmp_tmp;
5017
  tmp_tmp = GET_H_GR (((UINT) 5));
5018
  {
5019
    SI opval = tmp_tmp;
5020
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5021
    written |= (1 << 21);
5022
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5023
  }
5024
  tmp_addr = ADDSI (tmp_addr, 4);
5025
}
5026
}
5027
if (GESI (FLD (f_operand2), 6)) {
5028
{
5029
  SI tmp_tmp;
5030
  tmp_tmp = GET_H_GR (((UINT) 6));
5031
  {
5032
    SI opval = tmp_tmp;
5033
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5034
    written |= (1 << 21);
5035
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5036
  }
5037
  tmp_addr = ADDSI (tmp_addr, 4);
5038
}
5039
}
5040
if (GESI (FLD (f_operand2), 7)) {
5041
{
5042
  SI tmp_tmp;
5043
  tmp_tmp = GET_H_GR (((UINT) 7));
5044
  {
5045
    SI opval = tmp_tmp;
5046
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5047
    written |= (1 << 21);
5048
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5049
  }
5050
  tmp_addr = ADDSI (tmp_addr, 4);
5051
}
5052
}
5053
if (GESI (FLD (f_operand2), 8)) {
5054
{
5055
  SI tmp_tmp;
5056
  tmp_tmp = GET_H_GR (((UINT) 8));
5057
  {
5058
    SI opval = tmp_tmp;
5059
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5060
    written |= (1 << 21);
5061
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5062
  }
5063
  tmp_addr = ADDSI (tmp_addr, 4);
5064
}
5065
}
5066
if (GESI (FLD (f_operand2), 9)) {
5067
{
5068
  SI tmp_tmp;
5069
  tmp_tmp = GET_H_GR (((UINT) 9));
5070
  {
5071
    SI opval = tmp_tmp;
5072
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5073
    written |= (1 << 21);
5074
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5075
  }
5076
  tmp_addr = ADDSI (tmp_addr, 4);
5077
}
5078
}
5079
if (GESI (FLD (f_operand2), 10)) {
5080
{
5081
  SI tmp_tmp;
5082
  tmp_tmp = GET_H_GR (((UINT) 10));
5083
  {
5084
    SI opval = tmp_tmp;
5085
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5086
    written |= (1 << 21);
5087
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5088
  }
5089
  tmp_addr = ADDSI (tmp_addr, 4);
5090
}
5091
}
5092
if (GESI (FLD (f_operand2), 11)) {
5093
{
5094
  SI tmp_tmp;
5095
  tmp_tmp = GET_H_GR (((UINT) 11));
5096
  {
5097
    SI opval = tmp_tmp;
5098
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5099
    written |= (1 << 21);
5100
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5101
  }
5102
  tmp_addr = ADDSI (tmp_addr, 4);
5103
}
5104
}
5105
if (GESI (FLD (f_operand2), 12)) {
5106
{
5107
  SI tmp_tmp;
5108
  tmp_tmp = GET_H_GR (((UINT) 12));
5109
  {
5110
    SI opval = tmp_tmp;
5111
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5112
    written |= (1 << 21);
5113
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5114
  }
5115
  tmp_addr = ADDSI (tmp_addr, 4);
5116
}
5117
}
5118
if (GESI (FLD (f_operand2), 13)) {
5119
{
5120
  SI tmp_tmp;
5121
  tmp_tmp = GET_H_GR (((UINT) 13));
5122
  {
5123
    SI opval = tmp_tmp;
5124
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5125
    written |= (1 << 21);
5126
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5127
  }
5128
  tmp_addr = ADDSI (tmp_addr, 4);
5129
}
5130
}
5131
if (GESI (FLD (f_operand2), 14)) {
5132
{
5133
  SI tmp_tmp;
5134
  tmp_tmp = GET_H_GR (((UINT) 14));
5135
  {
5136
    SI opval = tmp_tmp;
5137
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5138
    written |= (1 << 21);
5139
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5140
  }
5141
  tmp_addr = ADDSI (tmp_addr, 4);
5142
}
5143
}
5144
if (GESI (FLD (f_operand2), 15)) {
5145
{
5146
  SI tmp_tmp;
5147
  tmp_tmp = GET_H_GR (((UINT) 15));
5148
  {
5149
    SI opval = tmp_tmp;
5150
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
5151
    written |= (1 << 21);
5152
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
5153
  }
5154
  tmp_addr = ADDSI (tmp_addr, 4);
5155
}
5156
}
5157
}
5158
if (NEBI (tmp_postinc, 0)) {
5159
  {
5160
    SI opval = tmp_addr;
5161
    SET_H_GR (FLD (f_operand1), opval);
5162
    written |= (1 << 20);
5163
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5164
  }
5165
}
5166
{
5167
  {
5168
    BI opval = 0;
5169
    CPU (h_xbit) = opval;
5170
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5171
  }
5172
  {
5173
    BI opval = 0;
5174
    SET_H_INSN_PREFIXED_P (opval);
5175
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5176
  }
5177
}
5178
}
5179
 
5180
  abuf->written = written;
5181
#undef FLD
5182
}
5183
  NEXT (vpc);
5184
 
5185
  CASE (sem, INSN_MOVEM_M_R_V32) : /* movem [${Rs}${inc}],${Rd} */
5186
{
5187
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5188
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5189
#define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
5190
  int UNUSED written = 0;
5191
  IADDR UNUSED pc = abuf->addr;
5192
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5193
 
5194
{
5195
  SI tmp_addr;
5196
  BI tmp_postinc;
5197
  tmp_postinc = FLD (f_memmode);
5198
  tmp_addr = GET_H_GR (FLD (f_operand1));
5199
{
5200
  SI tmp_dummy;
5201
  tmp_dummy = GET_H_GR (FLD (f_operand2));
5202
}
5203
{
5204
if (GESI (FLD (f_operand2), 0)) {
5205
{
5206
  SI tmp_tmp;
5207
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5208
  {
5209
    SI opval = tmp_tmp;
5210
    SET_H_GR (((UINT) 0), opval);
5211
    written |= (1 << 6);
5212
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5213
  }
5214
  tmp_addr = ADDSI (tmp_addr, 4);
5215
}
5216
}
5217
if (GESI (FLD (f_operand2), 1)) {
5218
{
5219
  SI tmp_tmp;
5220
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5221
  {
5222
    SI opval = tmp_tmp;
5223
    SET_H_GR (((UINT) 1), opval);
5224
    written |= (1 << 7);
5225
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5226
  }
5227
  tmp_addr = ADDSI (tmp_addr, 4);
5228
}
5229
}
5230
if (GESI (FLD (f_operand2), 2)) {
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) 2), opval);
5237
    written |= (1 << 14);
5238
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5239
  }
5240
  tmp_addr = ADDSI (tmp_addr, 4);
5241
}
5242
}
5243
if (GESI (FLD (f_operand2), 3)) {
5244
{
5245
  SI tmp_tmp;
5246
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5247
  {
5248
    SI opval = tmp_tmp;
5249
    SET_H_GR (((UINT) 3), opval);
5250
    written |= (1 << 15);
5251
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5252
  }
5253
  tmp_addr = ADDSI (tmp_addr, 4);
5254
}
5255
}
5256
if (GESI (FLD (f_operand2), 4)) {
5257
{
5258
  SI tmp_tmp;
5259
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5260
  {
5261
    SI opval = tmp_tmp;
5262
    SET_H_GR (((UINT) 4), opval);
5263
    written |= (1 << 16);
5264
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5265
  }
5266
  tmp_addr = ADDSI (tmp_addr, 4);
5267
}
5268
}
5269
if (GESI (FLD (f_operand2), 5)) {
5270
{
5271
  SI tmp_tmp;
5272
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5273
  {
5274
    SI opval = tmp_tmp;
5275
    SET_H_GR (((UINT) 5), opval);
5276
    written |= (1 << 17);
5277
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5278
  }
5279
  tmp_addr = ADDSI (tmp_addr, 4);
5280
}
5281
}
5282
if (GESI (FLD (f_operand2), 6)) {
5283
{
5284
  SI tmp_tmp;
5285
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5286
  {
5287
    SI opval = tmp_tmp;
5288
    SET_H_GR (((UINT) 6), opval);
5289
    written |= (1 << 18);
5290
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5291
  }
5292
  tmp_addr = ADDSI (tmp_addr, 4);
5293
}
5294
}
5295
if (GESI (FLD (f_operand2), 7)) {
5296
{
5297
  SI tmp_tmp;
5298
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5299
  {
5300
    SI opval = tmp_tmp;
5301
    SET_H_GR (((UINT) 7), opval);
5302
    written |= (1 << 19);
5303
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5304
  }
5305
  tmp_addr = ADDSI (tmp_addr, 4);
5306
}
5307
}
5308
if (GESI (FLD (f_operand2), 8)) {
5309
{
5310
  SI tmp_tmp;
5311
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5312
  {
5313
    SI opval = tmp_tmp;
5314
    SET_H_GR (((UINT) 8), opval);
5315
    written |= (1 << 20);
5316
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5317
  }
5318
  tmp_addr = ADDSI (tmp_addr, 4);
5319
}
5320
}
5321
if (GESI (FLD (f_operand2), 9)) {
5322
{
5323
  SI tmp_tmp;
5324
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5325
  {
5326
    SI opval = tmp_tmp;
5327
    SET_H_GR (((UINT) 9), opval);
5328
    written |= (1 << 21);
5329
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5330
  }
5331
  tmp_addr = ADDSI (tmp_addr, 4);
5332
}
5333
}
5334
if (GESI (FLD (f_operand2), 10)) {
5335
{
5336
  SI tmp_tmp;
5337
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5338
  {
5339
    SI opval = tmp_tmp;
5340
    SET_H_GR (((UINT) 10), opval);
5341
    written |= (1 << 8);
5342
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5343
  }
5344
  tmp_addr = ADDSI (tmp_addr, 4);
5345
}
5346
}
5347
if (GESI (FLD (f_operand2), 11)) {
5348
{
5349
  SI tmp_tmp;
5350
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5351
  {
5352
    SI opval = tmp_tmp;
5353
    SET_H_GR (((UINT) 11), opval);
5354
    written |= (1 << 9);
5355
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5356
  }
5357
  tmp_addr = ADDSI (tmp_addr, 4);
5358
}
5359
}
5360
if (GESI (FLD (f_operand2), 12)) {
5361
{
5362
  SI tmp_tmp;
5363
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5364
  {
5365
    SI opval = tmp_tmp;
5366
    SET_H_GR (((UINT) 12), opval);
5367
    written |= (1 << 10);
5368
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5369
  }
5370
  tmp_addr = ADDSI (tmp_addr, 4);
5371
}
5372
}
5373
if (GESI (FLD (f_operand2), 13)) {
5374
{
5375
  SI tmp_tmp;
5376
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5377
  {
5378
    SI opval = tmp_tmp;
5379
    SET_H_GR (((UINT) 13), opval);
5380
    written |= (1 << 11);
5381
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5382
  }
5383
  tmp_addr = ADDSI (tmp_addr, 4);
5384
}
5385
}
5386
if (GESI (FLD (f_operand2), 14)) {
5387
{
5388
  SI tmp_tmp;
5389
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5390
  {
5391
    SI opval = tmp_tmp;
5392
    SET_H_GR (((UINT) 14), opval);
5393
    written |= (1 << 12);
5394
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5395
  }
5396
  tmp_addr = ADDSI (tmp_addr, 4);
5397
}
5398
}
5399
if (GESI (FLD (f_operand2), 15)) {
5400
{
5401
  SI tmp_tmp;
5402
  tmp_tmp = GETMEMSI (current_cpu, pc, tmp_addr);
5403
  {
5404
    SI opval = tmp_tmp;
5405
    SET_H_GR (((UINT) 15), opval);
5406
    written |= (1 << 13);
5407
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5408
  }
5409
  tmp_addr = ADDSI (tmp_addr, 4);
5410
}
5411
}
5412
}
5413
if (NEBI (tmp_postinc, 0)) {
5414
  {
5415
    SI opval = tmp_addr;
5416
    SET_H_GR (FLD (f_operand1), opval);
5417
    written |= (1 << 5);
5418
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5419
  }
5420
}
5421
{
5422
  {
5423
    BI opval = 0;
5424
    CPU (h_xbit) = opval;
5425
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5426
  }
5427
  {
5428
    BI opval = 0;
5429
    SET_H_INSN_PREFIXED_P (opval);
5430
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5431
  }
5432
}
5433
}
5434
 
5435
  abuf->written = written;
5436
#undef FLD
5437
}
5438
  NEXT (vpc);
5439
 
5440
  CASE (sem, INSN_ADD_B_R) : /* add.b $Rs,$Rd */
5441
{
5442
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5443
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5444
#define FLD(f) abuf->fields.sfmt_addc_m.f
5445
  int UNUSED written = 0;
5446
  IADDR UNUSED pc = abuf->addr;
5447
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5448
 
5449
{
5450
  QI tmp_tmpopd;
5451
  QI tmp_tmpops;
5452
  BI tmp_carry;
5453
  QI tmp_newval;
5454
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
5455
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5456
  tmp_carry = CPU (h_cbit);
5457
  tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5458
{
5459
  SI tmp_oldregval;
5460
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
5461
  {
5462
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5463
    SET_H_GR (FLD (f_operand2), opval);
5464
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5465
  }
5466
}
5467
{
5468
  {
5469
    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))));
5470
    CPU (h_cbit) = opval;
5471
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5472
  }
5473
  {
5474
    BI opval = LTQI (tmp_newval, 0);
5475
    CPU (h_nbit) = opval;
5476
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5477
  }
5478
  {
5479
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5480
    CPU (h_zbit) = opval;
5481
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5482
  }
5483
  {
5484
    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)));
5485
    CPU (h_vbit) = opval;
5486
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5487
  }
5488
{
5489
  {
5490
    BI opval = 0;
5491
    CPU (h_xbit) = opval;
5492
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5493
  }
5494
  {
5495
    BI opval = 0;
5496
    SET_H_INSN_PREFIXED_P (opval);
5497
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5498
  }
5499
}
5500
}
5501
}
5502
 
5503
#undef FLD
5504
}
5505
  NEXT (vpc);
5506
 
5507
  CASE (sem, INSN_ADD_W_R) : /* add.w $Rs,$Rd */
5508
{
5509
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5510
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5511
#define FLD(f) abuf->fields.sfmt_addc_m.f
5512
  int UNUSED written = 0;
5513
  IADDR UNUSED pc = abuf->addr;
5514
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5515
 
5516
{
5517
  HI tmp_tmpopd;
5518
  HI tmp_tmpops;
5519
  BI tmp_carry;
5520
  HI tmp_newval;
5521
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
5522
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5523
  tmp_carry = CPU (h_cbit);
5524
  tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5525
{
5526
  SI tmp_oldregval;
5527
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
5528
  {
5529
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5530
    SET_H_GR (FLD (f_operand2), opval);
5531
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5532
  }
5533
}
5534
{
5535
  {
5536
    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))));
5537
    CPU (h_cbit) = opval;
5538
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5539
  }
5540
  {
5541
    BI opval = LTHI (tmp_newval, 0);
5542
    CPU (h_nbit) = opval;
5543
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5544
  }
5545
  {
5546
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5547
    CPU (h_zbit) = opval;
5548
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5549
  }
5550
  {
5551
    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)));
5552
    CPU (h_vbit) = opval;
5553
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5554
  }
5555
{
5556
  {
5557
    BI opval = 0;
5558
    CPU (h_xbit) = opval;
5559
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5560
  }
5561
  {
5562
    BI opval = 0;
5563
    SET_H_INSN_PREFIXED_P (opval);
5564
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5565
  }
5566
}
5567
}
5568
}
5569
 
5570
#undef FLD
5571
}
5572
  NEXT (vpc);
5573
 
5574
  CASE (sem, INSN_ADD_D_R) : /* add.d $Rs,$Rd */
5575
{
5576
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5577
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5578
#define FLD(f) abuf->fields.sfmt_addc_m.f
5579
  int UNUSED written = 0;
5580
  IADDR UNUSED pc = abuf->addr;
5581
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5582
 
5583
{
5584
  SI tmp_tmpopd;
5585
  SI tmp_tmpops;
5586
  BI tmp_carry;
5587
  SI tmp_newval;
5588
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
5589
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5590
  tmp_carry = CPU (h_cbit);
5591
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5592
  {
5593
    SI opval = tmp_newval;
5594
    SET_H_GR (FLD (f_operand2), opval);
5595
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5596
  }
5597
{
5598
  {
5599
    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))));
5600
    CPU (h_cbit) = opval;
5601
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5602
  }
5603
  {
5604
    BI opval = LTSI (tmp_newval, 0);
5605
    CPU (h_nbit) = opval;
5606
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5607
  }
5608
  {
5609
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5610
    CPU (h_zbit) = opval;
5611
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5612
  }
5613
  {
5614
    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)));
5615
    CPU (h_vbit) = opval;
5616
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5617
  }
5618
{
5619
  {
5620
    BI opval = 0;
5621
    CPU (h_xbit) = opval;
5622
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5623
  }
5624
  {
5625
    BI opval = 0;
5626
    SET_H_INSN_PREFIXED_P (opval);
5627
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5628
  }
5629
}
5630
}
5631
}
5632
 
5633
#undef FLD
5634
}
5635
  NEXT (vpc);
5636
 
5637
  CASE (sem, INSN_ADD_M_B_M) : /* add-m.b [${Rs}${inc}],${Rd} */
5638
{
5639
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5640
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5641
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5642
  int UNUSED written = 0;
5643
  IADDR UNUSED pc = abuf->addr;
5644
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5645
 
5646
{
5647
  QI tmp_tmpopd;
5648
  QI tmp_tmpops;
5649
  BI tmp_carry;
5650
  QI tmp_newval;
5651
  tmp_tmpops = ({   SI tmp_addr;
5652
  QI tmp_tmp_mem;
5653
  BI tmp_postinc;
5654
  tmp_postinc = FLD (f_memmode);
5655
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
5656
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
5657
; if (NEBI (tmp_postinc, 0)) {
5658
{
5659
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5660
  tmp_addr = ADDSI (tmp_addr, 1);
5661
}
5662
  {
5663
    SI opval = tmp_addr;
5664
    SET_H_GR (FLD (f_operand1), opval);
5665
    written |= (1 << 12);
5666
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5667
  }
5668
}
5669
}
5670
; tmp_tmp_mem; });
5671
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5672
  tmp_carry = CPU (h_cbit);
5673
  tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5674
{
5675
  SI tmp_oldregval;
5676
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
5677
  {
5678
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5679
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5680
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5681
  }
5682
}
5683
{
5684
  {
5685
    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))));
5686
    CPU (h_cbit) = opval;
5687
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5688
  }
5689
  {
5690
    BI opval = LTQI (tmp_newval, 0);
5691
    CPU (h_nbit) = opval;
5692
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5693
  }
5694
  {
5695
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5696
    CPU (h_zbit) = opval;
5697
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5698
  }
5699
  {
5700
    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)));
5701
    CPU (h_vbit) = opval;
5702
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5703
  }
5704
{
5705
  {
5706
    BI opval = 0;
5707
    CPU (h_xbit) = opval;
5708
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5709
  }
5710
  {
5711
    BI opval = 0;
5712
    SET_H_INSN_PREFIXED_P (opval);
5713
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5714
  }
5715
}
5716
}
5717
}
5718
 
5719
  abuf->written = written;
5720
#undef FLD
5721
}
5722
  NEXT (vpc);
5723
 
5724
  CASE (sem, INSN_ADD_M_W_M) : /* add-m.w [${Rs}${inc}],${Rd} */
5725
{
5726
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5727
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5728
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5729
  int UNUSED written = 0;
5730
  IADDR UNUSED pc = abuf->addr;
5731
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5732
 
5733
{
5734
  HI tmp_tmpopd;
5735
  HI tmp_tmpops;
5736
  BI tmp_carry;
5737
  HI tmp_newval;
5738
  tmp_tmpops = ({   SI tmp_addr;
5739
  HI tmp_tmp_mem;
5740
  BI tmp_postinc;
5741
  tmp_postinc = FLD (f_memmode);
5742
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
5743
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
5744
; if (NEBI (tmp_postinc, 0)) {
5745
{
5746
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5747
  tmp_addr = ADDSI (tmp_addr, 2);
5748
}
5749
  {
5750
    SI opval = tmp_addr;
5751
    SET_H_GR (FLD (f_operand1), opval);
5752
    written |= (1 << 12);
5753
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5754
  }
5755
}
5756
}
5757
; tmp_tmp_mem; });
5758
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5759
  tmp_carry = CPU (h_cbit);
5760
  tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5761
{
5762
  SI tmp_oldregval;
5763
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
5764
  {
5765
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5766
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5767
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5768
  }
5769
}
5770
{
5771
  {
5772
    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))));
5773
    CPU (h_cbit) = opval;
5774
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5775
  }
5776
  {
5777
    BI opval = LTHI (tmp_newval, 0);
5778
    CPU (h_nbit) = opval;
5779
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5780
  }
5781
  {
5782
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5783
    CPU (h_zbit) = opval;
5784
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5785
  }
5786
  {
5787
    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)));
5788
    CPU (h_vbit) = opval;
5789
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5790
  }
5791
{
5792
  {
5793
    BI opval = 0;
5794
    CPU (h_xbit) = opval;
5795
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5796
  }
5797
  {
5798
    BI opval = 0;
5799
    SET_H_INSN_PREFIXED_P (opval);
5800
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5801
  }
5802
}
5803
}
5804
}
5805
 
5806
  abuf->written = written;
5807
#undef FLD
5808
}
5809
  NEXT (vpc);
5810
 
5811
  CASE (sem, INSN_ADD_M_D_M) : /* add-m.d [${Rs}${inc}],${Rd} */
5812
{
5813
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5814
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5815
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5816
  int UNUSED written = 0;
5817
  IADDR UNUSED pc = abuf->addr;
5818
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
5819
 
5820
{
5821
  SI tmp_tmpopd;
5822
  SI tmp_tmpops;
5823
  BI tmp_carry;
5824
  SI tmp_newval;
5825
  tmp_tmpops = ({   SI tmp_addr;
5826
  SI tmp_tmp_mem;
5827
  BI tmp_postinc;
5828
  tmp_postinc = FLD (f_memmode);
5829
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
5830
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
5831
; if (NEBI (tmp_postinc, 0)) {
5832
{
5833
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
5834
  tmp_addr = ADDSI (tmp_addr, 4);
5835
}
5836
  {
5837
    SI opval = tmp_addr;
5838
    SET_H_GR (FLD (f_operand1), opval);
5839
    written |= (1 << 11);
5840
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5841
  }
5842
}
5843
}
5844
; tmp_tmp_mem; });
5845
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5846
  tmp_carry = CPU (h_cbit);
5847
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5848
  {
5849
    SI opval = tmp_newval;
5850
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
5851
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5852
  }
5853
{
5854
  {
5855
    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))));
5856
    CPU (h_cbit) = opval;
5857
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5858
  }
5859
  {
5860
    BI opval = LTSI (tmp_newval, 0);
5861
    CPU (h_nbit) = opval;
5862
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5863
  }
5864
  {
5865
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5866
    CPU (h_zbit) = opval;
5867
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5868
  }
5869
  {
5870
    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)));
5871
    CPU (h_vbit) = opval;
5872
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5873
  }
5874
{
5875
  {
5876
    BI opval = 0;
5877
    CPU (h_xbit) = opval;
5878
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5879
  }
5880
  {
5881
    BI opval = 0;
5882
    SET_H_INSN_PREFIXED_P (opval);
5883
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5884
  }
5885
}
5886
}
5887
}
5888
 
5889
  abuf->written = written;
5890
#undef FLD
5891
}
5892
  NEXT (vpc);
5893
 
5894
  CASE (sem, INSN_ADDCBR) : /* add.b ${sconst8}],${Rd} */
5895
{
5896
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5897
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5898
#define FLD(f) abuf->fields.sfmt_addcbr.f
5899
  int UNUSED written = 0;
5900
  IADDR UNUSED pc = abuf->addr;
5901
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5902
 
5903
{
5904
  QI tmp_tmpopd;
5905
  QI tmp_tmpops;
5906
  BI tmp_carry;
5907
  QI tmp_newval;
5908
  tmp_tmpops = FLD (f_indir_pc__byte);
5909
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5910
  tmp_carry = CPU (h_cbit);
5911
  tmp_newval = ADDCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5912
{
5913
  SI tmp_oldregval;
5914
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
5915
  {
5916
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
5917
    SET_H_GR (FLD (f_operand2), opval);
5918
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5919
  }
5920
}
5921
{
5922
  {
5923
    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))));
5924
    CPU (h_cbit) = opval;
5925
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5926
  }
5927
  {
5928
    BI opval = LTQI (tmp_newval, 0);
5929
    CPU (h_nbit) = opval;
5930
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5931
  }
5932
  {
5933
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
5934
    CPU (h_zbit) = opval;
5935
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
5936
  }
5937
  {
5938
    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)));
5939
    CPU (h_vbit) = opval;
5940
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
5941
  }
5942
{
5943
  {
5944
    BI opval = 0;
5945
    CPU (h_xbit) = opval;
5946
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
5947
  }
5948
  {
5949
    BI opval = 0;
5950
    SET_H_INSN_PREFIXED_P (opval);
5951
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
5952
  }
5953
}
5954
}
5955
}
5956
 
5957
#undef FLD
5958
}
5959
  NEXT (vpc);
5960
 
5961
  CASE (sem, INSN_ADDCWR) : /* add.w ${sconst16}],${Rd} */
5962
{
5963
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
5964
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5965
#define FLD(f) abuf->fields.sfmt_addcwr.f
5966
  int UNUSED written = 0;
5967
  IADDR UNUSED pc = abuf->addr;
5968
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5969
 
5970
{
5971
  HI tmp_tmpopd;
5972
  HI tmp_tmpops;
5973
  BI tmp_carry;
5974
  HI tmp_newval;
5975
  tmp_tmpops = FLD (f_indir_pc__word);
5976
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
5977
  tmp_carry = CPU (h_cbit);
5978
  tmp_newval = ADDCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
5979
{
5980
  SI tmp_oldregval;
5981
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
5982
  {
5983
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
5984
    SET_H_GR (FLD (f_operand2), opval);
5985
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5986
  }
5987
}
5988
{
5989
  {
5990
    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))));
5991
    CPU (h_cbit) = opval;
5992
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
5993
  }
5994
  {
5995
    BI opval = LTHI (tmp_newval, 0);
5996
    CPU (h_nbit) = opval;
5997
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
5998
  }
5999
  {
6000
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6001
    CPU (h_zbit) = opval;
6002
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6003
  }
6004
  {
6005
    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)));
6006
    CPU (h_vbit) = opval;
6007
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6008
  }
6009
{
6010
  {
6011
    BI opval = 0;
6012
    CPU (h_xbit) = opval;
6013
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6014
  }
6015
  {
6016
    BI opval = 0;
6017
    SET_H_INSN_PREFIXED_P (opval);
6018
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6019
  }
6020
}
6021
}
6022
}
6023
 
6024
#undef FLD
6025
}
6026
  NEXT (vpc);
6027
 
6028
  CASE (sem, INSN_ADDCDR) : /* add.d ${const32}],${Rd} */
6029
{
6030
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6031
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6032
#define FLD(f) abuf->fields.sfmt_addcdr.f
6033
  int UNUSED written = 0;
6034
  IADDR UNUSED pc = abuf->addr;
6035
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
6036
 
6037
{
6038
  SI tmp_tmpopd;
6039
  SI tmp_tmpops;
6040
  BI tmp_carry;
6041
  SI tmp_newval;
6042
  tmp_tmpops = FLD (f_indir_pc__dword);
6043
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6044
  tmp_carry = CPU (h_cbit);
6045
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6046
  {
6047
    SI opval = tmp_newval;
6048
    SET_H_GR (FLD (f_operand2), opval);
6049
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6050
  }
6051
{
6052
  {
6053
    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))));
6054
    CPU (h_cbit) = opval;
6055
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6056
  }
6057
  {
6058
    BI opval = LTSI (tmp_newval, 0);
6059
    CPU (h_nbit) = opval;
6060
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6061
  }
6062
  {
6063
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6064
    CPU (h_zbit) = opval;
6065
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6066
  }
6067
  {
6068
    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)));
6069
    CPU (h_vbit) = opval;
6070
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6071
  }
6072
{
6073
  {
6074
    BI opval = 0;
6075
    CPU (h_xbit) = opval;
6076
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6077
  }
6078
  {
6079
    BI opval = 0;
6080
    SET_H_INSN_PREFIXED_P (opval);
6081
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6082
  }
6083
}
6084
}
6085
}
6086
 
6087
#undef FLD
6088
}
6089
  NEXT (vpc);
6090
 
6091
  CASE (sem, INSN_ADDS_B_R) : /* adds.b $Rs,$Rd */
6092
{
6093
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6094
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6095
#define FLD(f) abuf->fields.sfmt_addc_m.f
6096
  int UNUSED written = 0;
6097
  IADDR UNUSED pc = abuf->addr;
6098
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6099
 
6100
{
6101
  SI tmp_tmpopd;
6102
  SI tmp_tmpops;
6103
  BI tmp_carry;
6104
  SI tmp_newval;
6105
  tmp_tmpops = EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
6106
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6107
  tmp_carry = CPU (h_cbit);
6108
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6109
  {
6110
    SI opval = tmp_newval;
6111
    SET_H_GR (FLD (f_operand2), opval);
6112
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6113
  }
6114
{
6115
  {
6116
    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))));
6117
    CPU (h_cbit) = opval;
6118
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6119
  }
6120
  {
6121
    BI opval = LTSI (tmp_newval, 0);
6122
    CPU (h_nbit) = opval;
6123
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6124
  }
6125
  {
6126
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6127
    CPU (h_zbit) = opval;
6128
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6129
  }
6130
  {
6131
    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)));
6132
    CPU (h_vbit) = opval;
6133
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6134
  }
6135
{
6136
  {
6137
    BI opval = 0;
6138
    CPU (h_xbit) = opval;
6139
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6140
  }
6141
  {
6142
    BI opval = 0;
6143
    SET_H_INSN_PREFIXED_P (opval);
6144
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6145
  }
6146
}
6147
}
6148
}
6149
 
6150
#undef FLD
6151
}
6152
  NEXT (vpc);
6153
 
6154
  CASE (sem, INSN_ADDS_W_R) : /* adds.w $Rs,$Rd */
6155
{
6156
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6157
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6158
#define FLD(f) abuf->fields.sfmt_addc_m.f
6159
  int UNUSED written = 0;
6160
  IADDR UNUSED pc = abuf->addr;
6161
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6162
 
6163
{
6164
  SI tmp_tmpopd;
6165
  SI tmp_tmpops;
6166
  BI tmp_carry;
6167
  SI tmp_newval;
6168
  tmp_tmpops = EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
6169
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6170
  tmp_carry = CPU (h_cbit);
6171
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6172
  {
6173
    SI opval = tmp_newval;
6174
    SET_H_GR (FLD (f_operand2), opval);
6175
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6176
  }
6177
{
6178
  {
6179
    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))));
6180
    CPU (h_cbit) = opval;
6181
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6182
  }
6183
  {
6184
    BI opval = LTSI (tmp_newval, 0);
6185
    CPU (h_nbit) = opval;
6186
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6187
  }
6188
  {
6189
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6190
    CPU (h_zbit) = opval;
6191
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6192
  }
6193
  {
6194
    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)));
6195
    CPU (h_vbit) = opval;
6196
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6197
  }
6198
{
6199
  {
6200
    BI opval = 0;
6201
    CPU (h_xbit) = opval;
6202
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6203
  }
6204
  {
6205
    BI opval = 0;
6206
    SET_H_INSN_PREFIXED_P (opval);
6207
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6208
  }
6209
}
6210
}
6211
}
6212
 
6213
#undef FLD
6214
}
6215
  NEXT (vpc);
6216
 
6217
  CASE (sem, INSN_ADDS_M_B_M) : /* adds-m.b [${Rs}${inc}],$Rd */
6218
{
6219
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6220
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6221
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6222
  int UNUSED written = 0;
6223
  IADDR UNUSED pc = abuf->addr;
6224
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6225
 
6226
{
6227
  SI tmp_tmpopd;
6228
  SI tmp_tmpops;
6229
  BI tmp_carry;
6230
  SI tmp_newval;
6231
  tmp_tmpops = EXTQISI (({   SI tmp_addr;
6232
  QI tmp_tmp_mem;
6233
  BI tmp_postinc;
6234
  tmp_postinc = FLD (f_memmode);
6235
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
6236
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
6237
; if (NEBI (tmp_postinc, 0)) {
6238
{
6239
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6240
  tmp_addr = ADDSI (tmp_addr, 1);
6241
}
6242
  {
6243
    SI opval = tmp_addr;
6244
    SET_H_GR (FLD (f_operand1), opval);
6245
    written |= (1 << 11);
6246
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6247
  }
6248
}
6249
}
6250
; tmp_tmp_mem; }));
6251
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6252
  tmp_carry = CPU (h_cbit);
6253
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6254
  {
6255
    SI opval = tmp_newval;
6256
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6257
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6258
  }
6259
{
6260
  {
6261
    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))));
6262
    CPU (h_cbit) = opval;
6263
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6264
  }
6265
  {
6266
    BI opval = LTSI (tmp_newval, 0);
6267
    CPU (h_nbit) = opval;
6268
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6269
  }
6270
  {
6271
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6272
    CPU (h_zbit) = opval;
6273
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6274
  }
6275
  {
6276
    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)));
6277
    CPU (h_vbit) = opval;
6278
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6279
  }
6280
{
6281
  {
6282
    BI opval = 0;
6283
    CPU (h_xbit) = opval;
6284
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6285
  }
6286
  {
6287
    BI opval = 0;
6288
    SET_H_INSN_PREFIXED_P (opval);
6289
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6290
  }
6291
}
6292
}
6293
}
6294
 
6295
  abuf->written = written;
6296
#undef FLD
6297
}
6298
  NEXT (vpc);
6299
 
6300
  CASE (sem, INSN_ADDS_M_W_M) : /* adds-m.w [${Rs}${inc}],$Rd */
6301
{
6302
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6303
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6304
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6305
  int UNUSED written = 0;
6306
  IADDR UNUSED pc = abuf->addr;
6307
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6308
 
6309
{
6310
  SI tmp_tmpopd;
6311
  SI tmp_tmpops;
6312
  BI tmp_carry;
6313
  SI tmp_newval;
6314
  tmp_tmpops = EXTHISI (({   SI tmp_addr;
6315
  HI tmp_tmp_mem;
6316
  BI tmp_postinc;
6317
  tmp_postinc = FLD (f_memmode);
6318
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
6319
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
6320
; if (NEBI (tmp_postinc, 0)) {
6321
{
6322
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6323
  tmp_addr = ADDSI (tmp_addr, 2);
6324
}
6325
  {
6326
    SI opval = tmp_addr;
6327
    SET_H_GR (FLD (f_operand1), opval);
6328
    written |= (1 << 11);
6329
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6330
  }
6331
}
6332
}
6333
; tmp_tmp_mem; }));
6334
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6335
  tmp_carry = CPU (h_cbit);
6336
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6337
  {
6338
    SI opval = tmp_newval;
6339
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6340
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6341
  }
6342
{
6343
  {
6344
    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))));
6345
    CPU (h_cbit) = opval;
6346
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6347
  }
6348
  {
6349
    BI opval = LTSI (tmp_newval, 0);
6350
    CPU (h_nbit) = opval;
6351
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6352
  }
6353
  {
6354
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6355
    CPU (h_zbit) = opval;
6356
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6357
  }
6358
  {
6359
    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)));
6360
    CPU (h_vbit) = opval;
6361
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6362
  }
6363
{
6364
  {
6365
    BI opval = 0;
6366
    CPU (h_xbit) = opval;
6367
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6368
  }
6369
  {
6370
    BI opval = 0;
6371
    SET_H_INSN_PREFIXED_P (opval);
6372
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6373
  }
6374
}
6375
}
6376
}
6377
 
6378
  abuf->written = written;
6379
#undef FLD
6380
}
6381
  NEXT (vpc);
6382
 
6383
  CASE (sem, INSN_ADDSCBR) : /* [${Rs}${inc}],$Rd */
6384
{
6385
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6386
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6387
#define FLD(f) abuf->fields.sfmt_addcbr.f
6388
  int UNUSED written = 0;
6389
  IADDR UNUSED pc = abuf->addr;
6390
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6391
 
6392
{
6393
  SI tmp_tmpopd;
6394
  SI tmp_tmpops;
6395
  BI tmp_carry;
6396
  SI tmp_newval;
6397
  tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
6398
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6399
  tmp_carry = CPU (h_cbit);
6400
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6401
  {
6402
    SI opval = tmp_newval;
6403
    SET_H_GR (FLD (f_operand2), opval);
6404
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6405
  }
6406
{
6407
  {
6408
    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))));
6409
    CPU (h_cbit) = opval;
6410
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6411
  }
6412
  {
6413
    BI opval = LTSI (tmp_newval, 0);
6414
    CPU (h_nbit) = opval;
6415
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6416
  }
6417
  {
6418
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6419
    CPU (h_zbit) = opval;
6420
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6421
  }
6422
  {
6423
    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)));
6424
    CPU (h_vbit) = opval;
6425
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6426
  }
6427
{
6428
  {
6429
    BI opval = 0;
6430
    CPU (h_xbit) = opval;
6431
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6432
  }
6433
  {
6434
    BI opval = 0;
6435
    SET_H_INSN_PREFIXED_P (opval);
6436
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6437
  }
6438
}
6439
}
6440
}
6441
 
6442
#undef FLD
6443
}
6444
  NEXT (vpc);
6445
 
6446
  CASE (sem, INSN_ADDSCWR) : /* [${Rs}${inc}],$Rd */
6447
{
6448
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6449
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6450
#define FLD(f) abuf->fields.sfmt_addcwr.f
6451
  int UNUSED written = 0;
6452
  IADDR UNUSED pc = abuf->addr;
6453
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6454
 
6455
{
6456
  SI tmp_tmpopd;
6457
  SI tmp_tmpops;
6458
  BI tmp_carry;
6459
  SI tmp_newval;
6460
  tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
6461
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6462
  tmp_carry = CPU (h_cbit);
6463
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6464
  {
6465
    SI opval = tmp_newval;
6466
    SET_H_GR (FLD (f_operand2), opval);
6467
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6468
  }
6469
{
6470
  {
6471
    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))));
6472
    CPU (h_cbit) = opval;
6473
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6474
  }
6475
  {
6476
    BI opval = LTSI (tmp_newval, 0);
6477
    CPU (h_nbit) = opval;
6478
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6479
  }
6480
  {
6481
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6482
    CPU (h_zbit) = opval;
6483
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6484
  }
6485
  {
6486
    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)));
6487
    CPU (h_vbit) = opval;
6488
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6489
  }
6490
{
6491
  {
6492
    BI opval = 0;
6493
    CPU (h_xbit) = opval;
6494
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6495
  }
6496
  {
6497
    BI opval = 0;
6498
    SET_H_INSN_PREFIXED_P (opval);
6499
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6500
  }
6501
}
6502
}
6503
}
6504
 
6505
#undef FLD
6506
}
6507
  NEXT (vpc);
6508
 
6509
  CASE (sem, INSN_ADDU_B_R) : /* addu.b $Rs,$Rd */
6510
{
6511
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6512
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6513
#define FLD(f) abuf->fields.sfmt_addc_m.f
6514
  int UNUSED written = 0;
6515
  IADDR UNUSED pc = abuf->addr;
6516
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6517
 
6518
{
6519
  SI tmp_tmpopd;
6520
  SI tmp_tmpops;
6521
  BI tmp_carry;
6522
  SI tmp_newval;
6523
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
6524
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6525
  tmp_carry = CPU (h_cbit);
6526
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6527
  {
6528
    SI opval = tmp_newval;
6529
    SET_H_GR (FLD (f_operand2), opval);
6530
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6531
  }
6532
{
6533
  {
6534
    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))));
6535
    CPU (h_cbit) = opval;
6536
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6537
  }
6538
  {
6539
    BI opval = LTSI (tmp_newval, 0);
6540
    CPU (h_nbit) = opval;
6541
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6542
  }
6543
  {
6544
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6545
    CPU (h_zbit) = opval;
6546
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6547
  }
6548
  {
6549
    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)));
6550
    CPU (h_vbit) = opval;
6551
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6552
  }
6553
{
6554
  {
6555
    BI opval = 0;
6556
    CPU (h_xbit) = opval;
6557
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6558
  }
6559
  {
6560
    BI opval = 0;
6561
    SET_H_INSN_PREFIXED_P (opval);
6562
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6563
  }
6564
}
6565
}
6566
}
6567
 
6568
#undef FLD
6569
}
6570
  NEXT (vpc);
6571
 
6572
  CASE (sem, INSN_ADDU_W_R) : /* addu.w $Rs,$Rd */
6573
{
6574
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6575
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6576
#define FLD(f) abuf->fields.sfmt_addc_m.f
6577
  int UNUSED written = 0;
6578
  IADDR UNUSED pc = abuf->addr;
6579
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6580
 
6581
{
6582
  SI tmp_tmpopd;
6583
  SI tmp_tmpops;
6584
  BI tmp_carry;
6585
  SI tmp_newval;
6586
  tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
6587
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6588
  tmp_carry = CPU (h_cbit);
6589
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6590
  {
6591
    SI opval = tmp_newval;
6592
    SET_H_GR (FLD (f_operand2), opval);
6593
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6594
  }
6595
{
6596
  {
6597
    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))));
6598
    CPU (h_cbit) = opval;
6599
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6600
  }
6601
  {
6602
    BI opval = LTSI (tmp_newval, 0);
6603
    CPU (h_nbit) = opval;
6604
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6605
  }
6606
  {
6607
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6608
    CPU (h_zbit) = opval;
6609
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6610
  }
6611
  {
6612
    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)));
6613
    CPU (h_vbit) = opval;
6614
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6615
  }
6616
{
6617
  {
6618
    BI opval = 0;
6619
    CPU (h_xbit) = opval;
6620
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6621
  }
6622
  {
6623
    BI opval = 0;
6624
    SET_H_INSN_PREFIXED_P (opval);
6625
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6626
  }
6627
}
6628
}
6629
}
6630
 
6631
#undef FLD
6632
}
6633
  NEXT (vpc);
6634
 
6635
  CASE (sem, INSN_ADDU_M_B_M) : /* addu-m.b [${Rs}${inc}],$Rd */
6636
{
6637
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6638
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6639
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6640
  int UNUSED written = 0;
6641
  IADDR UNUSED pc = abuf->addr;
6642
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6643
 
6644
{
6645
  SI tmp_tmpopd;
6646
  SI tmp_tmpops;
6647
  BI tmp_carry;
6648
  SI tmp_newval;
6649
  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
6650
  QI tmp_tmp_mem;
6651
  BI tmp_postinc;
6652
  tmp_postinc = FLD (f_memmode);
6653
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
6654
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
6655
; if (NEBI (tmp_postinc, 0)) {
6656
{
6657
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6658
  tmp_addr = ADDSI (tmp_addr, 1);
6659
}
6660
  {
6661
    SI opval = tmp_addr;
6662
    SET_H_GR (FLD (f_operand1), opval);
6663
    written |= (1 << 11);
6664
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6665
  }
6666
}
6667
}
6668
; tmp_tmp_mem; }));
6669
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6670
  tmp_carry = CPU (h_cbit);
6671
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6672
  {
6673
    SI opval = tmp_newval;
6674
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6675
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6676
  }
6677
{
6678
  {
6679
    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))));
6680
    CPU (h_cbit) = opval;
6681
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6682
  }
6683
  {
6684
    BI opval = LTSI (tmp_newval, 0);
6685
    CPU (h_nbit) = opval;
6686
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6687
  }
6688
  {
6689
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6690
    CPU (h_zbit) = opval;
6691
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6692
  }
6693
  {
6694
    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)));
6695
    CPU (h_vbit) = opval;
6696
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6697
  }
6698
{
6699
  {
6700
    BI opval = 0;
6701
    CPU (h_xbit) = opval;
6702
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6703
  }
6704
  {
6705
    BI opval = 0;
6706
    SET_H_INSN_PREFIXED_P (opval);
6707
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6708
  }
6709
}
6710
}
6711
}
6712
 
6713
  abuf->written = written;
6714
#undef FLD
6715
}
6716
  NEXT (vpc);
6717
 
6718
  CASE (sem, INSN_ADDU_M_W_M) : /* addu-m.w [${Rs}${inc}],$Rd */
6719
{
6720
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6721
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6722
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
6723
  int UNUSED written = 0;
6724
  IADDR UNUSED pc = abuf->addr;
6725
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6726
 
6727
{
6728
  SI tmp_tmpopd;
6729
  SI tmp_tmpops;
6730
  BI tmp_carry;
6731
  SI tmp_newval;
6732
  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
6733
  HI tmp_tmp_mem;
6734
  BI tmp_postinc;
6735
  tmp_postinc = FLD (f_memmode);
6736
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
6737
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
6738
; if (NEBI (tmp_postinc, 0)) {
6739
{
6740
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
6741
  tmp_addr = ADDSI (tmp_addr, 2);
6742
}
6743
  {
6744
    SI opval = tmp_addr;
6745
    SET_H_GR (FLD (f_operand1), opval);
6746
    written |= (1 << 11);
6747
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6748
  }
6749
}
6750
}
6751
; tmp_tmp_mem; }));
6752
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6753
  tmp_carry = CPU (h_cbit);
6754
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6755
  {
6756
    SI opval = tmp_newval;
6757
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
6758
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6759
  }
6760
{
6761
  {
6762
    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))));
6763
    CPU (h_cbit) = opval;
6764
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6765
  }
6766
  {
6767
    BI opval = LTSI (tmp_newval, 0);
6768
    CPU (h_nbit) = opval;
6769
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6770
  }
6771
  {
6772
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6773
    CPU (h_zbit) = opval;
6774
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6775
  }
6776
  {
6777
    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)));
6778
    CPU (h_vbit) = opval;
6779
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6780
  }
6781
{
6782
  {
6783
    BI opval = 0;
6784
    CPU (h_xbit) = opval;
6785
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6786
  }
6787
  {
6788
    BI opval = 0;
6789
    SET_H_INSN_PREFIXED_P (opval);
6790
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6791
  }
6792
}
6793
}
6794
}
6795
 
6796
  abuf->written = written;
6797
#undef FLD
6798
}
6799
  NEXT (vpc);
6800
 
6801
  CASE (sem, INSN_ADDUCBR) : /* [${Rs}${inc}],$Rd */
6802
{
6803
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6804
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6805
#define FLD(f) abuf->fields.sfmt_addcbr.f
6806
  int UNUSED written = 0;
6807
  IADDR UNUSED pc = abuf->addr;
6808
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6809
 
6810
{
6811
  SI tmp_tmpopd;
6812
  SI tmp_tmpops;
6813
  BI tmp_carry;
6814
  SI tmp_newval;
6815
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
6816
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6817
  tmp_carry = CPU (h_cbit);
6818
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6819
  {
6820
    SI opval = tmp_newval;
6821
    SET_H_GR (FLD (f_operand2), opval);
6822
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6823
  }
6824
{
6825
  {
6826
    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))));
6827
    CPU (h_cbit) = opval;
6828
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6829
  }
6830
  {
6831
    BI opval = LTSI (tmp_newval, 0);
6832
    CPU (h_nbit) = opval;
6833
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6834
  }
6835
  {
6836
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6837
    CPU (h_zbit) = opval;
6838
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6839
  }
6840
  {
6841
    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)));
6842
    CPU (h_vbit) = opval;
6843
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6844
  }
6845
{
6846
  {
6847
    BI opval = 0;
6848
    CPU (h_xbit) = opval;
6849
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6850
  }
6851
  {
6852
    BI opval = 0;
6853
    SET_H_INSN_PREFIXED_P (opval);
6854
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6855
  }
6856
}
6857
}
6858
}
6859
 
6860
#undef FLD
6861
}
6862
  NEXT (vpc);
6863
 
6864
  CASE (sem, INSN_ADDUCWR) : /* [${Rs}${inc}],$Rd */
6865
{
6866
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6867
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6868
#define FLD(f) abuf->fields.sfmt_addcwr.f
6869
  int UNUSED written = 0;
6870
  IADDR UNUSED pc = abuf->addr;
6871
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6872
 
6873
{
6874
  SI tmp_tmpopd;
6875
  SI tmp_tmpops;
6876
  BI tmp_carry;
6877
  SI tmp_newval;
6878
  tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
6879
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6880
  tmp_carry = CPU (h_cbit);
6881
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6882
  {
6883
    SI opval = tmp_newval;
6884
    SET_H_GR (FLD (f_operand2), opval);
6885
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6886
  }
6887
{
6888
  {
6889
    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))));
6890
    CPU (h_cbit) = opval;
6891
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6892
  }
6893
  {
6894
    BI opval = LTSI (tmp_newval, 0);
6895
    CPU (h_nbit) = opval;
6896
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6897
  }
6898
  {
6899
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6900
    CPU (h_zbit) = opval;
6901
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6902
  }
6903
  {
6904
    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)));
6905
    CPU (h_vbit) = opval;
6906
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6907
  }
6908
{
6909
  {
6910
    BI opval = 0;
6911
    CPU (h_xbit) = opval;
6912
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6913
  }
6914
  {
6915
    BI opval = 0;
6916
    SET_H_INSN_PREFIXED_P (opval);
6917
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6918
  }
6919
}
6920
}
6921
}
6922
 
6923
#undef FLD
6924
}
6925
  NEXT (vpc);
6926
 
6927
  CASE (sem, INSN_SUB_B_R) : /* sub.b $Rs,$Rd */
6928
{
6929
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6930
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6931
#define FLD(f) abuf->fields.sfmt_addc_m.f
6932
  int UNUSED written = 0;
6933
  IADDR UNUSED pc = abuf->addr;
6934
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
6935
 
6936
{
6937
  QI tmp_tmpopd;
6938
  QI tmp_tmpops;
6939
  BI tmp_carry;
6940
  QI tmp_newval;
6941
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
6942
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
6943
  tmp_carry = CPU (h_cbit);
6944
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
6945
{
6946
  SI tmp_oldregval;
6947
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
6948
  {
6949
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
6950
    SET_H_GR (FLD (f_operand2), opval);
6951
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6952
  }
6953
}
6954
{
6955
  {
6956
    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))));
6957
    CPU (h_cbit) = opval;
6958
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
6959
  }
6960
  {
6961
    BI opval = LTQI (tmp_newval, 0);
6962
    CPU (h_nbit) = opval;
6963
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
6964
  }
6965
  {
6966
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
6967
    CPU (h_zbit) = opval;
6968
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
6969
  }
6970
  {
6971
    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)));
6972
    CPU (h_vbit) = opval;
6973
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
6974
  }
6975
{
6976
  {
6977
    BI opval = 0;
6978
    CPU (h_xbit) = opval;
6979
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
6980
  }
6981
  {
6982
    BI opval = 0;
6983
    SET_H_INSN_PREFIXED_P (opval);
6984
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
6985
  }
6986
}
6987
}
6988
}
6989
 
6990
#undef FLD
6991
}
6992
  NEXT (vpc);
6993
 
6994
  CASE (sem, INSN_SUB_W_R) : /* sub.w $Rs,$Rd */
6995
{
6996
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
6997
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6998
#define FLD(f) abuf->fields.sfmt_addc_m.f
6999
  int UNUSED written = 0;
7000
  IADDR UNUSED pc = abuf->addr;
7001
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7002
 
7003
{
7004
  HI tmp_tmpopd;
7005
  HI tmp_tmpops;
7006
  BI tmp_carry;
7007
  HI tmp_newval;
7008
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
7009
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7010
  tmp_carry = CPU (h_cbit);
7011
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7012
{
7013
  SI tmp_oldregval;
7014
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
7015
  {
7016
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7017
    SET_H_GR (FLD (f_operand2), opval);
7018
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7019
  }
7020
}
7021
{
7022
  {
7023
    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))));
7024
    CPU (h_cbit) = opval;
7025
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7026
  }
7027
  {
7028
    BI opval = LTHI (tmp_newval, 0);
7029
    CPU (h_nbit) = opval;
7030
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7031
  }
7032
  {
7033
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7034
    CPU (h_zbit) = opval;
7035
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7036
  }
7037
  {
7038
    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)));
7039
    CPU (h_vbit) = opval;
7040
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7041
  }
7042
{
7043
  {
7044
    BI opval = 0;
7045
    CPU (h_xbit) = opval;
7046
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7047
  }
7048
  {
7049
    BI opval = 0;
7050
    SET_H_INSN_PREFIXED_P (opval);
7051
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7052
  }
7053
}
7054
}
7055
}
7056
 
7057
#undef FLD
7058
}
7059
  NEXT (vpc);
7060
 
7061
  CASE (sem, INSN_SUB_D_R) : /* sub.d $Rs,$Rd */
7062
{
7063
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7064
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7065
#define FLD(f) abuf->fields.sfmt_addc_m.f
7066
  int UNUSED written = 0;
7067
  IADDR UNUSED pc = abuf->addr;
7068
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7069
 
7070
{
7071
  SI tmp_tmpopd;
7072
  SI tmp_tmpops;
7073
  BI tmp_carry;
7074
  SI tmp_newval;
7075
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
7076
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7077
  tmp_carry = CPU (h_cbit);
7078
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7079
  {
7080
    SI opval = tmp_newval;
7081
    SET_H_GR (FLD (f_operand2), opval);
7082
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7083
  }
7084
{
7085
  {
7086
    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))));
7087
    CPU (h_cbit) = opval;
7088
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7089
  }
7090
  {
7091
    BI opval = LTSI (tmp_newval, 0);
7092
    CPU (h_nbit) = opval;
7093
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7094
  }
7095
  {
7096
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7097
    CPU (h_zbit) = opval;
7098
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7099
  }
7100
  {
7101
    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)));
7102
    CPU (h_vbit) = opval;
7103
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7104
  }
7105
{
7106
  {
7107
    BI opval = 0;
7108
    CPU (h_xbit) = opval;
7109
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7110
  }
7111
  {
7112
    BI opval = 0;
7113
    SET_H_INSN_PREFIXED_P (opval);
7114
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7115
  }
7116
}
7117
}
7118
}
7119
 
7120
#undef FLD
7121
}
7122
  NEXT (vpc);
7123
 
7124
  CASE (sem, INSN_SUB_M_B_M) : /* sub-m.b [${Rs}${inc}],${Rd} */
7125
{
7126
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7127
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7128
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7129
  int UNUSED written = 0;
7130
  IADDR UNUSED pc = abuf->addr;
7131
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7132
 
7133
{
7134
  QI tmp_tmpopd;
7135
  QI tmp_tmpops;
7136
  BI tmp_carry;
7137
  QI tmp_newval;
7138
  tmp_tmpops = ({   SI tmp_addr;
7139
  QI tmp_tmp_mem;
7140
  BI tmp_postinc;
7141
  tmp_postinc = FLD (f_memmode);
7142
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
7143
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
7144
; if (NEBI (tmp_postinc, 0)) {
7145
{
7146
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7147
  tmp_addr = ADDSI (tmp_addr, 1);
7148
}
7149
  {
7150
    SI opval = tmp_addr;
7151
    SET_H_GR (FLD (f_operand1), opval);
7152
    written |= (1 << 12);
7153
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7154
  }
7155
}
7156
}
7157
; tmp_tmp_mem; });
7158
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7159
  tmp_carry = CPU (h_cbit);
7160
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7161
{
7162
  SI tmp_oldregval;
7163
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
7164
  {
7165
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
7166
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7167
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7168
  }
7169
}
7170
{
7171
  {
7172
    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))));
7173
    CPU (h_cbit) = opval;
7174
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7175
  }
7176
  {
7177
    BI opval = LTQI (tmp_newval, 0);
7178
    CPU (h_nbit) = opval;
7179
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7180
  }
7181
  {
7182
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7183
    CPU (h_zbit) = opval;
7184
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7185
  }
7186
  {
7187
    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)));
7188
    CPU (h_vbit) = opval;
7189
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7190
  }
7191
{
7192
  {
7193
    BI opval = 0;
7194
    CPU (h_xbit) = opval;
7195
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7196
  }
7197
  {
7198
    BI opval = 0;
7199
    SET_H_INSN_PREFIXED_P (opval);
7200
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7201
  }
7202
}
7203
}
7204
}
7205
 
7206
  abuf->written = written;
7207
#undef FLD
7208
}
7209
  NEXT (vpc);
7210
 
7211
  CASE (sem, INSN_SUB_M_W_M) : /* sub-m.w [${Rs}${inc}],${Rd} */
7212
{
7213
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7214
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7215
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7216
  int UNUSED written = 0;
7217
  IADDR UNUSED pc = abuf->addr;
7218
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7219
 
7220
{
7221
  HI tmp_tmpopd;
7222
  HI tmp_tmpops;
7223
  BI tmp_carry;
7224
  HI tmp_newval;
7225
  tmp_tmpops = ({   SI tmp_addr;
7226
  HI tmp_tmp_mem;
7227
  BI tmp_postinc;
7228
  tmp_postinc = FLD (f_memmode);
7229
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
7230
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
7231
; if (NEBI (tmp_postinc, 0)) {
7232
{
7233
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7234
  tmp_addr = ADDSI (tmp_addr, 2);
7235
}
7236
  {
7237
    SI opval = tmp_addr;
7238
    SET_H_GR (FLD (f_operand1), opval);
7239
    written |= (1 << 12);
7240
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7241
  }
7242
}
7243
}
7244
; tmp_tmp_mem; });
7245
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7246
  tmp_carry = CPU (h_cbit);
7247
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7248
{
7249
  SI tmp_oldregval;
7250
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
7251
  {
7252
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7253
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7254
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7255
  }
7256
}
7257
{
7258
  {
7259
    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))));
7260
    CPU (h_cbit) = opval;
7261
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7262
  }
7263
  {
7264
    BI opval = LTHI (tmp_newval, 0);
7265
    CPU (h_nbit) = opval;
7266
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7267
  }
7268
  {
7269
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7270
    CPU (h_zbit) = opval;
7271
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7272
  }
7273
  {
7274
    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)));
7275
    CPU (h_vbit) = opval;
7276
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7277
  }
7278
{
7279
  {
7280
    BI opval = 0;
7281
    CPU (h_xbit) = opval;
7282
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7283
  }
7284
  {
7285
    BI opval = 0;
7286
    SET_H_INSN_PREFIXED_P (opval);
7287
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7288
  }
7289
}
7290
}
7291
}
7292
 
7293
  abuf->written = written;
7294
#undef FLD
7295
}
7296
  NEXT (vpc);
7297
 
7298
  CASE (sem, INSN_SUB_M_D_M) : /* sub-m.d [${Rs}${inc}],${Rd} */
7299
{
7300
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7301
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7302
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7303
  int UNUSED written = 0;
7304
  IADDR UNUSED pc = abuf->addr;
7305
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7306
 
7307
{
7308
  SI tmp_tmpopd;
7309
  SI tmp_tmpops;
7310
  BI tmp_carry;
7311
  SI tmp_newval;
7312
  tmp_tmpops = ({   SI tmp_addr;
7313
  SI tmp_tmp_mem;
7314
  BI tmp_postinc;
7315
  tmp_postinc = FLD (f_memmode);
7316
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
7317
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
7318
; if (NEBI (tmp_postinc, 0)) {
7319
{
7320
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7321
  tmp_addr = ADDSI (tmp_addr, 4);
7322
}
7323
  {
7324
    SI opval = tmp_addr;
7325
    SET_H_GR (FLD (f_operand1), opval);
7326
    written |= (1 << 11);
7327
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7328
  }
7329
}
7330
}
7331
; tmp_tmp_mem; });
7332
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7333
  tmp_carry = CPU (h_cbit);
7334
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7335
  {
7336
    SI opval = tmp_newval;
7337
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7338
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7339
  }
7340
{
7341
  {
7342
    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))));
7343
    CPU (h_cbit) = opval;
7344
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7345
  }
7346
  {
7347
    BI opval = LTSI (tmp_newval, 0);
7348
    CPU (h_nbit) = opval;
7349
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7350
  }
7351
  {
7352
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7353
    CPU (h_zbit) = opval;
7354
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7355
  }
7356
  {
7357
    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)));
7358
    CPU (h_vbit) = opval;
7359
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7360
  }
7361
{
7362
  {
7363
    BI opval = 0;
7364
    CPU (h_xbit) = opval;
7365
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7366
  }
7367
  {
7368
    BI opval = 0;
7369
    SET_H_INSN_PREFIXED_P (opval);
7370
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7371
  }
7372
}
7373
}
7374
}
7375
 
7376
  abuf->written = written;
7377
#undef FLD
7378
}
7379
  NEXT (vpc);
7380
 
7381
  CASE (sem, INSN_SUBCBR) : /* sub.b ${sconst8}],${Rd} */
7382
{
7383
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7384
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7385
#define FLD(f) abuf->fields.sfmt_addcbr.f
7386
  int UNUSED written = 0;
7387
  IADDR UNUSED pc = abuf->addr;
7388
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7389
 
7390
{
7391
  QI tmp_tmpopd;
7392
  QI tmp_tmpops;
7393
  BI tmp_carry;
7394
  QI tmp_newval;
7395
  tmp_tmpops = FLD (f_indir_pc__byte);
7396
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7397
  tmp_carry = CPU (h_cbit);
7398
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7399
{
7400
  SI tmp_oldregval;
7401
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
7402
  {
7403
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
7404
    SET_H_GR (FLD (f_operand2), opval);
7405
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7406
  }
7407
}
7408
{
7409
  {
7410
    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))));
7411
    CPU (h_cbit) = opval;
7412
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7413
  }
7414
  {
7415
    BI opval = LTQI (tmp_newval, 0);
7416
    CPU (h_nbit) = opval;
7417
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7418
  }
7419
  {
7420
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7421
    CPU (h_zbit) = opval;
7422
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7423
  }
7424
  {
7425
    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)));
7426
    CPU (h_vbit) = opval;
7427
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7428
  }
7429
{
7430
  {
7431
    BI opval = 0;
7432
    CPU (h_xbit) = opval;
7433
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7434
  }
7435
  {
7436
    BI opval = 0;
7437
    SET_H_INSN_PREFIXED_P (opval);
7438
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7439
  }
7440
}
7441
}
7442
}
7443
 
7444
#undef FLD
7445
}
7446
  NEXT (vpc);
7447
 
7448
  CASE (sem, INSN_SUBCWR) : /* sub.w ${sconst16}],${Rd} */
7449
{
7450
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7451
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7452
#define FLD(f) abuf->fields.sfmt_addcwr.f
7453
  int UNUSED written = 0;
7454
  IADDR UNUSED pc = abuf->addr;
7455
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7456
 
7457
{
7458
  HI tmp_tmpopd;
7459
  HI tmp_tmpops;
7460
  BI tmp_carry;
7461
  HI tmp_newval;
7462
  tmp_tmpops = FLD (f_indir_pc__word);
7463
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7464
  tmp_carry = CPU (h_cbit);
7465
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7466
{
7467
  SI tmp_oldregval;
7468
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
7469
  {
7470
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
7471
    SET_H_GR (FLD (f_operand2), opval);
7472
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7473
  }
7474
}
7475
{
7476
  {
7477
    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))));
7478
    CPU (h_cbit) = opval;
7479
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7480
  }
7481
  {
7482
    BI opval = LTHI (tmp_newval, 0);
7483
    CPU (h_nbit) = opval;
7484
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7485
  }
7486
  {
7487
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7488
    CPU (h_zbit) = opval;
7489
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7490
  }
7491
  {
7492
    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)));
7493
    CPU (h_vbit) = opval;
7494
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7495
  }
7496
{
7497
  {
7498
    BI opval = 0;
7499
    CPU (h_xbit) = opval;
7500
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7501
  }
7502
  {
7503
    BI opval = 0;
7504
    SET_H_INSN_PREFIXED_P (opval);
7505
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7506
  }
7507
}
7508
}
7509
}
7510
 
7511
#undef FLD
7512
}
7513
  NEXT (vpc);
7514
 
7515
  CASE (sem, INSN_SUBCDR) : /* sub.d ${const32}],${Rd} */
7516
{
7517
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7518
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7519
#define FLD(f) abuf->fields.sfmt_addcdr.f
7520
  int UNUSED written = 0;
7521
  IADDR UNUSED pc = abuf->addr;
7522
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
7523
 
7524
{
7525
  SI tmp_tmpopd;
7526
  SI tmp_tmpops;
7527
  BI tmp_carry;
7528
  SI tmp_newval;
7529
  tmp_tmpops = FLD (f_indir_pc__dword);
7530
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7531
  tmp_carry = CPU (h_cbit);
7532
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7533
  {
7534
    SI opval = tmp_newval;
7535
    SET_H_GR (FLD (f_operand2), opval);
7536
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7537
  }
7538
{
7539
  {
7540
    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))));
7541
    CPU (h_cbit) = opval;
7542
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7543
  }
7544
  {
7545
    BI opval = LTSI (tmp_newval, 0);
7546
    CPU (h_nbit) = opval;
7547
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7548
  }
7549
  {
7550
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7551
    CPU (h_zbit) = opval;
7552
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7553
  }
7554
  {
7555
    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)));
7556
    CPU (h_vbit) = opval;
7557
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7558
  }
7559
{
7560
  {
7561
    BI opval = 0;
7562
    CPU (h_xbit) = opval;
7563
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7564
  }
7565
  {
7566
    BI opval = 0;
7567
    SET_H_INSN_PREFIXED_P (opval);
7568
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7569
  }
7570
}
7571
}
7572
}
7573
 
7574
#undef FLD
7575
}
7576
  NEXT (vpc);
7577
 
7578
  CASE (sem, INSN_SUBS_B_R) : /* subs.b $Rs,$Rd */
7579
{
7580
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7581
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7582
#define FLD(f) abuf->fields.sfmt_addc_m.f
7583
  int UNUSED written = 0;
7584
  IADDR UNUSED pc = abuf->addr;
7585
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7586
 
7587
{
7588
  SI tmp_tmpopd;
7589
  SI tmp_tmpops;
7590
  BI tmp_carry;
7591
  SI tmp_newval;
7592
  tmp_tmpops = EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
7593
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7594
  tmp_carry = CPU (h_cbit);
7595
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7596
  {
7597
    SI opval = tmp_newval;
7598
    SET_H_GR (FLD (f_operand2), opval);
7599
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7600
  }
7601
{
7602
  {
7603
    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))));
7604
    CPU (h_cbit) = opval;
7605
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7606
  }
7607
  {
7608
    BI opval = LTSI (tmp_newval, 0);
7609
    CPU (h_nbit) = opval;
7610
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7611
  }
7612
  {
7613
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7614
    CPU (h_zbit) = opval;
7615
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7616
  }
7617
  {
7618
    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)));
7619
    CPU (h_vbit) = opval;
7620
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7621
  }
7622
{
7623
  {
7624
    BI opval = 0;
7625
    CPU (h_xbit) = opval;
7626
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7627
  }
7628
  {
7629
    BI opval = 0;
7630
    SET_H_INSN_PREFIXED_P (opval);
7631
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7632
  }
7633
}
7634
}
7635
}
7636
 
7637
#undef FLD
7638
}
7639
  NEXT (vpc);
7640
 
7641
  CASE (sem, INSN_SUBS_W_R) : /* subs.w $Rs,$Rd */
7642
{
7643
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7644
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7645
#define FLD(f) abuf->fields.sfmt_addc_m.f
7646
  int UNUSED written = 0;
7647
  IADDR UNUSED pc = abuf->addr;
7648
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7649
 
7650
{
7651
  SI tmp_tmpopd;
7652
  SI tmp_tmpops;
7653
  BI tmp_carry;
7654
  SI tmp_newval;
7655
  tmp_tmpops = EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
7656
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7657
  tmp_carry = CPU (h_cbit);
7658
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7659
  {
7660
    SI opval = tmp_newval;
7661
    SET_H_GR (FLD (f_operand2), opval);
7662
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7663
  }
7664
{
7665
  {
7666
    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))));
7667
    CPU (h_cbit) = opval;
7668
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7669
  }
7670
  {
7671
    BI opval = LTSI (tmp_newval, 0);
7672
    CPU (h_nbit) = opval;
7673
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7674
  }
7675
  {
7676
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7677
    CPU (h_zbit) = opval;
7678
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7679
  }
7680
  {
7681
    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)));
7682
    CPU (h_vbit) = opval;
7683
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7684
  }
7685
{
7686
  {
7687
    BI opval = 0;
7688
    CPU (h_xbit) = opval;
7689
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7690
  }
7691
  {
7692
    BI opval = 0;
7693
    SET_H_INSN_PREFIXED_P (opval);
7694
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7695
  }
7696
}
7697
}
7698
}
7699
 
7700
#undef FLD
7701
}
7702
  NEXT (vpc);
7703
 
7704
  CASE (sem, INSN_SUBS_M_B_M) : /* subs-m.b [${Rs}${inc}],$Rd */
7705
{
7706
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7707
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7708
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7709
  int UNUSED written = 0;
7710
  IADDR UNUSED pc = abuf->addr;
7711
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7712
 
7713
{
7714
  SI tmp_tmpopd;
7715
  SI tmp_tmpops;
7716
  BI tmp_carry;
7717
  SI tmp_newval;
7718
  tmp_tmpops = EXTQISI (({   SI tmp_addr;
7719
  QI tmp_tmp_mem;
7720
  BI tmp_postinc;
7721
  tmp_postinc = FLD (f_memmode);
7722
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
7723
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
7724
; if (NEBI (tmp_postinc, 0)) {
7725
{
7726
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7727
  tmp_addr = ADDSI (tmp_addr, 1);
7728
}
7729
  {
7730
    SI opval = tmp_addr;
7731
    SET_H_GR (FLD (f_operand1), opval);
7732
    written |= (1 << 11);
7733
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7734
  }
7735
}
7736
}
7737
; tmp_tmp_mem; }));
7738
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7739
  tmp_carry = CPU (h_cbit);
7740
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7741
  {
7742
    SI opval = tmp_newval;
7743
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7744
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7745
  }
7746
{
7747
  {
7748
    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))));
7749
    CPU (h_cbit) = opval;
7750
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7751
  }
7752
  {
7753
    BI opval = LTSI (tmp_newval, 0);
7754
    CPU (h_nbit) = opval;
7755
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7756
  }
7757
  {
7758
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7759
    CPU (h_zbit) = opval;
7760
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7761
  }
7762
  {
7763
    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)));
7764
    CPU (h_vbit) = opval;
7765
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7766
  }
7767
{
7768
  {
7769
    BI opval = 0;
7770
    CPU (h_xbit) = opval;
7771
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7772
  }
7773
  {
7774
    BI opval = 0;
7775
    SET_H_INSN_PREFIXED_P (opval);
7776
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7777
  }
7778
}
7779
}
7780
}
7781
 
7782
  abuf->written = written;
7783
#undef FLD
7784
}
7785
  NEXT (vpc);
7786
 
7787
  CASE (sem, INSN_SUBS_M_W_M) : /* subs-m.w [${Rs}${inc}],$Rd */
7788
{
7789
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7790
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7791
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
7792
  int UNUSED written = 0;
7793
  IADDR UNUSED pc = abuf->addr;
7794
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
7795
 
7796
{
7797
  SI tmp_tmpopd;
7798
  SI tmp_tmpops;
7799
  BI tmp_carry;
7800
  SI tmp_newval;
7801
  tmp_tmpops = EXTHISI (({   SI tmp_addr;
7802
  HI tmp_tmp_mem;
7803
  BI tmp_postinc;
7804
  tmp_postinc = FLD (f_memmode);
7805
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
7806
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
7807
; if (NEBI (tmp_postinc, 0)) {
7808
{
7809
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
7810
  tmp_addr = ADDSI (tmp_addr, 2);
7811
}
7812
  {
7813
    SI opval = tmp_addr;
7814
    SET_H_GR (FLD (f_operand1), opval);
7815
    written |= (1 << 11);
7816
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7817
  }
7818
}
7819
}
7820
; tmp_tmp_mem; }));
7821
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7822
  tmp_carry = CPU (h_cbit);
7823
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7824
  {
7825
    SI opval = tmp_newval;
7826
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
7827
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7828
  }
7829
{
7830
  {
7831
    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))));
7832
    CPU (h_cbit) = opval;
7833
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7834
  }
7835
  {
7836
    BI opval = LTSI (tmp_newval, 0);
7837
    CPU (h_nbit) = opval;
7838
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7839
  }
7840
  {
7841
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7842
    CPU (h_zbit) = opval;
7843
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7844
  }
7845
  {
7846
    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)));
7847
    CPU (h_vbit) = opval;
7848
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7849
  }
7850
{
7851
  {
7852
    BI opval = 0;
7853
    CPU (h_xbit) = opval;
7854
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7855
  }
7856
  {
7857
    BI opval = 0;
7858
    SET_H_INSN_PREFIXED_P (opval);
7859
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7860
  }
7861
}
7862
}
7863
}
7864
 
7865
  abuf->written = written;
7866
#undef FLD
7867
}
7868
  NEXT (vpc);
7869
 
7870
  CASE (sem, INSN_SUBSCBR) : /* [${Rs}${inc}],$Rd */
7871
{
7872
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7873
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7874
#define FLD(f) abuf->fields.sfmt_addcbr.f
7875
  int UNUSED written = 0;
7876
  IADDR UNUSED pc = abuf->addr;
7877
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7878
 
7879
{
7880
  SI tmp_tmpopd;
7881
  SI tmp_tmpops;
7882
  BI tmp_carry;
7883
  SI tmp_newval;
7884
  tmp_tmpops = EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
7885
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7886
  tmp_carry = CPU (h_cbit);
7887
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7888
  {
7889
    SI opval = tmp_newval;
7890
    SET_H_GR (FLD (f_operand2), opval);
7891
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7892
  }
7893
{
7894
  {
7895
    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))));
7896
    CPU (h_cbit) = opval;
7897
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7898
  }
7899
  {
7900
    BI opval = LTSI (tmp_newval, 0);
7901
    CPU (h_nbit) = opval;
7902
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7903
  }
7904
  {
7905
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7906
    CPU (h_zbit) = opval;
7907
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7908
  }
7909
  {
7910
    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)));
7911
    CPU (h_vbit) = opval;
7912
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7913
  }
7914
{
7915
  {
7916
    BI opval = 0;
7917
    CPU (h_xbit) = opval;
7918
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7919
  }
7920
  {
7921
    BI opval = 0;
7922
    SET_H_INSN_PREFIXED_P (opval);
7923
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7924
  }
7925
}
7926
}
7927
}
7928
 
7929
#undef FLD
7930
}
7931
  NEXT (vpc);
7932
 
7933
  CASE (sem, INSN_SUBSCWR) : /* [${Rs}${inc}],$Rd */
7934
{
7935
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7936
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7937
#define FLD(f) abuf->fields.sfmt_addcwr.f
7938
  int UNUSED written = 0;
7939
  IADDR UNUSED pc = abuf->addr;
7940
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7941
 
7942
{
7943
  SI tmp_tmpopd;
7944
  SI tmp_tmpops;
7945
  BI tmp_carry;
7946
  SI tmp_newval;
7947
  tmp_tmpops = EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
7948
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
7949
  tmp_carry = CPU (h_cbit);
7950
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
7951
  {
7952
    SI opval = tmp_newval;
7953
    SET_H_GR (FLD (f_operand2), opval);
7954
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7955
  }
7956
{
7957
  {
7958
    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))));
7959
    CPU (h_cbit) = opval;
7960
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
7961
  }
7962
  {
7963
    BI opval = LTSI (tmp_newval, 0);
7964
    CPU (h_nbit) = opval;
7965
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
7966
  }
7967
  {
7968
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
7969
    CPU (h_zbit) = opval;
7970
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
7971
  }
7972
  {
7973
    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)));
7974
    CPU (h_vbit) = opval;
7975
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
7976
  }
7977
{
7978
  {
7979
    BI opval = 0;
7980
    CPU (h_xbit) = opval;
7981
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
7982
  }
7983
  {
7984
    BI opval = 0;
7985
    SET_H_INSN_PREFIXED_P (opval);
7986
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
7987
  }
7988
}
7989
}
7990
}
7991
 
7992
#undef FLD
7993
}
7994
  NEXT (vpc);
7995
 
7996
  CASE (sem, INSN_SUBU_B_R) : /* subu.b $Rs,$Rd */
7997
{
7998
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
7999
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8000
#define FLD(f) abuf->fields.sfmt_addc_m.f
8001
  int UNUSED written = 0;
8002
  IADDR UNUSED pc = abuf->addr;
8003
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8004
 
8005
{
8006
  SI tmp_tmpopd;
8007
  SI tmp_tmpops;
8008
  BI tmp_carry;
8009
  SI tmp_newval;
8010
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
8011
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8012
  tmp_carry = CPU (h_cbit);
8013
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8014
  {
8015
    SI opval = tmp_newval;
8016
    SET_H_GR (FLD (f_operand2), opval);
8017
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8018
  }
8019
{
8020
  {
8021
    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))));
8022
    CPU (h_cbit) = opval;
8023
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8024
  }
8025
  {
8026
    BI opval = LTSI (tmp_newval, 0);
8027
    CPU (h_nbit) = opval;
8028
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8029
  }
8030
  {
8031
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8032
    CPU (h_zbit) = opval;
8033
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8034
  }
8035
  {
8036
    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)));
8037
    CPU (h_vbit) = opval;
8038
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8039
  }
8040
{
8041
  {
8042
    BI opval = 0;
8043
    CPU (h_xbit) = opval;
8044
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8045
  }
8046
  {
8047
    BI opval = 0;
8048
    SET_H_INSN_PREFIXED_P (opval);
8049
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8050
  }
8051
}
8052
}
8053
}
8054
 
8055
#undef FLD
8056
}
8057
  NEXT (vpc);
8058
 
8059
  CASE (sem, INSN_SUBU_W_R) : /* subu.w $Rs,$Rd */
8060
{
8061
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8062
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8063
#define FLD(f) abuf->fields.sfmt_addc_m.f
8064
  int UNUSED written = 0;
8065
  IADDR UNUSED pc = abuf->addr;
8066
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8067
 
8068
{
8069
  SI tmp_tmpopd;
8070
  SI tmp_tmpops;
8071
  BI tmp_carry;
8072
  SI tmp_newval;
8073
  tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
8074
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8075
  tmp_carry = CPU (h_cbit);
8076
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8077
  {
8078
    SI opval = tmp_newval;
8079
    SET_H_GR (FLD (f_operand2), opval);
8080
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8081
  }
8082
{
8083
  {
8084
    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))));
8085
    CPU (h_cbit) = opval;
8086
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8087
  }
8088
  {
8089
    BI opval = LTSI (tmp_newval, 0);
8090
    CPU (h_nbit) = opval;
8091
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8092
  }
8093
  {
8094
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8095
    CPU (h_zbit) = opval;
8096
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8097
  }
8098
  {
8099
    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)));
8100
    CPU (h_vbit) = opval;
8101
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8102
  }
8103
{
8104
  {
8105
    BI opval = 0;
8106
    CPU (h_xbit) = opval;
8107
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8108
  }
8109
  {
8110
    BI opval = 0;
8111
    SET_H_INSN_PREFIXED_P (opval);
8112
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8113
  }
8114
}
8115
}
8116
}
8117
 
8118
#undef FLD
8119
}
8120
  NEXT (vpc);
8121
 
8122
  CASE (sem, INSN_SUBU_M_B_M) : /* subu-m.b [${Rs}${inc}],$Rd */
8123
{
8124
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8125
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8126
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
8127
  int UNUSED written = 0;
8128
  IADDR UNUSED pc = abuf->addr;
8129
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8130
 
8131
{
8132
  SI tmp_tmpopd;
8133
  SI tmp_tmpops;
8134
  BI tmp_carry;
8135
  SI tmp_newval;
8136
  tmp_tmpops = ZEXTQISI (({   SI tmp_addr;
8137
  QI tmp_tmp_mem;
8138
  BI tmp_postinc;
8139
  tmp_postinc = FLD (f_memmode);
8140
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
8141
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
8142
; if (NEBI (tmp_postinc, 0)) {
8143
{
8144
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8145
  tmp_addr = ADDSI (tmp_addr, 1);
8146
}
8147
  {
8148
    SI opval = tmp_addr;
8149
    SET_H_GR (FLD (f_operand1), opval);
8150
    written |= (1 << 11);
8151
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8152
  }
8153
}
8154
}
8155
; tmp_tmp_mem; }));
8156
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8157
  tmp_carry = CPU (h_cbit);
8158
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8159
  {
8160
    SI opval = tmp_newval;
8161
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
8162
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8163
  }
8164
{
8165
  {
8166
    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))));
8167
    CPU (h_cbit) = opval;
8168
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8169
  }
8170
  {
8171
    BI opval = LTSI (tmp_newval, 0);
8172
    CPU (h_nbit) = opval;
8173
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8174
  }
8175
  {
8176
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8177
    CPU (h_zbit) = opval;
8178
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8179
  }
8180
  {
8181
    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)));
8182
    CPU (h_vbit) = opval;
8183
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8184
  }
8185
{
8186
  {
8187
    BI opval = 0;
8188
    CPU (h_xbit) = opval;
8189
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8190
  }
8191
  {
8192
    BI opval = 0;
8193
    SET_H_INSN_PREFIXED_P (opval);
8194
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8195
  }
8196
}
8197
}
8198
}
8199
 
8200
  abuf->written = written;
8201
#undef FLD
8202
}
8203
  NEXT (vpc);
8204
 
8205
  CASE (sem, INSN_SUBU_M_W_M) : /* subu-m.w [${Rs}${inc}],$Rd */
8206
{
8207
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8208
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8209
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
8210
  int UNUSED written = 0;
8211
  IADDR UNUSED pc = abuf->addr;
8212
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8213
 
8214
{
8215
  SI tmp_tmpopd;
8216
  SI tmp_tmpops;
8217
  BI tmp_carry;
8218
  SI tmp_newval;
8219
  tmp_tmpops = ZEXTHISI (({   SI tmp_addr;
8220
  HI tmp_tmp_mem;
8221
  BI tmp_postinc;
8222
  tmp_postinc = FLD (f_memmode);
8223
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
8224
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
8225
; if (NEBI (tmp_postinc, 0)) {
8226
{
8227
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8228
  tmp_addr = ADDSI (tmp_addr, 2);
8229
}
8230
  {
8231
    SI opval = tmp_addr;
8232
    SET_H_GR (FLD (f_operand1), opval);
8233
    written |= (1 << 11);
8234
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8235
  }
8236
}
8237
}
8238
; tmp_tmp_mem; }));
8239
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8240
  tmp_carry = CPU (h_cbit);
8241
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8242
  {
8243
    SI opval = tmp_newval;
8244
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
8245
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8246
  }
8247
{
8248
  {
8249
    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))));
8250
    CPU (h_cbit) = opval;
8251
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8252
  }
8253
  {
8254
    BI opval = LTSI (tmp_newval, 0);
8255
    CPU (h_nbit) = opval;
8256
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8257
  }
8258
  {
8259
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8260
    CPU (h_zbit) = opval;
8261
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8262
  }
8263
  {
8264
    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)));
8265
    CPU (h_vbit) = opval;
8266
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8267
  }
8268
{
8269
  {
8270
    BI opval = 0;
8271
    CPU (h_xbit) = opval;
8272
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8273
  }
8274
  {
8275
    BI opval = 0;
8276
    SET_H_INSN_PREFIXED_P (opval);
8277
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8278
  }
8279
}
8280
}
8281
}
8282
 
8283
  abuf->written = written;
8284
#undef FLD
8285
}
8286
  NEXT (vpc);
8287
 
8288
  CASE (sem, INSN_SUBUCBR) : /* [${Rs}${inc}],$Rd */
8289
{
8290
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8291
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8292
#define FLD(f) abuf->fields.sfmt_addcbr.f
8293
  int UNUSED written = 0;
8294
  IADDR UNUSED pc = abuf->addr;
8295
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8296
 
8297
{
8298
  SI tmp_tmpopd;
8299
  SI tmp_tmpops;
8300
  BI tmp_carry;
8301
  SI tmp_newval;
8302
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
8303
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8304
  tmp_carry = CPU (h_cbit);
8305
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8306
  {
8307
    SI opval = tmp_newval;
8308
    SET_H_GR (FLD (f_operand2), opval);
8309
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8310
  }
8311
{
8312
  {
8313
    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))));
8314
    CPU (h_cbit) = opval;
8315
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8316
  }
8317
  {
8318
    BI opval = LTSI (tmp_newval, 0);
8319
    CPU (h_nbit) = opval;
8320
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8321
  }
8322
  {
8323
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8324
    CPU (h_zbit) = opval;
8325
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8326
  }
8327
  {
8328
    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)));
8329
    CPU (h_vbit) = opval;
8330
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8331
  }
8332
{
8333
  {
8334
    BI opval = 0;
8335
    CPU (h_xbit) = opval;
8336
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8337
  }
8338
  {
8339
    BI opval = 0;
8340
    SET_H_INSN_PREFIXED_P (opval);
8341
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8342
  }
8343
}
8344
}
8345
}
8346
 
8347
#undef FLD
8348
}
8349
  NEXT (vpc);
8350
 
8351
  CASE (sem, INSN_SUBUCWR) : /* [${Rs}${inc}],$Rd */
8352
{
8353
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8354
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8355
#define FLD(f) abuf->fields.sfmt_addcwr.f
8356
  int UNUSED written = 0;
8357
  IADDR UNUSED pc = abuf->addr;
8358
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8359
 
8360
{
8361
  SI tmp_tmpopd;
8362
  SI tmp_tmpops;
8363
  BI tmp_carry;
8364
  SI tmp_newval;
8365
  tmp_tmpops = ZEXTHISI (TRUNCSIHI (FLD (f_indir_pc__word)));
8366
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8367
  tmp_carry = CPU (h_cbit);
8368
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8369
  {
8370
    SI opval = tmp_newval;
8371
    SET_H_GR (FLD (f_operand2), opval);
8372
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8373
  }
8374
{
8375
  {
8376
    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))));
8377
    CPU (h_cbit) = opval;
8378
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8379
  }
8380
  {
8381
    BI opval = LTSI (tmp_newval, 0);
8382
    CPU (h_nbit) = opval;
8383
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8384
  }
8385
  {
8386
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8387
    CPU (h_zbit) = opval;
8388
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8389
  }
8390
  {
8391
    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)));
8392
    CPU (h_vbit) = opval;
8393
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8394
  }
8395
{
8396
  {
8397
    BI opval = 0;
8398
    CPU (h_xbit) = opval;
8399
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8400
  }
8401
  {
8402
    BI opval = 0;
8403
    SET_H_INSN_PREFIXED_P (opval);
8404
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8405
  }
8406
}
8407
}
8408
}
8409
 
8410
#undef FLD
8411
}
8412
  NEXT (vpc);
8413
 
8414
  CASE (sem, INSN_ADDC_R) : /* addc $Rs,$Rd */
8415
{
8416
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8417
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8418
#define FLD(f) abuf->fields.sfmt_addc_m.f
8419
  int UNUSED written = 0;
8420
  IADDR UNUSED pc = abuf->addr;
8421
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8422
 
8423
{
8424
CPU (h_xbit) = 1;
8425
{
8426
  SI tmp_tmpopd;
8427
  SI tmp_tmpops;
8428
  BI tmp_carry;
8429
  SI tmp_newval;
8430
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8431
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8432
  tmp_carry = CPU (h_cbit);
8433
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8434
  {
8435
    SI opval = tmp_newval;
8436
    SET_H_GR (FLD (f_operand2), opval);
8437
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8438
  }
8439
{
8440
  {
8441
    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))));
8442
    CPU (h_cbit) = opval;
8443
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8444
  }
8445
  {
8446
    BI opval = LTSI (tmp_newval, 0);
8447
    CPU (h_nbit) = opval;
8448
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8449
  }
8450
  {
8451
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8452
    CPU (h_zbit) = opval;
8453
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8454
  }
8455
  {
8456
    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)));
8457
    CPU (h_vbit) = opval;
8458
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8459
  }
8460
{
8461
  {
8462
    BI opval = 0;
8463
    CPU (h_xbit) = opval;
8464
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8465
  }
8466
  {
8467
    BI opval = 0;
8468
    SET_H_INSN_PREFIXED_P (opval);
8469
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8470
  }
8471
}
8472
}
8473
}
8474
}
8475
 
8476
#undef FLD
8477
}
8478
  NEXT (vpc);
8479
 
8480
  CASE (sem, INSN_ADDC_M) : /* addc [${Rs}${inc}],${Rd} */
8481
{
8482
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8483
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8484
#define FLD(f) abuf->fields.sfmt_addc_m.f
8485
  int UNUSED written = 0;
8486
  IADDR UNUSED pc = abuf->addr;
8487
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8488
 
8489
{
8490
CPU (h_xbit) = 1;
8491
{
8492
  SI tmp_tmpopd;
8493
  SI tmp_tmpops;
8494
  BI tmp_carry;
8495
  SI tmp_newval;
8496
  tmp_tmpops = ({   SI tmp_addr;
8497
  SI tmp_tmp_mem;
8498
  BI tmp_postinc;
8499
  tmp_postinc = FLD (f_memmode);
8500
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
8501
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
8502
; if (NEBI (tmp_postinc, 0)) {
8503
{
8504
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
8505
  tmp_addr = ADDSI (tmp_addr, 4);
8506
}
8507
  {
8508
    SI opval = tmp_addr;
8509
    SET_H_GR (FLD (f_operand1), opval);
8510
    written |= (1 << 10);
8511
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8512
  }
8513
}
8514
}
8515
; tmp_tmp_mem; });
8516
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8517
  tmp_carry = CPU (h_cbit);
8518
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8519
  {
8520
    SI opval = tmp_newval;
8521
    SET_H_GR (FLD (f_operand2), opval);
8522
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8523
  }
8524
{
8525
  {
8526
    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))));
8527
    CPU (h_cbit) = opval;
8528
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8529
  }
8530
  {
8531
    BI opval = LTSI (tmp_newval, 0);
8532
    CPU (h_nbit) = opval;
8533
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8534
  }
8535
  {
8536
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8537
    CPU (h_zbit) = opval;
8538
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8539
  }
8540
  {
8541
    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)));
8542
    CPU (h_vbit) = opval;
8543
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8544
  }
8545
{
8546
  {
8547
    BI opval = 0;
8548
    CPU (h_xbit) = opval;
8549
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8550
  }
8551
  {
8552
    BI opval = 0;
8553
    SET_H_INSN_PREFIXED_P (opval);
8554
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8555
  }
8556
}
8557
}
8558
}
8559
}
8560
 
8561
  abuf->written = written;
8562
#undef FLD
8563
}
8564
  NEXT (vpc);
8565
 
8566
  CASE (sem, INSN_ADDC_C) : /* addc ${const32},${Rd} */
8567
{
8568
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8569
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8570
#define FLD(f) abuf->fields.sfmt_addcdr.f
8571
  int UNUSED written = 0;
8572
  IADDR UNUSED pc = abuf->addr;
8573
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
8574
 
8575
{
8576
CPU (h_xbit) = 1;
8577
{
8578
  SI tmp_tmpopd;
8579
  SI tmp_tmpops;
8580
  BI tmp_carry;
8581
  SI tmp_newval;
8582
  tmp_tmpops = FLD (f_indir_pc__dword);
8583
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
8584
  tmp_carry = CPU (h_cbit);
8585
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8586
  {
8587
    SI opval = tmp_newval;
8588
    SET_H_GR (FLD (f_operand2), opval);
8589
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8590
  }
8591
{
8592
  {
8593
    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))));
8594
    CPU (h_cbit) = opval;
8595
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8596
  }
8597
  {
8598
    BI opval = LTSI (tmp_newval, 0);
8599
    CPU (h_nbit) = opval;
8600
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8601
  }
8602
  {
8603
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8604
    CPU (h_zbit) = opval;
8605
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8606
  }
8607
  {
8608
    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)));
8609
    CPU (h_vbit) = opval;
8610
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8611
  }
8612
{
8613
  {
8614
    BI opval = 0;
8615
    CPU (h_xbit) = opval;
8616
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8617
  }
8618
  {
8619
    BI opval = 0;
8620
    SET_H_INSN_PREFIXED_P (opval);
8621
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8622
  }
8623
}
8624
}
8625
}
8626
}
8627
 
8628
#undef FLD
8629
}
8630
  NEXT (vpc);
8631
 
8632
  CASE (sem, INSN_LAPC_D) : /* lapc.d ${const32-pcrel},${Rd} */
8633
{
8634
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8635
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8636
#define FLD(f) abuf->fields.sfmt_lapc_d.f
8637
  int UNUSED written = 0;
8638
  IADDR UNUSED pc = abuf->addr;
8639
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
8640
 
8641
{
8642
  {
8643
    SI opval = FLD (i_const32_pcrel);
8644
    SET_H_GR (FLD (f_operand2), opval);
8645
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8646
  }
8647
{
8648
  {
8649
    BI opval = 0;
8650
    CPU (h_xbit) = opval;
8651
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8652
  }
8653
  {
8654
    BI opval = 0;
8655
    SET_H_INSN_PREFIXED_P (opval);
8656
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8657
  }
8658
}
8659
}
8660
 
8661
#undef FLD
8662
}
8663
  NEXT (vpc);
8664
 
8665
  CASE (sem, INSN_LAPCQ) : /* lapcq ${qo},${Rd} */
8666
{
8667
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8668
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8669
#define FLD(f) abuf->fields.sfmt_lapcq.f
8670
  int UNUSED written = 0;
8671
  IADDR UNUSED pc = abuf->addr;
8672
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8673
 
8674
{
8675
  {
8676
    SI opval = FLD (i_qo);
8677
    SET_H_GR (FLD (f_operand2), opval);
8678
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8679
  }
8680
{
8681
  {
8682
    BI opval = 0;
8683
    CPU (h_xbit) = opval;
8684
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8685
  }
8686
  {
8687
    BI opval = 0;
8688
    SET_H_INSN_PREFIXED_P (opval);
8689
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8690
  }
8691
}
8692
}
8693
 
8694
#undef FLD
8695
}
8696
  NEXT (vpc);
8697
 
8698
  CASE (sem, INSN_ADDI_B_R) : /* addi.b ${Rs-dfield}.m,${Rd-sfield} */
8699
{
8700
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8701
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8702
#define FLD(f) abuf->fields.sfmt_addc_m.f
8703
  int UNUSED written = 0;
8704
  IADDR UNUSED pc = abuf->addr;
8705
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8706
 
8707
{
8708
  {
8709
    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 1));
8710
    SET_H_GR (FLD (f_operand1), opval);
8711
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8712
  }
8713
{
8714
  {
8715
    BI opval = 0;
8716
    CPU (h_xbit) = opval;
8717
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8718
  }
8719
  {
8720
    BI opval = 0;
8721
    SET_H_INSN_PREFIXED_P (opval);
8722
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8723
  }
8724
}
8725
}
8726
 
8727
#undef FLD
8728
}
8729
  NEXT (vpc);
8730
 
8731
  CASE (sem, INSN_ADDI_W_R) : /* addi.w ${Rs-dfield}.m,${Rd-sfield} */
8732
{
8733
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8734
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8735
#define FLD(f) abuf->fields.sfmt_addc_m.f
8736
  int UNUSED written = 0;
8737
  IADDR UNUSED pc = abuf->addr;
8738
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8739
 
8740
{
8741
  {
8742
    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 2));
8743
    SET_H_GR (FLD (f_operand1), opval);
8744
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8745
  }
8746
{
8747
  {
8748
    BI opval = 0;
8749
    CPU (h_xbit) = opval;
8750
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8751
  }
8752
  {
8753
    BI opval = 0;
8754
    SET_H_INSN_PREFIXED_P (opval);
8755
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8756
  }
8757
}
8758
}
8759
 
8760
#undef FLD
8761
}
8762
  NEXT (vpc);
8763
 
8764
  CASE (sem, INSN_ADDI_D_R) : /* addi.d ${Rs-dfield}.m,${Rd-sfield} */
8765
{
8766
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8767
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8768
#define FLD(f) abuf->fields.sfmt_addc_m.f
8769
  int UNUSED written = 0;
8770
  IADDR UNUSED pc = abuf->addr;
8771
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8772
 
8773
{
8774
  {
8775
    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 4));
8776
    SET_H_GR (FLD (f_operand1), opval);
8777
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8778
  }
8779
{
8780
  {
8781
    BI opval = 0;
8782
    CPU (h_xbit) = opval;
8783
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8784
  }
8785
  {
8786
    BI opval = 0;
8787
    SET_H_INSN_PREFIXED_P (opval);
8788
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8789
  }
8790
}
8791
}
8792
 
8793
#undef FLD
8794
}
8795
  NEXT (vpc);
8796
 
8797
  CASE (sem, INSN_NEG_B_R) : /* neg.b $Rs,$Rd */
8798
{
8799
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8800
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8801
#define FLD(f) abuf->fields.sfmt_addc_m.f
8802
  int UNUSED written = 0;
8803
  IADDR UNUSED pc = abuf->addr;
8804
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8805
 
8806
{
8807
  QI tmp_tmpopd;
8808
  QI tmp_tmpops;
8809
  BI tmp_carry;
8810
  QI tmp_newval;
8811
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8812
  tmp_tmpopd = 0;
8813
  tmp_carry = CPU (h_cbit);
8814
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8815
{
8816
  SI tmp_oldregval;
8817
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
8818
  {
8819
    SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
8820
    SET_H_GR (FLD (f_operand2), opval);
8821
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8822
  }
8823
}
8824
{
8825
  {
8826
    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))));
8827
    CPU (h_cbit) = opval;
8828
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8829
  }
8830
  {
8831
    BI opval = LTQI (tmp_newval, 0);
8832
    CPU (h_nbit) = opval;
8833
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8834
  }
8835
  {
8836
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8837
    CPU (h_zbit) = opval;
8838
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8839
  }
8840
  {
8841
    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)));
8842
    CPU (h_vbit) = opval;
8843
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8844
  }
8845
{
8846
  {
8847
    BI opval = 0;
8848
    CPU (h_xbit) = opval;
8849
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8850
  }
8851
  {
8852
    BI opval = 0;
8853
    SET_H_INSN_PREFIXED_P (opval);
8854
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8855
  }
8856
}
8857
}
8858
}
8859
 
8860
#undef FLD
8861
}
8862
  NEXT (vpc);
8863
 
8864
  CASE (sem, INSN_NEG_W_R) : /* neg.w $Rs,$Rd */
8865
{
8866
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8867
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8868
#define FLD(f) abuf->fields.sfmt_addc_m.f
8869
  int UNUSED written = 0;
8870
  IADDR UNUSED pc = abuf->addr;
8871
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8872
 
8873
{
8874
  HI tmp_tmpopd;
8875
  HI tmp_tmpops;
8876
  BI tmp_carry;
8877
  HI tmp_newval;
8878
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8879
  tmp_tmpopd = 0;
8880
  tmp_carry = CPU (h_cbit);
8881
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8882
{
8883
  SI tmp_oldregval;
8884
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
8885
  {
8886
    SI opval = ORSI (ANDSI (tmp_newval, 65535), ANDSI (tmp_oldregval, 0xffff0000));
8887
    SET_H_GR (FLD (f_operand2), opval);
8888
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8889
  }
8890
}
8891
{
8892
  {
8893
    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))));
8894
    CPU (h_cbit) = opval;
8895
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8896
  }
8897
  {
8898
    BI opval = LTHI (tmp_newval, 0);
8899
    CPU (h_nbit) = opval;
8900
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8901
  }
8902
  {
8903
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8904
    CPU (h_zbit) = opval;
8905
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8906
  }
8907
  {
8908
    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)));
8909
    CPU (h_vbit) = opval;
8910
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8911
  }
8912
{
8913
  {
8914
    BI opval = 0;
8915
    CPU (h_xbit) = opval;
8916
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8917
  }
8918
  {
8919
    BI opval = 0;
8920
    SET_H_INSN_PREFIXED_P (opval);
8921
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8922
  }
8923
}
8924
}
8925
}
8926
 
8927
#undef FLD
8928
}
8929
  NEXT (vpc);
8930
 
8931
  CASE (sem, INSN_NEG_D_R) : /* neg.d $Rs,$Rd */
8932
{
8933
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8934
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8935
#define FLD(f) abuf->fields.sfmt_addc_m.f
8936
  int UNUSED written = 0;
8937
  IADDR UNUSED pc = abuf->addr;
8938
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
8939
 
8940
{
8941
  SI tmp_tmpopd;
8942
  SI tmp_tmpops;
8943
  BI tmp_carry;
8944
  SI tmp_newval;
8945
  tmp_tmpops = GET_H_GR (FLD (f_operand1));
8946
  tmp_tmpopd = 0;
8947
  tmp_carry = CPU (h_cbit);
8948
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
8949
  {
8950
    SI opval = tmp_newval;
8951
    SET_H_GR (FLD (f_operand2), opval);
8952
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8953
  }
8954
{
8955
  {
8956
    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))));
8957
    CPU (h_cbit) = opval;
8958
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
8959
  }
8960
  {
8961
    BI opval = LTSI (tmp_newval, 0);
8962
    CPU (h_nbit) = opval;
8963
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
8964
  }
8965
  {
8966
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
8967
    CPU (h_zbit) = opval;
8968
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
8969
  }
8970
  {
8971
    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)));
8972
    CPU (h_vbit) = opval;
8973
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
8974
  }
8975
{
8976
  {
8977
    BI opval = 0;
8978
    CPU (h_xbit) = opval;
8979
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
8980
  }
8981
  {
8982
    BI opval = 0;
8983
    SET_H_INSN_PREFIXED_P (opval);
8984
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
8985
  }
8986
}
8987
}
8988
}
8989
 
8990
#undef FLD
8991
}
8992
  NEXT (vpc);
8993
 
8994
  CASE (sem, INSN_TEST_M_B_M) : /* test-m.b [${Rs}${inc}] */
8995
{
8996
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
8997
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8998
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
8999
  int UNUSED written = 0;
9000
  IADDR UNUSED pc = abuf->addr;
9001
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9002
 
9003
{
9004
  QI tmp_tmpd;
9005
  tmp_tmpd = ({   SI tmp_addr;
9006
  QI tmp_tmp_mem;
9007
  BI tmp_postinc;
9008
  tmp_postinc = FLD (f_memmode);
9009
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
9010
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
9011
; if (NEBI (tmp_postinc, 0)) {
9012
{
9013
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9014
  tmp_addr = ADDSI (tmp_addr, 1);
9015
}
9016
  {
9017
    SI opval = tmp_addr;
9018
    SET_H_GR (FLD (f_operand1), opval);
9019
    written |= (1 << 8);
9020
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9021
  }
9022
}
9023
}
9024
; tmp_tmp_mem; });
9025
{
9026
  QI tmp_tmpopd;
9027
  QI tmp_tmpops;
9028
  BI tmp_carry;
9029
  QI tmp_newval;
9030
  tmp_tmpops = 0;
9031
  tmp_tmpopd = tmp_tmpd;
9032
  tmp_carry = CPU (h_cbit);
9033
  tmp_newval = SUBCQI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
9034
((void) 0); /*nop*/
9035
{
9036
  {
9037
    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))));
9038
    CPU (h_cbit) = opval;
9039
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9040
  }
9041
  {
9042
    BI opval = LTQI (tmp_newval, 0);
9043
    CPU (h_nbit) = opval;
9044
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9045
  }
9046
  {
9047
    BI opval = ANDIF (EQQI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9048
    CPU (h_zbit) = opval;
9049
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9050
  }
9051
  {
9052
    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)));
9053
    CPU (h_vbit) = opval;
9054
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9055
  }
9056
{
9057
  {
9058
    BI opval = 0;
9059
    CPU (h_xbit) = opval;
9060
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9061
  }
9062
  {
9063
    BI opval = 0;
9064
    SET_H_INSN_PREFIXED_P (opval);
9065
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9066
  }
9067
}
9068
}
9069
}
9070
}
9071
 
9072
  abuf->written = written;
9073
#undef FLD
9074
}
9075
  NEXT (vpc);
9076
 
9077
  CASE (sem, INSN_TEST_M_W_M) : /* test-m.w [${Rs}${inc}] */
9078
{
9079
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9080
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9081
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
9082
  int UNUSED written = 0;
9083
  IADDR UNUSED pc = abuf->addr;
9084
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9085
 
9086
{
9087
  HI tmp_tmpd;
9088
  tmp_tmpd = ({   SI tmp_addr;
9089
  HI tmp_tmp_mem;
9090
  BI tmp_postinc;
9091
  tmp_postinc = FLD (f_memmode);
9092
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
9093
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
9094
; if (NEBI (tmp_postinc, 0)) {
9095
{
9096
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9097
  tmp_addr = ADDSI (tmp_addr, 2);
9098
}
9099
  {
9100
    SI opval = tmp_addr;
9101
    SET_H_GR (FLD (f_operand1), opval);
9102
    written |= (1 << 8);
9103
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9104
  }
9105
}
9106
}
9107
; tmp_tmp_mem; });
9108
{
9109
  HI tmp_tmpopd;
9110
  HI tmp_tmpops;
9111
  BI tmp_carry;
9112
  HI tmp_newval;
9113
  tmp_tmpops = 0;
9114
  tmp_tmpopd = tmp_tmpd;
9115
  tmp_carry = CPU (h_cbit);
9116
  tmp_newval = SUBCHI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
9117
((void) 0); /*nop*/
9118
{
9119
  {
9120
    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))));
9121
    CPU (h_cbit) = opval;
9122
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9123
  }
9124
  {
9125
    BI opval = LTHI (tmp_newval, 0);
9126
    CPU (h_nbit) = opval;
9127
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9128
  }
9129
  {
9130
    BI opval = ANDIF (EQHI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9131
    CPU (h_zbit) = opval;
9132
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9133
  }
9134
  {
9135
    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)));
9136
    CPU (h_vbit) = opval;
9137
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9138
  }
9139
{
9140
  {
9141
    BI opval = 0;
9142
    CPU (h_xbit) = opval;
9143
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9144
  }
9145
  {
9146
    BI opval = 0;
9147
    SET_H_INSN_PREFIXED_P (opval);
9148
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9149
  }
9150
}
9151
}
9152
}
9153
}
9154
 
9155
  abuf->written = written;
9156
#undef FLD
9157
}
9158
  NEXT (vpc);
9159
 
9160
  CASE (sem, INSN_TEST_M_D_M) : /* test-m.d [${Rs}${inc}] */
9161
{
9162
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9163
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9164
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
9165
  int UNUSED written = 0;
9166
  IADDR UNUSED pc = abuf->addr;
9167
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9168
 
9169
{
9170
  SI tmp_tmpd;
9171
  tmp_tmpd = ({   SI tmp_addr;
9172
  SI tmp_tmp_mem;
9173
  BI tmp_postinc;
9174
  tmp_postinc = FLD (f_memmode);
9175
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
9176
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
9177
; if (NEBI (tmp_postinc, 0)) {
9178
{
9179
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9180
  tmp_addr = ADDSI (tmp_addr, 4);
9181
}
9182
  {
9183
    SI opval = tmp_addr;
9184
    SET_H_GR (FLD (f_operand1), opval);
9185
    written |= (1 << 8);
9186
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9187
  }
9188
}
9189
}
9190
; tmp_tmp_mem; });
9191
{
9192
  SI tmp_tmpopd;
9193
  SI tmp_tmpops;
9194
  BI tmp_carry;
9195
  SI tmp_newval;
9196
  tmp_tmpops = 0;
9197
  tmp_tmpopd = tmp_tmpd;
9198
  tmp_carry = CPU (h_cbit);
9199
  tmp_newval = SUBCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
9200
((void) 0); /*nop*/
9201
{
9202
  {
9203
    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))));
9204
    CPU (h_cbit) = opval;
9205
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9206
  }
9207
  {
9208
    BI opval = LTSI (tmp_newval, 0);
9209
    CPU (h_nbit) = opval;
9210
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9211
  }
9212
  {
9213
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9214
    CPU (h_zbit) = opval;
9215
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9216
  }
9217
  {
9218
    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)));
9219
    CPU (h_vbit) = opval;
9220
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9221
  }
9222
{
9223
  {
9224
    BI opval = 0;
9225
    CPU (h_xbit) = opval;
9226
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9227
  }
9228
  {
9229
    BI opval = 0;
9230
    SET_H_INSN_PREFIXED_P (opval);
9231
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9232
  }
9233
}
9234
}
9235
}
9236
}
9237
 
9238
  abuf->written = written;
9239
#undef FLD
9240
}
9241
  NEXT (vpc);
9242
 
9243
  CASE (sem, INSN_MOVE_R_M_B_M) : /* move-r-m.b ${Rs-dfield},[${Rd-sfield}${inc}] */
9244
{
9245
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9246
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9247
#define FLD(f) abuf->fields.sfmt_addc_m.f
9248
  int UNUSED written = 0;
9249
  IADDR UNUSED pc = abuf->addr;
9250
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9251
 
9252
{
9253
  QI tmp_tmpd;
9254
  tmp_tmpd = GET_H_GR (FLD (f_operand2));
9255
{
9256
  SI tmp_addr;
9257
  BI tmp_postinc;
9258
  tmp_postinc = FLD (f_memmode);
9259
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
9260
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
9261
if (EQBI (CPU (h_pbit), 0)) {
9262
{
9263
  {
9264
    QI opval = tmp_tmpd;
9265
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
9266
    written |= (1 << 10);
9267
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9268
  }
9269
  {
9270
    BI opval = CPU (h_pbit);
9271
    CPU (h_cbit) = opval;
9272
    written |= (1 << 9);
9273
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9274
  }
9275
}
9276
} else {
9277
  {
9278
    BI opval = 1;
9279
    CPU (h_cbit) = opval;
9280
    written |= (1 << 9);
9281
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9282
  }
9283
}
9284
} else {
9285
  {
9286
    QI opval = tmp_tmpd;
9287
    SETMEMQI (current_cpu, pc, tmp_addr, opval);
9288
    written |= (1 << 10);
9289
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9290
  }
9291
}
9292
if (NEBI (tmp_postinc, 0)) {
9293
{
9294
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9295
  tmp_addr = ADDSI (tmp_addr, 1);
9296
}
9297
  {
9298
    SI opval = tmp_addr;
9299
    SET_H_GR (FLD (f_operand1), opval);
9300
    written |= (1 << 8);
9301
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9302
  }
9303
}
9304
}
9305
}
9306
{
9307
  {
9308
    BI opval = 0;
9309
    CPU (h_xbit) = opval;
9310
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9311
  }
9312
  {
9313
    BI opval = 0;
9314
    SET_H_INSN_PREFIXED_P (opval);
9315
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9316
  }
9317
}
9318
}
9319
 
9320
  abuf->written = written;
9321
#undef FLD
9322
}
9323
  NEXT (vpc);
9324
 
9325
  CASE (sem, INSN_MOVE_R_M_W_M) : /* move-r-m.w ${Rs-dfield},[${Rd-sfield}${inc}] */
9326
{
9327
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9328
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9329
#define FLD(f) abuf->fields.sfmt_addc_m.f
9330
  int UNUSED written = 0;
9331
  IADDR UNUSED pc = abuf->addr;
9332
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9333
 
9334
{
9335
  HI tmp_tmpd;
9336
  tmp_tmpd = GET_H_GR (FLD (f_operand2));
9337
{
9338
  SI tmp_addr;
9339
  BI tmp_postinc;
9340
  tmp_postinc = FLD (f_memmode);
9341
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
9342
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
9343
if (EQBI (CPU (h_pbit), 0)) {
9344
{
9345
  {
9346
    HI opval = tmp_tmpd;
9347
    SETMEMHI (current_cpu, pc, tmp_addr, opval);
9348
    written |= (1 << 10);
9349
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9350
  }
9351
  {
9352
    BI opval = CPU (h_pbit);
9353
    CPU (h_cbit) = opval;
9354
    written |= (1 << 9);
9355
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9356
  }
9357
}
9358
} else {
9359
  {
9360
    BI opval = 1;
9361
    CPU (h_cbit) = opval;
9362
    written |= (1 << 9);
9363
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9364
  }
9365
}
9366
} else {
9367
  {
9368
    HI opval = tmp_tmpd;
9369
    SETMEMHI (current_cpu, pc, tmp_addr, opval);
9370
    written |= (1 << 10);
9371
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9372
  }
9373
}
9374
if (NEBI (tmp_postinc, 0)) {
9375
{
9376
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9377
  tmp_addr = ADDSI (tmp_addr, 2);
9378
}
9379
  {
9380
    SI opval = tmp_addr;
9381
    SET_H_GR (FLD (f_operand1), opval);
9382
    written |= (1 << 8);
9383
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9384
  }
9385
}
9386
}
9387
}
9388
{
9389
  {
9390
    BI opval = 0;
9391
    CPU (h_xbit) = opval;
9392
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9393
  }
9394
  {
9395
    BI opval = 0;
9396
    SET_H_INSN_PREFIXED_P (opval);
9397
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9398
  }
9399
}
9400
}
9401
 
9402
  abuf->written = written;
9403
#undef FLD
9404
}
9405
  NEXT (vpc);
9406
 
9407
  CASE (sem, INSN_MOVE_R_M_D_M) : /* move-r-m.d ${Rs-dfield},[${Rd-sfield}${inc}] */
9408
{
9409
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9410
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9411
#define FLD(f) abuf->fields.sfmt_addc_m.f
9412
  int UNUSED written = 0;
9413
  IADDR UNUSED pc = abuf->addr;
9414
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9415
 
9416
{
9417
  SI tmp_tmpd;
9418
  tmp_tmpd = GET_H_GR (FLD (f_operand2));
9419
{
9420
  SI tmp_addr;
9421
  BI tmp_postinc;
9422
  tmp_postinc = FLD (f_memmode);
9423
  tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
9424
if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
9425
if (EQBI (CPU (h_pbit), 0)) {
9426
{
9427
  {
9428
    SI opval = tmp_tmpd;
9429
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
9430
    written |= (1 << 10);
9431
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9432
  }
9433
  {
9434
    BI opval = CPU (h_pbit);
9435
    CPU (h_cbit) = opval;
9436
    written |= (1 << 9);
9437
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9438
  }
9439
}
9440
} else {
9441
  {
9442
    BI opval = 1;
9443
    CPU (h_cbit) = opval;
9444
    written |= (1 << 9);
9445
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9446
  }
9447
}
9448
} else {
9449
  {
9450
    SI opval = tmp_tmpd;
9451
    SETMEMSI (current_cpu, pc, tmp_addr, opval);
9452
    written |= (1 << 10);
9453
    TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
9454
  }
9455
}
9456
if (NEBI (tmp_postinc, 0)) {
9457
{
9458
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
9459
  tmp_addr = ADDSI (tmp_addr, 4);
9460
}
9461
  {
9462
    SI opval = tmp_addr;
9463
    SET_H_GR (FLD (f_operand1), opval);
9464
    written |= (1 << 8);
9465
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9466
  }
9467
}
9468
}
9469
}
9470
{
9471
  {
9472
    BI opval = 0;
9473
    CPU (h_xbit) = opval;
9474
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9475
  }
9476
  {
9477
    BI opval = 0;
9478
    SET_H_INSN_PREFIXED_P (opval);
9479
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9480
  }
9481
}
9482
}
9483
 
9484
  abuf->written = written;
9485
#undef FLD
9486
}
9487
  NEXT (vpc);
9488
 
9489
  CASE (sem, INSN_MULS_B) : /* muls.b $Rs,$Rd */
9490
{
9491
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9492
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9493
#define FLD(f) abuf->fields.sfmt_muls_b.f
9494
  int UNUSED written = 0;
9495
  IADDR UNUSED pc = abuf->addr;
9496
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9497
 
9498
{
9499
  DI tmp_src1;
9500
  DI tmp_src2;
9501
  DI tmp_tmpr;
9502
  tmp_src1 = EXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
9503
  tmp_src2 = EXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand2))));
9504
  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9505
  {
9506
    SI opval = TRUNCDISI (tmp_tmpr);
9507
    SET_H_GR (FLD (f_operand2), opval);
9508
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9509
  }
9510
  {
9511
    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9512
    SET_H_SR (((UINT) 7), opval);
9513
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9514
  }
9515
{
9516
  {
9517
    BI opval = ANDIF (GET_H_V32_V32 (), CPU (h_cbit));
9518
    CPU (h_cbit) = opval;
9519
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9520
  }
9521
  {
9522
    BI opval = LTDI (tmp_tmpr, 0);
9523
    CPU (h_nbit) = opval;
9524
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9525
  }
9526
  {
9527
    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9528
    CPU (h_zbit) = opval;
9529
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9530
  }
9531
  {
9532
    BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9533
    CPU (h_vbit) = opval;
9534
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9535
  }
9536
{
9537
  {
9538
    BI opval = 0;
9539
    CPU (h_xbit) = opval;
9540
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9541
  }
9542
  {
9543
    BI opval = 0;
9544
    SET_H_INSN_PREFIXED_P (opval);
9545
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9546
  }
9547
}
9548
}
9549
}
9550
 
9551
#undef FLD
9552
}
9553
  NEXT (vpc);
9554
 
9555
  CASE (sem, INSN_MULS_W) : /* muls.w $Rs,$Rd */
9556
{
9557
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9558
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9559
#define FLD(f) abuf->fields.sfmt_muls_b.f
9560
  int UNUSED written = 0;
9561
  IADDR UNUSED pc = abuf->addr;
9562
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9563
 
9564
{
9565
  DI tmp_src1;
9566
  DI tmp_src2;
9567
  DI tmp_tmpr;
9568
  tmp_src1 = EXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
9569
  tmp_src2 = EXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand2))));
9570
  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9571
  {
9572
    SI opval = TRUNCDISI (tmp_tmpr);
9573
    SET_H_GR (FLD (f_operand2), opval);
9574
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9575
  }
9576
  {
9577
    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9578
    SET_H_SR (((UINT) 7), opval);
9579
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9580
  }
9581
{
9582
  {
9583
    BI opval = ANDIF (GET_H_V32_V32 (), CPU (h_cbit));
9584
    CPU (h_cbit) = opval;
9585
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9586
  }
9587
  {
9588
    BI opval = LTDI (tmp_tmpr, 0);
9589
    CPU (h_nbit) = opval;
9590
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9591
  }
9592
  {
9593
    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9594
    CPU (h_zbit) = opval;
9595
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9596
  }
9597
  {
9598
    BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9599
    CPU (h_vbit) = opval;
9600
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9601
  }
9602
{
9603
  {
9604
    BI opval = 0;
9605
    CPU (h_xbit) = opval;
9606
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9607
  }
9608
  {
9609
    BI opval = 0;
9610
    SET_H_INSN_PREFIXED_P (opval);
9611
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9612
  }
9613
}
9614
}
9615
}
9616
 
9617
#undef FLD
9618
}
9619
  NEXT (vpc);
9620
 
9621
  CASE (sem, INSN_MULS_D) : /* muls.d $Rs,$Rd */
9622
{
9623
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9624
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9625
#define FLD(f) abuf->fields.sfmt_muls_b.f
9626
  int UNUSED written = 0;
9627
  IADDR UNUSED pc = abuf->addr;
9628
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9629
 
9630
{
9631
  DI tmp_src1;
9632
  DI tmp_src2;
9633
  DI tmp_tmpr;
9634
  tmp_src1 = EXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand1))));
9635
  tmp_src2 = EXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand2))));
9636
  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9637
  {
9638
    SI opval = TRUNCDISI (tmp_tmpr);
9639
    SET_H_GR (FLD (f_operand2), opval);
9640
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9641
  }
9642
  {
9643
    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9644
    SET_H_SR (((UINT) 7), opval);
9645
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9646
  }
9647
{
9648
  {
9649
    BI opval = ANDIF (GET_H_V32_V32 (), CPU (h_cbit));
9650
    CPU (h_cbit) = opval;
9651
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9652
  }
9653
  {
9654
    BI opval = LTDI (tmp_tmpr, 0);
9655
    CPU (h_nbit) = opval;
9656
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9657
  }
9658
  {
9659
    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9660
    CPU (h_zbit) = opval;
9661
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9662
  }
9663
  {
9664
    BI opval = NEDI (tmp_tmpr, EXTSIDI (TRUNCDISI (tmp_tmpr)));
9665
    CPU (h_vbit) = opval;
9666
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9667
  }
9668
{
9669
  {
9670
    BI opval = 0;
9671
    CPU (h_xbit) = opval;
9672
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9673
  }
9674
  {
9675
    BI opval = 0;
9676
    SET_H_INSN_PREFIXED_P (opval);
9677
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9678
  }
9679
}
9680
}
9681
}
9682
 
9683
#undef FLD
9684
}
9685
  NEXT (vpc);
9686
 
9687
  CASE (sem, INSN_MULU_B) : /* mulu.b $Rs,$Rd */
9688
{
9689
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9690
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9691
#define FLD(f) abuf->fields.sfmt_muls_b.f
9692
  int UNUSED written = 0;
9693
  IADDR UNUSED pc = abuf->addr;
9694
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9695
 
9696
{
9697
  DI tmp_src1;
9698
  DI tmp_src2;
9699
  DI tmp_tmpr;
9700
  tmp_src1 = ZEXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
9701
  tmp_src2 = ZEXTQIDI (TRUNCSIQI (GET_H_GR (FLD (f_operand2))));
9702
  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9703
  {
9704
    SI opval = TRUNCDISI (tmp_tmpr);
9705
    SET_H_GR (FLD (f_operand2), opval);
9706
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9707
  }
9708
  {
9709
    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9710
    SET_H_SR (((UINT) 7), opval);
9711
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9712
  }
9713
{
9714
  {
9715
    BI opval = ANDIF (GET_H_V32_V32 (), CPU (h_cbit));
9716
    CPU (h_cbit) = opval;
9717
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9718
  }
9719
  {
9720
    BI opval = LTDI (tmp_tmpr, 0);
9721
    CPU (h_nbit) = opval;
9722
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9723
  }
9724
  {
9725
    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9726
    CPU (h_zbit) = opval;
9727
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9728
  }
9729
  {
9730
    BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9731
    CPU (h_vbit) = opval;
9732
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9733
  }
9734
{
9735
  {
9736
    BI opval = 0;
9737
    CPU (h_xbit) = opval;
9738
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9739
  }
9740
  {
9741
    BI opval = 0;
9742
    SET_H_INSN_PREFIXED_P (opval);
9743
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9744
  }
9745
}
9746
}
9747
}
9748
 
9749
#undef FLD
9750
}
9751
  NEXT (vpc);
9752
 
9753
  CASE (sem, INSN_MULU_W) : /* mulu.w $Rs,$Rd */
9754
{
9755
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9756
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9757
#define FLD(f) abuf->fields.sfmt_muls_b.f
9758
  int UNUSED written = 0;
9759
  IADDR UNUSED pc = abuf->addr;
9760
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9761
 
9762
{
9763
  DI tmp_src1;
9764
  DI tmp_src2;
9765
  DI tmp_tmpr;
9766
  tmp_src1 = ZEXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
9767
  tmp_src2 = ZEXTHIDI (TRUNCSIHI (GET_H_GR (FLD (f_operand2))));
9768
  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9769
  {
9770
    SI opval = TRUNCDISI (tmp_tmpr);
9771
    SET_H_GR (FLD (f_operand2), opval);
9772
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9773
  }
9774
  {
9775
    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9776
    SET_H_SR (((UINT) 7), opval);
9777
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9778
  }
9779
{
9780
  {
9781
    BI opval = ANDIF (GET_H_V32_V32 (), CPU (h_cbit));
9782
    CPU (h_cbit) = opval;
9783
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9784
  }
9785
  {
9786
    BI opval = LTDI (tmp_tmpr, 0);
9787
    CPU (h_nbit) = opval;
9788
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9789
  }
9790
  {
9791
    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9792
    CPU (h_zbit) = opval;
9793
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9794
  }
9795
  {
9796
    BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9797
    CPU (h_vbit) = opval;
9798
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9799
  }
9800
{
9801
  {
9802
    BI opval = 0;
9803
    CPU (h_xbit) = opval;
9804
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9805
  }
9806
  {
9807
    BI opval = 0;
9808
    SET_H_INSN_PREFIXED_P (opval);
9809
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9810
  }
9811
}
9812
}
9813
}
9814
 
9815
#undef FLD
9816
}
9817
  NEXT (vpc);
9818
 
9819
  CASE (sem, INSN_MULU_D) : /* mulu.d $Rs,$Rd */
9820
{
9821
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9822
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9823
#define FLD(f) abuf->fields.sfmt_muls_b.f
9824
  int UNUSED written = 0;
9825
  IADDR UNUSED pc = abuf->addr;
9826
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9827
 
9828
{
9829
  DI tmp_src1;
9830
  DI tmp_src2;
9831
  DI tmp_tmpr;
9832
  tmp_src1 = ZEXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand1))));
9833
  tmp_src2 = ZEXTSIDI (TRUNCSISI (GET_H_GR (FLD (f_operand2))));
9834
  tmp_tmpr = MULDI (tmp_src1, tmp_src2);
9835
  {
9836
    SI opval = TRUNCDISI (tmp_tmpr);
9837
    SET_H_GR (FLD (f_operand2), opval);
9838
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9839
  }
9840
  {
9841
    SI opval = TRUNCDISI (SRLDI (tmp_tmpr, 32));
9842
    SET_H_SR (((UINT) 7), opval);
9843
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
9844
  }
9845
{
9846
  {
9847
    BI opval = ANDIF (GET_H_V32_V32 (), CPU (h_cbit));
9848
    CPU (h_cbit) = opval;
9849
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
9850
  }
9851
  {
9852
    BI opval = LTDI (tmp_tmpr, 0);
9853
    CPU (h_nbit) = opval;
9854
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9855
  }
9856
  {
9857
    BI opval = ANDIF (EQDI (tmp_tmpr, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9858
    CPU (h_zbit) = opval;
9859
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9860
  }
9861
  {
9862
    BI opval = NEDI (tmp_tmpr, ZEXTSIDI (TRUNCDISI (tmp_tmpr)));
9863
    CPU (h_vbit) = opval;
9864
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9865
  }
9866
{
9867
  {
9868
    BI opval = 0;
9869
    CPU (h_xbit) = opval;
9870
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9871
  }
9872
  {
9873
    BI opval = 0;
9874
    SET_H_INSN_PREFIXED_P (opval);
9875
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9876
  }
9877
}
9878
}
9879
}
9880
 
9881
#undef FLD
9882
}
9883
  NEXT (vpc);
9884
 
9885
  CASE (sem, INSN_MCP) : /* mcp $Ps,$Rd */
9886
{
9887
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9888
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9889
#define FLD(f) abuf->fields.sfmt_mcp.f
9890
  int UNUSED written = 0;
9891
  IADDR UNUSED pc = abuf->addr;
9892
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9893
 
9894
{
9895
CPU (h_xbit) = 1;
9896
CPU (h_zbit) = 1;
9897
{
9898
  SI tmp_tmpopd;
9899
  SI tmp_tmpops;
9900
  BI tmp_carry;
9901
  SI tmp_newval;
9902
  tmp_tmpops = GET_H_SR (FLD (f_operand2));
9903
  tmp_tmpopd = GET_H_GR (FLD (f_operand1));
9904
  tmp_carry = CPU (h_rbit);
9905
  tmp_newval = ADDCSI (tmp_tmpopd, tmp_tmpops, ((EQBI (CPU (h_xbit), 0)) ? (0) : (tmp_carry)));
9906
  {
9907
    SI opval = tmp_newval;
9908
    SET_H_GR (FLD (f_operand1), opval);
9909
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9910
  }
9911
{
9912
  {
9913
    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))));
9914
    CPU (h_rbit) = opval;
9915
    TRACE_RESULT (current_cpu, abuf, "rbit", 'x', opval);
9916
  }
9917
  {
9918
    BI opval = LTSI (tmp_newval, 0);
9919
    CPU (h_nbit) = opval;
9920
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9921
  }
9922
  {
9923
    BI opval = ANDIF (EQSI (tmp_newval, 0), ORIF (CPU (h_zbit), NOTBI (CPU (h_xbit))));
9924
    CPU (h_zbit) = opval;
9925
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9926
  }
9927
  {
9928
    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)));
9929
    CPU (h_vbit) = opval;
9930
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
9931
  }
9932
{
9933
  {
9934
    BI opval = 0;
9935
    CPU (h_xbit) = opval;
9936
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9937
  }
9938
  {
9939
    BI opval = 0;
9940
    SET_H_INSN_PREFIXED_P (opval);
9941
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9942
  }
9943
}
9944
}
9945
}
9946
}
9947
 
9948
#undef FLD
9949
}
9950
  NEXT (vpc);
9951
 
9952
  CASE (sem, INSN_DSTEP) : /* dstep $Rs,$Rd */
9953
{
9954
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
9955
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9956
#define FLD(f) abuf->fields.sfmt_muls_b.f
9957
  int UNUSED written = 0;
9958
  IADDR UNUSED pc = abuf->addr;
9959
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
9960
 
9961
{
9962
  SI tmp_tmp;
9963
  SI tmp_tmps;
9964
  SI tmp_tmpd;
9965
  tmp_tmps = GET_H_GR (FLD (f_operand1));
9966
  tmp_tmp = SLLSI (GET_H_GR (FLD (f_operand2)), 1);
9967
  tmp_tmpd = ((GEUSI (tmp_tmp, tmp_tmps)) ? (SUBSI (tmp_tmp, tmp_tmps)) : (tmp_tmp));
9968
  {
9969
    SI opval = tmp_tmpd;
9970
    SET_H_GR (FLD (f_operand2), opval);
9971
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
9972
  }
9973
{
9974
  {
9975
    BI opval = LTSI (tmp_tmpd, 0);
9976
    CPU (h_nbit) = opval;
9977
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
9978
  }
9979
  {
9980
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
9981
    CPU (h_zbit) = opval;
9982
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
9983
  }
9984
SET_H_CBIT_MOVE (0);
9985
SET_H_VBIT_MOVE (0);
9986
{
9987
  {
9988
    BI opval = 0;
9989
    CPU (h_xbit) = opval;
9990
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
9991
  }
9992
  {
9993
    BI opval = 0;
9994
    SET_H_INSN_PREFIXED_P (opval);
9995
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
9996
  }
9997
}
9998
}
9999
}
10000
 
10001
#undef FLD
10002
}
10003
  NEXT (vpc);
10004
 
10005
  CASE (sem, INSN_ABS) : /* abs $Rs,$Rd */
10006
{
10007
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10008
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10009
#define FLD(f) abuf->fields.sfmt_muls_b.f
10010
  int UNUSED written = 0;
10011
  IADDR UNUSED pc = abuf->addr;
10012
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10013
 
10014
{
10015
  SI tmp_tmpd;
10016
  tmp_tmpd = ABSSI (GET_H_GR (FLD (f_operand1)));
10017
  {
10018
    SI opval = tmp_tmpd;
10019
    SET_H_GR (FLD (f_operand2), opval);
10020
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10021
  }
10022
{
10023
  {
10024
    BI opval = LTSI (tmp_tmpd, 0);
10025
    CPU (h_nbit) = opval;
10026
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10027
  }
10028
  {
10029
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10030
    CPU (h_zbit) = opval;
10031
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10032
  }
10033
SET_H_CBIT_MOVE (0);
10034
SET_H_VBIT_MOVE (0);
10035
{
10036
  {
10037
    BI opval = 0;
10038
    CPU (h_xbit) = opval;
10039
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10040
  }
10041
  {
10042
    BI opval = 0;
10043
    SET_H_INSN_PREFIXED_P (opval);
10044
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10045
  }
10046
}
10047
}
10048
}
10049
 
10050
#undef FLD
10051
}
10052
  NEXT (vpc);
10053
 
10054
  CASE (sem, INSN_AND_B_R) : /* and.b $Rs,$Rd */
10055
{
10056
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10057
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10058
#define FLD(f) abuf->fields.sfmt_addc_m.f
10059
  int UNUSED written = 0;
10060
  IADDR UNUSED pc = abuf->addr;
10061
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10062
 
10063
{
10064
  QI tmp_tmpd;
10065
  tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10066
{
10067
  SI tmp_oldregval;
10068
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
10069
  {
10070
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10071
    SET_H_GR (FLD (f_operand2), opval);
10072
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10073
  }
10074
}
10075
{
10076
  {
10077
    BI opval = LTQI (tmp_tmpd, 0);
10078
    CPU (h_nbit) = opval;
10079
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10080
  }
10081
  {
10082
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10083
    CPU (h_zbit) = opval;
10084
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10085
  }
10086
SET_H_CBIT_MOVE (0);
10087
SET_H_VBIT_MOVE (0);
10088
{
10089
  {
10090
    BI opval = 0;
10091
    CPU (h_xbit) = opval;
10092
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10093
  }
10094
  {
10095
    BI opval = 0;
10096
    SET_H_INSN_PREFIXED_P (opval);
10097
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10098
  }
10099
}
10100
}
10101
}
10102
 
10103
#undef FLD
10104
}
10105
  NEXT (vpc);
10106
 
10107
  CASE (sem, INSN_AND_W_R) : /* and.w $Rs,$Rd */
10108
{
10109
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10110
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10111
#define FLD(f) abuf->fields.sfmt_addc_m.f
10112
  int UNUSED written = 0;
10113
  IADDR UNUSED pc = abuf->addr;
10114
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10115
 
10116
{
10117
  HI tmp_tmpd;
10118
  tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10119
{
10120
  SI tmp_oldregval;
10121
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
10122
  {
10123
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10124
    SET_H_GR (FLD (f_operand2), opval);
10125
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10126
  }
10127
}
10128
{
10129
  {
10130
    BI opval = LTHI (tmp_tmpd, 0);
10131
    CPU (h_nbit) = opval;
10132
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10133
  }
10134
  {
10135
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10136
    CPU (h_zbit) = opval;
10137
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10138
  }
10139
SET_H_CBIT_MOVE (0);
10140
SET_H_VBIT_MOVE (0);
10141
{
10142
  {
10143
    BI opval = 0;
10144
    CPU (h_xbit) = opval;
10145
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10146
  }
10147
  {
10148
    BI opval = 0;
10149
    SET_H_INSN_PREFIXED_P (opval);
10150
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10151
  }
10152
}
10153
}
10154
}
10155
 
10156
#undef FLD
10157
}
10158
  NEXT (vpc);
10159
 
10160
  CASE (sem, INSN_AND_D_R) : /* and.d $Rs,$Rd */
10161
{
10162
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10163
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10164
#define FLD(f) abuf->fields.sfmt_addc_m.f
10165
  int UNUSED written = 0;
10166
  IADDR UNUSED pc = abuf->addr;
10167
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10168
 
10169
{
10170
  SI tmp_tmpd;
10171
  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10172
  {
10173
    SI opval = tmp_tmpd;
10174
    SET_H_GR (FLD (f_operand2), opval);
10175
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10176
  }
10177
{
10178
  {
10179
    BI opval = LTSI (tmp_tmpd, 0);
10180
    CPU (h_nbit) = opval;
10181
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10182
  }
10183
  {
10184
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10185
    CPU (h_zbit) = opval;
10186
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10187
  }
10188
SET_H_CBIT_MOVE (0);
10189
SET_H_VBIT_MOVE (0);
10190
{
10191
  {
10192
    BI opval = 0;
10193
    CPU (h_xbit) = opval;
10194
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10195
  }
10196
  {
10197
    BI opval = 0;
10198
    SET_H_INSN_PREFIXED_P (opval);
10199
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10200
  }
10201
}
10202
}
10203
}
10204
 
10205
#undef FLD
10206
}
10207
  NEXT (vpc);
10208
 
10209
  CASE (sem, INSN_AND_M_B_M) : /* and-m.b [${Rs}${inc}],${Rd} */
10210
{
10211
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10212
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10213
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10214
  int UNUSED written = 0;
10215
  IADDR UNUSED pc = abuf->addr;
10216
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10217
 
10218
{
10219
  QI tmp_tmpd;
10220
  tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10221
  QI tmp_tmp_mem;
10222
  BI tmp_postinc;
10223
  tmp_postinc = FLD (f_memmode);
10224
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
10225
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
10226
; if (NEBI (tmp_postinc, 0)) {
10227
{
10228
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10229
  tmp_addr = ADDSI (tmp_addr, 1);
10230
}
10231
  {
10232
    SI opval = tmp_addr;
10233
    SET_H_GR (FLD (f_operand1), opval);
10234
    written |= (1 << 11);
10235
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10236
  }
10237
}
10238
}
10239
; tmp_tmp_mem; }));
10240
{
10241
  SI tmp_oldregval;
10242
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10243
  {
10244
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10245
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10246
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10247
  }
10248
}
10249
{
10250
  {
10251
    BI opval = LTQI (tmp_tmpd, 0);
10252
    CPU (h_nbit) = opval;
10253
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10254
  }
10255
  {
10256
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10257
    CPU (h_zbit) = opval;
10258
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10259
  }
10260
SET_H_CBIT_MOVE (0);
10261
SET_H_VBIT_MOVE (0);
10262
{
10263
  {
10264
    BI opval = 0;
10265
    CPU (h_xbit) = opval;
10266
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10267
  }
10268
  {
10269
    BI opval = 0;
10270
    SET_H_INSN_PREFIXED_P (opval);
10271
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10272
  }
10273
}
10274
}
10275
}
10276
 
10277
  abuf->written = written;
10278
#undef FLD
10279
}
10280
  NEXT (vpc);
10281
 
10282
  CASE (sem, INSN_AND_M_W_M) : /* and-m.w [${Rs}${inc}],${Rd} */
10283
{
10284
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10285
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10286
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10287
  int UNUSED written = 0;
10288
  IADDR UNUSED pc = abuf->addr;
10289
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10290
 
10291
{
10292
  HI tmp_tmpd;
10293
  tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10294
  HI tmp_tmp_mem;
10295
  BI tmp_postinc;
10296
  tmp_postinc = FLD (f_memmode);
10297
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
10298
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
10299
; if (NEBI (tmp_postinc, 0)) {
10300
{
10301
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10302
  tmp_addr = ADDSI (tmp_addr, 2);
10303
}
10304
  {
10305
    SI opval = tmp_addr;
10306
    SET_H_GR (FLD (f_operand1), opval);
10307
    written |= (1 << 11);
10308
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10309
  }
10310
}
10311
}
10312
; tmp_tmp_mem; }));
10313
{
10314
  SI tmp_oldregval;
10315
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10316
  {
10317
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10318
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10319
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10320
  }
10321
}
10322
{
10323
  {
10324
    BI opval = LTHI (tmp_tmpd, 0);
10325
    CPU (h_nbit) = opval;
10326
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10327
  }
10328
  {
10329
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10330
    CPU (h_zbit) = opval;
10331
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10332
  }
10333
SET_H_CBIT_MOVE (0);
10334
SET_H_VBIT_MOVE (0);
10335
{
10336
  {
10337
    BI opval = 0;
10338
    CPU (h_xbit) = opval;
10339
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10340
  }
10341
  {
10342
    BI opval = 0;
10343
    SET_H_INSN_PREFIXED_P (opval);
10344
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10345
  }
10346
}
10347
}
10348
}
10349
 
10350
  abuf->written = written;
10351
#undef FLD
10352
}
10353
  NEXT (vpc);
10354
 
10355
  CASE (sem, INSN_AND_M_D_M) : /* and-m.d [${Rs}${inc}],${Rd} */
10356
{
10357
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10358
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10359
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10360
  int UNUSED written = 0;
10361
  IADDR UNUSED pc = abuf->addr;
10362
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10363
 
10364
{
10365
  SI tmp_tmpd;
10366
  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10367
  SI tmp_tmp_mem;
10368
  BI tmp_postinc;
10369
  tmp_postinc = FLD (f_memmode);
10370
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
10371
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
10372
; if (NEBI (tmp_postinc, 0)) {
10373
{
10374
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10375
  tmp_addr = ADDSI (tmp_addr, 4);
10376
}
10377
  {
10378
    SI opval = tmp_addr;
10379
    SET_H_GR (FLD (f_operand1), opval);
10380
    written |= (1 << 10);
10381
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10382
  }
10383
}
10384
}
10385
; tmp_tmp_mem; }));
10386
  {
10387
    SI opval = tmp_tmpd;
10388
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10389
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10390
  }
10391
{
10392
  {
10393
    BI opval = LTSI (tmp_tmpd, 0);
10394
    CPU (h_nbit) = opval;
10395
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10396
  }
10397
  {
10398
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10399
    CPU (h_zbit) = opval;
10400
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10401
  }
10402
SET_H_CBIT_MOVE (0);
10403
SET_H_VBIT_MOVE (0);
10404
{
10405
  {
10406
    BI opval = 0;
10407
    CPU (h_xbit) = opval;
10408
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10409
  }
10410
  {
10411
    BI opval = 0;
10412
    SET_H_INSN_PREFIXED_P (opval);
10413
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10414
  }
10415
}
10416
}
10417
}
10418
 
10419
  abuf->written = written;
10420
#undef FLD
10421
}
10422
  NEXT (vpc);
10423
 
10424
  CASE (sem, INSN_ANDCBR) : /* and.b ${sconst8}],${Rd} */
10425
{
10426
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10427
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10428
#define FLD(f) abuf->fields.sfmt_addcbr.f
10429
  int UNUSED written = 0;
10430
  IADDR UNUSED pc = abuf->addr;
10431
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10432
 
10433
{
10434
  QI tmp_tmpd;
10435
  tmp_tmpd = ANDQI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__byte));
10436
{
10437
  SI tmp_oldregval;
10438
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
10439
  {
10440
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10441
    SET_H_GR (FLD (f_operand2), opval);
10442
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10443
  }
10444
}
10445
{
10446
  {
10447
    BI opval = LTQI (tmp_tmpd, 0);
10448
    CPU (h_nbit) = opval;
10449
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10450
  }
10451
  {
10452
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10453
    CPU (h_zbit) = opval;
10454
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10455
  }
10456
SET_H_CBIT_MOVE (0);
10457
SET_H_VBIT_MOVE (0);
10458
{
10459
  {
10460
    BI opval = 0;
10461
    CPU (h_xbit) = opval;
10462
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10463
  }
10464
  {
10465
    BI opval = 0;
10466
    SET_H_INSN_PREFIXED_P (opval);
10467
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10468
  }
10469
}
10470
}
10471
}
10472
 
10473
#undef FLD
10474
}
10475
  NEXT (vpc);
10476
 
10477
  CASE (sem, INSN_ANDCWR) : /* and.w ${sconst16}],${Rd} */
10478
{
10479
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10480
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10481
#define FLD(f) abuf->fields.sfmt_addcwr.f
10482
  int UNUSED written = 0;
10483
  IADDR UNUSED pc = abuf->addr;
10484
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10485
 
10486
{
10487
  HI tmp_tmpd;
10488
  tmp_tmpd = ANDHI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__word));
10489
{
10490
  SI tmp_oldregval;
10491
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
10492
  {
10493
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10494
    SET_H_GR (FLD (f_operand2), opval);
10495
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10496
  }
10497
}
10498
{
10499
  {
10500
    BI opval = LTHI (tmp_tmpd, 0);
10501
    CPU (h_nbit) = opval;
10502
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10503
  }
10504
  {
10505
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10506
    CPU (h_zbit) = opval;
10507
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10508
  }
10509
SET_H_CBIT_MOVE (0);
10510
SET_H_VBIT_MOVE (0);
10511
{
10512
  {
10513
    BI opval = 0;
10514
    CPU (h_xbit) = opval;
10515
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10516
  }
10517
  {
10518
    BI opval = 0;
10519
    SET_H_INSN_PREFIXED_P (opval);
10520
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10521
  }
10522
}
10523
}
10524
}
10525
 
10526
#undef FLD
10527
}
10528
  NEXT (vpc);
10529
 
10530
  CASE (sem, INSN_ANDCDR) : /* and.d ${const32}],${Rd} */
10531
{
10532
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10533
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10534
#define FLD(f) abuf->fields.sfmt_addcdr.f
10535
  int UNUSED written = 0;
10536
  IADDR UNUSED pc = abuf->addr;
10537
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
10538
 
10539
{
10540
  SI tmp_tmpd;
10541
  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
10542
  {
10543
    SI opval = tmp_tmpd;
10544
    SET_H_GR (FLD (f_operand2), opval);
10545
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10546
  }
10547
{
10548
  {
10549
    BI opval = LTSI (tmp_tmpd, 0);
10550
    CPU (h_nbit) = opval;
10551
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10552
  }
10553
  {
10554
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10555
    CPU (h_zbit) = opval;
10556
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10557
  }
10558
SET_H_CBIT_MOVE (0);
10559
SET_H_VBIT_MOVE (0);
10560
{
10561
  {
10562
    BI opval = 0;
10563
    CPU (h_xbit) = opval;
10564
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10565
  }
10566
  {
10567
    BI opval = 0;
10568
    SET_H_INSN_PREFIXED_P (opval);
10569
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10570
  }
10571
}
10572
}
10573
}
10574
 
10575
#undef FLD
10576
}
10577
  NEXT (vpc);
10578
 
10579
  CASE (sem, INSN_ANDQ) : /* andq $i,$Rd */
10580
{
10581
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10582
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10583
#define FLD(f) abuf->fields.sfmt_andq.f
10584
  int UNUSED written = 0;
10585
  IADDR UNUSED pc = abuf->addr;
10586
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10587
 
10588
{
10589
  SI tmp_tmpd;
10590
  tmp_tmpd = ANDSI (GET_H_GR (FLD (f_operand2)), FLD (f_s6));
10591
  {
10592
    SI opval = tmp_tmpd;
10593
    SET_H_GR (FLD (f_operand2), opval);
10594
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10595
  }
10596
{
10597
  {
10598
    BI opval = LTSI (tmp_tmpd, 0);
10599
    CPU (h_nbit) = opval;
10600
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10601
  }
10602
  {
10603
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10604
    CPU (h_zbit) = opval;
10605
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10606
  }
10607
SET_H_CBIT_MOVE (0);
10608
SET_H_VBIT_MOVE (0);
10609
{
10610
  {
10611
    BI opval = 0;
10612
    CPU (h_xbit) = opval;
10613
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10614
  }
10615
  {
10616
    BI opval = 0;
10617
    SET_H_INSN_PREFIXED_P (opval);
10618
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10619
  }
10620
}
10621
}
10622
}
10623
 
10624
#undef FLD
10625
}
10626
  NEXT (vpc);
10627
 
10628
  CASE (sem, INSN_ORR_B_R) : /* orr.b $Rs,$Rd */
10629
{
10630
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10631
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10632
#define FLD(f) abuf->fields.sfmt_addc_m.f
10633
  int UNUSED written = 0;
10634
  IADDR UNUSED pc = abuf->addr;
10635
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10636
 
10637
{
10638
  QI tmp_tmpd;
10639
  tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10640
{
10641
  SI tmp_oldregval;
10642
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
10643
  {
10644
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10645
    SET_H_GR (FLD (f_operand2), opval);
10646
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10647
  }
10648
}
10649
{
10650
  {
10651
    BI opval = LTQI (tmp_tmpd, 0);
10652
    CPU (h_nbit) = opval;
10653
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10654
  }
10655
  {
10656
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10657
    CPU (h_zbit) = opval;
10658
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10659
  }
10660
SET_H_CBIT_MOVE (0);
10661
SET_H_VBIT_MOVE (0);
10662
{
10663
  {
10664
    BI opval = 0;
10665
    CPU (h_xbit) = opval;
10666
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10667
  }
10668
  {
10669
    BI opval = 0;
10670
    SET_H_INSN_PREFIXED_P (opval);
10671
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10672
  }
10673
}
10674
}
10675
}
10676
 
10677
#undef FLD
10678
}
10679
  NEXT (vpc);
10680
 
10681
  CASE (sem, INSN_ORR_W_R) : /* orr.w $Rs,$Rd */
10682
{
10683
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10684
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10685
#define FLD(f) abuf->fields.sfmt_addc_m.f
10686
  int UNUSED written = 0;
10687
  IADDR UNUSED pc = abuf->addr;
10688
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10689
 
10690
{
10691
  HI tmp_tmpd;
10692
  tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10693
{
10694
  SI tmp_oldregval;
10695
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
10696
  {
10697
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10698
    SET_H_GR (FLD (f_operand2), opval);
10699
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10700
  }
10701
}
10702
{
10703
  {
10704
    BI opval = LTHI (tmp_tmpd, 0);
10705
    CPU (h_nbit) = opval;
10706
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10707
  }
10708
  {
10709
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10710
    CPU (h_zbit) = opval;
10711
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10712
  }
10713
SET_H_CBIT_MOVE (0);
10714
SET_H_VBIT_MOVE (0);
10715
{
10716
  {
10717
    BI opval = 0;
10718
    CPU (h_xbit) = opval;
10719
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10720
  }
10721
  {
10722
    BI opval = 0;
10723
    SET_H_INSN_PREFIXED_P (opval);
10724
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10725
  }
10726
}
10727
}
10728
}
10729
 
10730
#undef FLD
10731
}
10732
  NEXT (vpc);
10733
 
10734
  CASE (sem, INSN_ORR_D_R) : /* orr.d $Rs,$Rd */
10735
{
10736
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10737
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10738
#define FLD(f) abuf->fields.sfmt_addc_m.f
10739
  int UNUSED written = 0;
10740
  IADDR UNUSED pc = abuf->addr;
10741
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10742
 
10743
{
10744
  SI tmp_tmpd;
10745
  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
10746
  {
10747
    SI opval = tmp_tmpd;
10748
    SET_H_GR (FLD (f_operand2), opval);
10749
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10750
  }
10751
{
10752
  {
10753
    BI opval = LTSI (tmp_tmpd, 0);
10754
    CPU (h_nbit) = opval;
10755
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10756
  }
10757
  {
10758
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10759
    CPU (h_zbit) = opval;
10760
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10761
  }
10762
SET_H_CBIT_MOVE (0);
10763
SET_H_VBIT_MOVE (0);
10764
{
10765
  {
10766
    BI opval = 0;
10767
    CPU (h_xbit) = opval;
10768
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10769
  }
10770
  {
10771
    BI opval = 0;
10772
    SET_H_INSN_PREFIXED_P (opval);
10773
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10774
  }
10775
}
10776
}
10777
}
10778
 
10779
#undef FLD
10780
}
10781
  NEXT (vpc);
10782
 
10783
  CASE (sem, INSN_OR_M_B_M) : /* or-m.b [${Rs}${inc}],${Rd} */
10784
{
10785
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10786
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10787
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10788
  int UNUSED written = 0;
10789
  IADDR UNUSED pc = abuf->addr;
10790
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10791
 
10792
{
10793
  QI tmp_tmpd;
10794
  tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10795
  QI tmp_tmp_mem;
10796
  BI tmp_postinc;
10797
  tmp_postinc = FLD (f_memmode);
10798
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
10799
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
10800
; if (NEBI (tmp_postinc, 0)) {
10801
{
10802
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10803
  tmp_addr = ADDSI (tmp_addr, 1);
10804
}
10805
  {
10806
    SI opval = tmp_addr;
10807
    SET_H_GR (FLD (f_operand1), opval);
10808
    written |= (1 << 11);
10809
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10810
  }
10811
}
10812
}
10813
; tmp_tmp_mem; }));
10814
{
10815
  SI tmp_oldregval;
10816
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10817
  {
10818
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
10819
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10820
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10821
  }
10822
}
10823
{
10824
  {
10825
    BI opval = LTQI (tmp_tmpd, 0);
10826
    CPU (h_nbit) = opval;
10827
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10828
  }
10829
  {
10830
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10831
    CPU (h_zbit) = opval;
10832
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10833
  }
10834
SET_H_CBIT_MOVE (0);
10835
SET_H_VBIT_MOVE (0);
10836
{
10837
  {
10838
    BI opval = 0;
10839
    CPU (h_xbit) = opval;
10840
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10841
  }
10842
  {
10843
    BI opval = 0;
10844
    SET_H_INSN_PREFIXED_P (opval);
10845
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10846
  }
10847
}
10848
}
10849
}
10850
 
10851
  abuf->written = written;
10852
#undef FLD
10853
}
10854
  NEXT (vpc);
10855
 
10856
  CASE (sem, INSN_OR_M_W_M) : /* or-m.w [${Rs}${inc}],${Rd} */
10857
{
10858
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10859
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10860
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10861
  int UNUSED written = 0;
10862
  IADDR UNUSED pc = abuf->addr;
10863
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10864
 
10865
{
10866
  HI tmp_tmpd;
10867
  tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10868
  HI tmp_tmp_mem;
10869
  BI tmp_postinc;
10870
  tmp_postinc = FLD (f_memmode);
10871
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
10872
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
10873
; if (NEBI (tmp_postinc, 0)) {
10874
{
10875
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10876
  tmp_addr = ADDSI (tmp_addr, 2);
10877
}
10878
  {
10879
    SI opval = tmp_addr;
10880
    SET_H_GR (FLD (f_operand1), opval);
10881
    written |= (1 << 11);
10882
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10883
  }
10884
}
10885
}
10886
; tmp_tmp_mem; }));
10887
{
10888
  SI tmp_oldregval;
10889
  tmp_oldregval = GET_H_RAW_GR_ACR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))));
10890
  {
10891
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
10892
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10893
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10894
  }
10895
}
10896
{
10897
  {
10898
    BI opval = LTHI (tmp_tmpd, 0);
10899
    CPU (h_nbit) = opval;
10900
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10901
  }
10902
  {
10903
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10904
    CPU (h_zbit) = opval;
10905
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10906
  }
10907
SET_H_CBIT_MOVE (0);
10908
SET_H_VBIT_MOVE (0);
10909
{
10910
  {
10911
    BI opval = 0;
10912
    CPU (h_xbit) = opval;
10913
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10914
  }
10915
  {
10916
    BI opval = 0;
10917
    SET_H_INSN_PREFIXED_P (opval);
10918
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10919
  }
10920
}
10921
}
10922
}
10923
 
10924
  abuf->written = written;
10925
#undef FLD
10926
}
10927
  NEXT (vpc);
10928
 
10929
  CASE (sem, INSN_OR_M_D_M) : /* or-m.d [${Rs}${inc}],${Rd} */
10930
{
10931
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
10932
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10933
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
10934
  int UNUSED written = 0;
10935
  IADDR UNUSED pc = abuf->addr;
10936
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
10937
 
10938
{
10939
  SI tmp_tmpd;
10940
  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), ({   SI tmp_addr;
10941
  SI tmp_tmp_mem;
10942
  BI tmp_postinc;
10943
  tmp_postinc = FLD (f_memmode);
10944
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
10945
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
10946
; if (NEBI (tmp_postinc, 0)) {
10947
{
10948
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
10949
  tmp_addr = ADDSI (tmp_addr, 4);
10950
}
10951
  {
10952
    SI opval = tmp_addr;
10953
    SET_H_GR (FLD (f_operand1), opval);
10954
    written |= (1 << 10);
10955
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10956
  }
10957
}
10958
}
10959
; tmp_tmp_mem; }));
10960
  {
10961
    SI opval = tmp_tmpd;
10962
    SET_H_GR (((ANDIF (GET_H_INSN_PREFIXED_P (), NOTSI (FLD (f_memmode)))) ? (FLD (f_operand1)) : (FLD (f_operand2))), opval);
10963
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
10964
  }
10965
{
10966
  {
10967
    BI opval = LTSI (tmp_tmpd, 0);
10968
    CPU (h_nbit) = opval;
10969
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
10970
  }
10971
  {
10972
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
10973
    CPU (h_zbit) = opval;
10974
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
10975
  }
10976
SET_H_CBIT_MOVE (0);
10977
SET_H_VBIT_MOVE (0);
10978
{
10979
  {
10980
    BI opval = 0;
10981
    CPU (h_xbit) = opval;
10982
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
10983
  }
10984
  {
10985
    BI opval = 0;
10986
    SET_H_INSN_PREFIXED_P (opval);
10987
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
10988
  }
10989
}
10990
}
10991
}
10992
 
10993
  abuf->written = written;
10994
#undef FLD
10995
}
10996
  NEXT (vpc);
10997
 
10998
  CASE (sem, INSN_ORCBR) : /* or.b ${sconst8}],${Rd} */
10999
{
11000
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11001
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11002
#define FLD(f) abuf->fields.sfmt_addcbr.f
11003
  int UNUSED written = 0;
11004
  IADDR UNUSED pc = abuf->addr;
11005
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11006
 
11007
{
11008
  QI tmp_tmpd;
11009
  tmp_tmpd = ORQI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__byte));
11010
{
11011
  SI tmp_oldregval;
11012
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11013
  {
11014
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11015
    SET_H_GR (FLD (f_operand2), opval);
11016
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11017
  }
11018
}
11019
{
11020
  {
11021
    BI opval = LTQI (tmp_tmpd, 0);
11022
    CPU (h_nbit) = opval;
11023
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11024
  }
11025
  {
11026
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11027
    CPU (h_zbit) = opval;
11028
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11029
  }
11030
SET_H_CBIT_MOVE (0);
11031
SET_H_VBIT_MOVE (0);
11032
{
11033
  {
11034
    BI opval = 0;
11035
    CPU (h_xbit) = opval;
11036
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11037
  }
11038
  {
11039
    BI opval = 0;
11040
    SET_H_INSN_PREFIXED_P (opval);
11041
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11042
  }
11043
}
11044
}
11045
}
11046
 
11047
#undef FLD
11048
}
11049
  NEXT (vpc);
11050
 
11051
  CASE (sem, INSN_ORCWR) : /* or.w ${sconst16}],${Rd} */
11052
{
11053
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11054
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11055
#define FLD(f) abuf->fields.sfmt_addcwr.f
11056
  int UNUSED written = 0;
11057
  IADDR UNUSED pc = abuf->addr;
11058
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11059
 
11060
{
11061
  HI tmp_tmpd;
11062
  tmp_tmpd = ORHI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__word));
11063
{
11064
  SI tmp_oldregval;
11065
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11066
  {
11067
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11068
    SET_H_GR (FLD (f_operand2), opval);
11069
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11070
  }
11071
}
11072
{
11073
  {
11074
    BI opval = LTHI (tmp_tmpd, 0);
11075
    CPU (h_nbit) = opval;
11076
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11077
  }
11078
  {
11079
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11080
    CPU (h_zbit) = opval;
11081
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11082
  }
11083
SET_H_CBIT_MOVE (0);
11084
SET_H_VBIT_MOVE (0);
11085
{
11086
  {
11087
    BI opval = 0;
11088
    CPU (h_xbit) = opval;
11089
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11090
  }
11091
  {
11092
    BI opval = 0;
11093
    SET_H_INSN_PREFIXED_P (opval);
11094
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11095
  }
11096
}
11097
}
11098
}
11099
 
11100
#undef FLD
11101
}
11102
  NEXT (vpc);
11103
 
11104
  CASE (sem, INSN_ORCDR) : /* or.d ${const32}],${Rd} */
11105
{
11106
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11107
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11108
#define FLD(f) abuf->fields.sfmt_addcdr.f
11109
  int UNUSED written = 0;
11110
  IADDR UNUSED pc = abuf->addr;
11111
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
11112
 
11113
{
11114
  SI tmp_tmpd;
11115
  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
11116
  {
11117
    SI opval = tmp_tmpd;
11118
    SET_H_GR (FLD (f_operand2), opval);
11119
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11120
  }
11121
{
11122
  {
11123
    BI opval = LTSI (tmp_tmpd, 0);
11124
    CPU (h_nbit) = opval;
11125
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11126
  }
11127
  {
11128
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11129
    CPU (h_zbit) = opval;
11130
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11131
  }
11132
SET_H_CBIT_MOVE (0);
11133
SET_H_VBIT_MOVE (0);
11134
{
11135
  {
11136
    BI opval = 0;
11137
    CPU (h_xbit) = opval;
11138
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11139
  }
11140
  {
11141
    BI opval = 0;
11142
    SET_H_INSN_PREFIXED_P (opval);
11143
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11144
  }
11145
}
11146
}
11147
}
11148
 
11149
#undef FLD
11150
}
11151
  NEXT (vpc);
11152
 
11153
  CASE (sem, INSN_ORQ) : /* orq $i,$Rd */
11154
{
11155
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11156
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11157
#define FLD(f) abuf->fields.sfmt_andq.f
11158
  int UNUSED written = 0;
11159
  IADDR UNUSED pc = abuf->addr;
11160
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11161
 
11162
{
11163
  SI tmp_tmpd;
11164
  tmp_tmpd = ORSI (GET_H_GR (FLD (f_operand2)), FLD (f_s6));
11165
  {
11166
    SI opval = tmp_tmpd;
11167
    SET_H_GR (FLD (f_operand2), opval);
11168
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11169
  }
11170
{
11171
  {
11172
    BI opval = LTSI (tmp_tmpd, 0);
11173
    CPU (h_nbit) = opval;
11174
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11175
  }
11176
  {
11177
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11178
    CPU (h_zbit) = opval;
11179
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11180
  }
11181
SET_H_CBIT_MOVE (0);
11182
SET_H_VBIT_MOVE (0);
11183
{
11184
  {
11185
    BI opval = 0;
11186
    CPU (h_xbit) = opval;
11187
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11188
  }
11189
  {
11190
    BI opval = 0;
11191
    SET_H_INSN_PREFIXED_P (opval);
11192
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11193
  }
11194
}
11195
}
11196
}
11197
 
11198
#undef FLD
11199
}
11200
  NEXT (vpc);
11201
 
11202
  CASE (sem, INSN_XOR) : /* xor $Rs,$Rd */
11203
{
11204
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11205
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11206
#define FLD(f) abuf->fields.sfmt_muls_b.f
11207
  int UNUSED written = 0;
11208
  IADDR UNUSED pc = abuf->addr;
11209
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11210
 
11211
{
11212
  SI tmp_tmpd;
11213
  tmp_tmpd = XORSI (GET_H_GR (FLD (f_operand2)), GET_H_GR (FLD (f_operand1)));
11214
  {
11215
    SI opval = tmp_tmpd;
11216
    SET_H_GR (FLD (f_operand2), opval);
11217
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11218
  }
11219
{
11220
  {
11221
    BI opval = LTSI (tmp_tmpd, 0);
11222
    CPU (h_nbit) = opval;
11223
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11224
  }
11225
  {
11226
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11227
    CPU (h_zbit) = opval;
11228
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11229
  }
11230
SET_H_CBIT_MOVE (0);
11231
SET_H_VBIT_MOVE (0);
11232
{
11233
  {
11234
    BI opval = 0;
11235
    CPU (h_xbit) = opval;
11236
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11237
  }
11238
  {
11239
    BI opval = 0;
11240
    SET_H_INSN_PREFIXED_P (opval);
11241
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11242
  }
11243
}
11244
}
11245
}
11246
 
11247
#undef FLD
11248
}
11249
  NEXT (vpc);
11250
 
11251
  CASE (sem, INSN_SWAP) : /* swap${swapoption} ${Rs} */
11252
{
11253
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11254
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11255
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
11256
  int UNUSED written = 0;
11257
  IADDR UNUSED pc = abuf->addr;
11258
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11259
 
11260
{
11261
  SI tmp_tmps;
11262
  SI tmp_tmpd;
11263
  tmp_tmps = GET_H_GR (FLD (f_operand1));
11264
  tmp_tmpd = ({   SI tmp_tmpcode;
11265
  SI tmp_tmpval;
11266
  SI tmp_tmpres;
11267
  tmp_tmpcode = FLD (f_operand2);
11268
;   tmp_tmpval = tmp_tmps;
11269
; if (EQSI (tmp_tmpcode, 0)) {
11270
  tmp_tmpres = (cgen_rtx_error (current_cpu, "SWAP without swap modifier isn't implemented"), 0);
11271
}
11272
 else if (EQSI (tmp_tmpcode, 1)) {
11273
  tmp_tmpres = ({   SI tmp_tmpr;
11274
  tmp_tmpr = tmp_tmpval;
11275
; 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)))))))); });
11276
}
11277
 else if (EQSI (tmp_tmpcode, 2)) {
11278
  tmp_tmpres = ({   SI tmp_tmpb;
11279
  tmp_tmpb = tmp_tmpval;
11280
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11281
}
11282
 else if (EQSI (tmp_tmpcode, 3)) {
11283
  tmp_tmpres = ({   SI tmp_tmpr;
11284
  tmp_tmpr = ({   SI tmp_tmpb;
11285
  tmp_tmpb = tmp_tmpval;
11286
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11287
; 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)))))))); });
11288
}
11289
 else if (EQSI (tmp_tmpcode, 4)) {
11290
  tmp_tmpres = ({   SI tmp_tmpb;
11291
  tmp_tmpb = tmp_tmpval;
11292
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11293
}
11294
 else if (EQSI (tmp_tmpcode, 5)) {
11295
  tmp_tmpres = ({   SI tmp_tmpr;
11296
  tmp_tmpr = ({   SI tmp_tmpb;
11297
  tmp_tmpb = tmp_tmpval;
11298
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11299
; 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)))))))); });
11300
}
11301
 else if (EQSI (tmp_tmpcode, 6)) {
11302
  tmp_tmpres = ({   SI tmp_tmpb;
11303
  tmp_tmpb = ({   SI tmp_tmpb;
11304
  tmp_tmpb = tmp_tmpval;
11305
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11306
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11307
}
11308
 else if (EQSI (tmp_tmpcode, 7)) {
11309
  tmp_tmpres = ({   SI tmp_tmpr;
11310
  tmp_tmpr = ({   SI tmp_tmpb;
11311
  tmp_tmpb = ({   SI tmp_tmpb;
11312
  tmp_tmpb = tmp_tmpval;
11313
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11314
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11315
; 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)))))))); });
11316
}
11317
 else if (EQSI (tmp_tmpcode, 8)) {
11318
  tmp_tmpres = INVSI (tmp_tmpval);
11319
}
11320
 else if (EQSI (tmp_tmpcode, 9)) {
11321
  tmp_tmpres = ({   SI tmp_tmpr;
11322
  tmp_tmpr = INVSI (tmp_tmpval);
11323
; 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)))))))); });
11324
}
11325
 else if (EQSI (tmp_tmpcode, 10)) {
11326
  tmp_tmpres = ({   SI tmp_tmpb;
11327
  tmp_tmpb = INVSI (tmp_tmpval);
11328
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11329
}
11330
 else if (EQSI (tmp_tmpcode, 11)) {
11331
  tmp_tmpres = ({   SI tmp_tmpr;
11332
  tmp_tmpr = ({   SI tmp_tmpb;
11333
  tmp_tmpb = INVSI (tmp_tmpval);
11334
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11335
; 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)))))))); });
11336
}
11337
 else if (EQSI (tmp_tmpcode, 12)) {
11338
  tmp_tmpres = ({   SI tmp_tmpb;
11339
  tmp_tmpb = INVSI (tmp_tmpval);
11340
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11341
}
11342
 else if (EQSI (tmp_tmpcode, 13)) {
11343
  tmp_tmpres = ({   SI tmp_tmpr;
11344
  tmp_tmpr = ({   SI tmp_tmpb;
11345
  tmp_tmpb = INVSI (tmp_tmpval);
11346
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11347
; 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)))))))); });
11348
}
11349
 else if (EQSI (tmp_tmpcode, 14)) {
11350
  tmp_tmpres = ({   SI tmp_tmpb;
11351
  tmp_tmpb = ({   SI tmp_tmpb;
11352
  tmp_tmpb = INVSI (tmp_tmpval);
11353
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11354
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11355
}
11356
 else if (EQSI (tmp_tmpcode, 15)) {
11357
  tmp_tmpres = ({   SI tmp_tmpr;
11358
  tmp_tmpr = ({   SI tmp_tmpb;
11359
  tmp_tmpb = ({   SI tmp_tmpb;
11360
  tmp_tmpb = INVSI (tmp_tmpval);
11361
; ORSI (ANDSI (SLLSI (tmp_tmpb, 16), 0xffff0000), ANDSI (SRLSI (tmp_tmpb, 16), 65535)); });
11362
; ORSI (ANDSI (SLLSI (tmp_tmpb, 8), 0xff00ff00), ANDSI (SRLSI (tmp_tmpb, 8), 16711935)); });
11363
; 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)))))))); });
11364
}
11365
; tmp_tmpres; });
11366
  {
11367
    SI opval = tmp_tmpd;
11368
    SET_H_GR (FLD (f_operand1), opval);
11369
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11370
  }
11371
{
11372
  {
11373
    BI opval = LTSI (tmp_tmpd, 0);
11374
    CPU (h_nbit) = opval;
11375
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11376
  }
11377
  {
11378
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11379
    CPU (h_zbit) = opval;
11380
    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
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11389
  }
11390
  {
11391
    BI opval = 0;
11392
    SET_H_INSN_PREFIXED_P (opval);
11393
    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_ASRR_B_R) : /* asrr.b $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_addc_m.f
11408
  int UNUSED written = 0;
11409
  IADDR UNUSED pc = abuf->addr;
11410
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11411
 
11412
{
11413
  QI tmp_tmpd;
11414
  SI tmp_cnt1;
11415
  SI tmp_cnt2;
11416
  tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11417
  tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11418
  tmp_tmpd = SRASI (EXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11419
{
11420
  SI tmp_oldregval;
11421
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11422
  {
11423
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11424
    SET_H_GR (FLD (f_operand2), opval);
11425
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11426
  }
11427
}
11428
{
11429
  {
11430
    BI opval = LTQI (tmp_tmpd, 0);
11431
    CPU (h_nbit) = opval;
11432
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11433
  }
11434
  {
11435
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11436
    CPU (h_zbit) = opval;
11437
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11438
  }
11439
SET_H_CBIT_MOVE (0);
11440
SET_H_VBIT_MOVE (0);
11441
{
11442
  {
11443
    BI opval = 0;
11444
    CPU (h_xbit) = opval;
11445
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11446
  }
11447
  {
11448
    BI opval = 0;
11449
    SET_H_INSN_PREFIXED_P (opval);
11450
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11451
  }
11452
}
11453
}
11454
}
11455
 
11456
#undef FLD
11457
}
11458
  NEXT (vpc);
11459
 
11460
  CASE (sem, INSN_ASRR_W_R) : /* asrr.w $Rs,$Rd */
11461
{
11462
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11463
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11464
#define FLD(f) abuf->fields.sfmt_addc_m.f
11465
  int UNUSED written = 0;
11466
  IADDR UNUSED pc = abuf->addr;
11467
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11468
 
11469
{
11470
  HI tmp_tmpd;
11471
  SI tmp_cnt1;
11472
  SI tmp_cnt2;
11473
  tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11474
  tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11475
  tmp_tmpd = SRASI (EXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11476
{
11477
  SI tmp_oldregval;
11478
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11479
  {
11480
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11481
    SET_H_GR (FLD (f_operand2), opval);
11482
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11483
  }
11484
}
11485
{
11486
  {
11487
    BI opval = LTHI (tmp_tmpd, 0);
11488
    CPU (h_nbit) = opval;
11489
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11490
  }
11491
  {
11492
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11493
    CPU (h_zbit) = opval;
11494
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11495
  }
11496
SET_H_CBIT_MOVE (0);
11497
SET_H_VBIT_MOVE (0);
11498
{
11499
  {
11500
    BI opval = 0;
11501
    CPU (h_xbit) = opval;
11502
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11503
  }
11504
  {
11505
    BI opval = 0;
11506
    SET_H_INSN_PREFIXED_P (opval);
11507
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11508
  }
11509
}
11510
}
11511
}
11512
 
11513
#undef FLD
11514
}
11515
  NEXT (vpc);
11516
 
11517
  CASE (sem, INSN_ASRR_D_R) : /* asrr.d $Rs,$Rd */
11518
{
11519
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11520
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11521
#define FLD(f) abuf->fields.sfmt_addc_m.f
11522
  int UNUSED written = 0;
11523
  IADDR UNUSED pc = abuf->addr;
11524
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11525
 
11526
{
11527
  SI tmp_tmpd;
11528
  SI tmp_cnt1;
11529
  SI tmp_cnt2;
11530
  tmp_cnt1 = GET_H_GR (FLD (f_operand1));
11531
  tmp_cnt2 = ((NESI (ANDSI (tmp_cnt1, 32), 0)) ? (31) : (ANDSI (tmp_cnt1, 31)));
11532
  tmp_tmpd = SRASI (EXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), tmp_cnt2);
11533
  {
11534
    SI opval = tmp_tmpd;
11535
    SET_H_GR (FLD (f_operand2), opval);
11536
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11537
  }
11538
{
11539
  {
11540
    BI opval = LTSI (tmp_tmpd, 0);
11541
    CPU (h_nbit) = opval;
11542
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11543
  }
11544
  {
11545
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11546
    CPU (h_zbit) = opval;
11547
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11548
  }
11549
SET_H_CBIT_MOVE (0);
11550
SET_H_VBIT_MOVE (0);
11551
{
11552
  {
11553
    BI opval = 0;
11554
    CPU (h_xbit) = opval;
11555
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11556
  }
11557
  {
11558
    BI opval = 0;
11559
    SET_H_INSN_PREFIXED_P (opval);
11560
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11561
  }
11562
}
11563
}
11564
}
11565
 
11566
#undef FLD
11567
}
11568
  NEXT (vpc);
11569
 
11570
  CASE (sem, INSN_ASRQ) : /* asrq $c,${Rd} */
11571
{
11572
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11573
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11574
#define FLD(f) abuf->fields.sfmt_asrq.f
11575
  int UNUSED written = 0;
11576
  IADDR UNUSED pc = abuf->addr;
11577
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11578
 
11579
{
11580
  SI tmp_tmpd;
11581
  tmp_tmpd = SRASI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11582
  {
11583
    SI opval = tmp_tmpd;
11584
    SET_H_GR (FLD (f_operand2), opval);
11585
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11586
  }
11587
{
11588
  {
11589
    BI opval = LTSI (tmp_tmpd, 0);
11590
    CPU (h_nbit) = opval;
11591
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11592
  }
11593
  {
11594
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11595
    CPU (h_zbit) = opval;
11596
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11597
  }
11598
SET_H_CBIT_MOVE (0);
11599
SET_H_VBIT_MOVE (0);
11600
{
11601
  {
11602
    BI opval = 0;
11603
    CPU (h_xbit) = opval;
11604
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11605
  }
11606
  {
11607
    BI opval = 0;
11608
    SET_H_INSN_PREFIXED_P (opval);
11609
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11610
  }
11611
}
11612
}
11613
}
11614
 
11615
#undef FLD
11616
}
11617
  NEXT (vpc);
11618
 
11619
  CASE (sem, INSN_LSRR_B_R) : /* lsrr.b $Rs,$Rd */
11620
{
11621
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11622
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11623
#define FLD(f) abuf->fields.sfmt_addc_m.f
11624
  int UNUSED written = 0;
11625
  IADDR UNUSED pc = abuf->addr;
11626
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11627
 
11628
{
11629
  SI tmp_tmpd;
11630
  SI tmp_cnt;
11631
  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11632
  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11633
{
11634
  SI tmp_oldregval;
11635
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11636
  {
11637
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11638
    SET_H_GR (FLD (f_operand2), opval);
11639
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11640
  }
11641
}
11642
{
11643
  {
11644
    BI opval = LTQI (tmp_tmpd, 0);
11645
    CPU (h_nbit) = opval;
11646
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11647
  }
11648
  {
11649
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11650
    CPU (h_zbit) = opval;
11651
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11652
  }
11653
SET_H_CBIT_MOVE (0);
11654
SET_H_VBIT_MOVE (0);
11655
{
11656
  {
11657
    BI opval = 0;
11658
    CPU (h_xbit) = opval;
11659
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11660
  }
11661
  {
11662
    BI opval = 0;
11663
    SET_H_INSN_PREFIXED_P (opval);
11664
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11665
  }
11666
}
11667
}
11668
}
11669
 
11670
#undef FLD
11671
}
11672
  NEXT (vpc);
11673
 
11674
  CASE (sem, INSN_LSRR_W_R) : /* lsrr.w $Rs,$Rd */
11675
{
11676
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11677
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11678
#define FLD(f) abuf->fields.sfmt_addc_m.f
11679
  int UNUSED written = 0;
11680
  IADDR UNUSED pc = abuf->addr;
11681
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11682
 
11683
{
11684
  SI tmp_tmpd;
11685
  SI tmp_cnt;
11686
  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11687
  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11688
{
11689
  SI tmp_oldregval;
11690
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11691
  {
11692
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11693
    SET_H_GR (FLD (f_operand2), opval);
11694
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11695
  }
11696
}
11697
{
11698
  {
11699
    BI opval = LTHI (tmp_tmpd, 0);
11700
    CPU (h_nbit) = opval;
11701
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11702
  }
11703
  {
11704
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11705
    CPU (h_zbit) = opval;
11706
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11707
  }
11708
SET_H_CBIT_MOVE (0);
11709
SET_H_VBIT_MOVE (0);
11710
{
11711
  {
11712
    BI opval = 0;
11713
    CPU (h_xbit) = opval;
11714
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11715
  }
11716
  {
11717
    BI opval = 0;
11718
    SET_H_INSN_PREFIXED_P (opval);
11719
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11720
  }
11721
}
11722
}
11723
}
11724
 
11725
#undef FLD
11726
}
11727
  NEXT (vpc);
11728
 
11729
  CASE (sem, INSN_LSRR_D_R) : /* lsrr.d $Rs,$Rd */
11730
{
11731
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11732
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11733
#define FLD(f) abuf->fields.sfmt_addc_m.f
11734
  int UNUSED written = 0;
11735
  IADDR UNUSED pc = abuf->addr;
11736
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11737
 
11738
{
11739
  SI tmp_tmpd;
11740
  SI tmp_cnt;
11741
  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11742
  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SRLSI (ZEXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11743
  {
11744
    SI opval = tmp_tmpd;
11745
    SET_H_GR (FLD (f_operand2), opval);
11746
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11747
  }
11748
{
11749
  {
11750
    BI opval = LTSI (tmp_tmpd, 0);
11751
    CPU (h_nbit) = opval;
11752
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11753
  }
11754
  {
11755
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11756
    CPU (h_zbit) = opval;
11757
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11758
  }
11759
SET_H_CBIT_MOVE (0);
11760
SET_H_VBIT_MOVE (0);
11761
{
11762
  {
11763
    BI opval = 0;
11764
    CPU (h_xbit) = opval;
11765
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11766
  }
11767
  {
11768
    BI opval = 0;
11769
    SET_H_INSN_PREFIXED_P (opval);
11770
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11771
  }
11772
}
11773
}
11774
}
11775
 
11776
#undef FLD
11777
}
11778
  NEXT (vpc);
11779
 
11780
  CASE (sem, INSN_LSRQ) : /* lsrq $c,${Rd} */
11781
{
11782
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11783
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11784
#define FLD(f) abuf->fields.sfmt_asrq.f
11785
  int UNUSED written = 0;
11786
  IADDR UNUSED pc = abuf->addr;
11787
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11788
 
11789
{
11790
  SI tmp_tmpd;
11791
  tmp_tmpd = SRLSI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
11792
  {
11793
    SI opval = tmp_tmpd;
11794
    SET_H_GR (FLD (f_operand2), opval);
11795
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11796
  }
11797
{
11798
  {
11799
    BI opval = LTSI (tmp_tmpd, 0);
11800
    CPU (h_nbit) = opval;
11801
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11802
  }
11803
  {
11804
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11805
    CPU (h_zbit) = opval;
11806
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11807
  }
11808
SET_H_CBIT_MOVE (0);
11809
SET_H_VBIT_MOVE (0);
11810
{
11811
  {
11812
    BI opval = 0;
11813
    CPU (h_xbit) = opval;
11814
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11815
  }
11816
  {
11817
    BI opval = 0;
11818
    SET_H_INSN_PREFIXED_P (opval);
11819
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11820
  }
11821
}
11822
}
11823
}
11824
 
11825
#undef FLD
11826
}
11827
  NEXT (vpc);
11828
 
11829
  CASE (sem, INSN_LSLR_B_R) : /* lslr.b $Rs,$Rd */
11830
{
11831
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11832
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11833
#define FLD(f) abuf->fields.sfmt_addc_m.f
11834
  int UNUSED written = 0;
11835
  IADDR UNUSED pc = abuf->addr;
11836
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11837
 
11838
{
11839
  SI tmp_tmpd;
11840
  SI tmp_cnt;
11841
  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11842
  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11843
{
11844
  SI tmp_oldregval;
11845
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11846
  {
11847
    SI opval = ORSI (ANDSI (tmp_tmpd, 255), ANDSI (tmp_oldregval, 0xffffff00));
11848
    SET_H_GR (FLD (f_operand2), opval);
11849
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11850
  }
11851
}
11852
{
11853
  {
11854
    BI opval = LTQI (tmp_tmpd, 0);
11855
    CPU (h_nbit) = opval;
11856
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11857
  }
11858
  {
11859
    BI opval = ANDIF (EQQI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11860
    CPU (h_zbit) = opval;
11861
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11862
  }
11863
SET_H_CBIT_MOVE (0);
11864
SET_H_VBIT_MOVE (0);
11865
{
11866
  {
11867
    BI opval = 0;
11868
    CPU (h_xbit) = opval;
11869
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11870
  }
11871
  {
11872
    BI opval = 0;
11873
    SET_H_INSN_PREFIXED_P (opval);
11874
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11875
  }
11876
}
11877
}
11878
}
11879
 
11880
#undef FLD
11881
}
11882
  NEXT (vpc);
11883
 
11884
  CASE (sem, INSN_LSLR_W_R) : /* lslr.w $Rs,$Rd */
11885
{
11886
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11887
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11888
#define FLD(f) abuf->fields.sfmt_addc_m.f
11889
  int UNUSED written = 0;
11890
  IADDR UNUSED pc = abuf->addr;
11891
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11892
 
11893
{
11894
  SI tmp_tmpd;
11895
  SI tmp_cnt;
11896
  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11897
  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11898
{
11899
  SI tmp_oldregval;
11900
  tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand2));
11901
  {
11902
    SI opval = ORSI (ANDSI (tmp_tmpd, 65535), ANDSI (tmp_oldregval, 0xffff0000));
11903
    SET_H_GR (FLD (f_operand2), opval);
11904
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11905
  }
11906
}
11907
{
11908
  {
11909
    BI opval = LTHI (tmp_tmpd, 0);
11910
    CPU (h_nbit) = opval;
11911
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11912
  }
11913
  {
11914
    BI opval = ANDIF (EQHI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11915
    CPU (h_zbit) = opval;
11916
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11917
  }
11918
SET_H_CBIT_MOVE (0);
11919
SET_H_VBIT_MOVE (0);
11920
{
11921
  {
11922
    BI opval = 0;
11923
    CPU (h_xbit) = opval;
11924
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11925
  }
11926
  {
11927
    BI opval = 0;
11928
    SET_H_INSN_PREFIXED_P (opval);
11929
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11930
  }
11931
}
11932
}
11933
}
11934
 
11935
#undef FLD
11936
}
11937
  NEXT (vpc);
11938
 
11939
  CASE (sem, INSN_LSLR_D_R) : /* lslr.d $Rs,$Rd */
11940
{
11941
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11942
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11943
#define FLD(f) abuf->fields.sfmt_addc_m.f
11944
  int UNUSED written = 0;
11945
  IADDR UNUSED pc = abuf->addr;
11946
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11947
 
11948
{
11949
  SI tmp_tmpd;
11950
  SI tmp_cnt;
11951
  tmp_cnt = ANDSI (GET_H_GR (FLD (f_operand1)), 63);
11952
  tmp_tmpd = ((NESI (ANDSI (tmp_cnt, 32), 0)) ? (0) : (SLLSI (ZEXTSISI (TRUNCSISI (GET_H_GR (FLD (f_operand2)))), ANDSI (tmp_cnt, 31))));
11953
  {
11954
    SI opval = tmp_tmpd;
11955
    SET_H_GR (FLD (f_operand2), opval);
11956
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
11957
  }
11958
{
11959
  {
11960
    BI opval = LTSI (tmp_tmpd, 0);
11961
    CPU (h_nbit) = opval;
11962
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
11963
  }
11964
  {
11965
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
11966
    CPU (h_zbit) = opval;
11967
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
11968
  }
11969
SET_H_CBIT_MOVE (0);
11970
SET_H_VBIT_MOVE (0);
11971
{
11972
  {
11973
    BI opval = 0;
11974
    CPU (h_xbit) = opval;
11975
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
11976
  }
11977
  {
11978
    BI opval = 0;
11979
    SET_H_INSN_PREFIXED_P (opval);
11980
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
11981
  }
11982
}
11983
}
11984
}
11985
 
11986
#undef FLD
11987
}
11988
  NEXT (vpc);
11989
 
11990
  CASE (sem, INSN_LSLQ) : /* lslq $c,${Rd} */
11991
{
11992
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
11993
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11994
#define FLD(f) abuf->fields.sfmt_asrq.f
11995
  int UNUSED written = 0;
11996
  IADDR UNUSED pc = abuf->addr;
11997
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
11998
 
11999
{
12000
  SI tmp_tmpd;
12001
  tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), FLD (f_u5));
12002
  {
12003
    SI opval = tmp_tmpd;
12004
    SET_H_GR (FLD (f_operand2), opval);
12005
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
12006
  }
12007
{
12008
  {
12009
    BI opval = LTSI (tmp_tmpd, 0);
12010
    CPU (h_nbit) = opval;
12011
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12012
  }
12013
  {
12014
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12015
    CPU (h_zbit) = opval;
12016
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12017
  }
12018
SET_H_CBIT_MOVE (0);
12019
SET_H_VBIT_MOVE (0);
12020
{
12021
  {
12022
    BI opval = 0;
12023
    CPU (h_xbit) = opval;
12024
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12025
  }
12026
  {
12027
    BI opval = 0;
12028
    SET_H_INSN_PREFIXED_P (opval);
12029
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12030
  }
12031
}
12032
}
12033
}
12034
 
12035
#undef FLD
12036
}
12037
  NEXT (vpc);
12038
 
12039
  CASE (sem, INSN_BTST) : /* $Rs,$Rd */
12040
{
12041
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12042
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12043
#define FLD(f) abuf->fields.sfmt_muls_b.f
12044
  int UNUSED written = 0;
12045
  IADDR UNUSED pc = abuf->addr;
12046
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12047
 
12048
{
12049
  SI tmp_tmpd;
12050
  SI tmp_cnt;
12051
  tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), SUBSI (31, ANDSI (GET_H_GR (FLD (f_operand1)), 31)));
12052
{
12053
  {
12054
    BI opval = LTSI (tmp_tmpd, 0);
12055
    CPU (h_nbit) = opval;
12056
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12057
  }
12058
  {
12059
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12060
    CPU (h_zbit) = opval;
12061
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12062
  }
12063
SET_H_CBIT_MOVE (0);
12064
SET_H_VBIT_MOVE (0);
12065
{
12066
  {
12067
    BI opval = 0;
12068
    CPU (h_xbit) = opval;
12069
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12070
  }
12071
  {
12072
    BI opval = 0;
12073
    SET_H_INSN_PREFIXED_P (opval);
12074
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12075
  }
12076
}
12077
}
12078
}
12079
 
12080
#undef FLD
12081
}
12082
  NEXT (vpc);
12083
 
12084
  CASE (sem, INSN_BTSTQ) : /* btstq $c,${Rd} */
12085
{
12086
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12087
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12088
#define FLD(f) abuf->fields.sfmt_asrq.f
12089
  int UNUSED written = 0;
12090
  IADDR UNUSED pc = abuf->addr;
12091
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12092
 
12093
{
12094
  SI tmp_tmpd;
12095
  tmp_tmpd = SLLSI (GET_H_GR (FLD (f_operand2)), SUBSI (31, FLD (f_u5)));
12096
{
12097
  {
12098
    BI opval = LTSI (tmp_tmpd, 0);
12099
    CPU (h_nbit) = opval;
12100
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12101
  }
12102
  {
12103
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
12104
    CPU (h_zbit) = opval;
12105
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12106
  }
12107
SET_H_CBIT_MOVE (0);
12108
SET_H_VBIT_MOVE (0);
12109
{
12110
  {
12111
    BI opval = 0;
12112
    CPU (h_xbit) = opval;
12113
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12114
  }
12115
  {
12116
    BI opval = 0;
12117
    SET_H_INSN_PREFIXED_P (opval);
12118
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12119
  }
12120
}
12121
}
12122
}
12123
 
12124
#undef FLD
12125
}
12126
  NEXT (vpc);
12127
 
12128
  CASE (sem, INSN_SETF) : /* setf ${list-of-flags} */
12129
{
12130
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12131
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12132
#define FLD(f) abuf->fields.sfmt_setf.f
12133
  int UNUSED written = 0;
12134
  IADDR UNUSED pc = abuf->addr;
12135
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12136
 
12137
{
12138
  SI tmp_tmp;
12139
  tmp_tmp = FLD (f_dstsrc);
12140
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 0)), 0)) {
12141
  {
12142
    BI opval = 1;
12143
    CPU (h_cbit) = opval;
12144
    written |= (1 << 1);
12145
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
12146
  }
12147
}
12148
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 1)), 0)) {
12149
  {
12150
    BI opval = 1;
12151
    CPU (h_vbit) = opval;
12152
    written |= (1 << 7);
12153
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
12154
  }
12155
}
12156
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 2)), 0)) {
12157
  {
12158
    BI opval = 1;
12159
    CPU (h_zbit) = opval;
12160
    written |= (1 << 9);
12161
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12162
  }
12163
}
12164
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 3)), 0)) {
12165
  {
12166
    BI opval = 1;
12167
    CPU (h_nbit) = opval;
12168
    written |= (1 << 3);
12169
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12170
  }
12171
}
12172
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
12173
  {
12174
    BI opval = 1;
12175
    CPU (h_xbit) = opval;
12176
    written |= (1 << 8);
12177
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12178
  }
12179
}
12180
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 5)), 0)) {
12181
  {
12182
    BI opval = 1;
12183
    SET_H_IBIT (opval);
12184
    written |= (1 << 2);
12185
    TRACE_RESULT (current_cpu, abuf, "ibit", 'x', opval);
12186
  }
12187
}
12188
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 6)), 0)) {
12189
  {
12190
    BI opval = 1;
12191
    SET_H_UBIT (opval);
12192
    written |= (1 << 6);
12193
    TRACE_RESULT (current_cpu, abuf, "ubit", 'x', opval);
12194
  }
12195
}
12196
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 7)), 0)) {
12197
  {
12198
    BI opval = 1;
12199
    CPU (h_pbit) = opval;
12200
    written |= (1 << 4);
12201
    TRACE_RESULT (current_cpu, abuf, "pbit", 'x', opval);
12202
  }
12203
}
12204
  {
12205
    BI opval = 0;
12206
    SET_H_INSN_PREFIXED_P (opval);
12207
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12208
  }
12209
if (EQSI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
12210
  {
12211
    BI opval = 0;
12212
    CPU (h_xbit) = opval;
12213
    written |= (1 << 8);
12214
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12215
  }
12216
}
12217
}
12218
 
12219
  abuf->written = written;
12220
#undef FLD
12221
}
12222
  NEXT (vpc);
12223
 
12224
  CASE (sem, INSN_CLEARF) : /* clearf ${list-of-flags} */
12225
{
12226
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12227
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12228
#define FLD(f) abuf->fields.sfmt_setf.f
12229
  int UNUSED written = 0;
12230
  IADDR UNUSED pc = abuf->addr;
12231
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12232
 
12233
{
12234
  SI tmp_tmp;
12235
  tmp_tmp = FLD (f_dstsrc);
12236
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 0)), 0)) {
12237
  {
12238
    BI opval = 0;
12239
    CPU (h_cbit) = opval;
12240
    written |= (1 << 1);
12241
    TRACE_RESULT (current_cpu, abuf, "cbit", 'x', opval);
12242
  }
12243
}
12244
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 1)), 0)) {
12245
  {
12246
    BI opval = 0;
12247
    CPU (h_vbit) = opval;
12248
    written |= (1 << 7);
12249
    TRACE_RESULT (current_cpu, abuf, "vbit", 'x', opval);
12250
  }
12251
}
12252
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 2)), 0)) {
12253
  {
12254
    BI opval = 0;
12255
    CPU (h_zbit) = opval;
12256
    written |= (1 << 9);
12257
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
12258
  }
12259
}
12260
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 3)), 0)) {
12261
  {
12262
    BI opval = 0;
12263
    CPU (h_nbit) = opval;
12264
    written |= (1 << 3);
12265
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
12266
  }
12267
}
12268
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 4)), 0)) {
12269
  {
12270
    BI opval = 0;
12271
    CPU (h_xbit) = opval;
12272
    written |= (1 << 8);
12273
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12274
  }
12275
}
12276
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 5)), 0)) {
12277
  {
12278
    BI opval = 0;
12279
    SET_H_IBIT (opval);
12280
    written |= (1 << 2);
12281
    TRACE_RESULT (current_cpu, abuf, "ibit", 'x', opval);
12282
  }
12283
}
12284
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 6)), 0)) {
12285
  {
12286
    BI opval = 0;
12287
    SET_H_UBIT (opval);
12288
    written |= (1 << 6);
12289
    TRACE_RESULT (current_cpu, abuf, "ubit", 'x', opval);
12290
  }
12291
}
12292
if (NESI (ANDSI (tmp_tmp, SLLSI (1, 7)), 0)) {
12293
  {
12294
    BI opval = 0;
12295
    CPU (h_pbit) = opval;
12296
    written |= (1 << 4);
12297
    TRACE_RESULT (current_cpu, abuf, "pbit", 'x', opval);
12298
  }
12299
}
12300
{
12301
  {
12302
    BI opval = 0;
12303
    CPU (h_xbit) = opval;
12304
    written |= (1 << 8);
12305
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12306
  }
12307
  {
12308
    BI opval = 0;
12309
    SET_H_INSN_PREFIXED_P (opval);
12310
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12311
  }
12312
}
12313
}
12314
 
12315
  abuf->written = written;
12316
#undef FLD
12317
}
12318
  NEXT (vpc);
12319
 
12320
  CASE (sem, INSN_RFE) : /* rfe */
12321
{
12322
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12323
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12324
#define FLD(f) abuf->fields.sfmt_rfe.f
12325
  int UNUSED written = 0;
12326
  IADDR UNUSED pc = abuf->addr;
12327
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12328
 
12329
{
12330
  USI tmp_oldccs;
12331
  USI tmp_samebits;
12332
  USI tmp_shiftbits;
12333
  USI tmp_keepmask;
12334
  BI tmp_p1;
12335
  tmp_oldccs = GET_H_SR (((UINT) 13));
12336
  tmp_keepmask = 0xc0000000;
12337
  tmp_samebits = ANDSI (tmp_oldccs, tmp_keepmask);
12338
  tmp_shiftbits = ANDSI (SRLSI (ANDSI (tmp_oldccs, 1073609728), 10), INVSI (tmp_keepmask));
12339
  tmp_p1 = NESI (0, ANDSI (tmp_oldccs, 131072));
12340
  {
12341
    SI opval = ORSI (ORSI (tmp_samebits, tmp_shiftbits), ((ANDBI (CPU (h_rbit), NOTBI (tmp_p1))) ? (0) : (128)));
12342
    SET_H_SR (((UINT) 13), opval);
12343
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12344
  }
12345
}
12346
 
12347
#undef FLD
12348
}
12349
  NEXT (vpc);
12350
 
12351
  CASE (sem, INSN_SFE) : /* sfe */
12352
{
12353
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12354
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12355
#define FLD(f) abuf->fields.sfmt_rfe.f
12356
  int UNUSED written = 0;
12357
  IADDR UNUSED pc = abuf->addr;
12358
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12359
 
12360
{
12361
  SI tmp_oldccs;
12362
  SI tmp_savemask;
12363
  tmp_savemask = 0xc0000000;
12364
  tmp_oldccs = GET_H_SR (((UINT) 13));
12365
  {
12366
    SI opval = ORSI (ANDSI (tmp_savemask, tmp_oldccs), ANDSI (INVSI (tmp_savemask), SLLSI (tmp_oldccs, 10)));
12367
    SET_H_SR (((UINT) 13), opval);
12368
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12369
  }
12370
}
12371
 
12372
#undef FLD
12373
}
12374
  NEXT (vpc);
12375
 
12376
  CASE (sem, INSN_RFG) : /* rfg */
12377
{
12378
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12379
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12380
#define FLD(f) abuf->fields.sfmt_empty.f
12381
  int UNUSED written = 0;
12382
  IADDR UNUSED pc = abuf->addr;
12383
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12384
 
12385
crisv32f_rfg_handler (current_cpu, pc);
12386
 
12387
#undef FLD
12388
}
12389
  NEXT (vpc);
12390
 
12391
  CASE (sem, INSN_RFN) : /* rfn */
12392
{
12393
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12394
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12395
#define FLD(f) abuf->fields.sfmt_rfe.f
12396
  int UNUSED written = 0;
12397
  IADDR UNUSED pc = abuf->addr;
12398
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12399
 
12400
{
12401
{
12402
  USI tmp_oldccs;
12403
  USI tmp_samebits;
12404
  USI tmp_shiftbits;
12405
  USI tmp_keepmask;
12406
  BI tmp_p1;
12407
  tmp_oldccs = GET_H_SR (((UINT) 13));
12408
  tmp_keepmask = 0xc0000000;
12409
  tmp_samebits = ANDSI (tmp_oldccs, tmp_keepmask);
12410
  tmp_shiftbits = ANDSI (SRLSI (ANDSI (tmp_oldccs, 1073609728), 10), INVSI (tmp_keepmask));
12411
  tmp_p1 = NESI (0, ANDSI (tmp_oldccs, 131072));
12412
  {
12413
    SI opval = ORSI (ORSI (tmp_samebits, tmp_shiftbits), ((ANDBI (CPU (h_rbit), NOTBI (tmp_p1))) ? (0) : (128)));
12414
    SET_H_SR (((UINT) 13), opval);
12415
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12416
  }
12417
}
12418
  {
12419
    BI opval = 1;
12420
    SET_H_MBIT (opval);
12421
    TRACE_RESULT (current_cpu, abuf, "mbit", 'x', opval);
12422
  }
12423
}
12424
 
12425
#undef FLD
12426
}
12427
  NEXT (vpc);
12428
 
12429
  CASE (sem, INSN_HALT) : /* halt */
12430
{
12431
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12432
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12433
#define FLD(f) abuf->fields.sfmt_empty.f
12434
  int UNUSED written = 0;
12435
  IADDR UNUSED pc = abuf->addr;
12436
  SEM_BRANCH_INIT
12437
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12438
 
12439
  {
12440
    USI opval = crisv32f_halt_handler (current_cpu, pc);
12441
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12442
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12443
  }
12444
 
12445
  SEM_BRANCH_FINI (vpc);
12446
#undef FLD
12447
}
12448
  NEXT (vpc);
12449
 
12450
  CASE (sem, INSN_BCC_B) : /* b${cc} ${o-pcrel} */
12451
{
12452
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12453
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12454
#define FLD(f) abuf->fields.sfmt_bcc_b.f
12455
  int UNUSED written = 0;
12456
  IADDR UNUSED pc = abuf->addr;
12457
  SEM_BRANCH_INIT
12458
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12459
 
12460
{
12461
  BI tmp_truthval;
12462
  tmp_truthval = ({   SI tmp_tmpcond;
12463
  BI tmp_condres;
12464
  tmp_tmpcond = FLD (f_operand2);
12465
; if (EQSI (tmp_tmpcond, 0)) {
12466
  tmp_condres = NOTBI (CPU (h_cbit));
12467
}
12468
 else if (EQSI (tmp_tmpcond, 1)) {
12469
  tmp_condres = CPU (h_cbit);
12470
}
12471
 else if (EQSI (tmp_tmpcond, 2)) {
12472
  tmp_condres = NOTBI (CPU (h_zbit));
12473
}
12474
 else if (EQSI (tmp_tmpcond, 3)) {
12475
  tmp_condres = CPU (h_zbit);
12476
}
12477
 else if (EQSI (tmp_tmpcond, 4)) {
12478
  tmp_condres = NOTBI (CPU (h_vbit));
12479
}
12480
 else if (EQSI (tmp_tmpcond, 5)) {
12481
  tmp_condres = CPU (h_vbit);
12482
}
12483
 else if (EQSI (tmp_tmpcond, 6)) {
12484
  tmp_condres = NOTBI (CPU (h_nbit));
12485
}
12486
 else if (EQSI (tmp_tmpcond, 7)) {
12487
  tmp_condres = CPU (h_nbit);
12488
}
12489
 else if (EQSI (tmp_tmpcond, 8)) {
12490
  tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
12491
}
12492
 else if (EQSI (tmp_tmpcond, 9)) {
12493
  tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
12494
}
12495
 else if (EQSI (tmp_tmpcond, 10)) {
12496
  tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
12497
}
12498
 else if (EQSI (tmp_tmpcond, 11)) {
12499
  tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
12500
}
12501
 else if (EQSI (tmp_tmpcond, 12)) {
12502
  tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
12503
}
12504
 else if (EQSI (tmp_tmpcond, 13)) {
12505
  tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
12506
}
12507
 else if (EQSI (tmp_tmpcond, 14)) {
12508
  tmp_condres = 1;
12509
}
12510
 else if (EQSI (tmp_tmpcond, 15)) {
12511
  tmp_condres = CPU (h_pbit);
12512
}
12513
; tmp_condres; });
12514
crisv32f_branch_taken (current_cpu, pc, FLD (i_o_pcrel), tmp_truthval);
12515
{
12516
  {
12517
    BI opval = 0;
12518
    CPU (h_xbit) = opval;
12519
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12520
  }
12521
  {
12522
    BI opval = 0;
12523
    SET_H_INSN_PREFIXED_P (opval);
12524
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12525
  }
12526
}
12527
if (tmp_truthval) {
12528
{
12529
  {
12530
    USI opval = FLD (i_o_pcrel);
12531
    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12532
    written |= (1 << 8);
12533
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12534
  }
12535
}
12536
}
12537
}
12538
 
12539
  abuf->written = written;
12540
  SEM_BRANCH_FINI (vpc);
12541
#undef FLD
12542
}
12543
  NEXT (vpc);
12544
 
12545
  CASE (sem, INSN_BA_B) : /* ba ${o-pcrel} */
12546
{
12547
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12548
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12549
#define FLD(f) abuf->fields.sfmt_bcc_b.f
12550
  int UNUSED written = 0;
12551
  IADDR UNUSED pc = abuf->addr;
12552
  SEM_BRANCH_INIT
12553
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12554
 
12555
{
12556
{
12557
  {
12558
    BI opval = 0;
12559
    CPU (h_xbit) = opval;
12560
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12561
  }
12562
  {
12563
    BI opval = 0;
12564
    SET_H_INSN_PREFIXED_P (opval);
12565
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12566
  }
12567
}
12568
{
12569
  {
12570
    USI opval = FLD (i_o_pcrel);
12571
    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12572
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12573
  }
12574
}
12575
}
12576
 
12577
  SEM_BRANCH_FINI (vpc);
12578
#undef FLD
12579
}
12580
  NEXT (vpc);
12581
 
12582
  CASE (sem, INSN_BCC_W) : /* b${cc} ${o-word-pcrel} */
12583
{
12584
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12585
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12586
#define FLD(f) abuf->fields.sfmt_bcc_w.f
12587
  int UNUSED written = 0;
12588
  IADDR UNUSED pc = abuf->addr;
12589
  SEM_BRANCH_INIT
12590
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12591
 
12592
{
12593
  BI tmp_truthval;
12594
  tmp_truthval = ({   SI tmp_tmpcond;
12595
  BI tmp_condres;
12596
  tmp_tmpcond = FLD (f_operand2);
12597
; if (EQSI (tmp_tmpcond, 0)) {
12598
  tmp_condres = NOTBI (CPU (h_cbit));
12599
}
12600
 else if (EQSI (tmp_tmpcond, 1)) {
12601
  tmp_condres = CPU (h_cbit);
12602
}
12603
 else if (EQSI (tmp_tmpcond, 2)) {
12604
  tmp_condres = NOTBI (CPU (h_zbit));
12605
}
12606
 else if (EQSI (tmp_tmpcond, 3)) {
12607
  tmp_condres = CPU (h_zbit);
12608
}
12609
 else if (EQSI (tmp_tmpcond, 4)) {
12610
  tmp_condres = NOTBI (CPU (h_vbit));
12611
}
12612
 else if (EQSI (tmp_tmpcond, 5)) {
12613
  tmp_condres = CPU (h_vbit);
12614
}
12615
 else if (EQSI (tmp_tmpcond, 6)) {
12616
  tmp_condres = NOTBI (CPU (h_nbit));
12617
}
12618
 else if (EQSI (tmp_tmpcond, 7)) {
12619
  tmp_condres = CPU (h_nbit);
12620
}
12621
 else if (EQSI (tmp_tmpcond, 8)) {
12622
  tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
12623
}
12624
 else if (EQSI (tmp_tmpcond, 9)) {
12625
  tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
12626
}
12627
 else if (EQSI (tmp_tmpcond, 10)) {
12628
  tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
12629
}
12630
 else if (EQSI (tmp_tmpcond, 11)) {
12631
  tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
12632
}
12633
 else if (EQSI (tmp_tmpcond, 12)) {
12634
  tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
12635
}
12636
 else if (EQSI (tmp_tmpcond, 13)) {
12637
  tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
12638
}
12639
 else if (EQSI (tmp_tmpcond, 14)) {
12640
  tmp_condres = 1;
12641
}
12642
 else if (EQSI (tmp_tmpcond, 15)) {
12643
  tmp_condres = CPU (h_pbit);
12644
}
12645
; tmp_condres; });
12646
crisv32f_branch_taken (current_cpu, pc, FLD (i_o_word_pcrel), tmp_truthval);
12647
{
12648
  {
12649
    BI opval = 0;
12650
    CPU (h_xbit) = opval;
12651
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12652
  }
12653
  {
12654
    BI opval = 0;
12655
    SET_H_INSN_PREFIXED_P (opval);
12656
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12657
  }
12658
}
12659
if (tmp_truthval) {
12660
{
12661
  {
12662
    USI opval = FLD (i_o_word_pcrel);
12663
    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12664
    written |= (1 << 8);
12665
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12666
  }
12667
}
12668
}
12669
}
12670
 
12671
  abuf->written = written;
12672
  SEM_BRANCH_FINI (vpc);
12673
#undef FLD
12674
}
12675
  NEXT (vpc);
12676
 
12677
  CASE (sem, INSN_BA_W) : /* ba ${o-word-pcrel} */
12678
{
12679
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12680
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12681
#define FLD(f) abuf->fields.sfmt_bcc_w.f
12682
  int UNUSED written = 0;
12683
  IADDR UNUSED pc = abuf->addr;
12684
  SEM_BRANCH_INIT
12685
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12686
 
12687
{
12688
{
12689
  {
12690
    BI opval = 0;
12691
    CPU (h_xbit) = opval;
12692
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12693
  }
12694
  {
12695
    BI opval = 0;
12696
    SET_H_INSN_PREFIXED_P (opval);
12697
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12698
  }
12699
}
12700
{
12701
  {
12702
    USI opval = FLD (i_o_word_pcrel);
12703
    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12704
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12705
  }
12706
}
12707
}
12708
 
12709
  SEM_BRANCH_FINI (vpc);
12710
#undef FLD
12711
}
12712
  NEXT (vpc);
12713
 
12714
  CASE (sem, INSN_JAS_R) : /* jas ${Rs},${Pd} */
12715
{
12716
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12717
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12718
#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
12719
  int UNUSED written = 0;
12720
  IADDR UNUSED pc = abuf->addr;
12721
  SEM_BRANCH_INIT
12722
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12723
 
12724
{
12725
{
12726
  {
12727
    BI opval = 0;
12728
    CPU (h_xbit) = opval;
12729
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12730
  }
12731
  {
12732
    BI opval = 0;
12733
    SET_H_INSN_PREFIXED_P (opval);
12734
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12735
  }
12736
}
12737
if (ANDIF (EQSI (FLD (f_operand1), 1), EQSI (FLD (f_operand2), 11))) {
12738
cris_flush_simulator_decode_cache (current_cpu, pc);
12739
}
12740
{
12741
{
12742
  {
12743
    SI opval = ADDSI (pc, 4);
12744
    SET_H_SR (FLD (f_operand2), opval);
12745
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12746
  }
12747
  {
12748
    USI opval = GET_H_GR (FLD (f_operand1));
12749
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12750
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12751
  }
12752
}
12753
}
12754
}
12755
 
12756
  SEM_BRANCH_FINI (vpc);
12757
#undef FLD
12758
}
12759
  NEXT (vpc);
12760
 
12761
  CASE (sem, INSN_JAS_C) : /* jas ${const32},${Pd} */
12762
{
12763
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12764
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12765
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
12766
  int UNUSED written = 0;
12767
  IADDR UNUSED pc = abuf->addr;
12768
  SEM_BRANCH_INIT
12769
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
12770
 
12771
{
12772
{
12773
  {
12774
    BI opval = 0;
12775
    CPU (h_xbit) = opval;
12776
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12777
  }
12778
  {
12779
    BI opval = 0;
12780
    SET_H_INSN_PREFIXED_P (opval);
12781
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12782
  }
12783
}
12784
{
12785
{
12786
  {
12787
    SI opval = ADDSI (pc, 8);
12788
    SET_H_SR (FLD (f_operand2), opval);
12789
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12790
  }
12791
  {
12792
    USI opval = FLD (f_indir_pc__dword);
12793
    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12794
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12795
  }
12796
}
12797
}
12798
}
12799
 
12800
  SEM_BRANCH_FINI (vpc);
12801
#undef FLD
12802
}
12803
  NEXT (vpc);
12804
 
12805
  CASE (sem, INSN_JUMP_P) : /* jump ${Ps} */
12806
{
12807
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12808
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12809
#define FLD(f) abuf->fields.sfmt_mcp.f
12810
  int UNUSED written = 0;
12811
  IADDR UNUSED pc = abuf->addr;
12812
  SEM_BRANCH_INIT
12813
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12814
 
12815
{
12816
{
12817
  {
12818
    BI opval = 0;
12819
    CPU (h_xbit) = opval;
12820
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12821
  }
12822
  {
12823
    BI opval = 0;
12824
    SET_H_INSN_PREFIXED_P (opval);
12825
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12826
  }
12827
}
12828
{
12829
  {
12830
    USI opval = GET_H_SR (FLD (f_operand2));
12831
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12832
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12833
  }
12834
}
12835
}
12836
 
12837
  SEM_BRANCH_FINI (vpc);
12838
#undef FLD
12839
}
12840
  NEXT (vpc);
12841
 
12842
  CASE (sem, INSN_BAS_C) : /* bas ${const32},${Pd} */
12843
{
12844
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12845
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12846
#define FLD(f) abuf->fields.sfmt_bas_c.f
12847
  int UNUSED written = 0;
12848
  IADDR UNUSED pc = abuf->addr;
12849
  SEM_BRANCH_INIT
12850
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
12851
 
12852
{
12853
{
12854
  {
12855
    BI opval = 0;
12856
    CPU (h_xbit) = opval;
12857
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12858
  }
12859
  {
12860
    BI opval = 0;
12861
    SET_H_INSN_PREFIXED_P (opval);
12862
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12863
  }
12864
}
12865
{
12866
{
12867
  {
12868
    SI opval = ADDSI (pc, 8);
12869
    SET_H_SR (FLD (f_operand2), opval);
12870
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12871
  }
12872
  {
12873
    USI opval = FLD (i_const32_pcrel);
12874
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12875
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12876
  }
12877
}
12878
}
12879
}
12880
 
12881
  SEM_BRANCH_FINI (vpc);
12882
#undef FLD
12883
}
12884
  NEXT (vpc);
12885
 
12886
  CASE (sem, INSN_JASC_R) : /* jasc ${Rs},${Pd} */
12887
{
12888
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12889
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12890
#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
12891
  int UNUSED written = 0;
12892
  IADDR UNUSED pc = abuf->addr;
12893
  SEM_BRANCH_INIT
12894
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
12895
 
12896
{
12897
{
12898
  {
12899
    BI opval = 0;
12900
    CPU (h_xbit) = opval;
12901
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12902
  }
12903
  {
12904
    BI opval = 0;
12905
    SET_H_INSN_PREFIXED_P (opval);
12906
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12907
  }
12908
}
12909
{
12910
{
12911
  {
12912
    SI opval = ADDSI (pc, 8);
12913
    SET_H_SR (FLD (f_operand2), opval);
12914
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12915
  }
12916
  {
12917
    USI opval = GET_H_GR (FLD (f_operand1));
12918
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
12919
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12920
  }
12921
}
12922
}
12923
}
12924
 
12925
  SEM_BRANCH_FINI (vpc);
12926
#undef FLD
12927
}
12928
  NEXT (vpc);
12929
 
12930
  CASE (sem, INSN_JASC_C) : /* jasc ${const32},${Pd} */
12931
{
12932
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12933
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12934
#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
12935
  int UNUSED written = 0;
12936
  IADDR UNUSED pc = abuf->addr;
12937
  SEM_BRANCH_INIT
12938
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
12939
 
12940
{
12941
{
12942
  {
12943
    BI opval = 0;
12944
    CPU (h_xbit) = opval;
12945
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12946
  }
12947
  {
12948
    BI opval = 0;
12949
    SET_H_INSN_PREFIXED_P (opval);
12950
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12951
  }
12952
}
12953
{
12954
{
12955
  {
12956
    SI opval = ADDSI (pc, 12);
12957
    SET_H_SR (FLD (f_operand2), opval);
12958
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
12959
  }
12960
  {
12961
    USI opval = FLD (f_indir_pc__dword);
12962
    SEM_BRANCH_VIA_CACHE (current_cpu, sem_arg, opval, vpc);
12963
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
12964
  }
12965
}
12966
}
12967
}
12968
 
12969
  SEM_BRANCH_FINI (vpc);
12970
#undef FLD
12971
}
12972
  NEXT (vpc);
12973
 
12974
  CASE (sem, INSN_BASC_C) : /* basc ${const32},${Pd} */
12975
{
12976
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
12977
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12978
#define FLD(f) abuf->fields.sfmt_bas_c.f
12979
  int UNUSED written = 0;
12980
  IADDR UNUSED pc = abuf->addr;
12981
  SEM_BRANCH_INIT
12982
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
12983
 
12984
{
12985
{
12986
  {
12987
    BI opval = 0;
12988
    CPU (h_xbit) = opval;
12989
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
12990
  }
12991
  {
12992
    BI opval = 0;
12993
    SET_H_INSN_PREFIXED_P (opval);
12994
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
12995
  }
12996
}
12997
{
12998
{
12999
  {
13000
    SI opval = ADDSI (pc, 12);
13001
    SET_H_SR (FLD (f_operand2), opval);
13002
    TRACE_RESULT (current_cpu, abuf, "sr", 'x', opval);
13003
  }
13004
  {
13005
    USI opval = FLD (i_const32_pcrel);
13006
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
13007
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
13008
  }
13009
}
13010
}
13011
}
13012
 
13013
  SEM_BRANCH_FINI (vpc);
13014
#undef FLD
13015
}
13016
  NEXT (vpc);
13017
 
13018
  CASE (sem, INSN_BREAK) : /* break $n */
13019
{
13020
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13021
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13022
#define FLD(f) abuf->fields.sfmt_break.f
13023
  int UNUSED written = 0;
13024
  IADDR UNUSED pc = abuf->addr;
13025
  SEM_BRANCH_INIT
13026
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13027
 
13028
{
13029
{
13030
  {
13031
    BI opval = 0;
13032
    CPU (h_xbit) = opval;
13033
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13034
  }
13035
  {
13036
    BI opval = 0;
13037
    SET_H_INSN_PREFIXED_P (opval);
13038
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13039
  }
13040
}
13041
  {
13042
    USI opval = crisv32f_break_handler (current_cpu, FLD (f_u4), pc);
13043
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
13044
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
13045
  }
13046
}
13047
 
13048
  SEM_BRANCH_FINI (vpc);
13049
#undef FLD
13050
}
13051
  NEXT (vpc);
13052
 
13053
  CASE (sem, INSN_BOUND_R_B_R) : /* bound-r.b ${Rs},${Rd} */
13054
{
13055
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13056
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13057
#define FLD(f) abuf->fields.sfmt_muls_b.f
13058
  int UNUSED written = 0;
13059
  IADDR UNUSED pc = abuf->addr;
13060
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13061
 
13062
{
13063
  SI tmp_tmpopd;
13064
  SI tmp_tmpops;
13065
  SI tmp_newval;
13066
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (GET_H_GR (FLD (f_operand1))));
13067
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13068
  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13069
  {
13070
    SI opval = tmp_newval;
13071
    SET_H_GR (FLD (f_operand2), opval);
13072
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13073
  }
13074
{
13075
  {
13076
    BI opval = LTSI (tmp_newval, 0);
13077
    CPU (h_nbit) = opval;
13078
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13079
  }
13080
  {
13081
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13082
    CPU (h_zbit) = opval;
13083
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13084
  }
13085
SET_H_CBIT_MOVE (0);
13086
SET_H_VBIT_MOVE (0);
13087
{
13088
  {
13089
    BI opval = 0;
13090
    CPU (h_xbit) = opval;
13091
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13092
  }
13093
  {
13094
    BI opval = 0;
13095
    SET_H_INSN_PREFIXED_P (opval);
13096
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13097
  }
13098
}
13099
}
13100
}
13101
 
13102
#undef FLD
13103
}
13104
  NEXT (vpc);
13105
 
13106
  CASE (sem, INSN_BOUND_R_W_R) : /* bound-r.w ${Rs},${Rd} */
13107
{
13108
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13109
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13110
#define FLD(f) abuf->fields.sfmt_muls_b.f
13111
  int UNUSED written = 0;
13112
  IADDR UNUSED pc = abuf->addr;
13113
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13114
 
13115
{
13116
  SI tmp_tmpopd;
13117
  SI tmp_tmpops;
13118
  SI tmp_newval;
13119
  tmp_tmpops = ZEXTHISI (TRUNCSIHI (GET_H_GR (FLD (f_operand1))));
13120
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13121
  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13122
  {
13123
    SI opval = tmp_newval;
13124
    SET_H_GR (FLD (f_operand2), opval);
13125
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13126
  }
13127
{
13128
  {
13129
    BI opval = LTSI (tmp_newval, 0);
13130
    CPU (h_nbit) = opval;
13131
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13132
  }
13133
  {
13134
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13135
    CPU (h_zbit) = opval;
13136
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13137
  }
13138
SET_H_CBIT_MOVE (0);
13139
SET_H_VBIT_MOVE (0);
13140
{
13141
  {
13142
    BI opval = 0;
13143
    CPU (h_xbit) = opval;
13144
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13145
  }
13146
  {
13147
    BI opval = 0;
13148
    SET_H_INSN_PREFIXED_P (opval);
13149
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13150
  }
13151
}
13152
}
13153
}
13154
 
13155
#undef FLD
13156
}
13157
  NEXT (vpc);
13158
 
13159
  CASE (sem, INSN_BOUND_R_D_R) : /* bound-r.d ${Rs},${Rd} */
13160
{
13161
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13162
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13163
#define FLD(f) abuf->fields.sfmt_muls_b.f
13164
  int UNUSED written = 0;
13165
  IADDR UNUSED pc = abuf->addr;
13166
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13167
 
13168
{
13169
  SI tmp_tmpopd;
13170
  SI tmp_tmpops;
13171
  SI tmp_newval;
13172
  tmp_tmpops = TRUNCSISI (GET_H_GR (FLD (f_operand1)));
13173
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13174
  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13175
  {
13176
    SI opval = tmp_newval;
13177
    SET_H_GR (FLD (f_operand2), opval);
13178
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13179
  }
13180
{
13181
  {
13182
    BI opval = LTSI (tmp_newval, 0);
13183
    CPU (h_nbit) = opval;
13184
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13185
  }
13186
  {
13187
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13188
    CPU (h_zbit) = opval;
13189
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13190
  }
13191
SET_H_CBIT_MOVE (0);
13192
SET_H_VBIT_MOVE (0);
13193
{
13194
  {
13195
    BI opval = 0;
13196
    CPU (h_xbit) = opval;
13197
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13198
  }
13199
  {
13200
    BI opval = 0;
13201
    SET_H_INSN_PREFIXED_P (opval);
13202
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13203
  }
13204
}
13205
}
13206
}
13207
 
13208
#undef FLD
13209
}
13210
  NEXT (vpc);
13211
 
13212
  CASE (sem, INSN_BOUND_CB) : /* bound.b [PC+],${Rd} */
13213
{
13214
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13215
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13216
#define FLD(f) abuf->fields.sfmt_bound_cb.f
13217
  int UNUSED written = 0;
13218
  IADDR UNUSED pc = abuf->addr;
13219
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13220
 
13221
{
13222
  SI tmp_tmpopd;
13223
  SI tmp_tmpops;
13224
  SI tmp_newval;
13225
  tmp_tmpops = ZEXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte)));
13226
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13227
  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13228
  {
13229
    SI opval = tmp_newval;
13230
    SET_H_GR (FLD (f_operand2), opval);
13231
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13232
  }
13233
{
13234
  {
13235
    BI opval = LTSI (tmp_newval, 0);
13236
    CPU (h_nbit) = opval;
13237
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13238
  }
13239
  {
13240
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13241
    CPU (h_zbit) = opval;
13242
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13243
  }
13244
SET_H_CBIT_MOVE (0);
13245
SET_H_VBIT_MOVE (0);
13246
{
13247
  {
13248
    BI opval = 0;
13249
    CPU (h_xbit) = opval;
13250
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13251
  }
13252
  {
13253
    BI opval = 0;
13254
    SET_H_INSN_PREFIXED_P (opval);
13255
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13256
  }
13257
}
13258
}
13259
}
13260
 
13261
#undef FLD
13262
}
13263
  NEXT (vpc);
13264
 
13265
  CASE (sem, INSN_BOUND_CW) : /* bound.w [PC+],${Rd} */
13266
{
13267
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13268
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13269
#define FLD(f) abuf->fields.sfmt_bound_cw.f
13270
  int UNUSED written = 0;
13271
  IADDR UNUSED pc = abuf->addr;
13272
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13273
 
13274
{
13275
  SI tmp_tmpopd;
13276
  SI tmp_tmpops;
13277
  SI tmp_newval;
13278
  tmp_tmpops = ZEXTSISI (FLD (f_indir_pc__word));
13279
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13280
  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13281
  {
13282
    SI opval = tmp_newval;
13283
    SET_H_GR (FLD (f_operand2), opval);
13284
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13285
  }
13286
{
13287
  {
13288
    BI opval = LTSI (tmp_newval, 0);
13289
    CPU (h_nbit) = opval;
13290
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13291
  }
13292
  {
13293
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13294
    CPU (h_zbit) = opval;
13295
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13296
  }
13297
SET_H_CBIT_MOVE (0);
13298
SET_H_VBIT_MOVE (0);
13299
{
13300
  {
13301
    BI opval = 0;
13302
    CPU (h_xbit) = opval;
13303
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13304
  }
13305
  {
13306
    BI opval = 0;
13307
    SET_H_INSN_PREFIXED_P (opval);
13308
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13309
  }
13310
}
13311
}
13312
}
13313
 
13314
#undef FLD
13315
}
13316
  NEXT (vpc);
13317
 
13318
  CASE (sem, INSN_BOUND_CD) : /* bound.d [PC+],${Rd} */
13319
{
13320
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13321
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13322
#define FLD(f) abuf->fields.sfmt_bound_cd.f
13323
  int UNUSED written = 0;
13324
  IADDR UNUSED pc = abuf->addr;
13325
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13326
 
13327
{
13328
  SI tmp_tmpopd;
13329
  SI tmp_tmpops;
13330
  SI tmp_newval;
13331
  tmp_tmpops = FLD (f_indir_pc__dword);
13332
  tmp_tmpopd = GET_H_GR (FLD (f_operand2));
13333
  tmp_newval = ((LTUSI (tmp_tmpops, tmp_tmpopd)) ? (tmp_tmpops) : (tmp_tmpopd));
13334
  {
13335
    SI opval = tmp_newval;
13336
    SET_H_GR (FLD (f_operand2), opval);
13337
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13338
  }
13339
{
13340
  {
13341
    BI opval = LTSI (tmp_newval, 0);
13342
    CPU (h_nbit) = opval;
13343
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13344
  }
13345
  {
13346
    BI opval = ANDIF (EQSI (tmp_newval, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13347
    CPU (h_zbit) = opval;
13348
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13349
  }
13350
SET_H_CBIT_MOVE (0);
13351
SET_H_VBIT_MOVE (0);
13352
{
13353
  {
13354
    BI opval = 0;
13355
    CPU (h_xbit) = opval;
13356
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13357
  }
13358
  {
13359
    BI opval = 0;
13360
    SET_H_INSN_PREFIXED_P (opval);
13361
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13362
  }
13363
}
13364
}
13365
}
13366
 
13367
#undef FLD
13368
}
13369
  NEXT (vpc);
13370
 
13371
  CASE (sem, INSN_SCC) : /* s${cc} ${Rd-sfield} */
13372
{
13373
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13374
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13375
#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
13376
  int UNUSED written = 0;
13377
  IADDR UNUSED pc = abuf->addr;
13378
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13379
 
13380
{
13381
  BI tmp_truthval;
13382
  tmp_truthval = ({   SI tmp_tmpcond;
13383
  BI tmp_condres;
13384
  tmp_tmpcond = FLD (f_operand2);
13385
; if (EQSI (tmp_tmpcond, 0)) {
13386
  tmp_condres = NOTBI (CPU (h_cbit));
13387
}
13388
 else if (EQSI (tmp_tmpcond, 1)) {
13389
  tmp_condres = CPU (h_cbit);
13390
}
13391
 else if (EQSI (tmp_tmpcond, 2)) {
13392
  tmp_condres = NOTBI (CPU (h_zbit));
13393
}
13394
 else if (EQSI (tmp_tmpcond, 3)) {
13395
  tmp_condres = CPU (h_zbit);
13396
}
13397
 else if (EQSI (tmp_tmpcond, 4)) {
13398
  tmp_condres = NOTBI (CPU (h_vbit));
13399
}
13400
 else if (EQSI (tmp_tmpcond, 5)) {
13401
  tmp_condres = CPU (h_vbit);
13402
}
13403
 else if (EQSI (tmp_tmpcond, 6)) {
13404
  tmp_condres = NOTBI (CPU (h_nbit));
13405
}
13406
 else if (EQSI (tmp_tmpcond, 7)) {
13407
  tmp_condres = CPU (h_nbit);
13408
}
13409
 else if (EQSI (tmp_tmpcond, 8)) {
13410
  tmp_condres = ORBI (CPU (h_cbit), CPU (h_zbit));
13411
}
13412
 else if (EQSI (tmp_tmpcond, 9)) {
13413
  tmp_condres = NOTBI (ORBI (CPU (h_cbit), CPU (h_zbit)));
13414
}
13415
 else if (EQSI (tmp_tmpcond, 10)) {
13416
  tmp_condres = NOTBI (XORBI (CPU (h_vbit), CPU (h_nbit)));
13417
}
13418
 else if (EQSI (tmp_tmpcond, 11)) {
13419
  tmp_condres = XORBI (CPU (h_vbit), CPU (h_nbit));
13420
}
13421
 else if (EQSI (tmp_tmpcond, 12)) {
13422
  tmp_condres = NOTBI (ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit)));
13423
}
13424
 else if (EQSI (tmp_tmpcond, 13)) {
13425
  tmp_condres = ORBI (XORBI (CPU (h_vbit), CPU (h_nbit)), CPU (h_zbit));
13426
}
13427
 else if (EQSI (tmp_tmpcond, 14)) {
13428
  tmp_condres = 1;
13429
}
13430
 else if (EQSI (tmp_tmpcond, 15)) {
13431
  tmp_condres = CPU (h_pbit);
13432
}
13433
; tmp_condres; });
13434
  {
13435
    SI opval = ZEXTBISI (tmp_truthval);
13436
    SET_H_GR (FLD (f_operand1), opval);
13437
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13438
  }
13439
{
13440
  {
13441
    BI opval = 0;
13442
    CPU (h_xbit) = opval;
13443
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13444
  }
13445
  {
13446
    BI opval = 0;
13447
    SET_H_INSN_PREFIXED_P (opval);
13448
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13449
  }
13450
}
13451
}
13452
 
13453
#undef FLD
13454
}
13455
  NEXT (vpc);
13456
 
13457
  CASE (sem, INSN_LZ) : /* lz ${Rs},${Rd} */
13458
{
13459
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13460
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13461
#define FLD(f) abuf->fields.sfmt_muls_b.f
13462
  int UNUSED written = 0;
13463
  IADDR UNUSED pc = abuf->addr;
13464
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13465
 
13466
{
13467
  SI tmp_tmpd;
13468
  SI tmp_tmp;
13469
  tmp_tmp = GET_H_GR (FLD (f_operand1));
13470
  tmp_tmpd = 0;
13471
{
13472
if (GESI (tmp_tmp, 0)) {
13473
{
13474
  tmp_tmp = SLLSI (tmp_tmp, 1);
13475
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13476
}
13477
}
13478
if (GESI (tmp_tmp, 0)) {
13479
{
13480
  tmp_tmp = SLLSI (tmp_tmp, 1);
13481
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13482
}
13483
}
13484
if (GESI (tmp_tmp, 0)) {
13485
{
13486
  tmp_tmp = SLLSI (tmp_tmp, 1);
13487
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13488
}
13489
}
13490
if (GESI (tmp_tmp, 0)) {
13491
{
13492
  tmp_tmp = SLLSI (tmp_tmp, 1);
13493
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13494
}
13495
}
13496
if (GESI (tmp_tmp, 0)) {
13497
{
13498
  tmp_tmp = SLLSI (tmp_tmp, 1);
13499
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13500
}
13501
}
13502
if (GESI (tmp_tmp, 0)) {
13503
{
13504
  tmp_tmp = SLLSI (tmp_tmp, 1);
13505
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13506
}
13507
}
13508
if (GESI (tmp_tmp, 0)) {
13509
{
13510
  tmp_tmp = SLLSI (tmp_tmp, 1);
13511
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13512
}
13513
}
13514
if (GESI (tmp_tmp, 0)) {
13515
{
13516
  tmp_tmp = SLLSI (tmp_tmp, 1);
13517
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13518
}
13519
}
13520
if (GESI (tmp_tmp, 0)) {
13521
{
13522
  tmp_tmp = SLLSI (tmp_tmp, 1);
13523
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13524
}
13525
}
13526
if (GESI (tmp_tmp, 0)) {
13527
{
13528
  tmp_tmp = SLLSI (tmp_tmp, 1);
13529
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13530
}
13531
}
13532
if (GESI (tmp_tmp, 0)) {
13533
{
13534
  tmp_tmp = SLLSI (tmp_tmp, 1);
13535
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13536
}
13537
}
13538
if (GESI (tmp_tmp, 0)) {
13539
{
13540
  tmp_tmp = SLLSI (tmp_tmp, 1);
13541
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13542
}
13543
}
13544
if (GESI (tmp_tmp, 0)) {
13545
{
13546
  tmp_tmp = SLLSI (tmp_tmp, 1);
13547
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13548
}
13549
}
13550
if (GESI (tmp_tmp, 0)) {
13551
{
13552
  tmp_tmp = SLLSI (tmp_tmp, 1);
13553
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13554
}
13555
}
13556
if (GESI (tmp_tmp, 0)) {
13557
{
13558
  tmp_tmp = SLLSI (tmp_tmp, 1);
13559
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13560
}
13561
}
13562
if (GESI (tmp_tmp, 0)) {
13563
{
13564
  tmp_tmp = SLLSI (tmp_tmp, 1);
13565
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13566
}
13567
}
13568
if (GESI (tmp_tmp, 0)) {
13569
{
13570
  tmp_tmp = SLLSI (tmp_tmp, 1);
13571
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13572
}
13573
}
13574
if (GESI (tmp_tmp, 0)) {
13575
{
13576
  tmp_tmp = SLLSI (tmp_tmp, 1);
13577
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13578
}
13579
}
13580
if (GESI (tmp_tmp, 0)) {
13581
{
13582
  tmp_tmp = SLLSI (tmp_tmp, 1);
13583
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13584
}
13585
}
13586
if (GESI (tmp_tmp, 0)) {
13587
{
13588
  tmp_tmp = SLLSI (tmp_tmp, 1);
13589
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13590
}
13591
}
13592
if (GESI (tmp_tmp, 0)) {
13593
{
13594
  tmp_tmp = SLLSI (tmp_tmp, 1);
13595
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13596
}
13597
}
13598
if (GESI (tmp_tmp, 0)) {
13599
{
13600
  tmp_tmp = SLLSI (tmp_tmp, 1);
13601
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13602
}
13603
}
13604
if (GESI (tmp_tmp, 0)) {
13605
{
13606
  tmp_tmp = SLLSI (tmp_tmp, 1);
13607
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13608
}
13609
}
13610
if (GESI (tmp_tmp, 0)) {
13611
{
13612
  tmp_tmp = SLLSI (tmp_tmp, 1);
13613
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13614
}
13615
}
13616
if (GESI (tmp_tmp, 0)) {
13617
{
13618
  tmp_tmp = SLLSI (tmp_tmp, 1);
13619
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13620
}
13621
}
13622
if (GESI (tmp_tmp, 0)) {
13623
{
13624
  tmp_tmp = SLLSI (tmp_tmp, 1);
13625
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13626
}
13627
}
13628
if (GESI (tmp_tmp, 0)) {
13629
{
13630
  tmp_tmp = SLLSI (tmp_tmp, 1);
13631
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13632
}
13633
}
13634
if (GESI (tmp_tmp, 0)) {
13635
{
13636
  tmp_tmp = SLLSI (tmp_tmp, 1);
13637
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13638
}
13639
}
13640
if (GESI (tmp_tmp, 0)) {
13641
{
13642
  tmp_tmp = SLLSI (tmp_tmp, 1);
13643
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13644
}
13645
}
13646
if (GESI (tmp_tmp, 0)) {
13647
{
13648
  tmp_tmp = SLLSI (tmp_tmp, 1);
13649
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13650
}
13651
}
13652
if (GESI (tmp_tmp, 0)) {
13653
{
13654
  tmp_tmp = SLLSI (tmp_tmp, 1);
13655
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13656
}
13657
}
13658
if (GESI (tmp_tmp, 0)) {
13659
{
13660
  tmp_tmp = SLLSI (tmp_tmp, 1);
13661
  tmp_tmpd = ADDSI (tmp_tmpd, 1);
13662
}
13663
}
13664
}
13665
  {
13666
    SI opval = tmp_tmpd;
13667
    SET_H_GR (FLD (f_operand2), opval);
13668
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13669
  }
13670
{
13671
  {
13672
    BI opval = LTSI (tmp_tmpd, 0);
13673
    CPU (h_nbit) = opval;
13674
    TRACE_RESULT (current_cpu, abuf, "nbit", 'x', opval);
13675
  }
13676
  {
13677
    BI opval = ANDIF (EQSI (tmp_tmpd, 0), ((CPU (h_xbit)) ? (CPU (h_zbit)) : (1)));
13678
    CPU (h_zbit) = opval;
13679
    TRACE_RESULT (current_cpu, abuf, "zbit", 'x', opval);
13680
  }
13681
SET_H_CBIT_MOVE (0);
13682
SET_H_VBIT_MOVE (0);
13683
{
13684
  {
13685
    BI opval = 0;
13686
    CPU (h_xbit) = opval;
13687
    TRACE_RESULT (current_cpu, abuf, "xbit", 'x', opval);
13688
  }
13689
  {
13690
    BI opval = 0;
13691
    SET_H_INSN_PREFIXED_P (opval);
13692
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13693
  }
13694
}
13695
}
13696
}
13697
 
13698
#undef FLD
13699
}
13700
  NEXT (vpc);
13701
 
13702
  CASE (sem, INSN_ADDOQ) : /* addoq $o,$Rs,ACR */
13703
{
13704
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13705
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13706
#define FLD(f) abuf->fields.sfmt_addoq.f
13707
  int UNUSED written = 0;
13708
  IADDR UNUSED pc = abuf->addr;
13709
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13710
 
13711
{
13712
  {
13713
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), FLD (f_s8));
13714
    SET_H_PREFIXREG_V32 (opval);
13715
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13716
  }
13717
  {
13718
    BI opval = 1;
13719
    SET_H_INSN_PREFIXED_P (opval);
13720
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13721
  }
13722
}
13723
 
13724
#undef FLD
13725
}
13726
  NEXT (vpc);
13727
 
13728
  CASE (sem, INSN_ADDO_M_B_M) : /* addo-m.b [${Rs}${inc}],$Rd,ACR */
13729
{
13730
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13731
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13732
#define FLD(f) abuf->fields.sfmt_addc_m.f
13733
  int UNUSED written = 0;
13734
  IADDR UNUSED pc = abuf->addr;
13735
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13736
 
13737
{
13738
  QI tmp_tmps;
13739
  tmp_tmps = ({   SI tmp_addr;
13740
  QI tmp_tmp_mem;
13741
  BI tmp_postinc;
13742
  tmp_postinc = FLD (f_memmode);
13743
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
13744
;   tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
13745
; if (NEBI (tmp_postinc, 0)) {
13746
{
13747
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13748
  tmp_addr = ADDSI (tmp_addr, 1);
13749
}
13750
  {
13751
    SI opval = tmp_addr;
13752
    SET_H_GR (FLD (f_operand1), opval);
13753
    written |= (1 << 6);
13754
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13755
  }
13756
}
13757
}
13758
; tmp_tmp_mem; });
13759
  {
13760
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTQISI (tmp_tmps));
13761
    SET_H_PREFIXREG_V32 (opval);
13762
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13763
  }
13764
  {
13765
    BI opval = 1;
13766
    SET_H_INSN_PREFIXED_P (opval);
13767
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13768
  }
13769
}
13770
 
13771
  abuf->written = written;
13772
#undef FLD
13773
}
13774
  NEXT (vpc);
13775
 
13776
  CASE (sem, INSN_ADDO_M_W_M) : /* addo-m.w [${Rs}${inc}],$Rd,ACR */
13777
{
13778
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13779
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13780
#define FLD(f) abuf->fields.sfmt_addc_m.f
13781
  int UNUSED written = 0;
13782
  IADDR UNUSED pc = abuf->addr;
13783
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13784
 
13785
{
13786
  HI tmp_tmps;
13787
  tmp_tmps = ({   SI tmp_addr;
13788
  HI tmp_tmp_mem;
13789
  BI tmp_postinc;
13790
  tmp_postinc = FLD (f_memmode);
13791
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
13792
;   tmp_tmp_mem = GETMEMHI (current_cpu, pc, tmp_addr);
13793
; if (NEBI (tmp_postinc, 0)) {
13794
{
13795
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13796
  tmp_addr = ADDSI (tmp_addr, 2);
13797
}
13798
  {
13799
    SI opval = tmp_addr;
13800
    SET_H_GR (FLD (f_operand1), opval);
13801
    written |= (1 << 6);
13802
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13803
  }
13804
}
13805
}
13806
; tmp_tmp_mem; });
13807
  {
13808
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTHISI (tmp_tmps));
13809
    SET_H_PREFIXREG_V32 (opval);
13810
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13811
  }
13812
  {
13813
    BI opval = 1;
13814
    SET_H_INSN_PREFIXED_P (opval);
13815
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13816
  }
13817
}
13818
 
13819
  abuf->written = written;
13820
#undef FLD
13821
}
13822
  NEXT (vpc);
13823
 
13824
  CASE (sem, INSN_ADDO_M_D_M) : /* addo-m.d [${Rs}${inc}],$Rd,ACR */
13825
{
13826
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13827
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13828
#define FLD(f) abuf->fields.sfmt_addc_m.f
13829
  int UNUSED written = 0;
13830
  IADDR UNUSED pc = abuf->addr;
13831
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13832
 
13833
{
13834
  SI tmp_tmps;
13835
  tmp_tmps = ({   SI tmp_addr;
13836
  SI tmp_tmp_mem;
13837
  BI tmp_postinc;
13838
  tmp_postinc = FLD (f_memmode);
13839
;   tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
13840
;   tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
13841
; if (NEBI (tmp_postinc, 0)) {
13842
{
13843
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
13844
  tmp_addr = ADDSI (tmp_addr, 4);
13845
}
13846
  {
13847
    SI opval = tmp_addr;
13848
    SET_H_GR (FLD (f_operand1), opval);
13849
    written |= (1 << 6);
13850
    TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
13851
  }
13852
}
13853
}
13854
; tmp_tmp_mem; });
13855
  {
13856
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), tmp_tmps);
13857
    SET_H_PREFIXREG_V32 (opval);
13858
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13859
  }
13860
  {
13861
    BI opval = 1;
13862
    SET_H_INSN_PREFIXED_P (opval);
13863
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13864
  }
13865
}
13866
 
13867
  abuf->written = written;
13868
#undef FLD
13869
}
13870
  NEXT (vpc);
13871
 
13872
  CASE (sem, INSN_ADDO_CB) : /* addo.b [PC+],$Rd,ACR */
13873
{
13874
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13875
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13876
#define FLD(f) abuf->fields.sfmt_bound_cb.f
13877
  int UNUSED written = 0;
13878
  IADDR UNUSED pc = abuf->addr;
13879
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13880
 
13881
{
13882
  {
13883
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTQISI (TRUNCSIQI (FLD (f_indir_pc__byte))));
13884
    SET_H_PREFIXREG_V32 (opval);
13885
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13886
  }
13887
  {
13888
    BI opval = 1;
13889
    SET_H_INSN_PREFIXED_P (opval);
13890
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13891
  }
13892
}
13893
 
13894
#undef FLD
13895
}
13896
  NEXT (vpc);
13897
 
13898
  CASE (sem, INSN_ADDO_CW) : /* addo.w [PC+],$Rd,ACR */
13899
{
13900
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13901
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13902
#define FLD(f) abuf->fields.sfmt_bound_cw.f
13903
  int UNUSED written = 0;
13904
  IADDR UNUSED pc = abuf->addr;
13905
  vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13906
 
13907
{
13908
  {
13909
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), EXTHISI (TRUNCSIHI (FLD (f_indir_pc__word))));
13910
    SET_H_PREFIXREG_V32 (opval);
13911
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13912
  }
13913
  {
13914
    BI opval = 1;
13915
    SET_H_INSN_PREFIXED_P (opval);
13916
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13917
  }
13918
}
13919
 
13920
#undef FLD
13921
}
13922
  NEXT (vpc);
13923
 
13924
  CASE (sem, INSN_ADDO_CD) : /* addo.d [PC+],$Rd,ACR */
13925
{
13926
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13927
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13928
#define FLD(f) abuf->fields.sfmt_bound_cd.f
13929
  int UNUSED written = 0;
13930
  IADDR UNUSED pc = abuf->addr;
13931
  vpc = SEM_NEXT_VPC (sem_arg, pc, 6);
13932
 
13933
{
13934
  {
13935
    SI opval = ADDSI (GET_H_GR (FLD (f_operand2)), FLD (f_indir_pc__dword));
13936
    SET_H_PREFIXREG_V32 (opval);
13937
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13938
  }
13939
  {
13940
    BI opval = 1;
13941
    SET_H_INSN_PREFIXED_P (opval);
13942
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13943
  }
13944
}
13945
 
13946
#undef FLD
13947
}
13948
  NEXT (vpc);
13949
 
13950
  CASE (sem, INSN_ADDI_ACR_B_R) : /* addi-acr.b ${Rs-dfield}.m,${Rd-sfield},ACR */
13951
{
13952
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13953
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13954
#define FLD(f) abuf->fields.sfmt_muls_b.f
13955
  int UNUSED written = 0;
13956
  IADDR UNUSED pc = abuf->addr;
13957
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13958
 
13959
{
13960
  {
13961
    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 1));
13962
    SET_H_PREFIXREG_V32 (opval);
13963
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13964
  }
13965
  {
13966
    BI opval = 1;
13967
    SET_H_INSN_PREFIXED_P (opval);
13968
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13969
  }
13970
}
13971
 
13972
#undef FLD
13973
}
13974
  NEXT (vpc);
13975
 
13976
  CASE (sem, INSN_ADDI_ACR_W_R) : /* addi-acr.w ${Rs-dfield}.m,${Rd-sfield},ACR */
13977
{
13978
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
13979
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13980
#define FLD(f) abuf->fields.sfmt_muls_b.f
13981
  int UNUSED written = 0;
13982
  IADDR UNUSED pc = abuf->addr;
13983
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
13984
 
13985
{
13986
  {
13987
    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 2));
13988
    SET_H_PREFIXREG_V32 (opval);
13989
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
13990
  }
13991
  {
13992
    BI opval = 1;
13993
    SET_H_INSN_PREFIXED_P (opval);
13994
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
13995
  }
13996
}
13997
 
13998
#undef FLD
13999
}
14000
  NEXT (vpc);
14001
 
14002
  CASE (sem, INSN_ADDI_ACR_D_R) : /* addi-acr.d ${Rs-dfield}.m,${Rd-sfield},ACR */
14003
{
14004
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14005
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14006
#define FLD(f) abuf->fields.sfmt_muls_b.f
14007
  int UNUSED written = 0;
14008
  IADDR UNUSED pc = abuf->addr;
14009
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14010
 
14011
{
14012
  {
14013
    SI opval = ADDSI (GET_H_GR (FLD (f_operand1)), MULSI (GET_H_GR (FLD (f_operand2)), 4));
14014
    SET_H_PREFIXREG_V32 (opval);
14015
    TRACE_RESULT (current_cpu, abuf, "prefixreg", 'x', opval);
14016
  }
14017
  {
14018
    BI opval = 1;
14019
    SET_H_INSN_PREFIXED_P (opval);
14020
    TRACE_RESULT (current_cpu, abuf, "insn-prefixed-p", 'x', opval);
14021
  }
14022
}
14023
 
14024
#undef FLD
14025
}
14026
  NEXT (vpc);
14027
 
14028
  CASE (sem, INSN_FIDXI) : /* fidxi [$Rs] */
14029
{
14030
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14031
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14032
#define FLD(f) abuf->fields.sfmt_mcp.f
14033
  int UNUSED written = 0;
14034
  IADDR UNUSED pc = abuf->addr;
14035
  SEM_BRANCH_INIT
14036
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14037
 
14038
  {
14039
    USI opval = crisv32f_fidxi_handler (current_cpu, pc, GET_H_GR (FLD (f_operand1)));
14040
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
14041
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
14042
  }
14043
 
14044
  SEM_BRANCH_FINI (vpc);
14045
#undef FLD
14046
}
14047
  NEXT (vpc);
14048
 
14049
  CASE (sem, INSN_FTAGI) : /* fidxi [$Rs] */
14050
{
14051
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14052
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14053
#define FLD(f) abuf->fields.sfmt_mcp.f
14054
  int UNUSED written = 0;
14055
  IADDR UNUSED pc = abuf->addr;
14056
  SEM_BRANCH_INIT
14057
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14058
 
14059
  {
14060
    USI opval = crisv32f_ftagi_handler (current_cpu, pc, GET_H_GR (FLD (f_operand1)));
14061
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
14062
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
14063
  }
14064
 
14065
  SEM_BRANCH_FINI (vpc);
14066
#undef FLD
14067
}
14068
  NEXT (vpc);
14069
 
14070
  CASE (sem, INSN_FIDXD) : /* fidxd [$Rs] */
14071
{
14072
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14073
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14074
#define FLD(f) abuf->fields.sfmt_mcp.f
14075
  int UNUSED written = 0;
14076
  IADDR UNUSED pc = abuf->addr;
14077
  SEM_BRANCH_INIT
14078
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14079
 
14080
  {
14081
    USI opval = crisv32f_fidxd_handler (current_cpu, pc, GET_H_GR (FLD (f_operand1)));
14082
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
14083
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
14084
  }
14085
 
14086
  SEM_BRANCH_FINI (vpc);
14087
#undef FLD
14088
}
14089
  NEXT (vpc);
14090
 
14091
  CASE (sem, INSN_FTAGD) : /* ftagd [$Rs] */
14092
{
14093
  SEM_ARG sem_arg = SEM_SEM_ARG (vpc, sc);
14094
  ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14095
#define FLD(f) abuf->fields.sfmt_mcp.f
14096
  int UNUSED written = 0;
14097
  IADDR UNUSED pc = abuf->addr;
14098
  SEM_BRANCH_INIT
14099
  vpc = SEM_NEXT_VPC (sem_arg, pc, 2);
14100
 
14101
  {
14102
    USI opval = crisv32f_ftagd_handler (current_cpu, pc, GET_H_GR (FLD (f_operand1)));
14103
    SEM_BRANCH_VIA_ADDR (current_cpu, sem_arg, opval, vpc);
14104
    TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
14105
  }
14106
 
14107
  SEM_BRANCH_FINI (vpc);
14108
#undef FLD
14109
}
14110
  NEXT (vpc);
14111
 
14112
 
14113
    }
14114
  ENDSWITCH (sem) /* End of semantic switch.  */
14115
 
14116
  /* At this point `vpc' contains the next insn to execute.  */
14117
}
14118
 
14119
#undef DEFINE_SWITCH
14120
#endif /* DEFINE_SWITCH */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.