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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.1/] [sim/] [cris/] [decodev10.c] - Blame information for rev 227

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 227 jeremybenn
/* Simulator instruction decoder for crisv10f.
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
#define WANT_CPU crisv10f
26
#define WANT_CPU_CRISV10F
27
 
28
#include "sim-main.h"
29
#include "sim-assert.h"
30
#include "cgen-ops.h"
31
 
32
/* The instruction descriptor array.
33
   This is computed at runtime.  Space for it is not malloc'd to save a
34
   teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
35
   but won't be done until necessary (we don't currently support the runtime
36
   addition of instructions nor an SMP machine with different cpus).  */
37
static IDESC crisv10f_insn_data[CRISV10F_INSN__MAX];
38
 
39
/* Commas between elements are contained in the macros.
40
   Some of these are conditionally compiled out.  */
41
 
42
static const struct insn_sem crisv10f_insn_sem[] =
43
{
44
  { VIRTUAL_INSN_X_INVALID, CRISV10F_INSN_X_INVALID, CRISV10F_SFMT_EMPTY },
45
  { VIRTUAL_INSN_X_AFTER, CRISV10F_INSN_X_AFTER, CRISV10F_SFMT_EMPTY },
46
  { VIRTUAL_INSN_X_BEFORE, CRISV10F_INSN_X_BEFORE, CRISV10F_SFMT_EMPTY },
47
  { VIRTUAL_INSN_X_CTI_CHAIN, CRISV10F_INSN_X_CTI_CHAIN, CRISV10F_SFMT_EMPTY },
48
  { VIRTUAL_INSN_X_CHAIN, CRISV10F_INSN_X_CHAIN, CRISV10F_SFMT_EMPTY },
49
  { VIRTUAL_INSN_X_BEGIN, CRISV10F_INSN_X_BEGIN, CRISV10F_SFMT_EMPTY },
50
  { CRIS_INSN_NOP, CRISV10F_INSN_NOP, CRISV10F_SFMT_NOP },
51
  { CRIS_INSN_MOVE_B_R, CRISV10F_INSN_MOVE_B_R, CRISV10F_SFMT_MOVE_B_R },
52
  { CRIS_INSN_MOVE_W_R, CRISV10F_INSN_MOVE_W_R, CRISV10F_SFMT_MOVE_B_R },
53
  { CRIS_INSN_MOVE_D_R, CRISV10F_INSN_MOVE_D_R, CRISV10F_SFMT_MOVE_D_R },
54
  { CRIS_INSN_MOVEPCR, CRISV10F_INSN_MOVEPCR, CRISV10F_SFMT_MOVEPCR },
55
  { CRIS_INSN_MOVEQ, CRISV10F_INSN_MOVEQ, CRISV10F_SFMT_MOVEQ },
56
  { CRIS_INSN_MOVS_B_R, CRISV10F_INSN_MOVS_B_R, CRISV10F_SFMT_MOVS_B_R },
57
  { CRIS_INSN_MOVS_W_R, CRISV10F_INSN_MOVS_W_R, CRISV10F_SFMT_MOVS_B_R },
58
  { CRIS_INSN_MOVU_B_R, CRISV10F_INSN_MOVU_B_R, CRISV10F_SFMT_MOVS_B_R },
59
  { CRIS_INSN_MOVU_W_R, CRISV10F_INSN_MOVU_W_R, CRISV10F_SFMT_MOVS_B_R },
60
  { CRIS_INSN_MOVECBR, CRISV10F_INSN_MOVECBR, CRISV10F_SFMT_MOVECBR },
61
  { CRIS_INSN_MOVECWR, CRISV10F_INSN_MOVECWR, CRISV10F_SFMT_MOVECWR },
62
  { CRIS_INSN_MOVECDR, CRISV10F_INSN_MOVECDR, CRISV10F_SFMT_MOVECDR },
63
  { CRIS_INSN_MOVSCBR, CRISV10F_INSN_MOVSCBR, CRISV10F_SFMT_MOVSCBR },
64
  { CRIS_INSN_MOVSCWR, CRISV10F_INSN_MOVSCWR, CRISV10F_SFMT_MOVSCWR },
65
  { CRIS_INSN_MOVUCBR, CRISV10F_INSN_MOVUCBR, CRISV10F_SFMT_MOVUCBR },
66
  { CRIS_INSN_MOVUCWR, CRISV10F_INSN_MOVUCWR, CRISV10F_SFMT_MOVUCWR },
67
  { CRIS_INSN_ADDQ, CRISV10F_INSN_ADDQ, CRISV10F_SFMT_ADDQ },
68
  { CRIS_INSN_SUBQ, CRISV10F_INSN_SUBQ, CRISV10F_SFMT_ADDQ },
69
  { CRIS_INSN_CMP_R_B_R, CRISV10F_INSN_CMP_R_B_R, CRISV10F_SFMT_CMP_R_B_R },
70
  { CRIS_INSN_CMP_R_W_R, CRISV10F_INSN_CMP_R_W_R, CRISV10F_SFMT_CMP_R_B_R },
71
  { CRIS_INSN_CMP_R_D_R, CRISV10F_INSN_CMP_R_D_R, CRISV10F_SFMT_CMP_R_B_R },
72
  { CRIS_INSN_CMP_M_B_M, CRISV10F_INSN_CMP_M_B_M, CRISV10F_SFMT_CMP_M_B_M },
73
  { CRIS_INSN_CMP_M_W_M, CRISV10F_INSN_CMP_M_W_M, CRISV10F_SFMT_CMP_M_W_M },
74
  { CRIS_INSN_CMP_M_D_M, CRISV10F_INSN_CMP_M_D_M, CRISV10F_SFMT_CMP_M_D_M },
75
  { CRIS_INSN_CMPCBR, CRISV10F_INSN_CMPCBR, CRISV10F_SFMT_CMPCBR },
76
  { CRIS_INSN_CMPCWR, CRISV10F_INSN_CMPCWR, CRISV10F_SFMT_CMPCWR },
77
  { CRIS_INSN_CMPCDR, CRISV10F_INSN_CMPCDR, CRISV10F_SFMT_CMPCDR },
78
  { CRIS_INSN_CMPQ, CRISV10F_INSN_CMPQ, CRISV10F_SFMT_CMPQ },
79
  { CRIS_INSN_CMPS_M_B_M, CRISV10F_INSN_CMPS_M_B_M, CRISV10F_SFMT_CMP_M_B_M },
80
  { CRIS_INSN_CMPS_M_W_M, CRISV10F_INSN_CMPS_M_W_M, CRISV10F_SFMT_CMP_M_W_M },
81
  { CRIS_INSN_CMPSCBR, CRISV10F_INSN_CMPSCBR, CRISV10F_SFMT_CMPCBR },
82
  { CRIS_INSN_CMPSCWR, CRISV10F_INSN_CMPSCWR, CRISV10F_SFMT_CMPCWR },
83
  { CRIS_INSN_CMPU_M_B_M, CRISV10F_INSN_CMPU_M_B_M, CRISV10F_SFMT_CMP_M_B_M },
84
  { CRIS_INSN_CMPU_M_W_M, CRISV10F_INSN_CMPU_M_W_M, CRISV10F_SFMT_CMP_M_W_M },
85
  { CRIS_INSN_CMPUCBR, CRISV10F_INSN_CMPUCBR, CRISV10F_SFMT_CMPUCBR },
86
  { CRIS_INSN_CMPUCWR, CRISV10F_INSN_CMPUCWR, CRISV10F_SFMT_CMPUCWR },
87
  { CRIS_INSN_MOVE_M_B_M, CRISV10F_INSN_MOVE_M_B_M, CRISV10F_SFMT_MOVE_M_B_M },
88
  { CRIS_INSN_MOVE_M_W_M, CRISV10F_INSN_MOVE_M_W_M, CRISV10F_SFMT_MOVE_M_W_M },
89
  { CRIS_INSN_MOVE_M_D_M, CRISV10F_INSN_MOVE_M_D_M, CRISV10F_SFMT_MOVE_M_D_M },
90
  { CRIS_INSN_MOVS_M_B_M, CRISV10F_INSN_MOVS_M_B_M, CRISV10F_SFMT_MOVS_M_B_M },
91
  { CRIS_INSN_MOVS_M_W_M, CRISV10F_INSN_MOVS_M_W_M, CRISV10F_SFMT_MOVS_M_W_M },
92
  { CRIS_INSN_MOVU_M_B_M, CRISV10F_INSN_MOVU_M_B_M, CRISV10F_SFMT_MOVS_M_B_M },
93
  { CRIS_INSN_MOVU_M_W_M, CRISV10F_INSN_MOVU_M_W_M, CRISV10F_SFMT_MOVS_M_W_M },
94
  { CRIS_INSN_MOVE_R_SPRV10, CRISV10F_INSN_MOVE_R_SPRV10, CRISV10F_SFMT_MOVE_R_SPRV10 },
95
  { CRIS_INSN_MOVE_SPR_RV10, CRISV10F_INSN_MOVE_SPR_RV10, CRISV10F_SFMT_MOVE_SPR_RV10 },
96
  { CRIS_INSN_RET_TYPE, CRISV10F_INSN_RET_TYPE, CRISV10F_SFMT_RET_TYPE },
97
  { CRIS_INSN_MOVE_M_SPRV10, CRISV10F_INSN_MOVE_M_SPRV10, CRISV10F_SFMT_MOVE_M_SPRV10 },
98
  { CRIS_INSN_MOVE_C_SPRV10_P5, CRISV10F_INSN_MOVE_C_SPRV10_P5, CRISV10F_SFMT_MOVE_C_SPRV10_P5 },
99
  { CRIS_INSN_MOVE_C_SPRV10_P9, CRISV10F_INSN_MOVE_C_SPRV10_P9, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
100
  { CRIS_INSN_MOVE_C_SPRV10_P10, CRISV10F_INSN_MOVE_C_SPRV10_P10, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
101
  { CRIS_INSN_MOVE_C_SPRV10_P11, CRISV10F_INSN_MOVE_C_SPRV10_P11, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
102
  { CRIS_INSN_MOVE_C_SPRV10_P12, CRISV10F_INSN_MOVE_C_SPRV10_P12, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
103
  { CRIS_INSN_MOVE_C_SPRV10_P13, CRISV10F_INSN_MOVE_C_SPRV10_P13, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
104
  { CRIS_INSN_MOVE_C_SPRV10_P7, CRISV10F_INSN_MOVE_C_SPRV10_P7, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
105
  { CRIS_INSN_MOVE_C_SPRV10_P14, CRISV10F_INSN_MOVE_C_SPRV10_P14, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
106
  { CRIS_INSN_MOVE_C_SPRV10_P15, CRISV10F_INSN_MOVE_C_SPRV10_P15, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
107
  { CRIS_INSN_MOVE_SPR_MV10, CRISV10F_INSN_MOVE_SPR_MV10, CRISV10F_SFMT_MOVE_SPR_MV10 },
108
  { CRIS_INSN_SBFS, CRISV10F_INSN_SBFS, CRISV10F_SFMT_SBFS },
109
  { CRIS_INSN_MOVEM_R_M, CRISV10F_INSN_MOVEM_R_M, CRISV10F_SFMT_MOVEM_R_M },
110
  { CRIS_INSN_MOVEM_M_R, CRISV10F_INSN_MOVEM_M_R, CRISV10F_SFMT_MOVEM_M_R },
111
  { CRIS_INSN_MOVEM_M_PC, CRISV10F_INSN_MOVEM_M_PC, CRISV10F_SFMT_MOVEM_M_PC },
112
  { CRIS_INSN_ADD_B_R, CRISV10F_INSN_ADD_B_R, CRISV10F_SFMT_ADD_B_R },
113
  { CRIS_INSN_ADD_W_R, CRISV10F_INSN_ADD_W_R, CRISV10F_SFMT_ADD_B_R },
114
  { CRIS_INSN_ADD_D_R, CRISV10F_INSN_ADD_D_R, CRISV10F_SFMT_ADD_D_R },
115
  { CRIS_INSN_ADD_M_B_M, CRISV10F_INSN_ADD_M_B_M, CRISV10F_SFMT_ADD_M_B_M },
116
  { CRIS_INSN_ADD_M_W_M, CRISV10F_INSN_ADD_M_W_M, CRISV10F_SFMT_ADD_M_W_M },
117
  { CRIS_INSN_ADD_M_D_M, CRISV10F_INSN_ADD_M_D_M, CRISV10F_SFMT_ADD_M_D_M },
118
  { CRIS_INSN_ADDCBR, CRISV10F_INSN_ADDCBR, CRISV10F_SFMT_ADDCBR },
119
  { CRIS_INSN_ADDCWR, CRISV10F_INSN_ADDCWR, CRISV10F_SFMT_ADDCWR },
120
  { CRIS_INSN_ADDCDR, CRISV10F_INSN_ADDCDR, CRISV10F_SFMT_ADDCDR },
121
  { CRIS_INSN_ADDCPC, CRISV10F_INSN_ADDCPC, CRISV10F_SFMT_ADDCPC },
122
  { CRIS_INSN_ADDS_B_R, CRISV10F_INSN_ADDS_B_R, CRISV10F_SFMT_ADD_D_R },
123
  { CRIS_INSN_ADDS_W_R, CRISV10F_INSN_ADDS_W_R, CRISV10F_SFMT_ADD_D_R },
124
  { CRIS_INSN_ADDS_M_B_M, CRISV10F_INSN_ADDS_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
125
  { CRIS_INSN_ADDS_M_W_M, CRISV10F_INSN_ADDS_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
126
  { CRIS_INSN_ADDSCBR, CRISV10F_INSN_ADDSCBR, CRISV10F_SFMT_ADDSCBR },
127
  { CRIS_INSN_ADDSCWR, CRISV10F_INSN_ADDSCWR, CRISV10F_SFMT_ADDSCWR },
128
  { CRIS_INSN_ADDSPCPC, CRISV10F_INSN_ADDSPCPC, CRISV10F_SFMT_ADDSPCPC },
129
  { CRIS_INSN_ADDU_B_R, CRISV10F_INSN_ADDU_B_R, CRISV10F_SFMT_ADD_D_R },
130
  { CRIS_INSN_ADDU_W_R, CRISV10F_INSN_ADDU_W_R, CRISV10F_SFMT_ADD_D_R },
131
  { CRIS_INSN_ADDU_M_B_M, CRISV10F_INSN_ADDU_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
132
  { CRIS_INSN_ADDU_M_W_M, CRISV10F_INSN_ADDU_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
133
  { CRIS_INSN_ADDUCBR, CRISV10F_INSN_ADDUCBR, CRISV10F_SFMT_ADDSCBR },
134
  { CRIS_INSN_ADDUCWR, CRISV10F_INSN_ADDUCWR, CRISV10F_SFMT_ADDSCWR },
135
  { CRIS_INSN_SUB_B_R, CRISV10F_INSN_SUB_B_R, CRISV10F_SFMT_ADD_B_R },
136
  { CRIS_INSN_SUB_W_R, CRISV10F_INSN_SUB_W_R, CRISV10F_SFMT_ADD_B_R },
137
  { CRIS_INSN_SUB_D_R, CRISV10F_INSN_SUB_D_R, CRISV10F_SFMT_ADD_D_R },
138
  { CRIS_INSN_SUB_M_B_M, CRISV10F_INSN_SUB_M_B_M, CRISV10F_SFMT_ADD_M_B_M },
139
  { CRIS_INSN_SUB_M_W_M, CRISV10F_INSN_SUB_M_W_M, CRISV10F_SFMT_ADD_M_W_M },
140
  { CRIS_INSN_SUB_M_D_M, CRISV10F_INSN_SUB_M_D_M, CRISV10F_SFMT_ADD_M_D_M },
141
  { CRIS_INSN_SUBCBR, CRISV10F_INSN_SUBCBR, CRISV10F_SFMT_ADDCBR },
142
  { CRIS_INSN_SUBCWR, CRISV10F_INSN_SUBCWR, CRISV10F_SFMT_ADDCWR },
143
  { CRIS_INSN_SUBCDR, CRISV10F_INSN_SUBCDR, CRISV10F_SFMT_ADDCDR },
144
  { CRIS_INSN_SUBS_B_R, CRISV10F_INSN_SUBS_B_R, CRISV10F_SFMT_ADD_D_R },
145
  { CRIS_INSN_SUBS_W_R, CRISV10F_INSN_SUBS_W_R, CRISV10F_SFMT_ADD_D_R },
146
  { CRIS_INSN_SUBS_M_B_M, CRISV10F_INSN_SUBS_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
147
  { CRIS_INSN_SUBS_M_W_M, CRISV10F_INSN_SUBS_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
148
  { CRIS_INSN_SUBSCBR, CRISV10F_INSN_SUBSCBR, CRISV10F_SFMT_ADDSCBR },
149
  { CRIS_INSN_SUBSCWR, CRISV10F_INSN_SUBSCWR, CRISV10F_SFMT_ADDSCWR },
150
  { CRIS_INSN_SUBU_B_R, CRISV10F_INSN_SUBU_B_R, CRISV10F_SFMT_ADD_D_R },
151
  { CRIS_INSN_SUBU_W_R, CRISV10F_INSN_SUBU_W_R, CRISV10F_SFMT_ADD_D_R },
152
  { CRIS_INSN_SUBU_M_B_M, CRISV10F_INSN_SUBU_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
153
  { CRIS_INSN_SUBU_M_W_M, CRISV10F_INSN_SUBU_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
154
  { CRIS_INSN_SUBUCBR, CRISV10F_INSN_SUBUCBR, CRISV10F_SFMT_ADDSCBR },
155
  { CRIS_INSN_SUBUCWR, CRISV10F_INSN_SUBUCWR, CRISV10F_SFMT_ADDSCWR },
156
  { CRIS_INSN_ADDI_B_R, CRISV10F_INSN_ADDI_B_R, CRISV10F_SFMT_ADDI_B_R },
157
  { CRIS_INSN_ADDI_W_R, CRISV10F_INSN_ADDI_W_R, CRISV10F_SFMT_ADDI_B_R },
158
  { CRIS_INSN_ADDI_D_R, CRISV10F_INSN_ADDI_D_R, CRISV10F_SFMT_ADDI_B_R },
159
  { CRIS_INSN_NEG_B_R, CRISV10F_INSN_NEG_B_R, CRISV10F_SFMT_NEG_B_R },
160
  { CRIS_INSN_NEG_W_R, CRISV10F_INSN_NEG_W_R, CRISV10F_SFMT_NEG_B_R },
161
  { CRIS_INSN_NEG_D_R, CRISV10F_INSN_NEG_D_R, CRISV10F_SFMT_NEG_D_R },
162
  { CRIS_INSN_TEST_M_B_M, CRISV10F_INSN_TEST_M_B_M, CRISV10F_SFMT_TEST_M_B_M },
163
  { CRIS_INSN_TEST_M_W_M, CRISV10F_INSN_TEST_M_W_M, CRISV10F_SFMT_TEST_M_W_M },
164
  { CRIS_INSN_TEST_M_D_M, CRISV10F_INSN_TEST_M_D_M, CRISV10F_SFMT_TEST_M_D_M },
165
  { CRIS_INSN_MOVE_R_M_B_M, CRISV10F_INSN_MOVE_R_M_B_M, CRISV10F_SFMT_MOVE_R_M_B_M },
166
  { CRIS_INSN_MOVE_R_M_W_M, CRISV10F_INSN_MOVE_R_M_W_M, CRISV10F_SFMT_MOVE_R_M_W_M },
167
  { CRIS_INSN_MOVE_R_M_D_M, CRISV10F_INSN_MOVE_R_M_D_M, CRISV10F_SFMT_MOVE_R_M_D_M },
168
  { CRIS_INSN_MULS_B, CRISV10F_INSN_MULS_B, CRISV10F_SFMT_MULS_B },
169
  { CRIS_INSN_MULS_W, CRISV10F_INSN_MULS_W, CRISV10F_SFMT_MULS_B },
170
  { CRIS_INSN_MULS_D, CRISV10F_INSN_MULS_D, CRISV10F_SFMT_MULS_B },
171
  { CRIS_INSN_MULU_B, CRISV10F_INSN_MULU_B, CRISV10F_SFMT_MULS_B },
172
  { CRIS_INSN_MULU_W, CRISV10F_INSN_MULU_W, CRISV10F_SFMT_MULS_B },
173
  { CRIS_INSN_MULU_D, CRISV10F_INSN_MULU_D, CRISV10F_SFMT_MULS_B },
174
  { CRIS_INSN_MSTEP, CRISV10F_INSN_MSTEP, CRISV10F_SFMT_MSTEP },
175
  { CRIS_INSN_DSTEP, CRISV10F_INSN_DSTEP, CRISV10F_SFMT_DSTEP },
176
  { CRIS_INSN_ABS, CRISV10F_INSN_ABS, CRISV10F_SFMT_MOVS_B_R },
177
  { CRIS_INSN_AND_B_R, CRISV10F_INSN_AND_B_R, CRISV10F_SFMT_AND_B_R },
178
  { CRIS_INSN_AND_W_R, CRISV10F_INSN_AND_W_R, CRISV10F_SFMT_AND_B_R },
179
  { CRIS_INSN_AND_D_R, CRISV10F_INSN_AND_D_R, CRISV10F_SFMT_AND_D_R },
180
  { CRIS_INSN_AND_M_B_M, CRISV10F_INSN_AND_M_B_M, CRISV10F_SFMT_AND_M_B_M },
181
  { CRIS_INSN_AND_M_W_M, CRISV10F_INSN_AND_M_W_M, CRISV10F_SFMT_AND_M_W_M },
182
  { CRIS_INSN_AND_M_D_M, CRISV10F_INSN_AND_M_D_M, CRISV10F_SFMT_AND_M_D_M },
183
  { CRIS_INSN_ANDCBR, CRISV10F_INSN_ANDCBR, CRISV10F_SFMT_ANDCBR },
184
  { CRIS_INSN_ANDCWR, CRISV10F_INSN_ANDCWR, CRISV10F_SFMT_ANDCWR },
185
  { CRIS_INSN_ANDCDR, CRISV10F_INSN_ANDCDR, CRISV10F_SFMT_ANDCDR },
186
  { CRIS_INSN_ANDQ, CRISV10F_INSN_ANDQ, CRISV10F_SFMT_ANDQ },
187
  { CRIS_INSN_ORR_B_R, CRISV10F_INSN_ORR_B_R, CRISV10F_SFMT_AND_B_R },
188
  { CRIS_INSN_ORR_W_R, CRISV10F_INSN_ORR_W_R, CRISV10F_SFMT_AND_B_R },
189
  { CRIS_INSN_ORR_D_R, CRISV10F_INSN_ORR_D_R, CRISV10F_SFMT_AND_D_R },
190
  { CRIS_INSN_OR_M_B_M, CRISV10F_INSN_OR_M_B_M, CRISV10F_SFMT_AND_M_B_M },
191
  { CRIS_INSN_OR_M_W_M, CRISV10F_INSN_OR_M_W_M, CRISV10F_SFMT_AND_M_W_M },
192
  { CRIS_INSN_OR_M_D_M, CRISV10F_INSN_OR_M_D_M, CRISV10F_SFMT_AND_M_D_M },
193
  { CRIS_INSN_ORCBR, CRISV10F_INSN_ORCBR, CRISV10F_SFMT_ANDCBR },
194
  { CRIS_INSN_ORCWR, CRISV10F_INSN_ORCWR, CRISV10F_SFMT_ANDCWR },
195
  { CRIS_INSN_ORCDR, CRISV10F_INSN_ORCDR, CRISV10F_SFMT_ANDCDR },
196
  { CRIS_INSN_ORQ, CRISV10F_INSN_ORQ, CRISV10F_SFMT_ANDQ },
197
  { CRIS_INSN_XOR, CRISV10F_INSN_XOR, CRISV10F_SFMT_DSTEP },
198
  { CRIS_INSN_SWAP, CRISV10F_INSN_SWAP, CRISV10F_SFMT_SWAP },
199
  { CRIS_INSN_ASRR_B_R, CRISV10F_INSN_ASRR_B_R, CRISV10F_SFMT_AND_B_R },
200
  { CRIS_INSN_ASRR_W_R, CRISV10F_INSN_ASRR_W_R, CRISV10F_SFMT_AND_B_R },
201
  { CRIS_INSN_ASRR_D_R, CRISV10F_INSN_ASRR_D_R, CRISV10F_SFMT_AND_D_R },
202
  { CRIS_INSN_ASRQ, CRISV10F_INSN_ASRQ, CRISV10F_SFMT_ASRQ },
203
  { CRIS_INSN_LSRR_B_R, CRISV10F_INSN_LSRR_B_R, CRISV10F_SFMT_LSRR_B_R },
204
  { CRIS_INSN_LSRR_W_R, CRISV10F_INSN_LSRR_W_R, CRISV10F_SFMT_LSRR_B_R },
205
  { CRIS_INSN_LSRR_D_R, CRISV10F_INSN_LSRR_D_R, CRISV10F_SFMT_LSRR_D_R },
206
  { CRIS_INSN_LSRQ, CRISV10F_INSN_LSRQ, CRISV10F_SFMT_ASRQ },
207
  { CRIS_INSN_LSLR_B_R, CRISV10F_INSN_LSLR_B_R, CRISV10F_SFMT_LSRR_B_R },
208
  { CRIS_INSN_LSLR_W_R, CRISV10F_INSN_LSLR_W_R, CRISV10F_SFMT_LSRR_B_R },
209
  { CRIS_INSN_LSLR_D_R, CRISV10F_INSN_LSLR_D_R, CRISV10F_SFMT_LSRR_D_R },
210
  { CRIS_INSN_LSLQ, CRISV10F_INSN_LSLQ, CRISV10F_SFMT_ASRQ },
211
  { CRIS_INSN_BTST, CRISV10F_INSN_BTST, CRISV10F_SFMT_BTST },
212
  { CRIS_INSN_BTSTQ, CRISV10F_INSN_BTSTQ, CRISV10F_SFMT_BTSTQ },
213
  { CRIS_INSN_SETF, CRISV10F_INSN_SETF, CRISV10F_SFMT_SETF },
214
  { CRIS_INSN_CLEARF, CRISV10F_INSN_CLEARF, CRISV10F_SFMT_SETF },
215
  { CRIS_INSN_BCC_B, CRISV10F_INSN_BCC_B, CRISV10F_SFMT_BCC_B },
216
  { CRIS_INSN_BA_B, CRISV10F_INSN_BA_B, CRISV10F_SFMT_BA_B },
217
  { CRIS_INSN_BCC_W, CRISV10F_INSN_BCC_W, CRISV10F_SFMT_BCC_W },
218
  { CRIS_INSN_BA_W, CRISV10F_INSN_BA_W, CRISV10F_SFMT_BA_W },
219
  { CRIS_INSN_JUMP_R, CRISV10F_INSN_JUMP_R, CRISV10F_SFMT_JUMP_R },
220
  { CRIS_INSN_JUMP_M, CRISV10F_INSN_JUMP_M, CRISV10F_SFMT_JUMP_M },
221
  { CRIS_INSN_JUMP_C, CRISV10F_INSN_JUMP_C, CRISV10F_SFMT_JUMP_C },
222
  { CRIS_INSN_BREAK, CRISV10F_INSN_BREAK, CRISV10F_SFMT_BREAK },
223
  { CRIS_INSN_BOUND_R_B_R, CRISV10F_INSN_BOUND_R_B_R, CRISV10F_SFMT_DSTEP },
224
  { CRIS_INSN_BOUND_R_W_R, CRISV10F_INSN_BOUND_R_W_R, CRISV10F_SFMT_DSTEP },
225
  { CRIS_INSN_BOUND_R_D_R, CRISV10F_INSN_BOUND_R_D_R, CRISV10F_SFMT_DSTEP },
226
  { CRIS_INSN_BOUND_M_B_M, CRISV10F_INSN_BOUND_M_B_M, CRISV10F_SFMT_BOUND_M_B_M },
227
  { CRIS_INSN_BOUND_M_W_M, CRISV10F_INSN_BOUND_M_W_M, CRISV10F_SFMT_BOUND_M_W_M },
228
  { CRIS_INSN_BOUND_M_D_M, CRISV10F_INSN_BOUND_M_D_M, CRISV10F_SFMT_BOUND_M_D_M },
229
  { CRIS_INSN_BOUND_CB, CRISV10F_INSN_BOUND_CB, CRISV10F_SFMT_BOUND_CB },
230
  { CRIS_INSN_BOUND_CW, CRISV10F_INSN_BOUND_CW, CRISV10F_SFMT_BOUND_CW },
231
  { CRIS_INSN_BOUND_CD, CRISV10F_INSN_BOUND_CD, CRISV10F_SFMT_BOUND_CD },
232
  { CRIS_INSN_SCC, CRISV10F_INSN_SCC, CRISV10F_SFMT_SCC },
233
  { CRIS_INSN_LZ, CRISV10F_INSN_LZ, CRISV10F_SFMT_MOVS_B_R },
234
  { CRIS_INSN_ADDOQ, CRISV10F_INSN_ADDOQ, CRISV10F_SFMT_ADDOQ },
235
  { CRIS_INSN_BDAPQPC, CRISV10F_INSN_BDAPQPC, CRISV10F_SFMT_BDAPQPC },
236
  { CRIS_INSN_BDAP_32_PC, CRISV10F_INSN_BDAP_32_PC, CRISV10F_SFMT_BDAP_32_PC },
237
  { CRIS_INSN_MOVE_M_PCPLUS_P0, CRISV10F_INSN_MOVE_M_PCPLUS_P0, CRISV10F_SFMT_MOVE_M_PCPLUS_P0 },
238
  { CRIS_INSN_MOVE_M_SPPLUS_P8, CRISV10F_INSN_MOVE_M_SPPLUS_P8, CRISV10F_SFMT_MOVE_M_SPPLUS_P8 },
239
  { CRIS_INSN_ADDO_M_B_M, CRISV10F_INSN_ADDO_M_B_M, CRISV10F_SFMT_ADDO_M_B_M },
240
  { CRIS_INSN_ADDO_M_W_M, CRISV10F_INSN_ADDO_M_W_M, CRISV10F_SFMT_ADDO_M_W_M },
241
  { CRIS_INSN_ADDO_M_D_M, CRISV10F_INSN_ADDO_M_D_M, CRISV10F_SFMT_ADDO_M_D_M },
242
  { CRIS_INSN_ADDO_CB, CRISV10F_INSN_ADDO_CB, CRISV10F_SFMT_ADDO_CB },
243
  { CRIS_INSN_ADDO_CW, CRISV10F_INSN_ADDO_CW, CRISV10F_SFMT_ADDO_CW },
244
  { CRIS_INSN_ADDO_CD, CRISV10F_INSN_ADDO_CD, CRISV10F_SFMT_ADDO_CD },
245
  { CRIS_INSN_DIP_M, CRISV10F_INSN_DIP_M, CRISV10F_SFMT_DIP_M },
246
  { CRIS_INSN_DIP_C, CRISV10F_INSN_DIP_C, CRISV10F_SFMT_DIP_C },
247
  { CRIS_INSN_ADDI_ACR_B_R, CRISV10F_INSN_ADDI_ACR_B_R, CRISV10F_SFMT_ADDI_ACR_B_R },
248
  { CRIS_INSN_ADDI_ACR_W_R, CRISV10F_INSN_ADDI_ACR_W_R, CRISV10F_SFMT_ADDI_ACR_B_R },
249
  { CRIS_INSN_ADDI_ACR_D_R, CRISV10F_INSN_ADDI_ACR_D_R, CRISV10F_SFMT_ADDI_ACR_B_R },
250
  { CRIS_INSN_BIAP_PC_B_R, CRISV10F_INSN_BIAP_PC_B_R, CRISV10F_SFMT_BIAP_PC_B_R },
251
  { CRIS_INSN_BIAP_PC_W_R, CRISV10F_INSN_BIAP_PC_W_R, CRISV10F_SFMT_BIAP_PC_B_R },
252
  { CRIS_INSN_BIAP_PC_D_R, CRISV10F_INSN_BIAP_PC_D_R, CRISV10F_SFMT_BIAP_PC_B_R },
253
};
254
 
255
static const struct insn_sem crisv10f_insn_sem_invalid =
256
{
257
  VIRTUAL_INSN_X_INVALID, CRISV10F_INSN_X_INVALID, CRISV10F_SFMT_EMPTY
258
};
259
 
260
/* Initialize an IDESC from the compile-time computable parts.  */
261
 
262
static INLINE void
263
init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
264
{
265
  const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
266
 
267
  id->num = t->index;
268
  id->sfmt = t->sfmt;
269
  if ((int) t->type <= 0)
270
    id->idata = & cgen_virtual_insn_table[- (int) t->type];
271
  else
272
    id->idata = & insn_table[t->type];
273
  id->attrs = CGEN_INSN_ATTRS (id->idata);
274
  /* Oh my god, a magic number.  */
275
  id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
276
 
277
#if WITH_PROFILE_MODEL_P
278
  id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
279
  {
280
    SIM_DESC sd = CPU_STATE (cpu);
281
    SIM_ASSERT (t->index == id->timing->num);
282
  }
283
#endif
284
 
285
  /* Semantic pointers are initialized elsewhere.  */
286
}
287
 
288
/* Initialize the instruction descriptor table.  */
289
 
290
void
291
crisv10f_init_idesc_table (SIM_CPU *cpu)
292
{
293
  IDESC *id,*tabend;
294
  const struct insn_sem *t,*tend;
295
  int tabsize = CRISV10F_INSN__MAX;
296
  IDESC *table = crisv10f_insn_data;
297
 
298
  memset (table, 0, tabsize * sizeof (IDESC));
299
 
300
  /* First set all entries to the `invalid insn'.  */
301
  t = & crisv10f_insn_sem_invalid;
302
  for (id = table, tabend = table + tabsize; id < tabend; ++id)
303
    init_idesc (cpu, id, t);
304
 
305
  /* Now fill in the values for the chosen cpu.  */
306
  for (t = crisv10f_insn_sem, tend = t + sizeof (crisv10f_insn_sem) / sizeof (*t);
307
       t != tend; ++t)
308
    {
309
      init_idesc (cpu, & table[t->index], t);
310
    }
311
 
312
  /* Link the IDESC table into the cpu.  */
313
  CPU_IDESC (cpu) = table;
314
}
315
 
316
/* Given an instruction, return a pointer to its IDESC entry.  */
317
 
318
const IDESC *
319
crisv10f_decode (SIM_CPU *current_cpu, IADDR pc,
320
              CGEN_INSN_WORD base_insn,
321
              ARGBUF *abuf)
322
{
323
  /* Result of decoder.  */
324
  CRISV10F_INSN_TYPE itype;
325
 
326
  {
327
    CGEN_INSN_WORD insn = base_insn;
328
 
329
    {
330
      unsigned int val = (((insn >> 4) & (255 << 0)));
331
      switch (val)
332
      {
333
      case 0 : /* fall through */
334
      case 1 : /* fall through */
335
      case 2 : /* fall through */
336
      case 3 : /* fall through */
337
      case 4 : /* fall through */
338
      case 5 : /* fall through */
339
      case 6 : /* fall through */
340
      case 7 : /* fall through */
341
      case 8 : /* fall through */
342
      case 9 : /* fall through */
343
      case 10 : /* fall through */
344
      case 11 : /* fall through */
345
      case 12 : /* fall through */
346
      case 13 : /* fall through */
347
      case 14 : /* fall through */
348
      case 15 :
349
        {
350
          unsigned int val = (((insn >> 12) & (15 << 0)));
351
          switch (val)
352
          {
353
          case 0 : /* fall through */
354
          case 1 : /* fall through */
355
          case 2 : /* fall through */
356
          case 3 : /* fall through */
357
          case 4 : /* fall through */
358
          case 5 : /* fall through */
359
          case 6 : /* fall through */
360
          case 7 : /* fall through */
361
          case 8 : /* fall through */
362
          case 9 : /* fall through */
363
          case 10 : /* fall through */
364
          case 11 : /* fall through */
365
          case 12 : /* fall through */
366
          case 13 : /* fall through */
367
          case 15 : itype = CRISV10F_INSN_BCC_B; goto extract_sfmt_bcc_b;
368
          case 14 : itype = CRISV10F_INSN_BA_B; goto extract_sfmt_ba_b;
369
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
370
          }
371
        }
372
      case 16 : /* fall through */
373
      case 17 : /* fall through */
374
      case 18 : /* fall through */
375
      case 19 : /* fall through */
376
      case 20 : /* fall through */
377
      case 21 : /* fall through */
378
      case 22 : /* fall through */
379
      case 23 : /* fall through */
380
      case 24 : /* fall through */
381
      case 25 : /* fall through */
382
      case 26 : /* fall through */
383
      case 27 : /* fall through */
384
      case 28 : /* fall through */
385
      case 29 : /* fall through */
386
      case 30 : /* fall through */
387
      case 31 :
388
        {
389
          unsigned int val = (((insn >> 12) & (15 << 0)));
390
          switch (val)
391
          {
392
          case 0 : /* fall through */
393
          case 1 : /* fall through */
394
          case 2 : /* fall through */
395
          case 3 : /* fall through */
396
          case 4 : /* fall through */
397
          case 5 : /* fall through */
398
          case 6 : /* fall through */
399
          case 7 : /* fall through */
400
          case 8 : /* fall through */
401
          case 9 : /* fall through */
402
          case 10 : /* fall through */
403
          case 11 : /* fall through */
404
          case 12 : /* fall through */
405
          case 13 : /* fall through */
406
          case 14 : itype = CRISV10F_INSN_ADDOQ; goto extract_sfmt_addoq;
407
          case 15 : itype = CRISV10F_INSN_BDAPQPC; goto extract_sfmt_bdapqpc;
408
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
409
          }
410
        }
411
      case 32 : /* fall through */
412
      case 33 : /* fall through */
413
      case 34 : /* fall through */
414
      case 35 : itype = CRISV10F_INSN_ADDQ; goto extract_sfmt_addq;
415
      case 36 : /* fall through */
416
      case 37 : /* fall through */
417
      case 38 : /* fall through */
418
      case 39 : itype = CRISV10F_INSN_MOVEQ; goto extract_sfmt_moveq;
419
      case 40 : /* fall through */
420
      case 41 : /* fall through */
421
      case 42 : /* fall through */
422
      case 43 : itype = CRISV10F_INSN_SUBQ; goto extract_sfmt_addq;
423
      case 44 : /* fall through */
424
      case 45 : /* fall through */
425
      case 46 : /* fall through */
426
      case 47 : itype = CRISV10F_INSN_CMPQ; goto extract_sfmt_cmpq;
427
      case 48 : /* fall through */
428
      case 49 : /* fall through */
429
      case 50 : /* fall through */
430
      case 51 : itype = CRISV10F_INSN_ANDQ; goto extract_sfmt_andq;
431
      case 52 : /* fall through */
432
      case 53 : /* fall through */
433
      case 54 : /* fall through */
434
      case 55 : itype = CRISV10F_INSN_ORQ; goto extract_sfmt_andq;
435
      case 56 : /* fall through */
436
      case 57 : itype = CRISV10F_INSN_BTSTQ; goto extract_sfmt_btstq;
437
      case 58 : /* fall through */
438
      case 59 : itype = CRISV10F_INSN_ASRQ; goto extract_sfmt_asrq;
439
      case 60 : /* fall through */
440
      case 61 : itype = CRISV10F_INSN_LSLQ; goto extract_sfmt_asrq;
441
      case 62 : /* fall through */
442
      case 63 : itype = CRISV10F_INSN_LSRQ; goto extract_sfmt_asrq;
443
      case 64 : itype = CRISV10F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r;
444
      case 65 : itype = CRISV10F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r;
445
      case 66 : itype = CRISV10F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r;
446
      case 67 : itype = CRISV10F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r;
447
      case 68 : itype = CRISV10F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r;
448
      case 69 : itype = CRISV10F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r;
449
      case 70 : itype = CRISV10F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r;
450
      case 71 : itype = CRISV10F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r;
451
      case 72 : itype = CRISV10F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r;
452
      case 73 : itype = CRISV10F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r;
453
      case 74 : itype = CRISV10F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r;
454
      case 75 : itype = CRISV10F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r;
455
      case 76 : itype = CRISV10F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r;
456
      case 77 : itype = CRISV10F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r;
457
      case 78 : itype = CRISV10F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r;
458
      case 79 : itype = CRISV10F_INSN_BTST; goto extract_sfmt_btst;
459
      case 80 :
460
        {
461
          unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
462
          switch (val)
463
          {
464
          case 0 : /* fall through */
465
          case 1 : /* fall through */
466
          case 2 : /* fall through */
467
          case 3 : /* fall through */
468
          case 4 : /* fall through */
469
          case 5 : /* fall through */
470
          case 6 : /* fall through */
471
          case 7 : /* fall through */
472
          case 8 : /* fall through */
473
          case 9 : /* fall through */
474
          case 10 : /* fall through */
475
          case 11 : /* fall through */
476
          case 12 : /* fall through */
477
          case 13 : /* fall through */
478
          case 14 : /* fall through */
479
          case 16 : /* fall through */
480
          case 17 : /* fall through */
481
          case 18 : /* fall through */
482
          case 19 : /* fall through */
483
          case 20 : /* fall through */
484
          case 21 : /* fall through */
485
          case 22 : /* fall through */
486
          case 23 : /* fall through */
487
          case 24 : /* fall through */
488
          case 25 : /* fall through */
489
          case 26 : /* fall through */
490
          case 27 : /* fall through */
491
          case 28 : /* fall through */
492
          case 29 : /* fall through */
493
          case 30 : /* fall through */
494
          case 31 : /* fall through */
495
          case 32 : /* fall through */
496
          case 33 : /* fall through */
497
          case 34 : /* fall through */
498
          case 35 : /* fall through */
499
          case 36 : /* fall through */
500
          case 37 : /* fall through */
501
          case 38 : /* fall through */
502
          case 39 : /* fall through */
503
          case 40 : /* fall through */
504
          case 41 : /* fall through */
505
          case 42 : /* fall through */
506
          case 43 : /* fall through */
507
          case 44 : /* fall through */
508
          case 45 : /* fall through */
509
          case 46 : /* fall through */
510
          case 47 : /* fall through */
511
          case 48 : /* fall through */
512
          case 49 : /* fall through */
513
          case 50 : /* fall through */
514
          case 51 : /* fall through */
515
          case 52 : /* fall through */
516
          case 53 : /* fall through */
517
          case 54 : /* fall through */
518
          case 55 : /* fall through */
519
          case 56 : /* fall through */
520
          case 57 : /* fall through */
521
          case 58 : /* fall through */
522
          case 59 : /* fall through */
523
          case 60 : /* fall through */
524
          case 61 : /* fall through */
525
          case 62 : /* fall through */
526
          case 63 : /* fall through */
527
          case 64 : /* fall through */
528
          case 65 : /* fall through */
529
          case 66 : /* fall through */
530
          case 67 : /* fall through */
531
          case 68 : /* fall through */
532
          case 69 : /* fall through */
533
          case 70 : /* fall through */
534
          case 71 : /* fall through */
535
          case 72 : /* fall through */
536
          case 73 : /* fall through */
537
          case 74 : /* fall through */
538
          case 75 : /* fall through */
539
          case 76 : /* fall through */
540
          case 77 : /* fall through */
541
          case 78 : /* fall through */
542
          case 79 : /* fall through */
543
          case 80 : /* fall through */
544
          case 81 : /* fall through */
545
          case 82 : /* fall through */
546
          case 83 : /* fall through */
547
          case 84 : /* fall through */
548
          case 85 : /* fall through */
549
          case 86 : /* fall through */
550
          case 87 : /* fall through */
551
          case 88 : /* fall through */
552
          case 89 : /* fall through */
553
          case 90 : /* fall through */
554
          case 91 : /* fall through */
555
          case 92 : /* fall through */
556
          case 93 : /* fall through */
557
          case 94 : /* fall through */
558
          case 95 : /* fall through */
559
          case 96 : /* fall through */
560
          case 97 : /* fall through */
561
          case 98 : /* fall through */
562
          case 99 : /* fall through */
563
          case 100 : /* fall through */
564
          case 101 : /* fall through */
565
          case 102 : /* fall through */
566
          case 103 : /* fall through */
567
          case 104 : /* fall through */
568
          case 105 : /* fall through */
569
          case 106 : /* fall through */
570
          case 107 : /* fall through */
571
          case 108 : /* fall through */
572
          case 109 : /* fall through */
573
          case 110 : /* fall through */
574
          case 111 : /* fall through */
575
          case 112 : /* fall through */
576
          case 113 : /* fall through */
577
          case 114 : /* fall through */
578
          case 115 : /* fall through */
579
          case 116 : /* fall through */
580
          case 117 : /* fall through */
581
          case 118 : /* fall through */
582
          case 119 : /* fall through */
583
          case 120 : /* fall through */
584
          case 121 : /* fall through */
585
          case 122 : /* fall through */
586
          case 123 : /* fall through */
587
          case 124 : /* fall through */
588
          case 125 : /* fall through */
589
          case 126 : /* fall through */
590
          case 127 : itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
591
          case 15 :
592
            {
593
              unsigned int val = (((insn >> 15) & (1 << 0)));
594
              switch (val)
595
              {
596
              case 0 : itype = CRISV10F_INSN_NOP; goto extract_sfmt_nop;
597
              case 1 : itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
598
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
599
              }
600
            }
601
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
602
          }
603
        }
604
      case 81 : itype = CRISV10F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r;
605
      case 82 : itype = CRISV10F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r;
606
      case 83 : itype = CRISV10F_INSN_SCC; goto extract_sfmt_scc;
607
      case 84 :
608
        {
609
          unsigned int val = (((insn >> 0) & (15 << 0)));
610
          switch (val)
611
          {
612
          case 0 : /* fall through */
613
          case 1 : /* fall through */
614
          case 2 : /* fall through */
615
          case 3 : /* fall through */
616
          case 4 : /* fall through */
617
          case 5 : /* fall through */
618
          case 6 : /* fall through */
619
          case 7 : /* fall through */
620
          case 8 : /* fall through */
621
          case 9 : /* fall through */
622
          case 10 : /* fall through */
623
          case 11 : /* fall through */
624
          case 12 : /* fall through */
625
          case 13 : /* fall through */
626
          case 14 : itype = CRISV10F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r;
627
          case 15 : itype = CRISV10F_INSN_BIAP_PC_B_R; goto extract_sfmt_biap_pc_b_r;
628
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
629
          }
630
        }
631
      case 85 :
632
        {
633
          unsigned int val = (((insn >> 0) & (15 << 0)));
634
          switch (val)
635
          {
636
          case 0 : /* fall through */
637
          case 1 : /* fall through */
638
          case 2 : /* fall through */
639
          case 3 : /* fall through */
640
          case 4 : /* fall through */
641
          case 5 : /* fall through */
642
          case 6 : /* fall through */
643
          case 7 : /* fall through */
644
          case 8 : /* fall through */
645
          case 9 : /* fall through */
646
          case 10 : /* fall through */
647
          case 11 : /* fall through */
648
          case 12 : /* fall through */
649
          case 13 : /* fall through */
650
          case 14 : itype = CRISV10F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r;
651
          case 15 : itype = CRISV10F_INSN_BIAP_PC_W_R; goto extract_sfmt_biap_pc_b_r;
652
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
653
          }
654
        }
655
      case 86 :
656
        {
657
          unsigned int val = (((insn >> 0) & (15 << 0)));
658
          switch (val)
659
          {
660
          case 0 : /* fall through */
661
          case 1 : /* fall through */
662
          case 2 : /* fall through */
663
          case 3 : /* fall through */
664
          case 4 : /* fall through */
665
          case 5 : /* fall through */
666
          case 6 : /* fall through */
667
          case 7 : /* fall through */
668
          case 8 : /* fall through */
669
          case 9 : /* fall through */
670
          case 10 : /* fall through */
671
          case 11 : /* fall through */
672
          case 12 : /* fall through */
673
          case 13 : /* fall through */
674
          case 14 : itype = CRISV10F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r;
675
          case 15 : itype = CRISV10F_INSN_BIAP_PC_D_R; goto extract_sfmt_biap_pc_b_r;
676
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
677
          }
678
        }
679
      case 88 : itype = CRISV10F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r;
680
      case 89 : itype = CRISV10F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r;
681
      case 90 : itype = CRISV10F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r;
682
      case 91 : itype = CRISV10F_INSN_SETF; goto extract_sfmt_setf;
683
      case 92 : itype = CRISV10F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep;
684
      case 93 : itype = CRISV10F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep;
685
      case 94 : itype = CRISV10F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep;
686
      case 95 : itype = CRISV10F_INSN_CLEARF; goto extract_sfmt_setf;
687
      case 96 : itype = CRISV10F_INSN_ADD_B_R; goto extract_sfmt_add_b_r;
688
      case 97 : itype = CRISV10F_INSN_ADD_W_R; goto extract_sfmt_add_b_r;
689
      case 98 : itype = CRISV10F_INSN_ADD_D_R; goto extract_sfmt_add_d_r;
690
      case 99 : itype = CRISV10F_INSN_MOVE_R_SPRV10; goto extract_sfmt_move_r_sprv10;
691
      case 100 : itype = CRISV10F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r;
692
      case 101 : itype = CRISV10F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r;
693
      case 102 :
694
        {
695
          unsigned int val = (((insn >> 0) & (15 << 0)));
696
          switch (val)
697
          {
698
          case 0 : /* fall through */
699
          case 1 : /* fall through */
700
          case 2 : /* fall through */
701
          case 3 : /* fall through */
702
          case 4 : /* fall through */
703
          case 5 : /* fall through */
704
          case 6 : /* fall through */
705
          case 7 : /* fall through */
706
          case 8 : /* fall through */
707
          case 9 : /* fall through */
708
          case 10 : /* fall through */
709
          case 11 : /* fall through */
710
          case 12 : /* fall through */
711
          case 13 : /* fall through */
712
          case 14 : itype = CRISV10F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r;
713
          case 15 : itype = CRISV10F_INSN_MOVEPCR; goto extract_sfmt_movepcr;
714
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
715
          }
716
        }
717
      case 103 :
718
        {
719
          unsigned int val = (((insn >> 0) & (15 << 0)));
720
          switch (val)
721
          {
722
          case 0 : /* fall through */
723
          case 1 : /* fall through */
724
          case 2 : /* fall through */
725
          case 3 : /* fall through */
726
          case 4 : /* fall through */
727
          case 5 : /* fall through */
728
          case 6 : /* fall through */
729
          case 7 : /* fall through */
730
          case 8 : /* fall through */
731
          case 9 : /* fall through */
732
          case 10 : /* fall through */
733
          case 11 : /* fall through */
734
          case 12 : /* fall through */
735
          case 13 : /* fall through */
736
          case 14 : itype = CRISV10F_INSN_MOVE_SPR_RV10; goto extract_sfmt_move_spr_rv10;
737
          case 15 : itype = CRISV10F_INSN_RET_TYPE; goto extract_sfmt_ret_type;
738
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
739
          }
740
        }
741
      case 104 : itype = CRISV10F_INSN_SUB_B_R; goto extract_sfmt_add_b_r;
742
      case 105 : itype = CRISV10F_INSN_SUB_W_R; goto extract_sfmt_add_b_r;
743
      case 106 : itype = CRISV10F_INSN_SUB_D_R; goto extract_sfmt_add_d_r;
744
      case 107 : itype = CRISV10F_INSN_ABS; goto extract_sfmt_movs_b_r;
745
      case 108 : itype = CRISV10F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r;
746
      case 109 : itype = CRISV10F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r;
747
      case 110 : itype = CRISV10F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r;
748
      case 111 : itype = CRISV10F_INSN_DSTEP; goto extract_sfmt_dstep;
749
      case 112 : itype = CRISV10F_INSN_AND_B_R; goto extract_sfmt_and_b_r;
750
      case 113 : itype = CRISV10F_INSN_AND_W_R; goto extract_sfmt_and_b_r;
751
      case 114 : itype = CRISV10F_INSN_AND_D_R; goto extract_sfmt_and_d_r;
752
      case 115 : itype = CRISV10F_INSN_LZ; goto extract_sfmt_movs_b_r;
753
      case 116 : itype = CRISV10F_INSN_ORR_B_R; goto extract_sfmt_and_b_r;
754
      case 117 : itype = CRISV10F_INSN_ORR_W_R; goto extract_sfmt_and_b_r;
755
      case 118 : itype = CRISV10F_INSN_ORR_D_R; goto extract_sfmt_and_d_r;
756
      case 119 : itype = CRISV10F_INSN_SWAP; goto extract_sfmt_swap;
757
      case 120 : itype = CRISV10F_INSN_ASRR_B_R; goto extract_sfmt_and_b_r;
758
      case 121 : itype = CRISV10F_INSN_ASRR_W_R; goto extract_sfmt_and_b_r;
759
      case 122 : itype = CRISV10F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r;
760
      case 123 : itype = CRISV10F_INSN_XOR; goto extract_sfmt_dstep;
761
      case 124 : itype = CRISV10F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r;
762
      case 125 : itype = CRISV10F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r;
763
      case 126 : itype = CRISV10F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r;
764
      case 127 : itype = CRISV10F_INSN_MSTEP; goto extract_sfmt_mstep;
765
      case 128 : itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
766
      case 129 : itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
767
      case 130 : itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
768
      case 131 :
769
        {
770
          unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
771
          switch (val)
772
          {
773
          case 0 : /* fall through */
774
          case 1 : /* fall through */
775
          case 2 : /* fall through */
776
          case 3 : /* fall through */
777
          case 4 : /* fall through */
778
          case 5 : /* fall through */
779
          case 6 : /* fall through */
780
          case 7 : /* fall through */
781
          case 8 : /* fall through */
782
          case 9 : /* fall through */
783
          case 10 : /* fall through */
784
          case 11 : /* fall through */
785
          case 12 : /* fall through */
786
          case 13 : /* fall through */
787
          case 14 : /* fall through */
788
          case 15 : /* fall through */
789
          case 16 : /* fall through */
790
          case 17 : /* fall through */
791
          case 18 : /* fall through */
792
          case 19 : /* fall through */
793
          case 20 : /* fall through */
794
          case 21 : /* fall through */
795
          case 22 : /* fall through */
796
          case 23 : /* fall through */
797
          case 24 : /* fall through */
798
          case 25 : /* fall through */
799
          case 26 : /* fall through */
800
          case 27 : /* fall through */
801
          case 28 : /* fall through */
802
          case 29 : /* fall through */
803
          case 30 : /* fall through */
804
          case 31 : /* fall through */
805
          case 32 : /* fall through */
806
          case 33 : /* fall through */
807
          case 34 : /* fall through */
808
          case 35 : /* fall through */
809
          case 36 : /* fall through */
810
          case 37 : /* fall through */
811
          case 38 : /* fall through */
812
          case 39 : /* fall through */
813
          case 40 : /* fall through */
814
          case 41 : /* fall through */
815
          case 42 : /* fall through */
816
          case 43 : /* fall through */
817
          case 44 : /* fall through */
818
          case 45 : /* fall through */
819
          case 46 : /* fall through */
820
          case 47 : /* fall through */
821
          case 48 : /* fall through */
822
          case 49 : /* fall through */
823
          case 50 : /* fall through */
824
          case 51 : /* fall through */
825
          case 52 : /* fall through */
826
          case 53 : /* fall through */
827
          case 54 : /* fall through */
828
          case 55 : /* fall through */
829
          case 56 : /* fall through */
830
          case 57 : /* fall through */
831
          case 58 : /* fall through */
832
          case 59 : /* fall through */
833
          case 60 : /* fall through */
834
          case 61 : /* fall through */
835
          case 62 : /* fall through */
836
          case 63 : /* fall through */
837
          case 64 : /* fall through */
838
          case 65 : /* fall through */
839
          case 66 : /* fall through */
840
          case 67 : /* fall through */
841
          case 68 : /* fall through */
842
          case 69 : /* fall through */
843
          case 70 : /* fall through */
844
          case 71 : /* fall through */
845
          case 72 : /* fall through */
846
          case 73 : /* fall through */
847
          case 74 : /* fall through */
848
          case 75 : /* fall through */
849
          case 76 : /* fall through */
850
          case 77 : /* fall through */
851
          case 78 : /* fall through */
852
          case 79 : /* fall through */
853
          case 80 : /* fall through */
854
          case 81 : /* fall through */
855
          case 82 : /* fall through */
856
          case 83 : /* fall through */
857
          case 84 : /* fall through */
858
          case 85 : /* fall through */
859
          case 86 : /* fall through */
860
          case 87 : /* fall through */
861
          case 88 : /* fall through */
862
          case 89 : /* fall through */
863
          case 90 : /* fall through */
864
          case 91 : /* fall through */
865
          case 92 : /* fall through */
866
          case 93 : /* fall through */
867
          case 94 : /* fall through */
868
          case 95 : /* fall through */
869
          case 96 : /* fall through */
870
          case 97 : /* fall through */
871
          case 98 : /* fall through */
872
          case 99 : /* fall through */
873
          case 100 : /* fall through */
874
          case 101 : /* fall through */
875
          case 102 : /* fall through */
876
          case 103 : /* fall through */
877
          case 104 : /* fall through */
878
          case 105 : /* fall through */
879
          case 106 : /* fall through */
880
          case 107 : /* fall through */
881
          case 108 : /* fall through */
882
          case 109 : /* fall through */
883
          case 110 : /* fall through */
884
          case 111 : /* fall through */
885
          case 112 : /* fall through */
886
          case 113 : /* fall through */
887
          case 114 : /* fall through */
888
          case 115 : /* fall through */
889
          case 116 : /* fall through */
890
          case 117 : /* fall through */
891
          case 118 : /* fall through */
892
          case 119 : /* fall through */
893
          case 120 : /* fall through */
894
          case 121 : /* fall through */
895
          case 122 : /* fall through */
896
          case 123 : /* fall through */
897
          case 124 : /* fall through */
898
          case 125 : /* fall through */
899
          case 126 : itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
900
          case 127 :
901
            {
902
              unsigned int val = (((insn >> 15) & (1 << 0)));
903
              switch (val)
904
              {
905
              case 0 : itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
906
              case 1 : itype = CRISV10F_INSN_ADDSPCPC; goto extract_sfmt_addspcpc;
907
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
908
              }
909
            }
910
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
911
          }
912
        }
913
      case 132 : itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
914
      case 133 : itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
915
      case 134 : itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
916
      case 135 : itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
917
      case 136 : itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
918
      case 137 : itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
919
      case 138 : itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
920
      case 139 : itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
921
      case 140 : itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
922
      case 141 : itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
923
      case 142 : itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
924
      case 143 : itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
925
      case 144 : itype = CRISV10F_INSN_MULU_B; goto extract_sfmt_muls_b;
926
      case 145 : itype = CRISV10F_INSN_MULU_W; goto extract_sfmt_muls_b;
927
      case 146 : itype = CRISV10F_INSN_MULU_D; goto extract_sfmt_muls_b;
928
      case 147 :
929
        {
930
          unsigned int val = (((insn >> 12) & (15 << 0)));
931
          switch (val)
932
          {
933
          case 0 : /* fall through */
934
          case 1 : /* fall through */
935
          case 2 : /* fall through */
936
          case 3 : /* fall through */
937
          case 4 : /* fall through */
938
          case 5 : /* fall through */
939
          case 6 : /* fall through */
940
          case 7 : /* fall through */
941
          case 8 : /* fall through */
942
          case 9 : /* fall through */
943
          case 10 : /* fall through */
944
          case 11 : /* fall through */
945
          case 12 : /* fall through */
946
          case 13 : /* fall through */
947
          case 15 : itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m;
948
          case 14 : itype = CRISV10F_INSN_BREAK; goto extract_sfmt_break;
949
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
950
          }
951
        }
952
      case 148 : itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
953
      case 149 : itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
954
      case 150 : itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
955
      case 151 :
956
        if ((base_insn & 0xfbf0) == 0x970)
957
          { itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m; }
958
        itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
959
      case 155 : itype = CRISV10F_INSN_JUMP_R; goto extract_sfmt_jump_r;
960
      case 156 : itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m;
961
      case 157 : itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m;
962
      case 158 : itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m;
963
      case 160 : itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
964
      case 161 : itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
965
      case 162 : itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
966
      case 163 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
967
      case 164 : itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
968
      case 165 : itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
969
      case 166 : itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
970
      case 167 : /* fall through */
971
      case 231 : itype = CRISV10F_INSN_MOVE_SPR_MV10; goto extract_sfmt_move_spr_mv10;
972
      case 168 : itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
973
      case 169 : itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
974
      case 170 : itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
975
      case 172 : itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
976
      case 173 : itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
977
      case 174 : itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
978
      case 176 : itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
979
      case 177 : itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
980
      case 178 : itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
981
      case 180 : itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
982
      case 181 : itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
983
      case 182 : itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
984
      case 183 : /* fall through */
985
      case 247 :
986
        if ((base_insn & 0xfbf0) == 0x3b70)
987
          { itype = CRISV10F_INSN_SBFS; goto extract_sfmt_sbfs; }
988
        itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
989
      case 184 : /* fall through */
990
      case 248 :
991
        if ((base_insn & 0xfbf0) == 0xb80)
992
          { itype = CRISV10F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
993
        itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
994
      case 185 : /* fall through */
995
      case 249 :
996
        if ((base_insn & 0xfbf0) == 0xb90)
997
          { itype = CRISV10F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
998
        itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
999
      case 186 : /* fall through */
1000
      case 250 :
1001
        if ((base_insn & 0xfbf0) == 0xba0)
1002
          { itype = CRISV10F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
1003
        itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1004
      case 187 : /* fall through */
1005
      case 251 :
1006
        {
1007
          unsigned int val = (((insn >> 12) & (15 << 0)));
1008
          switch (val)
1009
          {
1010
          case 0 : /* fall through */
1011
          case 1 : /* fall through */
1012
          case 2 : /* fall through */
1013
          case 3 : /* fall through */
1014
          case 4 : /* fall through */
1015
          case 5 : /* fall through */
1016
          case 6 : /* fall through */
1017
          case 7 : /* fall through */
1018
          case 8 : /* fall through */
1019
          case 9 : /* fall through */
1020
          case 10 : /* fall through */
1021
          case 11 : /* fall through */
1022
          case 12 : /* fall through */
1023
          case 13 : /* fall through */
1024
          case 14 : itype = CRISV10F_INSN_MOVEM_M_R; goto extract_sfmt_movem_m_r;
1025
          case 15 : itype = CRISV10F_INSN_MOVEM_M_PC; goto extract_sfmt_movem_m_pc;
1026
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1027
          }
1028
        }
1029
      case 188 : /* fall through */
1030
      case 252 : itype = CRISV10F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m;
1031
      case 189 : /* fall through */
1032
      case 253 : itype = CRISV10F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m;
1033
      case 190 : /* fall through */
1034
      case 254 : itype = CRISV10F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m;
1035
      case 191 : /* fall through */
1036
      case 255 : itype = CRISV10F_INSN_MOVEM_R_M; goto extract_sfmt_movem_r_m;
1037
      case 192 :
1038
        {
1039
          unsigned int val = (((insn >> 0) & (15 << 0)));
1040
          switch (val)
1041
          {
1042
          case 0 : /* fall through */
1043
          case 1 : /* fall through */
1044
          case 2 : /* fall through */
1045
          case 3 : /* fall through */
1046
          case 4 : /* fall through */
1047
          case 5 : /* fall through */
1048
          case 6 : /* fall through */
1049
          case 7 : /* fall through */
1050
          case 8 : /* fall through */
1051
          case 9 : /* fall through */
1052
          case 10 : /* fall through */
1053
          case 11 : /* fall through */
1054
          case 12 : /* fall through */
1055
          case 13 : /* fall through */
1056
          case 14 : itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
1057
          case 15 : itype = CRISV10F_INSN_ADDUCBR; goto extract_sfmt_addscbr;
1058
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1059
          }
1060
        }
1061
      case 193 :
1062
        {
1063
          unsigned int val = (((insn >> 0) & (15 << 0)));
1064
          switch (val)
1065
          {
1066
          case 0 : /* fall through */
1067
          case 1 : /* fall through */
1068
          case 2 : /* fall through */
1069
          case 3 : /* fall through */
1070
          case 4 : /* fall through */
1071
          case 5 : /* fall through */
1072
          case 6 : /* fall through */
1073
          case 7 : /* fall through */
1074
          case 8 : /* fall through */
1075
          case 9 : /* fall through */
1076
          case 10 : /* fall through */
1077
          case 11 : /* fall through */
1078
          case 12 : /* fall through */
1079
          case 13 : /* fall through */
1080
          case 14 : itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
1081
          case 15 : itype = CRISV10F_INSN_ADDUCWR; goto extract_sfmt_addscwr;
1082
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1083
          }
1084
        }
1085
      case 194 :
1086
        {
1087
          unsigned int val = (((insn >> 0) & (15 << 0)));
1088
          switch (val)
1089
          {
1090
          case 0 : /* fall through */
1091
          case 1 : /* fall through */
1092
          case 2 : /* fall through */
1093
          case 3 : /* fall through */
1094
          case 4 : /* fall through */
1095
          case 5 : /* fall through */
1096
          case 6 : /* fall through */
1097
          case 7 : /* fall through */
1098
          case 8 : /* fall through */
1099
          case 9 : /* fall through */
1100
          case 10 : /* fall through */
1101
          case 11 : /* fall through */
1102
          case 12 : /* fall through */
1103
          case 13 : /* fall through */
1104
          case 14 : itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
1105
          case 15 : itype = CRISV10F_INSN_ADDSCBR; goto extract_sfmt_addscbr;
1106
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1107
          }
1108
        }
1109
      case 195 :
1110
        {
1111
          unsigned int val = (((insn >> 0) & (15 << 0)));
1112
          switch (val)
1113
          {
1114
          case 0 : /* fall through */
1115
          case 1 : /* fall through */
1116
          case 2 : /* fall through */
1117
          case 3 : /* fall through */
1118
          case 4 : /* fall through */
1119
          case 5 : /* fall through */
1120
          case 6 : /* fall through */
1121
          case 7 : /* fall through */
1122
          case 8 : /* fall through */
1123
          case 9 : /* fall through */
1124
          case 10 : /* fall through */
1125
          case 11 : /* fall through */
1126
          case 12 : /* fall through */
1127
          case 13 : /* fall through */
1128
          case 14 : itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
1129
          case 15 : itype = CRISV10F_INSN_ADDSCWR; goto extract_sfmt_addscwr;
1130
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1131
          }
1132
        }
1133
      case 196 :
1134
        {
1135
          unsigned int val = (((insn >> 0) & (15 << 0)));
1136
          switch (val)
1137
          {
1138
          case 0 : /* fall through */
1139
          case 1 : /* fall through */
1140
          case 2 : /* fall through */
1141
          case 3 : /* fall through */
1142
          case 4 : /* fall through */
1143
          case 5 : /* fall through */
1144
          case 6 : /* fall through */
1145
          case 7 : /* fall through */
1146
          case 8 : /* fall through */
1147
          case 9 : /* fall through */
1148
          case 10 : /* fall through */
1149
          case 11 : /* fall through */
1150
          case 12 : /* fall through */
1151
          case 13 : /* fall through */
1152
          case 14 : itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
1153
          case 15 : itype = CRISV10F_INSN_MOVUCBR; goto extract_sfmt_movucbr;
1154
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1155
          }
1156
        }
1157
      case 197 :
1158
        {
1159
          unsigned int val = (((insn >> 0) & (15 << 0)));
1160
          switch (val)
1161
          {
1162
          case 0 : /* fall through */
1163
          case 1 : /* fall through */
1164
          case 2 : /* fall through */
1165
          case 3 : /* fall through */
1166
          case 4 : /* fall through */
1167
          case 5 : /* fall through */
1168
          case 6 : /* fall through */
1169
          case 7 : /* fall through */
1170
          case 8 : /* fall through */
1171
          case 9 : /* fall through */
1172
          case 10 : /* fall through */
1173
          case 11 : /* fall through */
1174
          case 12 : /* fall through */
1175
          case 13 : /* fall through */
1176
          case 14 : itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
1177
          case 15 : itype = CRISV10F_INSN_MOVUCWR; goto extract_sfmt_movucwr;
1178
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1179
          }
1180
        }
1181
      case 198 :
1182
        {
1183
          unsigned int val = (((insn >> 0) & (15 << 0)));
1184
          switch (val)
1185
          {
1186
          case 0 : /* fall through */
1187
          case 1 : /* fall through */
1188
          case 2 : /* fall through */
1189
          case 3 : /* fall through */
1190
          case 4 : /* fall through */
1191
          case 5 : /* fall through */
1192
          case 6 : /* fall through */
1193
          case 7 : /* fall through */
1194
          case 8 : /* fall through */
1195
          case 9 : /* fall through */
1196
          case 10 : /* fall through */
1197
          case 11 : /* fall through */
1198
          case 12 : /* fall through */
1199
          case 13 : /* fall through */
1200
          case 14 : itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
1201
          case 15 : itype = CRISV10F_INSN_MOVSCBR; goto extract_sfmt_movscbr;
1202
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1203
          }
1204
        }
1205
      case 199 :
1206
        {
1207
          unsigned int val = (((insn >> 0) & (15 << 0)));
1208
          switch (val)
1209
          {
1210
          case 0 : /* fall through */
1211
          case 1 : /* fall through */
1212
          case 2 : /* fall through */
1213
          case 3 : /* fall through */
1214
          case 4 : /* fall through */
1215
          case 5 : /* fall through */
1216
          case 6 : /* fall through */
1217
          case 7 : /* fall through */
1218
          case 8 : /* fall through */
1219
          case 9 : /* fall through */
1220
          case 10 : /* fall through */
1221
          case 11 : /* fall through */
1222
          case 12 : /* fall through */
1223
          case 13 : /* fall through */
1224
          case 14 : itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
1225
          case 15 : itype = CRISV10F_INSN_MOVSCWR; goto extract_sfmt_movscwr;
1226
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1227
          }
1228
        }
1229
      case 200 :
1230
        {
1231
          unsigned int val = (((insn >> 0) & (15 << 0)));
1232
          switch (val)
1233
          {
1234
          case 0 : /* fall through */
1235
          case 1 : /* fall through */
1236
          case 2 : /* fall through */
1237
          case 3 : /* fall through */
1238
          case 4 : /* fall through */
1239
          case 5 : /* fall through */
1240
          case 6 : /* fall through */
1241
          case 7 : /* fall through */
1242
          case 8 : /* fall through */
1243
          case 9 : /* fall through */
1244
          case 10 : /* fall through */
1245
          case 11 : /* fall through */
1246
          case 12 : /* fall through */
1247
          case 13 : /* fall through */
1248
          case 14 : itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
1249
          case 15 : itype = CRISV10F_INSN_SUBUCBR; goto extract_sfmt_addscbr;
1250
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1251
          }
1252
        }
1253
      case 201 :
1254
        {
1255
          unsigned int val = (((insn >> 0) & (15 << 0)));
1256
          switch (val)
1257
          {
1258
          case 0 : /* fall through */
1259
          case 1 : /* fall through */
1260
          case 2 : /* fall through */
1261
          case 3 : /* fall through */
1262
          case 4 : /* fall through */
1263
          case 5 : /* fall through */
1264
          case 6 : /* fall through */
1265
          case 7 : /* fall through */
1266
          case 8 : /* fall through */
1267
          case 9 : /* fall through */
1268
          case 10 : /* fall through */
1269
          case 11 : /* fall through */
1270
          case 12 : /* fall through */
1271
          case 13 : /* fall through */
1272
          case 14 : itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
1273
          case 15 : itype = CRISV10F_INSN_SUBUCWR; goto extract_sfmt_addscwr;
1274
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1275
          }
1276
        }
1277
      case 202 :
1278
        {
1279
          unsigned int val = (((insn >> 0) & (15 << 0)));
1280
          switch (val)
1281
          {
1282
          case 0 : /* fall through */
1283
          case 1 : /* fall through */
1284
          case 2 : /* fall through */
1285
          case 3 : /* fall through */
1286
          case 4 : /* fall through */
1287
          case 5 : /* fall through */
1288
          case 6 : /* fall through */
1289
          case 7 : /* fall through */
1290
          case 8 : /* fall through */
1291
          case 9 : /* fall through */
1292
          case 10 : /* fall through */
1293
          case 11 : /* fall through */
1294
          case 12 : /* fall through */
1295
          case 13 : /* fall through */
1296
          case 14 : itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
1297
          case 15 : itype = CRISV10F_INSN_SUBSCBR; goto extract_sfmt_addscbr;
1298
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1299
          }
1300
        }
1301
      case 203 :
1302
        {
1303
          unsigned int val = (((insn >> 0) & (15 << 0)));
1304
          switch (val)
1305
          {
1306
          case 0 : /* fall through */
1307
          case 1 : /* fall through */
1308
          case 2 : /* fall through */
1309
          case 3 : /* fall through */
1310
          case 4 : /* fall through */
1311
          case 5 : /* fall through */
1312
          case 6 : /* fall through */
1313
          case 7 : /* fall through */
1314
          case 8 : /* fall through */
1315
          case 9 : /* fall through */
1316
          case 10 : /* fall through */
1317
          case 11 : /* fall through */
1318
          case 12 : /* fall through */
1319
          case 13 : /* fall through */
1320
          case 14 : itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
1321
          case 15 : itype = CRISV10F_INSN_SUBSCWR; goto extract_sfmt_addscwr;
1322
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1323
          }
1324
        }
1325
      case 204 :
1326
        {
1327
          unsigned int val = (((insn >> 0) & (15 << 0)));
1328
          switch (val)
1329
          {
1330
          case 0 : /* fall through */
1331
          case 1 : /* fall through */
1332
          case 2 : /* fall through */
1333
          case 3 : /* fall through */
1334
          case 4 : /* fall through */
1335
          case 5 : /* fall through */
1336
          case 6 : /* fall through */
1337
          case 7 : /* fall through */
1338
          case 8 : /* fall through */
1339
          case 9 : /* fall through */
1340
          case 10 : /* fall through */
1341
          case 11 : /* fall through */
1342
          case 12 : /* fall through */
1343
          case 13 : /* fall through */
1344
          case 14 : itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
1345
          case 15 : itype = CRISV10F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr;
1346
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1347
          }
1348
        }
1349
      case 205 :
1350
        {
1351
          unsigned int val = (((insn >> 0) & (15 << 0)));
1352
          switch (val)
1353
          {
1354
          case 0 : /* fall through */
1355
          case 1 : /* fall through */
1356
          case 2 : /* fall through */
1357
          case 3 : /* fall through */
1358
          case 4 : /* fall through */
1359
          case 5 : /* fall through */
1360
          case 6 : /* fall through */
1361
          case 7 : /* fall through */
1362
          case 8 : /* fall through */
1363
          case 9 : /* fall through */
1364
          case 10 : /* fall through */
1365
          case 11 : /* fall through */
1366
          case 12 : /* fall through */
1367
          case 13 : /* fall through */
1368
          case 14 : itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
1369
          case 15 : itype = CRISV10F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr;
1370
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1371
          }
1372
        }
1373
      case 206 :
1374
        {
1375
          unsigned int val = (((insn >> 0) & (15 << 0)));
1376
          switch (val)
1377
          {
1378
          case 0 : /* fall through */
1379
          case 1 : /* fall through */
1380
          case 2 : /* fall through */
1381
          case 3 : /* fall through */
1382
          case 4 : /* fall through */
1383
          case 5 : /* fall through */
1384
          case 6 : /* fall through */
1385
          case 7 : /* fall through */
1386
          case 8 : /* fall through */
1387
          case 9 : /* fall through */
1388
          case 10 : /* fall through */
1389
          case 11 : /* fall through */
1390
          case 12 : /* fall through */
1391
          case 13 : /* fall through */
1392
          case 14 : itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
1393
          case 15 : itype = CRISV10F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr;
1394
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1395
          }
1396
        }
1397
      case 207 :
1398
        {
1399
          unsigned int val = (((insn >> 0) & (15 << 0)));
1400
          switch (val)
1401
          {
1402
          case 0 : /* fall through */
1403
          case 1 : /* fall through */
1404
          case 2 : /* fall through */
1405
          case 3 : /* fall through */
1406
          case 4 : /* fall through */
1407
          case 5 : /* fall through */
1408
          case 6 : /* fall through */
1409
          case 7 : /* fall through */
1410
          case 8 : /* fall through */
1411
          case 9 : /* fall through */
1412
          case 10 : /* fall through */
1413
          case 11 : /* fall through */
1414
          case 12 : /* fall through */
1415
          case 13 : /* fall through */
1416
          case 14 : itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
1417
          case 15 : itype = CRISV10F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr;
1418
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1419
          }
1420
        }
1421
      case 208 : itype = CRISV10F_INSN_MULS_B; goto extract_sfmt_muls_b;
1422
      case 209 : itype = CRISV10F_INSN_MULS_W; goto extract_sfmt_muls_b;
1423
      case 210 : itype = CRISV10F_INSN_MULS_D; goto extract_sfmt_muls_b;
1424
      case 211 :
1425
        {
1426
          unsigned int val = (((insn >> 0) & (15 << 0)));
1427
          switch (val)
1428
          {
1429
          case 0 : /* fall through */
1430
          case 1 : /* fall through */
1431
          case 2 : /* fall through */
1432
          case 3 : /* fall through */
1433
          case 4 : /* fall through */
1434
          case 5 : /* fall through */
1435
          case 6 : /* fall through */
1436
          case 7 : /* fall through */
1437
          case 8 : /* fall through */
1438
          case 9 : /* fall through */
1439
          case 10 : /* fall through */
1440
          case 11 : /* fall through */
1441
          case 12 : /* fall through */
1442
          case 13 : /* fall through */
1443
          case 14 : itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m;
1444
          case 15 : itype = CRISV10F_INSN_JUMP_C; goto extract_sfmt_jump_c;
1445
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1446
          }
1447
        }
1448
      case 212 :
1449
        {
1450
          unsigned int val = (((insn >> 0) & (15 << 0)));
1451
          switch (val)
1452
          {
1453
          case 0 : /* fall through */
1454
          case 1 : /* fall through */
1455
          case 2 : /* fall through */
1456
          case 3 : /* fall through */
1457
          case 4 : /* fall through */
1458
          case 5 : /* fall through */
1459
          case 6 : /* fall through */
1460
          case 7 : /* fall through */
1461
          case 8 : /* fall through */
1462
          case 9 : /* fall through */
1463
          case 10 : /* fall through */
1464
          case 11 : /* fall through */
1465
          case 12 : /* fall through */
1466
          case 13 : /* fall through */
1467
          case 14 : itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
1468
          case 15 : itype = CRISV10F_INSN_ADDO_CB; goto extract_sfmt_addo_cb;
1469
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1470
          }
1471
        }
1472
      case 213 :
1473
        {
1474
          unsigned int val = (((insn >> 0) & (15 << 0)));
1475
          switch (val)
1476
          {
1477
          case 0 : /* fall through */
1478
          case 1 : /* fall through */
1479
          case 2 : /* fall through */
1480
          case 3 : /* fall through */
1481
          case 4 : /* fall through */
1482
          case 5 : /* fall through */
1483
          case 6 : /* fall through */
1484
          case 7 : /* fall through */
1485
          case 8 : /* fall through */
1486
          case 9 : /* fall through */
1487
          case 10 : /* fall through */
1488
          case 11 : /* fall through */
1489
          case 12 : /* fall through */
1490
          case 13 : /* fall through */
1491
          case 14 : itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
1492
          case 15 : itype = CRISV10F_INSN_ADDO_CW; goto extract_sfmt_addo_cw;
1493
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1494
          }
1495
        }
1496
      case 214 :
1497
        {
1498
          unsigned int val = (((insn >> 12) & (15 << 0)));
1499
          switch (val)
1500
          {
1501
          case 0 : /* fall through */
1502
          case 1 : /* fall through */
1503
          case 2 : /* fall through */
1504
          case 3 : /* fall through */
1505
          case 4 : /* fall through */
1506
          case 5 : /* fall through */
1507
          case 6 : /* fall through */
1508
          case 7 : /* fall through */
1509
          case 8 : /* fall through */
1510
          case 9 : /* fall through */
1511
          case 10 : /* fall through */
1512
          case 11 : /* fall through */
1513
          case 12 : /* fall through */
1514
          case 13 : /* fall through */
1515
          case 14 :
1516
            {
1517
              unsigned int val = (((insn >> 0) & (15 << 0)));
1518
              switch (val)
1519
              {
1520
              case 0 : /* fall through */
1521
              case 1 : /* fall through */
1522
              case 2 : /* fall through */
1523
              case 3 : /* fall through */
1524
              case 4 : /* fall through */
1525
              case 5 : /* fall through */
1526
              case 6 : /* fall through */
1527
              case 7 : /* fall through */
1528
              case 8 : /* fall through */
1529
              case 9 : /* fall through */
1530
              case 10 : /* fall through */
1531
              case 11 : /* fall through */
1532
              case 12 : /* fall through */
1533
              case 13 : /* fall through */
1534
              case 14 : itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
1535
              case 15 : itype = CRISV10F_INSN_ADDO_CD; goto extract_sfmt_addo_cd;
1536
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1537
              }
1538
            }
1539
          case 15 :
1540
            {
1541
              unsigned int val = (((insn >> 0) & (15 << 0)));
1542
              switch (val)
1543
              {
1544
              case 0 : /* fall through */
1545
              case 1 : /* fall through */
1546
              case 2 : /* fall through */
1547
              case 3 : /* fall through */
1548
              case 4 : /* fall through */
1549
              case 5 : /* fall through */
1550
              case 6 : /* fall through */
1551
              case 7 : /* fall through */
1552
              case 8 : /* fall through */
1553
              case 9 : /* fall through */
1554
              case 10 : /* fall through */
1555
              case 11 : /* fall through */
1556
              case 12 : /* fall through */
1557
              case 13 : /* fall through */
1558
              case 14 : itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
1559
              case 15 : itype = CRISV10F_INSN_BDAP_32_PC; goto extract_sfmt_bdap_32_pc;
1560
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1561
              }
1562
            }
1563
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1564
          }
1565
        }
1566
      case 215 :
1567
        {
1568
          unsigned int val = (((insn >> 0) & (15 << 0)));
1569
          switch (val)
1570
          {
1571
          case 0 : /* fall through */
1572
          case 1 : /* fall through */
1573
          case 2 : /* fall through */
1574
          case 3 : /* fall through */
1575
          case 4 : /* fall through */
1576
          case 5 : /* fall through */
1577
          case 6 : /* fall through */
1578
          case 7 : /* fall through */
1579
          case 8 : /* fall through */
1580
          case 9 : /* fall through */
1581
          case 10 : /* fall through */
1582
          case 11 : /* fall through */
1583
          case 12 : /* fall through */
1584
          case 13 : /* fall through */
1585
          case 14 :
1586
            if ((base_insn & 0xfbf0) == 0x970)
1587
              { itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m; }
1588
            itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1589
          case 15 :
1590
            if ((base_insn & 0xffff) == 0xd7f)
1591
              { itype = CRISV10F_INSN_DIP_C; goto extract_sfmt_dip_c; }
1592
            itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1593
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1594
          }
1595
        }
1596
      case 220 :
1597
        {
1598
          unsigned int val = (((insn >> 0) & (15 << 0)));
1599
          switch (val)
1600
          {
1601
          case 0 : /* fall through */
1602
          case 1 : /* fall through */
1603
          case 2 : /* fall through */
1604
          case 3 : /* fall through */
1605
          case 4 : /* fall through */
1606
          case 5 : /* fall through */
1607
          case 6 : /* fall through */
1608
          case 7 : /* fall through */
1609
          case 8 : /* fall through */
1610
          case 9 : /* fall through */
1611
          case 10 : /* fall through */
1612
          case 11 : /* fall through */
1613
          case 12 : /* fall through */
1614
          case 13 : /* fall through */
1615
          case 14 : itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m;
1616
          case 15 : itype = CRISV10F_INSN_BOUND_CB; goto extract_sfmt_bound_cb;
1617
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1618
          }
1619
        }
1620
      case 221 :
1621
        {
1622
          unsigned int val = (((insn >> 0) & (15 << 0)));
1623
          switch (val)
1624
          {
1625
          case 0 : /* fall through */
1626
          case 1 : /* fall through */
1627
          case 2 : /* fall through */
1628
          case 3 : /* fall through */
1629
          case 4 : /* fall through */
1630
          case 5 : /* fall through */
1631
          case 6 : /* fall through */
1632
          case 7 : /* fall through */
1633
          case 8 : /* fall through */
1634
          case 9 : /* fall through */
1635
          case 10 : /* fall through */
1636
          case 11 : /* fall through */
1637
          case 12 : /* fall through */
1638
          case 13 : /* fall through */
1639
          case 14 : itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m;
1640
          case 15 : itype = CRISV10F_INSN_BOUND_CW; goto extract_sfmt_bound_cw;
1641
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1642
          }
1643
        }
1644
      case 222 :
1645
        {
1646
          unsigned int val = (((insn >> 0) & (15 << 0)));
1647
          switch (val)
1648
          {
1649
          case 0 : /* fall through */
1650
          case 1 : /* fall through */
1651
          case 2 : /* fall through */
1652
          case 3 : /* fall through */
1653
          case 4 : /* fall through */
1654
          case 5 : /* fall through */
1655
          case 6 : /* fall through */
1656
          case 7 : /* fall through */
1657
          case 8 : /* fall through */
1658
          case 9 : /* fall through */
1659
          case 10 : /* fall through */
1660
          case 11 : /* fall through */
1661
          case 12 : /* fall through */
1662
          case 13 : /* fall through */
1663
          case 14 : itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m;
1664
          case 15 : itype = CRISV10F_INSN_BOUND_CD; goto extract_sfmt_bound_cd;
1665
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1666
          }
1667
        }
1668
      case 223 :
1669
        {
1670
          unsigned int val = (((insn >> 12) & (15 << 0)));
1671
          switch (val)
1672
          {
1673
          case 0 : /* fall through */
1674
          case 1 : /* fall through */
1675
          case 2 : /* fall through */
1676
          case 3 : /* fall through */
1677
          case 4 : /* fall through */
1678
          case 5 : /* fall through */
1679
          case 6 : /* fall through */
1680
          case 7 : /* fall through */
1681
          case 8 : /* fall through */
1682
          case 9 : /* fall through */
1683
          case 10 : /* fall through */
1684
          case 11 : /* fall through */
1685
          case 12 : /* fall through */
1686
          case 13 : /* fall through */
1687
          case 15 :
1688
            if ((base_insn & 0xfff) == 0xdff)
1689
              { itype = CRISV10F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
1690
            itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1691
          case 14 :
1692
            if ((base_insn & 0xffff) == 0xedff)
1693
              { itype = CRISV10F_INSN_BA_W; goto extract_sfmt_ba_w; }
1694
            itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1695
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1696
          }
1697
        }
1698
      case 224 :
1699
        {
1700
          unsigned int val = (((insn >> 0) & (15 << 0)));
1701
          switch (val)
1702
          {
1703
          case 0 : /* fall through */
1704
          case 1 : /* fall through */
1705
          case 2 : /* fall through */
1706
          case 3 : /* fall through */
1707
          case 4 : /* fall through */
1708
          case 5 : /* fall through */
1709
          case 6 : /* fall through */
1710
          case 7 : /* fall through */
1711
          case 8 : /* fall through */
1712
          case 9 : /* fall through */
1713
          case 10 : /* fall through */
1714
          case 11 : /* fall through */
1715
          case 12 : /* fall through */
1716
          case 13 : /* fall through */
1717
          case 14 : itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
1718
          case 15 : itype = CRISV10F_INSN_ADDCBR; goto extract_sfmt_addcbr;
1719
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1720
          }
1721
        }
1722
      case 225 :
1723
        {
1724
          unsigned int val = (((insn >> 0) & (15 << 0)));
1725
          switch (val)
1726
          {
1727
          case 0 : /* fall through */
1728
          case 1 : /* fall through */
1729
          case 2 : /* fall through */
1730
          case 3 : /* fall through */
1731
          case 4 : /* fall through */
1732
          case 5 : /* fall through */
1733
          case 6 : /* fall through */
1734
          case 7 : /* fall through */
1735
          case 8 : /* fall through */
1736
          case 9 : /* fall through */
1737
          case 10 : /* fall through */
1738
          case 11 : /* fall through */
1739
          case 12 : /* fall through */
1740
          case 13 : /* fall through */
1741
          case 14 : itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
1742
          case 15 : itype = CRISV10F_INSN_ADDCWR; goto extract_sfmt_addcwr;
1743
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1744
          }
1745
        }
1746
      case 226 :
1747
        {
1748
          unsigned int val = (((insn >> 12) & (15 << 0)));
1749
          switch (val)
1750
          {
1751
          case 0 : /* fall through */
1752
          case 1 : /* fall through */
1753
          case 2 : /* fall through */
1754
          case 3 : /* fall through */
1755
          case 4 : /* fall through */
1756
          case 5 : /* fall through */
1757
          case 6 : /* fall through */
1758
          case 7 : /* fall through */
1759
          case 8 : /* fall through */
1760
          case 9 : /* fall through */
1761
          case 10 : /* fall through */
1762
          case 11 : /* fall through */
1763
          case 12 : /* fall through */
1764
          case 13 : /* fall through */
1765
          case 14 :
1766
            {
1767
              unsigned int val = (((insn >> 0) & (15 << 0)));
1768
              switch (val)
1769
              {
1770
              case 0 : /* fall through */
1771
              case 1 : /* fall through */
1772
              case 2 : /* fall through */
1773
              case 3 : /* fall through */
1774
              case 4 : /* fall through */
1775
              case 5 : /* fall through */
1776
              case 6 : /* fall through */
1777
              case 7 : /* fall through */
1778
              case 8 : /* fall through */
1779
              case 9 : /* fall through */
1780
              case 10 : /* fall through */
1781
              case 11 : /* fall through */
1782
              case 12 : /* fall through */
1783
              case 13 : /* fall through */
1784
              case 14 : itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1785
              case 15 : itype = CRISV10F_INSN_ADDCDR; goto extract_sfmt_addcdr;
1786
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1787
              }
1788
            }
1789
          case 15 :
1790
            {
1791
              unsigned int val = (((insn >> 0) & (15 << 0)));
1792
              switch (val)
1793
              {
1794
              case 0 : /* fall through */
1795
              case 1 : /* fall through */
1796
              case 2 : /* fall through */
1797
              case 3 : /* fall through */
1798
              case 4 : /* fall through */
1799
              case 5 : /* fall through */
1800
              case 6 : /* fall through */
1801
              case 7 : /* fall through */
1802
              case 8 : /* fall through */
1803
              case 9 : /* fall through */
1804
              case 10 : /* fall through */
1805
              case 11 : /* fall through */
1806
              case 12 : /* fall through */
1807
              case 13 : /* fall through */
1808
              case 14 : itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1809
              case 15 : itype = CRISV10F_INSN_ADDCPC; goto extract_sfmt_addcpc;
1810
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1811
              }
1812
            }
1813
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1814
          }
1815
        }
1816
      case 227 :
1817
        {
1818
          unsigned int val = (((insn >> 11) & (15 << 1)) | ((insn >> 0) & (1 << 0)));
1819
          switch (val)
1820
          {
1821
          case 0 : /* fall through */
1822
          case 2 : /* fall through */
1823
          case 3 : /* fall through */
1824
          case 4 : /* fall through */
1825
          case 5 : /* fall through */
1826
          case 6 : /* fall through */
1827
          case 7 : /* fall through */
1828
          case 8 : /* fall through */
1829
          case 9 : /* fall through */
1830
          case 10 : /* fall through */
1831
          case 12 : /* fall through */
1832
          case 13 : /* fall through */
1833
          case 14 : /* fall through */
1834
          case 17 : /* fall through */
1835
          case 18 : /* fall through */
1836
          case 20 : /* fall through */
1837
          case 22 : /* fall through */
1838
          case 24 : /* fall through */
1839
          case 26 : /* fall through */
1840
          case 28 : /* fall through */
1841
          case 30 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1842
          case 1 :
1843
            {
1844
              unsigned int val = (((insn >> 1) & (7 << 0)));
1845
              switch (val)
1846
              {
1847
              case 0 : /* fall through */
1848
              case 1 : /* fall through */
1849
              case 2 : /* fall through */
1850
              case 3 : /* fall through */
1851
              case 4 : /* fall through */
1852
              case 5 : /* fall through */
1853
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1854
              case 7 : itype = CRISV10F_INSN_MOVE_M_PCPLUS_P0; goto extract_sfmt_move_m_pcplus_p0;
1855
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1856
              }
1857
            }
1858
          case 11 :
1859
            {
1860
              unsigned int val = (((insn >> 1) & (7 << 0)));
1861
              switch (val)
1862
              {
1863
              case 0 : /* fall through */
1864
              case 1 : /* fall through */
1865
              case 2 : /* fall through */
1866
              case 3 : /* fall through */
1867
              case 4 : /* fall through */
1868
              case 5 : /* fall through */
1869
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1870
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P5; goto extract_sfmt_move_c_sprv10_p5;
1871
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1872
              }
1873
            }
1874
          case 15 :
1875
            {
1876
              unsigned int val = (((insn >> 1) & (7 << 0)));
1877
              switch (val)
1878
              {
1879
              case 0 : /* fall through */
1880
              case 1 : /* fall through */
1881
              case 2 : /* fall through */
1882
              case 3 : /* fall through */
1883
              case 4 : /* fall through */
1884
              case 5 : /* fall through */
1885
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1886
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P7; goto extract_sfmt_move_c_sprv10_p9;
1887
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1888
              }
1889
            }
1890
          case 16 :
1891
            {
1892
              unsigned int val = (((insn >> 1) & (7 << 0)));
1893
              switch (val)
1894
              {
1895
              case 0 : /* fall through */
1896
              case 1 : /* fall through */
1897
              case 2 : /* fall through */
1898
              case 3 : /* fall through */
1899
              case 4 : /* fall through */
1900
              case 5 : /* fall through */
1901
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1902
              case 7 : itype = CRISV10F_INSN_MOVE_M_SPPLUS_P8; goto extract_sfmt_move_m_spplus_p8;
1903
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1904
              }
1905
            }
1906
          case 19 :
1907
            {
1908
              unsigned int val = (((insn >> 1) & (7 << 0)));
1909
              switch (val)
1910
              {
1911
              case 0 : /* fall through */
1912
              case 1 : /* fall through */
1913
              case 2 : /* fall through */
1914
              case 3 : /* fall through */
1915
              case 4 : /* fall through */
1916
              case 5 : /* fall through */
1917
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1918
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P9; goto extract_sfmt_move_c_sprv10_p9;
1919
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1920
              }
1921
            }
1922
          case 21 :
1923
            {
1924
              unsigned int val = (((insn >> 1) & (7 << 0)));
1925
              switch (val)
1926
              {
1927
              case 0 : /* fall through */
1928
              case 1 : /* fall through */
1929
              case 2 : /* fall through */
1930
              case 3 : /* fall through */
1931
              case 4 : /* fall through */
1932
              case 5 : /* fall through */
1933
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1934
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P10; goto extract_sfmt_move_c_sprv10_p9;
1935
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1936
              }
1937
            }
1938
          case 23 :
1939
            {
1940
              unsigned int val = (((insn >> 1) & (7 << 0)));
1941
              switch (val)
1942
              {
1943
              case 0 : /* fall through */
1944
              case 1 : /* fall through */
1945
              case 2 : /* fall through */
1946
              case 3 : /* fall through */
1947
              case 4 : /* fall through */
1948
              case 5 : /* fall through */
1949
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1950
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P11; goto extract_sfmt_move_c_sprv10_p9;
1951
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1952
              }
1953
            }
1954
          case 25 :
1955
            {
1956
              unsigned int val = (((insn >> 1) & (7 << 0)));
1957
              switch (val)
1958
              {
1959
              case 0 : /* fall through */
1960
              case 1 : /* fall through */
1961
              case 2 : /* fall through */
1962
              case 3 : /* fall through */
1963
              case 4 : /* fall through */
1964
              case 5 : /* fall through */
1965
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1966
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P12; goto extract_sfmt_move_c_sprv10_p9;
1967
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1968
              }
1969
            }
1970
          case 27 :
1971
            {
1972
              unsigned int val = (((insn >> 1) & (7 << 0)));
1973
              switch (val)
1974
              {
1975
              case 0 : /* fall through */
1976
              case 1 : /* fall through */
1977
              case 2 : /* fall through */
1978
              case 3 : /* fall through */
1979
              case 4 : /* fall through */
1980
              case 5 : /* fall through */
1981
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1982
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P13; goto extract_sfmt_move_c_sprv10_p9;
1983
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1984
              }
1985
            }
1986
          case 29 :
1987
            {
1988
              unsigned int val = (((insn >> 1) & (7 << 0)));
1989
              switch (val)
1990
              {
1991
              case 0 : /* fall through */
1992
              case 1 : /* fall through */
1993
              case 2 : /* fall through */
1994
              case 3 : /* fall through */
1995
              case 4 : /* fall through */
1996
              case 5 : /* fall through */
1997
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1998
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P14; goto extract_sfmt_move_c_sprv10_p9;
1999
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2000
              }
2001
            }
2002
          case 31 :
2003
            {
2004
              unsigned int val = (((insn >> 1) & (7 << 0)));
2005
              switch (val)
2006
              {
2007
              case 0 : /* fall through */
2008
              case 1 : /* fall through */
2009
              case 2 : /* fall through */
2010
              case 3 : /* fall through */
2011
              case 4 : /* fall through */
2012
              case 5 : /* fall through */
2013
              case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
2014
              case 7 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P15; goto extract_sfmt_move_c_sprv10_p9;
2015
              default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2016
              }
2017
            }
2018
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2019
          }
2020
        }
2021
      case 228 :
2022
        {
2023
          unsigned int val = (((insn >> 0) & (15 << 0)));
2024
          switch (val)
2025
          {
2026
          case 0 : /* fall through */
2027
          case 1 : /* fall through */
2028
          case 2 : /* fall through */
2029
          case 3 : /* fall through */
2030
          case 4 : /* fall through */
2031
          case 5 : /* fall through */
2032
          case 6 : /* fall through */
2033
          case 7 : /* fall through */
2034
          case 8 : /* fall through */
2035
          case 9 : /* fall through */
2036
          case 10 : /* fall through */
2037
          case 11 : /* fall through */
2038
          case 12 : /* fall through */
2039
          case 13 : /* fall through */
2040
          case 14 : itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
2041
          case 15 : itype = CRISV10F_INSN_MOVECBR; goto extract_sfmt_movecbr;
2042
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2043
          }
2044
        }
2045
      case 229 :
2046
        {
2047
          unsigned int val = (((insn >> 0) & (15 << 0)));
2048
          switch (val)
2049
          {
2050
          case 0 : /* fall through */
2051
          case 1 : /* fall through */
2052
          case 2 : /* fall through */
2053
          case 3 : /* fall through */
2054
          case 4 : /* fall through */
2055
          case 5 : /* fall through */
2056
          case 6 : /* fall through */
2057
          case 7 : /* fall through */
2058
          case 8 : /* fall through */
2059
          case 9 : /* fall through */
2060
          case 10 : /* fall through */
2061
          case 11 : /* fall through */
2062
          case 12 : /* fall through */
2063
          case 13 : /* fall through */
2064
          case 14 : itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
2065
          case 15 : itype = CRISV10F_INSN_MOVECWR; goto extract_sfmt_movecwr;
2066
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2067
          }
2068
        }
2069
      case 230 :
2070
        {
2071
          unsigned int val = (((insn >> 0) & (15 << 0)));
2072
          switch (val)
2073
          {
2074
          case 0 : /* fall through */
2075
          case 1 : /* fall through */
2076
          case 2 : /* fall through */
2077
          case 3 : /* fall through */
2078
          case 4 : /* fall through */
2079
          case 5 : /* fall through */
2080
          case 6 : /* fall through */
2081
          case 7 : /* fall through */
2082
          case 8 : /* fall through */
2083
          case 9 : /* fall through */
2084
          case 10 : /* fall through */
2085
          case 11 : /* fall through */
2086
          case 12 : /* fall through */
2087
          case 13 : /* fall through */
2088
          case 14 : itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
2089
          case 15 : itype = CRISV10F_INSN_MOVECDR; goto extract_sfmt_movecdr;
2090
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2091
          }
2092
        }
2093
      case 232 :
2094
        {
2095
          unsigned int val = (((insn >> 0) & (15 << 0)));
2096
          switch (val)
2097
          {
2098
          case 0 : /* fall through */
2099
          case 1 : /* fall through */
2100
          case 2 : /* fall through */
2101
          case 3 : /* fall through */
2102
          case 4 : /* fall through */
2103
          case 5 : /* fall through */
2104
          case 6 : /* fall through */
2105
          case 7 : /* fall through */
2106
          case 8 : /* fall through */
2107
          case 9 : /* fall through */
2108
          case 10 : /* fall through */
2109
          case 11 : /* fall through */
2110
          case 12 : /* fall through */
2111
          case 13 : /* fall through */
2112
          case 14 : itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
2113
          case 15 : itype = CRISV10F_INSN_SUBCBR; goto extract_sfmt_addcbr;
2114
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2115
          }
2116
        }
2117
      case 233 :
2118
        {
2119
          unsigned int val = (((insn >> 0) & (15 << 0)));
2120
          switch (val)
2121
          {
2122
          case 0 : /* fall through */
2123
          case 1 : /* fall through */
2124
          case 2 : /* fall through */
2125
          case 3 : /* fall through */
2126
          case 4 : /* fall through */
2127
          case 5 : /* fall through */
2128
          case 6 : /* fall through */
2129
          case 7 : /* fall through */
2130
          case 8 : /* fall through */
2131
          case 9 : /* fall through */
2132
          case 10 : /* fall through */
2133
          case 11 : /* fall through */
2134
          case 12 : /* fall through */
2135
          case 13 : /* fall through */
2136
          case 14 : itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
2137
          case 15 : itype = CRISV10F_INSN_SUBCWR; goto extract_sfmt_addcwr;
2138
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2139
          }
2140
        }
2141
      case 234 :
2142
        {
2143
          unsigned int val = (((insn >> 0) & (15 << 0)));
2144
          switch (val)
2145
          {
2146
          case 0 : /* fall through */
2147
          case 1 : /* fall through */
2148
          case 2 : /* fall through */
2149
          case 3 : /* fall through */
2150
          case 4 : /* fall through */
2151
          case 5 : /* fall through */
2152
          case 6 : /* fall through */
2153
          case 7 : /* fall through */
2154
          case 8 : /* fall through */
2155
          case 9 : /* fall through */
2156
          case 10 : /* fall through */
2157
          case 11 : /* fall through */
2158
          case 12 : /* fall through */
2159
          case 13 : /* fall through */
2160
          case 14 : itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
2161
          case 15 : itype = CRISV10F_INSN_SUBCDR; goto extract_sfmt_addcdr;
2162
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2163
          }
2164
        }
2165
      case 236 :
2166
        {
2167
          unsigned int val = (((insn >> 0) & (15 << 0)));
2168
          switch (val)
2169
          {
2170
          case 0 : /* fall through */
2171
          case 1 : /* fall through */
2172
          case 2 : /* fall through */
2173
          case 3 : /* fall through */
2174
          case 4 : /* fall through */
2175
          case 5 : /* fall through */
2176
          case 6 : /* fall through */
2177
          case 7 : /* fall through */
2178
          case 8 : /* fall through */
2179
          case 9 : /* fall through */
2180
          case 10 : /* fall through */
2181
          case 11 : /* fall through */
2182
          case 12 : /* fall through */
2183
          case 13 : /* fall through */
2184
          case 14 : itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
2185
          case 15 : itype = CRISV10F_INSN_CMPCBR; goto extract_sfmt_cmpcbr;
2186
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2187
          }
2188
        }
2189
      case 237 :
2190
        {
2191
          unsigned int val = (((insn >> 0) & (15 << 0)));
2192
          switch (val)
2193
          {
2194
          case 0 : /* fall through */
2195
          case 1 : /* fall through */
2196
          case 2 : /* fall through */
2197
          case 3 : /* fall through */
2198
          case 4 : /* fall through */
2199
          case 5 : /* fall through */
2200
          case 6 : /* fall through */
2201
          case 7 : /* fall through */
2202
          case 8 : /* fall through */
2203
          case 9 : /* fall through */
2204
          case 10 : /* fall through */
2205
          case 11 : /* fall through */
2206
          case 12 : /* fall through */
2207
          case 13 : /* fall through */
2208
          case 14 : itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
2209
          case 15 : itype = CRISV10F_INSN_CMPCWR; goto extract_sfmt_cmpcwr;
2210
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2211
          }
2212
        }
2213
      case 238 :
2214
        {
2215
          unsigned int val = (((insn >> 0) & (15 << 0)));
2216
          switch (val)
2217
          {
2218
          case 0 : /* fall through */
2219
          case 1 : /* fall through */
2220
          case 2 : /* fall through */
2221
          case 3 : /* fall through */
2222
          case 4 : /* fall through */
2223
          case 5 : /* fall through */
2224
          case 6 : /* fall through */
2225
          case 7 : /* fall through */
2226
          case 8 : /* fall through */
2227
          case 9 : /* fall through */
2228
          case 10 : /* fall through */
2229
          case 11 : /* fall through */
2230
          case 12 : /* fall through */
2231
          case 13 : /* fall through */
2232
          case 14 : itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
2233
          case 15 : itype = CRISV10F_INSN_CMPCDR; goto extract_sfmt_cmpcdr;
2234
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2235
          }
2236
        }
2237
      case 240 :
2238
        {
2239
          unsigned int val = (((insn >> 0) & (15 << 0)));
2240
          switch (val)
2241
          {
2242
          case 0 : /* fall through */
2243
          case 1 : /* fall through */
2244
          case 2 : /* fall through */
2245
          case 3 : /* fall through */
2246
          case 4 : /* fall through */
2247
          case 5 : /* fall through */
2248
          case 6 : /* fall through */
2249
          case 7 : /* fall through */
2250
          case 8 : /* fall through */
2251
          case 9 : /* fall through */
2252
          case 10 : /* fall through */
2253
          case 11 : /* fall through */
2254
          case 12 : /* fall through */
2255
          case 13 : /* fall through */
2256
          case 14 : itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
2257
          case 15 : itype = CRISV10F_INSN_ANDCBR; goto extract_sfmt_andcbr;
2258
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2259
          }
2260
        }
2261
      case 241 :
2262
        {
2263
          unsigned int val = (((insn >> 0) & (15 << 0)));
2264
          switch (val)
2265
          {
2266
          case 0 : /* fall through */
2267
          case 1 : /* fall through */
2268
          case 2 : /* fall through */
2269
          case 3 : /* fall through */
2270
          case 4 : /* fall through */
2271
          case 5 : /* fall through */
2272
          case 6 : /* fall through */
2273
          case 7 : /* fall through */
2274
          case 8 : /* fall through */
2275
          case 9 : /* fall through */
2276
          case 10 : /* fall through */
2277
          case 11 : /* fall through */
2278
          case 12 : /* fall through */
2279
          case 13 : /* fall through */
2280
          case 14 : itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
2281
          case 15 : itype = CRISV10F_INSN_ANDCWR; goto extract_sfmt_andcwr;
2282
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2283
          }
2284
        }
2285
      case 242 :
2286
        {
2287
          unsigned int val = (((insn >> 0) & (15 << 0)));
2288
          switch (val)
2289
          {
2290
          case 0 : /* fall through */
2291
          case 1 : /* fall through */
2292
          case 2 : /* fall through */
2293
          case 3 : /* fall through */
2294
          case 4 : /* fall through */
2295
          case 5 : /* fall through */
2296
          case 6 : /* fall through */
2297
          case 7 : /* fall through */
2298
          case 8 : /* fall through */
2299
          case 9 : /* fall through */
2300
          case 10 : /* fall through */
2301
          case 11 : /* fall through */
2302
          case 12 : /* fall through */
2303
          case 13 : /* fall through */
2304
          case 14 : itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
2305
          case 15 : itype = CRISV10F_INSN_ANDCDR; goto extract_sfmt_andcdr;
2306
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2307
          }
2308
        }
2309
      case 244 :
2310
        {
2311
          unsigned int val = (((insn >> 0) & (15 << 0)));
2312
          switch (val)
2313
          {
2314
          case 0 : /* fall through */
2315
          case 1 : /* fall through */
2316
          case 2 : /* fall through */
2317
          case 3 : /* fall through */
2318
          case 4 : /* fall through */
2319
          case 5 : /* fall through */
2320
          case 6 : /* fall through */
2321
          case 7 : /* fall through */
2322
          case 8 : /* fall through */
2323
          case 9 : /* fall through */
2324
          case 10 : /* fall through */
2325
          case 11 : /* fall through */
2326
          case 12 : /* fall through */
2327
          case 13 : /* fall through */
2328
          case 14 : itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
2329
          case 15 : itype = CRISV10F_INSN_ORCBR; goto extract_sfmt_andcbr;
2330
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2331
          }
2332
        }
2333
      case 245 :
2334
        {
2335
          unsigned int val = (((insn >> 0) & (15 << 0)));
2336
          switch (val)
2337
          {
2338
          case 0 : /* fall through */
2339
          case 1 : /* fall through */
2340
          case 2 : /* fall through */
2341
          case 3 : /* fall through */
2342
          case 4 : /* fall through */
2343
          case 5 : /* fall through */
2344
          case 6 : /* fall through */
2345
          case 7 : /* fall through */
2346
          case 8 : /* fall through */
2347
          case 9 : /* fall through */
2348
          case 10 : /* fall through */
2349
          case 11 : /* fall through */
2350
          case 12 : /* fall through */
2351
          case 13 : /* fall through */
2352
          case 14 : itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
2353
          case 15 : itype = CRISV10F_INSN_ORCWR; goto extract_sfmt_andcwr;
2354
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2355
          }
2356
        }
2357
      case 246 :
2358
        {
2359
          unsigned int val = (((insn >> 0) & (15 << 0)));
2360
          switch (val)
2361
          {
2362
          case 0 : /* fall through */
2363
          case 1 : /* fall through */
2364
          case 2 : /* fall through */
2365
          case 3 : /* fall through */
2366
          case 4 : /* fall through */
2367
          case 5 : /* fall through */
2368
          case 6 : /* fall through */
2369
          case 7 : /* fall through */
2370
          case 8 : /* fall through */
2371
          case 9 : /* fall through */
2372
          case 10 : /* fall through */
2373
          case 11 : /* fall through */
2374
          case 12 : /* fall through */
2375
          case 13 : /* fall through */
2376
          case 14 : itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
2377
          case 15 : itype = CRISV10F_INSN_ORCDR; goto extract_sfmt_andcdr;
2378
          default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2379
          }
2380
        }
2381
      default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2382
      }
2383
    }
2384
  }
2385
 
2386
  /* The instruction has been decoded, now extract the fields.  */
2387
 
2388
 extract_sfmt_empty:
2389
  {
2390
    const IDESC *idesc = &crisv10f_insn_data[itype];
2391
#define FLD(f) abuf->fields.sfmt_empty.f
2392
 
2393
 
2394
  /* Record the fields for the semantic handler.  */
2395
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
2396
 
2397
#undef FLD
2398
    return idesc;
2399
  }
2400
 
2401
 extract_sfmt_nop:
2402
  {
2403
    const IDESC *idesc = &crisv10f_insn_data[itype];
2404
#define FLD(f) abuf->fields.sfmt_empty.f
2405
 
2406
 
2407
  /* Record the fields for the semantic handler.  */
2408
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));
2409
 
2410
#undef FLD
2411
    return idesc;
2412
  }
2413
 
2414
 extract_sfmt_move_b_r:
2415
  {
2416
    const IDESC *idesc = &crisv10f_insn_data[itype];
2417
    CGEN_INSN_WORD insn = base_insn;
2418
#define FLD(f) abuf->fields.sfmt_add_b_r.f
2419
    UINT f_operand2;
2420
    UINT f_operand1;
2421
 
2422
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2423
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2424
 
2425
  /* Record the fields for the semantic handler.  */
2426
  FLD (f_operand1) = f_operand1;
2427
  FLD (f_operand2) = f_operand2;
2428
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2429
 
2430
#if WITH_PROFILE_MODEL_P
2431
  /* Record the fields for profiling.  */
2432
  if (PROFILE_MODEL_P (current_cpu))
2433
    {
2434
      FLD (in_Rs) = f_operand1;
2435
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2436
    }
2437
#endif
2438
#undef FLD
2439
    return idesc;
2440
  }
2441
 
2442
 extract_sfmt_move_d_r:
2443
  {
2444
    const IDESC *idesc = &crisv10f_insn_data[itype];
2445
    CGEN_INSN_WORD insn = base_insn;
2446
#define FLD(f) abuf->fields.sfmt_add_b_r.f
2447
    UINT f_operand2;
2448
    UINT f_operand1;
2449
 
2450
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2451
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2452
 
2453
  /* Record the fields for the semantic handler.  */
2454
  FLD (f_operand1) = f_operand1;
2455
  FLD (f_operand2) = f_operand2;
2456
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2457
 
2458
#if WITH_PROFILE_MODEL_P
2459
  /* Record the fields for profiling.  */
2460
  if (PROFILE_MODEL_P (current_cpu))
2461
    {
2462
      FLD (in_Rs) = f_operand1;
2463
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2464
    }
2465
#endif
2466
#undef FLD
2467
    return idesc;
2468
  }
2469
 
2470
 extract_sfmt_movepcr:
2471
  {
2472
    const IDESC *idesc = &crisv10f_insn_data[itype];
2473
    CGEN_INSN_WORD insn = base_insn;
2474
#define FLD(f) abuf->fields.sfmt_moveq.f
2475
    UINT f_operand2;
2476
 
2477
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2478
 
2479
  /* Record the fields for the semantic handler.  */
2480
  FLD (f_operand2) = f_operand2;
2481
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movepcr", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2482
 
2483
#if WITH_PROFILE_MODEL_P
2484
  /* Record the fields for profiling.  */
2485
  if (PROFILE_MODEL_P (current_cpu))
2486
    {
2487
      FLD (out_Rd) = f_operand2;
2488
    }
2489
#endif
2490
#undef FLD
2491
    return idesc;
2492
  }
2493
 
2494
 extract_sfmt_moveq:
2495
  {
2496
    const IDESC *idesc = &crisv10f_insn_data[itype];
2497
    CGEN_INSN_WORD insn = base_insn;
2498
#define FLD(f) abuf->fields.sfmt_moveq.f
2499
    UINT f_operand2;
2500
    INT f_s6;
2501
 
2502
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2503
    f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
2504
 
2505
  /* Record the fields for the semantic handler.  */
2506
  FLD (f_s6) = f_s6;
2507
  FLD (f_operand2) = f_operand2;
2508
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_moveq", "f_s6 0x%x", 'x', f_s6, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2509
 
2510
#if WITH_PROFILE_MODEL_P
2511
  /* Record the fields for profiling.  */
2512
  if (PROFILE_MODEL_P (current_cpu))
2513
    {
2514
      FLD (out_Rd) = f_operand2;
2515
    }
2516
#endif
2517
#undef FLD
2518
    return idesc;
2519
  }
2520
 
2521
 extract_sfmt_movs_b_r:
2522
  {
2523
    const IDESC *idesc = &crisv10f_insn_data[itype];
2524
    CGEN_INSN_WORD insn = base_insn;
2525
#define FLD(f) abuf->fields.sfmt_muls_b.f
2526
    UINT f_operand2;
2527
    UINT f_operand1;
2528
 
2529
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2530
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2531
 
2532
  /* Record the fields for the semantic handler.  */
2533
  FLD (f_operand1) = f_operand1;
2534
  FLD (f_operand2) = f_operand2;
2535
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2536
 
2537
#if WITH_PROFILE_MODEL_P
2538
  /* Record the fields for profiling.  */
2539
  if (PROFILE_MODEL_P (current_cpu))
2540
    {
2541
      FLD (in_Rs) = f_operand1;
2542
      FLD (out_Rd) = f_operand2;
2543
    }
2544
#endif
2545
#undef FLD
2546
    return idesc;
2547
  }
2548
 
2549
 extract_sfmt_movecbr:
2550
  {
2551
    const IDESC *idesc = &crisv10f_insn_data[itype];
2552
    CGEN_INSN_WORD insn = base_insn;
2553
#define FLD(f) abuf->fields.sfmt_addcbr.f
2554
    INT f_indir_pc__byte;
2555
    UINT f_operand2;
2556
    /* Contents of trailing part of insn.  */
2557
    UINT word_1;
2558
 
2559
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2560
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2561
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2562
 
2563
  /* Record the fields for the semantic handler.  */
2564
  FLD (f_operand2) = f_operand2;
2565
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
2566
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
2567
 
2568
#if WITH_PROFILE_MODEL_P
2569
  /* Record the fields for profiling.  */
2570
  if (PROFILE_MODEL_P (current_cpu))
2571
    {
2572
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2573
    }
2574
#endif
2575
#undef FLD
2576
    return idesc;
2577
  }
2578
 
2579
 extract_sfmt_movecwr:
2580
  {
2581
    const IDESC *idesc = &crisv10f_insn_data[itype];
2582
    CGEN_INSN_WORD insn = base_insn;
2583
#define FLD(f) abuf->fields.sfmt_addcwr.f
2584
    INT f_indir_pc__word;
2585
    UINT f_operand2;
2586
    /* Contents of trailing part of insn.  */
2587
    UINT word_1;
2588
 
2589
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2590
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2591
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2592
 
2593
  /* Record the fields for the semantic handler.  */
2594
  FLD (f_operand2) = f_operand2;
2595
  FLD (f_indir_pc__word) = f_indir_pc__word;
2596
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
2597
 
2598
#if WITH_PROFILE_MODEL_P
2599
  /* Record the fields for profiling.  */
2600
  if (PROFILE_MODEL_P (current_cpu))
2601
    {
2602
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2603
    }
2604
#endif
2605
#undef FLD
2606
    return idesc;
2607
  }
2608
 
2609
 extract_sfmt_movecdr:
2610
  {
2611
    const IDESC *idesc = &crisv10f_insn_data[itype];
2612
    CGEN_INSN_WORD insn = base_insn;
2613
#define FLD(f) abuf->fields.sfmt_bound_cd.f
2614
    INT f_indir_pc__dword;
2615
    UINT f_operand2;
2616
    /* Contents of trailing part of insn.  */
2617
    UINT word_1;
2618
 
2619
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2620
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2621
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2622
 
2623
  /* Record the fields for the semantic handler.  */
2624
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
2625
  FLD (f_operand2) = f_operand2;
2626
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecdr", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2627
 
2628
#if WITH_PROFILE_MODEL_P
2629
  /* Record the fields for profiling.  */
2630
  if (PROFILE_MODEL_P (current_cpu))
2631
    {
2632
      FLD (out_Rd) = f_operand2;
2633
    }
2634
#endif
2635
#undef FLD
2636
    return idesc;
2637
  }
2638
 
2639
 extract_sfmt_movscbr:
2640
  {
2641
    const IDESC *idesc = &crisv10f_insn_data[itype];
2642
    CGEN_INSN_WORD insn = base_insn;
2643
#define FLD(f) abuf->fields.sfmt_bound_cb.f
2644
    UINT f_operand2;
2645
    INT f_indir_pc__byte;
2646
    /* Contents of trailing part of insn.  */
2647
    UINT word_1;
2648
 
2649
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2650
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2651
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2652
 
2653
  /* Record the fields for the semantic handler.  */
2654
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
2655
  FLD (f_operand2) = f_operand2;
2656
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2657
 
2658
#if WITH_PROFILE_MODEL_P
2659
  /* Record the fields for profiling.  */
2660
  if (PROFILE_MODEL_P (current_cpu))
2661
    {
2662
      FLD (out_Rd) = f_operand2;
2663
    }
2664
#endif
2665
#undef FLD
2666
    return idesc;
2667
  }
2668
 
2669
 extract_sfmt_movscwr:
2670
  {
2671
    const IDESC *idesc = &crisv10f_insn_data[itype];
2672
    CGEN_INSN_WORD insn = base_insn;
2673
#define FLD(f) abuf->fields.sfmt_bound_cw.f
2674
    UINT f_operand2;
2675
    INT f_indir_pc__word;
2676
    /* Contents of trailing part of insn.  */
2677
    UINT word_1;
2678
 
2679
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2680
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2681
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2682
 
2683
  /* Record the fields for the semantic handler.  */
2684
  FLD (f_indir_pc__word) = f_indir_pc__word;
2685
  FLD (f_operand2) = f_operand2;
2686
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2687
 
2688
#if WITH_PROFILE_MODEL_P
2689
  /* Record the fields for profiling.  */
2690
  if (PROFILE_MODEL_P (current_cpu))
2691
    {
2692
      FLD (out_Rd) = f_operand2;
2693
    }
2694
#endif
2695
#undef FLD
2696
    return idesc;
2697
  }
2698
 
2699
 extract_sfmt_movucbr:
2700
  {
2701
    const IDESC *idesc = &crisv10f_insn_data[itype];
2702
    CGEN_INSN_WORD insn = base_insn;
2703
#define FLD(f) abuf->fields.sfmt_bound_cb.f
2704
    UINT f_operand2;
2705
    INT f_indir_pc__byte;
2706
    /* Contents of trailing part of insn.  */
2707
    UINT word_1;
2708
 
2709
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2710
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2711
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2712
 
2713
  /* Record the fields for the semantic handler.  */
2714
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
2715
  FLD (f_operand2) = f_operand2;
2716
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2717
 
2718
#if WITH_PROFILE_MODEL_P
2719
  /* Record the fields for profiling.  */
2720
  if (PROFILE_MODEL_P (current_cpu))
2721
    {
2722
      FLD (out_Rd) = f_operand2;
2723
    }
2724
#endif
2725
#undef FLD
2726
    return idesc;
2727
  }
2728
 
2729
 extract_sfmt_movucwr:
2730
  {
2731
    const IDESC *idesc = &crisv10f_insn_data[itype];
2732
    CGEN_INSN_WORD insn = base_insn;
2733
#define FLD(f) abuf->fields.sfmt_bound_cw.f
2734
    UINT f_operand2;
2735
    INT f_indir_pc__word;
2736
    /* Contents of trailing part of insn.  */
2737
    UINT word_1;
2738
 
2739
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2740
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2741
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2742
 
2743
  /* Record the fields for the semantic handler.  */
2744
  FLD (f_indir_pc__word) = f_indir_pc__word;
2745
  FLD (f_operand2) = f_operand2;
2746
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2747
 
2748
#if WITH_PROFILE_MODEL_P
2749
  /* Record the fields for profiling.  */
2750
  if (PROFILE_MODEL_P (current_cpu))
2751
    {
2752
      FLD (out_Rd) = f_operand2;
2753
    }
2754
#endif
2755
#undef FLD
2756
    return idesc;
2757
  }
2758
 
2759
 extract_sfmt_addq:
2760
  {
2761
    const IDESC *idesc = &crisv10f_insn_data[itype];
2762
    CGEN_INSN_WORD insn = base_insn;
2763
#define FLD(f) abuf->fields.sfmt_addq.f
2764
    UINT f_operand2;
2765
    UINT f_u6;
2766
 
2767
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2768
    f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2769
 
2770
  /* Record the fields for the semantic handler.  */
2771
  FLD (f_operand2) = f_operand2;
2772
  FLD (f_u6) = f_u6;
2773
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addq", "f_operand2 0x%x", 'x', f_operand2, "f_u6 0x%x", 'x', f_u6, (char *) 0));
2774
 
2775
#if WITH_PROFILE_MODEL_P
2776
  /* Record the fields for profiling.  */
2777
  if (PROFILE_MODEL_P (current_cpu))
2778
    {
2779
      FLD (in_Rd) = f_operand2;
2780
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2781
    }
2782
#endif
2783
#undef FLD
2784
    return idesc;
2785
  }
2786
 
2787
 extract_sfmt_cmp_r_b_r:
2788
  {
2789
    const IDESC *idesc = &crisv10f_insn_data[itype];
2790
    CGEN_INSN_WORD insn = base_insn;
2791
#define FLD(f) abuf->fields.sfmt_add_b_r.f
2792
    UINT f_operand2;
2793
    UINT f_operand1;
2794
 
2795
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2796
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2797
 
2798
  /* Record the fields for the semantic handler.  */
2799
  FLD (f_operand2) = f_operand2;
2800
  FLD (f_operand1) = f_operand1;
2801
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_r_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2802
 
2803
#if WITH_PROFILE_MODEL_P
2804
  /* Record the fields for profiling.  */
2805
  if (PROFILE_MODEL_P (current_cpu))
2806
    {
2807
      FLD (in_Rd) = f_operand2;
2808
      FLD (in_Rs) = f_operand1;
2809
    }
2810
#endif
2811
#undef FLD
2812
    return idesc;
2813
  }
2814
 
2815
 extract_sfmt_cmp_m_b_m:
2816
  {
2817
    const IDESC *idesc = &crisv10f_insn_data[itype];
2818
    CGEN_INSN_WORD insn = base_insn;
2819
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2820
    UINT f_operand2;
2821
    UINT f_memmode;
2822
    UINT f_operand1;
2823
 
2824
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2825
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2826
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2827
 
2828
  /* Record the fields for the semantic handler.  */
2829
  FLD (f_operand2) = f_operand2;
2830
  FLD (f_operand1) = f_operand1;
2831
  FLD (f_memmode) = f_memmode;
2832
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2833
 
2834
#if WITH_PROFILE_MODEL_P
2835
  /* Record the fields for profiling.  */
2836
  if (PROFILE_MODEL_P (current_cpu))
2837
    {
2838
      FLD (in_Rd) = f_operand2;
2839
      FLD (in_Rs) = f_operand1;
2840
      FLD (out_Rs) = f_operand1;
2841
    }
2842
#endif
2843
#undef FLD
2844
    return idesc;
2845
  }
2846
 
2847
 extract_sfmt_cmp_m_w_m:
2848
  {
2849
    const IDESC *idesc = &crisv10f_insn_data[itype];
2850
    CGEN_INSN_WORD insn = base_insn;
2851
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2852
    UINT f_operand2;
2853
    UINT f_memmode;
2854
    UINT f_operand1;
2855
 
2856
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2857
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2858
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2859
 
2860
  /* Record the fields for the semantic handler.  */
2861
  FLD (f_operand2) = f_operand2;
2862
  FLD (f_operand1) = f_operand1;
2863
  FLD (f_memmode) = f_memmode;
2864
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2865
 
2866
#if WITH_PROFILE_MODEL_P
2867
  /* Record the fields for profiling.  */
2868
  if (PROFILE_MODEL_P (current_cpu))
2869
    {
2870
      FLD (in_Rd) = f_operand2;
2871
      FLD (in_Rs) = f_operand1;
2872
      FLD (out_Rs) = f_operand1;
2873
    }
2874
#endif
2875
#undef FLD
2876
    return idesc;
2877
  }
2878
 
2879
 extract_sfmt_cmp_m_d_m:
2880
  {
2881
    const IDESC *idesc = &crisv10f_insn_data[itype];
2882
    CGEN_INSN_WORD insn = base_insn;
2883
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2884
    UINT f_operand2;
2885
    UINT f_memmode;
2886
    UINT f_operand1;
2887
 
2888
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2889
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2890
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2891
 
2892
  /* Record the fields for the semantic handler.  */
2893
  FLD (f_operand2) = f_operand2;
2894
  FLD (f_operand1) = f_operand1;
2895
  FLD (f_memmode) = f_memmode;
2896
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2897
 
2898
#if WITH_PROFILE_MODEL_P
2899
  /* Record the fields for profiling.  */
2900
  if (PROFILE_MODEL_P (current_cpu))
2901
    {
2902
      FLD (in_Rd) = f_operand2;
2903
      FLD (in_Rs) = f_operand1;
2904
      FLD (out_Rs) = f_operand1;
2905
    }
2906
#endif
2907
#undef FLD
2908
    return idesc;
2909
  }
2910
 
2911
 extract_sfmt_cmpcbr:
2912
  {
2913
    const IDESC *idesc = &crisv10f_insn_data[itype];
2914
    CGEN_INSN_WORD insn = base_insn;
2915
#define FLD(f) abuf->fields.sfmt_bound_cb.f
2916
    INT f_indir_pc__byte;
2917
    UINT f_operand2;
2918
    /* Contents of trailing part of insn.  */
2919
    UINT word_1;
2920
 
2921
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2922
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2923
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2924
 
2925
  /* Record the fields for the semantic handler.  */
2926
  FLD (f_operand2) = f_operand2;
2927
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
2928
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
2929
 
2930
#if WITH_PROFILE_MODEL_P
2931
  /* Record the fields for profiling.  */
2932
  if (PROFILE_MODEL_P (current_cpu))
2933
    {
2934
      FLD (in_Rd) = f_operand2;
2935
    }
2936
#endif
2937
#undef FLD
2938
    return idesc;
2939
  }
2940
 
2941
 extract_sfmt_cmpcwr:
2942
  {
2943
    const IDESC *idesc = &crisv10f_insn_data[itype];
2944
    CGEN_INSN_WORD insn = base_insn;
2945
#define FLD(f) abuf->fields.sfmt_bound_cw.f
2946
    INT f_indir_pc__word;
2947
    UINT f_operand2;
2948
    /* Contents of trailing part of insn.  */
2949
    UINT word_1;
2950
 
2951
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2952
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2953
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2954
 
2955
  /* Record the fields for the semantic handler.  */
2956
  FLD (f_operand2) = f_operand2;
2957
  FLD (f_indir_pc__word) = f_indir_pc__word;
2958
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
2959
 
2960
#if WITH_PROFILE_MODEL_P
2961
  /* Record the fields for profiling.  */
2962
  if (PROFILE_MODEL_P (current_cpu))
2963
    {
2964
      FLD (in_Rd) = f_operand2;
2965
    }
2966
#endif
2967
#undef FLD
2968
    return idesc;
2969
  }
2970
 
2971
 extract_sfmt_cmpcdr:
2972
  {
2973
    const IDESC *idesc = &crisv10f_insn_data[itype];
2974
    CGEN_INSN_WORD insn = base_insn;
2975
#define FLD(f) abuf->fields.sfmt_bound_cd.f
2976
    INT f_indir_pc__dword;
2977
    UINT f_operand2;
2978
    /* Contents of trailing part of insn.  */
2979
    UINT word_1;
2980
 
2981
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
2982
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2983
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2984
 
2985
  /* Record the fields for the semantic handler.  */
2986
  FLD (f_operand2) = f_operand2;
2987
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
2988
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
2989
 
2990
#if WITH_PROFILE_MODEL_P
2991
  /* Record the fields for profiling.  */
2992
  if (PROFILE_MODEL_P (current_cpu))
2993
    {
2994
      FLD (in_Rd) = f_operand2;
2995
    }
2996
#endif
2997
#undef FLD
2998
    return idesc;
2999
  }
3000
 
3001
 extract_sfmt_cmpq:
3002
  {
3003
    const IDESC *idesc = &crisv10f_insn_data[itype];
3004
    CGEN_INSN_WORD insn = base_insn;
3005
#define FLD(f) abuf->fields.sfmt_andq.f
3006
    UINT f_operand2;
3007
    INT f_s6;
3008
 
3009
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3010
    f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
3011
 
3012
  /* Record the fields for the semantic handler.  */
3013
  FLD (f_operand2) = f_operand2;
3014
  FLD (f_s6) = f_s6;
3015
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
3016
 
3017
#if WITH_PROFILE_MODEL_P
3018
  /* Record the fields for profiling.  */
3019
  if (PROFILE_MODEL_P (current_cpu))
3020
    {
3021
      FLD (in_Rd) = f_operand2;
3022
    }
3023
#endif
3024
#undef FLD
3025
    return idesc;
3026
  }
3027
 
3028
 extract_sfmt_cmpucbr:
3029
  {
3030
    const IDESC *idesc = &crisv10f_insn_data[itype];
3031
    CGEN_INSN_WORD insn = base_insn;
3032
#define FLD(f) abuf->fields.sfmt_bound_cb.f
3033
    INT f_indir_pc__byte;
3034
    UINT f_operand2;
3035
    /* Contents of trailing part of insn.  */
3036
    UINT word_1;
3037
 
3038
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3039
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3040
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3041
 
3042
  /* Record the fields for the semantic handler.  */
3043
  FLD (f_operand2) = f_operand2;
3044
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
3045
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3046
 
3047
#if WITH_PROFILE_MODEL_P
3048
  /* Record the fields for profiling.  */
3049
  if (PROFILE_MODEL_P (current_cpu))
3050
    {
3051
      FLD (in_Rd) = f_operand2;
3052
    }
3053
#endif
3054
#undef FLD
3055
    return idesc;
3056
  }
3057
 
3058
 extract_sfmt_cmpucwr:
3059
  {
3060
    const IDESC *idesc = &crisv10f_insn_data[itype];
3061
    CGEN_INSN_WORD insn = base_insn;
3062
#define FLD(f) abuf->fields.sfmt_bound_cw.f
3063
    INT f_indir_pc__word;
3064
    UINT f_operand2;
3065
    /* Contents of trailing part of insn.  */
3066
    UINT word_1;
3067
 
3068
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3069
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3070
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3071
 
3072
  /* Record the fields for the semantic handler.  */
3073
  FLD (f_operand2) = f_operand2;
3074
  FLD (f_indir_pc__word) = f_indir_pc__word;
3075
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3076
 
3077
#if WITH_PROFILE_MODEL_P
3078
  /* Record the fields for profiling.  */
3079
  if (PROFILE_MODEL_P (current_cpu))
3080
    {
3081
      FLD (in_Rd) = f_operand2;
3082
    }
3083
#endif
3084
#undef FLD
3085
    return idesc;
3086
  }
3087
 
3088
 extract_sfmt_move_m_b_m:
3089
  {
3090
    const IDESC *idesc = &crisv10f_insn_data[itype];
3091
    CGEN_INSN_WORD insn = base_insn;
3092
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3093
    UINT f_operand2;
3094
    UINT f_memmode;
3095
    UINT f_operand1;
3096
 
3097
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3098
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3099
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3100
 
3101
  /* Record the fields for the semantic handler.  */
3102
  FLD (f_operand1) = f_operand1;
3103
  FLD (f_operand2) = f_operand2;
3104
  FLD (f_memmode) = f_memmode;
3105
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3106
 
3107
#if WITH_PROFILE_MODEL_P
3108
  /* Record the fields for profiling.  */
3109
  if (PROFILE_MODEL_P (current_cpu))
3110
    {
3111
      FLD (in_Rs) = f_operand1;
3112
      FLD (out_Rs) = f_operand1;
3113
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3114
    }
3115
#endif
3116
#undef FLD
3117
    return idesc;
3118
  }
3119
 
3120
 extract_sfmt_move_m_w_m:
3121
  {
3122
    const IDESC *idesc = &crisv10f_insn_data[itype];
3123
    CGEN_INSN_WORD insn = base_insn;
3124
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3125
    UINT f_operand2;
3126
    UINT f_memmode;
3127
    UINT f_operand1;
3128
 
3129
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3130
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3131
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3132
 
3133
  /* Record the fields for the semantic handler.  */
3134
  FLD (f_operand1) = f_operand1;
3135
  FLD (f_operand2) = f_operand2;
3136
  FLD (f_memmode) = f_memmode;
3137
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3138
 
3139
#if WITH_PROFILE_MODEL_P
3140
  /* Record the fields for profiling.  */
3141
  if (PROFILE_MODEL_P (current_cpu))
3142
    {
3143
      FLD (in_Rs) = f_operand1;
3144
      FLD (out_Rs) = f_operand1;
3145
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3146
    }
3147
#endif
3148
#undef FLD
3149
    return idesc;
3150
  }
3151
 
3152
 extract_sfmt_move_m_d_m:
3153
  {
3154
    const IDESC *idesc = &crisv10f_insn_data[itype];
3155
    CGEN_INSN_WORD insn = base_insn;
3156
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3157
    UINT f_operand2;
3158
    UINT f_memmode;
3159
    UINT f_operand1;
3160
 
3161
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3162
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3163
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3164
 
3165
  /* Record the fields for the semantic handler.  */
3166
  FLD (f_operand1) = f_operand1;
3167
  FLD (f_operand2) = f_operand2;
3168
  FLD (f_memmode) = f_memmode;
3169
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3170
 
3171
#if WITH_PROFILE_MODEL_P
3172
  /* Record the fields for profiling.  */
3173
  if (PROFILE_MODEL_P (current_cpu))
3174
    {
3175
      FLD (in_Rs) = f_operand1;
3176
      FLD (out_Rs) = f_operand1;
3177
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3178
    }
3179
#endif
3180
#undef FLD
3181
    return idesc;
3182
  }
3183
 
3184
 extract_sfmt_movs_m_b_m:
3185
  {
3186
    const IDESC *idesc = &crisv10f_insn_data[itype];
3187
    CGEN_INSN_WORD insn = base_insn;
3188
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3189
    UINT f_operand2;
3190
    UINT f_memmode;
3191
    UINT f_operand1;
3192
 
3193
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3194
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3195
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3196
 
3197
  /* Record the fields for the semantic handler.  */
3198
  FLD (f_operand1) = f_operand1;
3199
  FLD (f_memmode) = f_memmode;
3200
  FLD (f_operand2) = f_operand2;
3201
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3202
 
3203
#if WITH_PROFILE_MODEL_P
3204
  /* Record the fields for profiling.  */
3205
  if (PROFILE_MODEL_P (current_cpu))
3206
    {
3207
      FLD (in_Rs) = f_operand1;
3208
      FLD (out_Rd) = f_operand2;
3209
      FLD (out_Rs) = f_operand1;
3210
    }
3211
#endif
3212
#undef FLD
3213
    return idesc;
3214
  }
3215
 
3216
 extract_sfmt_movs_m_w_m:
3217
  {
3218
    const IDESC *idesc = &crisv10f_insn_data[itype];
3219
    CGEN_INSN_WORD insn = base_insn;
3220
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3221
    UINT f_operand2;
3222
    UINT f_memmode;
3223
    UINT f_operand1;
3224
 
3225
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3226
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3227
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3228
 
3229
  /* Record the fields for the semantic handler.  */
3230
  FLD (f_operand1) = f_operand1;
3231
  FLD (f_memmode) = f_memmode;
3232
  FLD (f_operand2) = f_operand2;
3233
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3234
 
3235
#if WITH_PROFILE_MODEL_P
3236
  /* Record the fields for profiling.  */
3237
  if (PROFILE_MODEL_P (current_cpu))
3238
    {
3239
      FLD (in_Rs) = f_operand1;
3240
      FLD (out_Rd) = f_operand2;
3241
      FLD (out_Rs) = f_operand1;
3242
    }
3243
#endif
3244
#undef FLD
3245
    return idesc;
3246
  }
3247
 
3248
 extract_sfmt_move_r_sprv10:
3249
  {
3250
    const IDESC *idesc = &crisv10f_insn_data[itype];
3251
    CGEN_INSN_WORD insn = base_insn;
3252
#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3253
    UINT f_operand2;
3254
    UINT f_operand1;
3255
 
3256
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3257
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3258
 
3259
  /* Record the fields for the semantic handler.  */
3260
  FLD (f_operand1) = f_operand1;
3261
  FLD (f_operand2) = f_operand2;
3262
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv10", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3263
 
3264
#if WITH_PROFILE_MODEL_P
3265
  /* Record the fields for profiling.  */
3266
  if (PROFILE_MODEL_P (current_cpu))
3267
    {
3268
      FLD (in_Rs) = f_operand1;
3269
      FLD (out_Pd) = f_operand2;
3270
    }
3271
#endif
3272
#undef FLD
3273
    return idesc;
3274
  }
3275
 
3276
 extract_sfmt_move_spr_rv10:
3277
  {
3278
    const IDESC *idesc = &crisv10f_insn_data[itype];
3279
    CGEN_INSN_WORD insn = base_insn;
3280
#define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3281
    UINT f_operand2;
3282
    UINT f_operand1;
3283
 
3284
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3285
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3286
 
3287
  /* Record the fields for the semantic handler.  */
3288
  FLD (f_operand2) = f_operand2;
3289
  FLD (f_operand1) = f_operand1;
3290
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv10", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3291
 
3292
#if WITH_PROFILE_MODEL_P
3293
  /* Record the fields for profiling.  */
3294
  if (PROFILE_MODEL_P (current_cpu))
3295
    {
3296
      FLD (in_Ps) = f_operand2;
3297
      FLD (out_h_gr_SI_index_of__INT_Rs) = FLD (f_operand1);
3298
    }
3299
#endif
3300
#undef FLD
3301
    return idesc;
3302
  }
3303
 
3304
 extract_sfmt_ret_type:
3305
  {
3306
    const IDESC *idesc = &crisv10f_insn_data[itype];
3307
    CGEN_INSN_WORD insn = base_insn;
3308
#define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3309
    UINT f_operand2;
3310
 
3311
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3312
 
3313
  /* Record the fields for the semantic handler.  */
3314
  FLD (f_operand2) = f_operand2;
3315
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret_type", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3316
 
3317
#if WITH_PROFILE_MODEL_P
3318
  /* Record the fields for profiling.  */
3319
  if (PROFILE_MODEL_P (current_cpu))
3320
    {
3321
      FLD (in_Ps) = f_operand2;
3322
    }
3323
#endif
3324
#undef FLD
3325
    return idesc;
3326
  }
3327
 
3328
 extract_sfmt_move_m_sprv10:
3329
  {
3330
    const IDESC *idesc = &crisv10f_insn_data[itype];
3331
    CGEN_INSN_WORD insn = base_insn;
3332
#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3333
    UINT f_operand2;
3334
    UINT f_memmode;
3335
    UINT f_operand1;
3336
 
3337
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3338
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3339
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3340
 
3341
  /* Record the fields for the semantic handler.  */
3342
  FLD (f_operand1) = f_operand1;
3343
  FLD (f_operand2) = f_operand2;
3344
  FLD (f_memmode) = f_memmode;
3345
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv10", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3346
 
3347
#if WITH_PROFILE_MODEL_P
3348
  /* Record the fields for profiling.  */
3349
  if (PROFILE_MODEL_P (current_cpu))
3350
    {
3351
      FLD (in_Rs) = f_operand1;
3352
      FLD (out_Pd) = f_operand2;
3353
      FLD (out_Rs) = f_operand1;
3354
    }
3355
#endif
3356
#undef FLD
3357
    return idesc;
3358
  }
3359
 
3360
 extract_sfmt_move_c_sprv10_p5:
3361
  {
3362
    const IDESC *idesc = &crisv10f_insn_data[itype];
3363
    CGEN_INSN_WORD insn = base_insn;
3364
#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
3365
    UINT f_operand2;
3366
    INT f_indir_pc__word;
3367
    /* Contents of trailing part of insn.  */
3368
    UINT word_1;
3369
 
3370
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3371
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3372
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3373
 
3374
  /* Record the fields for the semantic handler.  */
3375
  FLD (f_indir_pc__word) = f_indir_pc__word;
3376
  FLD (f_operand2) = f_operand2;
3377
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv10_p5", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3378
 
3379
#if WITH_PROFILE_MODEL_P
3380
  /* Record the fields for profiling.  */
3381
  if (PROFILE_MODEL_P (current_cpu))
3382
    {
3383
      FLD (out_Pd) = f_operand2;
3384
    }
3385
#endif
3386
#undef FLD
3387
    return idesc;
3388
  }
3389
 
3390
 extract_sfmt_move_c_sprv10_p9:
3391
  {
3392
    const IDESC *idesc = &crisv10f_insn_data[itype];
3393
    CGEN_INSN_WORD insn = base_insn;
3394
#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3395
    INT f_indir_pc__dword;
3396
    UINT f_operand2;
3397
    /* Contents of trailing part of insn.  */
3398
    UINT word_1;
3399
 
3400
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3401
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3402
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3403
 
3404
  /* Record the fields for the semantic handler.  */
3405
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
3406
  FLD (f_operand2) = f_operand2;
3407
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv10_p9", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3408
 
3409
#if WITH_PROFILE_MODEL_P
3410
  /* Record the fields for profiling.  */
3411
  if (PROFILE_MODEL_P (current_cpu))
3412
    {
3413
      FLD (out_Pd) = f_operand2;
3414
    }
3415
#endif
3416
#undef FLD
3417
    return idesc;
3418
  }
3419
 
3420
 extract_sfmt_move_spr_mv10:
3421
  {
3422
    const IDESC *idesc = &crisv10f_insn_data[itype];
3423
    CGEN_INSN_WORD insn = base_insn;
3424
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3425
    UINT f_operand2;
3426
    UINT f_memmode;
3427
    UINT f_operand1;
3428
 
3429
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3430
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3431
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3432
 
3433
  /* Record the fields for the semantic handler.  */
3434
  FLD (f_operand2) = f_operand2;
3435
  FLD (f_operand1) = f_operand1;
3436
  FLD (f_memmode) = f_memmode;
3437
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv10", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3438
 
3439
#if WITH_PROFILE_MODEL_P
3440
  /* Record the fields for profiling.  */
3441
  if (PROFILE_MODEL_P (current_cpu))
3442
    {
3443
      FLD (in_Ps) = f_operand2;
3444
      FLD (in_Rs) = f_operand1;
3445
      FLD (out_Rs) = f_operand1;
3446
    }
3447
#endif
3448
#undef FLD
3449
    return idesc;
3450
  }
3451
 
3452
 extract_sfmt_sbfs:
3453
  {
3454
    const IDESC *idesc = &crisv10f_insn_data[itype];
3455
#define FLD(f) abuf->fields.sfmt_empty.f
3456
 
3457
 
3458
  /* Record the fields for the semantic handler.  */
3459
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sbfs", (char *) 0));
3460
 
3461
#undef FLD
3462
    return idesc;
3463
  }
3464
 
3465
 extract_sfmt_movem_r_m:
3466
  {
3467
    const IDESC *idesc = &crisv10f_insn_data[itype];
3468
    CGEN_INSN_WORD insn = base_insn;
3469
#define FLD(f) abuf->fields.sfmt_movem_r_m.f
3470
    UINT f_operand2;
3471
    UINT f_memmode;
3472
    UINT f_operand1;
3473
 
3474
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3475
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3476
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3477
 
3478
  /* Record the fields for the semantic handler.  */
3479
  FLD (f_operand2) = f_operand2;
3480
  FLD (f_operand1) = f_operand1;
3481
  FLD (f_memmode) = f_memmode;
3482
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3483
 
3484
#if WITH_PROFILE_MODEL_P
3485
  /* Record the fields for profiling.  */
3486
  if (PROFILE_MODEL_P (current_cpu))
3487
    {
3488
      FLD (in_Rd) = f_operand2;
3489
      FLD (in_Rs) = f_operand1;
3490
      FLD (in_h_gr_SI_0) = 0;
3491
      FLD (in_h_gr_SI_1) = 1;
3492
      FLD (in_h_gr_SI_10) = 10;
3493
      FLD (in_h_gr_SI_11) = 11;
3494
      FLD (in_h_gr_SI_12) = 12;
3495
      FLD (in_h_gr_SI_13) = 13;
3496
      FLD (in_h_gr_SI_14) = 14;
3497
      FLD (in_h_gr_SI_15) = 15;
3498
      FLD (in_h_gr_SI_2) = 2;
3499
      FLD (in_h_gr_SI_3) = 3;
3500
      FLD (in_h_gr_SI_4) = 4;
3501
      FLD (in_h_gr_SI_5) = 5;
3502
      FLD (in_h_gr_SI_6) = 6;
3503
      FLD (in_h_gr_SI_7) = 7;
3504
      FLD (in_h_gr_SI_8) = 8;
3505
      FLD (in_h_gr_SI_9) = 9;
3506
      FLD (out_Rs) = f_operand1;
3507
    }
3508
#endif
3509
#undef FLD
3510
    return idesc;
3511
  }
3512
 
3513
 extract_sfmt_movem_m_r:
3514
  {
3515
    const IDESC *idesc = &crisv10f_insn_data[itype];
3516
    CGEN_INSN_WORD insn = base_insn;
3517
#define FLD(f) abuf->fields.sfmt_movem_m_r.f
3518
    UINT f_operand2;
3519
    UINT f_memmode;
3520
    UINT f_operand1;
3521
 
3522
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3523
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3524
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3525
 
3526
  /* Record the fields for the semantic handler.  */
3527
  FLD (f_operand2) = f_operand2;
3528
  FLD (f_operand1) = f_operand1;
3529
  FLD (f_memmode) = f_memmode;
3530
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3531
 
3532
#if WITH_PROFILE_MODEL_P
3533
  /* Record the fields for profiling.  */
3534
  if (PROFILE_MODEL_P (current_cpu))
3535
    {
3536
      FLD (in_Rd) = f_operand2;
3537
      FLD (in_Rs) = f_operand1;
3538
      FLD (out_Rs) = f_operand1;
3539
      FLD (out_h_gr_SI_0) = 0;
3540
      FLD (out_h_gr_SI_1) = 1;
3541
      FLD (out_h_gr_SI_10) = 10;
3542
      FLD (out_h_gr_SI_11) = 11;
3543
      FLD (out_h_gr_SI_12) = 12;
3544
      FLD (out_h_gr_SI_13) = 13;
3545
      FLD (out_h_gr_SI_14) = 14;
3546
      FLD (out_h_gr_SI_2) = 2;
3547
      FLD (out_h_gr_SI_3) = 3;
3548
      FLD (out_h_gr_SI_4) = 4;
3549
      FLD (out_h_gr_SI_5) = 5;
3550
      FLD (out_h_gr_SI_6) = 6;
3551
      FLD (out_h_gr_SI_7) = 7;
3552
      FLD (out_h_gr_SI_8) = 8;
3553
      FLD (out_h_gr_SI_9) = 9;
3554
    }
3555
#endif
3556
#undef FLD
3557
    return idesc;
3558
  }
3559
 
3560
 extract_sfmt_movem_m_pc:
3561
  {
3562
    const IDESC *idesc = &crisv10f_insn_data[itype];
3563
    CGEN_INSN_WORD insn = base_insn;
3564
#define FLD(f) abuf->fields.sfmt_movem_m_r.f
3565
    UINT f_memmode;
3566
    UINT f_operand1;
3567
 
3568
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3569
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3570
 
3571
  /* Record the fields for the semantic handler.  */
3572
  FLD (f_operand1) = f_operand1;
3573
  FLD (f_memmode) = f_memmode;
3574
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_pc", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3575
 
3576
#if WITH_PROFILE_MODEL_P
3577
  /* Record the fields for profiling.  */
3578
  if (PROFILE_MODEL_P (current_cpu))
3579
    {
3580
      FLD (in_Rs) = f_operand1;
3581
      FLD (out_Rs) = f_operand1;
3582
      FLD (out_h_gr_SI_0) = 0;
3583
      FLD (out_h_gr_SI_1) = 1;
3584
      FLD (out_h_gr_SI_10) = 10;
3585
      FLD (out_h_gr_SI_11) = 11;
3586
      FLD (out_h_gr_SI_12) = 12;
3587
      FLD (out_h_gr_SI_13) = 13;
3588
      FLD (out_h_gr_SI_14) = 14;
3589
      FLD (out_h_gr_SI_2) = 2;
3590
      FLD (out_h_gr_SI_3) = 3;
3591
      FLD (out_h_gr_SI_4) = 4;
3592
      FLD (out_h_gr_SI_5) = 5;
3593
      FLD (out_h_gr_SI_6) = 6;
3594
      FLD (out_h_gr_SI_7) = 7;
3595
      FLD (out_h_gr_SI_8) = 8;
3596
      FLD (out_h_gr_SI_9) = 9;
3597
    }
3598
#endif
3599
#undef FLD
3600
    return idesc;
3601
  }
3602
 
3603
 extract_sfmt_add_b_r:
3604
  {
3605
    const IDESC *idesc = &crisv10f_insn_data[itype];
3606
    CGEN_INSN_WORD insn = base_insn;
3607
#define FLD(f) abuf->fields.sfmt_add_b_r.f
3608
    UINT f_operand2;
3609
    UINT f_operand1;
3610
 
3611
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3612
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3613
 
3614
  /* Record the fields for the semantic handler.  */
3615
  FLD (f_operand2) = f_operand2;
3616
  FLD (f_operand1) = f_operand1;
3617
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3618
 
3619
#if WITH_PROFILE_MODEL_P
3620
  /* Record the fields for profiling.  */
3621
  if (PROFILE_MODEL_P (current_cpu))
3622
    {
3623
      FLD (in_Rd) = f_operand2;
3624
      FLD (in_Rs) = f_operand1;
3625
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3626
    }
3627
#endif
3628
#undef FLD
3629
    return idesc;
3630
  }
3631
 
3632
 extract_sfmt_add_d_r:
3633
  {
3634
    const IDESC *idesc = &crisv10f_insn_data[itype];
3635
    CGEN_INSN_WORD insn = base_insn;
3636
#define FLD(f) abuf->fields.sfmt_add_b_r.f
3637
    UINT f_operand2;
3638
    UINT f_operand1;
3639
 
3640
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3641
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3642
 
3643
  /* Record the fields for the semantic handler.  */
3644
  FLD (f_operand2) = f_operand2;
3645
  FLD (f_operand1) = f_operand1;
3646
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3647
 
3648
#if WITH_PROFILE_MODEL_P
3649
  /* Record the fields for profiling.  */
3650
  if (PROFILE_MODEL_P (current_cpu))
3651
    {
3652
      FLD (in_Rd) = f_operand2;
3653
      FLD (in_Rs) = f_operand1;
3654
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3655
    }
3656
#endif
3657
#undef FLD
3658
    return idesc;
3659
  }
3660
 
3661
 extract_sfmt_add_m_b_m:
3662
  {
3663
    const IDESC *idesc = &crisv10f_insn_data[itype];
3664
    CGEN_INSN_WORD insn = base_insn;
3665
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3666
    UINT f_operand2;
3667
    UINT f_memmode;
3668
    UINT f_operand1;
3669
 
3670
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3671
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3672
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3673
 
3674
  /* Record the fields for the semantic handler.  */
3675
  FLD (f_operand2) = f_operand2;
3676
  FLD (f_operand1) = f_operand1;
3677
  FLD (f_memmode) = f_memmode;
3678
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3679
 
3680
#if WITH_PROFILE_MODEL_P
3681
  /* Record the fields for profiling.  */
3682
  if (PROFILE_MODEL_P (current_cpu))
3683
    {
3684
      FLD (in_Rd) = f_operand2;
3685
      FLD (in_Rs) = f_operand1;
3686
      FLD (out_Rs) = f_operand1;
3687
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3688
    }
3689
#endif
3690
#undef FLD
3691
    return idesc;
3692
  }
3693
 
3694
 extract_sfmt_add_m_w_m:
3695
  {
3696
    const IDESC *idesc = &crisv10f_insn_data[itype];
3697
    CGEN_INSN_WORD insn = base_insn;
3698
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3699
    UINT f_operand2;
3700
    UINT f_memmode;
3701
    UINT f_operand1;
3702
 
3703
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3704
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3705
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3706
 
3707
  /* Record the fields for the semantic handler.  */
3708
  FLD (f_operand2) = f_operand2;
3709
  FLD (f_operand1) = f_operand1;
3710
  FLD (f_memmode) = f_memmode;
3711
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3712
 
3713
#if WITH_PROFILE_MODEL_P
3714
  /* Record the fields for profiling.  */
3715
  if (PROFILE_MODEL_P (current_cpu))
3716
    {
3717
      FLD (in_Rd) = f_operand2;
3718
      FLD (in_Rs) = f_operand1;
3719
      FLD (out_Rs) = f_operand1;
3720
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3721
    }
3722
#endif
3723
#undef FLD
3724
    return idesc;
3725
  }
3726
 
3727
 extract_sfmt_add_m_d_m:
3728
  {
3729
    const IDESC *idesc = &crisv10f_insn_data[itype];
3730
    CGEN_INSN_WORD insn = base_insn;
3731
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3732
    UINT f_operand2;
3733
    UINT f_memmode;
3734
    UINT f_operand1;
3735
 
3736
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3737
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3738
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3739
 
3740
  /* Record the fields for the semantic handler.  */
3741
  FLD (f_operand2) = f_operand2;
3742
  FLD (f_operand1) = f_operand1;
3743
  FLD (f_memmode) = f_memmode;
3744
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3745
 
3746
#if WITH_PROFILE_MODEL_P
3747
  /* Record the fields for profiling.  */
3748
  if (PROFILE_MODEL_P (current_cpu))
3749
    {
3750
      FLD (in_Rd) = f_operand2;
3751
      FLD (in_Rs) = f_operand1;
3752
      FLD (out_Rs) = f_operand1;
3753
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3754
    }
3755
#endif
3756
#undef FLD
3757
    return idesc;
3758
  }
3759
 
3760
 extract_sfmt_addcbr:
3761
  {
3762
    const IDESC *idesc = &crisv10f_insn_data[itype];
3763
    CGEN_INSN_WORD insn = base_insn;
3764
#define FLD(f) abuf->fields.sfmt_addcbr.f
3765
    INT f_indir_pc__byte;
3766
    UINT f_operand2;
3767
    /* Contents of trailing part of insn.  */
3768
    UINT word_1;
3769
 
3770
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3771
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3772
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3773
 
3774
  /* Record the fields for the semantic handler.  */
3775
  FLD (f_operand2) = f_operand2;
3776
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
3777
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3778
 
3779
#if WITH_PROFILE_MODEL_P
3780
  /* Record the fields for profiling.  */
3781
  if (PROFILE_MODEL_P (current_cpu))
3782
    {
3783
      FLD (in_Rd) = f_operand2;
3784
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3785
    }
3786
#endif
3787
#undef FLD
3788
    return idesc;
3789
  }
3790
 
3791
 extract_sfmt_addcwr:
3792
  {
3793
    const IDESC *idesc = &crisv10f_insn_data[itype];
3794
    CGEN_INSN_WORD insn = base_insn;
3795
#define FLD(f) abuf->fields.sfmt_addcwr.f
3796
    INT f_indir_pc__word;
3797
    UINT f_operand2;
3798
    /* Contents of trailing part of insn.  */
3799
    UINT word_1;
3800
 
3801
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3802
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3803
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3804
 
3805
  /* Record the fields for the semantic handler.  */
3806
  FLD (f_operand2) = f_operand2;
3807
  FLD (f_indir_pc__word) = f_indir_pc__word;
3808
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3809
 
3810
#if WITH_PROFILE_MODEL_P
3811
  /* Record the fields for profiling.  */
3812
  if (PROFILE_MODEL_P (current_cpu))
3813
    {
3814
      FLD (in_Rd) = f_operand2;
3815
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3816
    }
3817
#endif
3818
#undef FLD
3819
    return idesc;
3820
  }
3821
 
3822
 extract_sfmt_addcdr:
3823
  {
3824
    const IDESC *idesc = &crisv10f_insn_data[itype];
3825
    CGEN_INSN_WORD insn = base_insn;
3826
#define FLD(f) abuf->fields.sfmt_addcdr.f
3827
    INT f_indir_pc__dword;
3828
    UINT f_operand2;
3829
    /* Contents of trailing part of insn.  */
3830
    UINT word_1;
3831
 
3832
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3833
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3834
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3835
 
3836
  /* Record the fields for the semantic handler.  */
3837
  FLD (f_operand2) = f_operand2;
3838
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
3839
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3840
 
3841
#if WITH_PROFILE_MODEL_P
3842
  /* Record the fields for profiling.  */
3843
  if (PROFILE_MODEL_P (current_cpu))
3844
    {
3845
      FLD (in_Rd) = f_operand2;
3846
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3847
    }
3848
#endif
3849
#undef FLD
3850
    return idesc;
3851
  }
3852
 
3853
 extract_sfmt_addcpc:
3854
  {
3855
    const IDESC *idesc = &crisv10f_insn_data[itype];
3856
    CGEN_INSN_WORD insn = base_insn;
3857
#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3858
    INT f_indir_pc__dword;
3859
    /* Contents of trailing part of insn.  */
3860
    UINT word_1;
3861
 
3862
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3863
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3864
 
3865
  /* Record the fields for the semantic handler.  */
3866
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
3867
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcpc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3868
 
3869
#if WITH_PROFILE_MODEL_P
3870
  /* Record the fields for profiling.  */
3871
  if (PROFILE_MODEL_P (current_cpu))
3872
    {
3873
    }
3874
#endif
3875
#undef FLD
3876
    return idesc;
3877
  }
3878
 
3879
 extract_sfmt_adds_m_b_m:
3880
  {
3881
    const IDESC *idesc = &crisv10f_insn_data[itype];
3882
    CGEN_INSN_WORD insn = base_insn;
3883
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3884
    UINT f_operand2;
3885
    UINT f_memmode;
3886
    UINT f_operand1;
3887
 
3888
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3889
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3890
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3891
 
3892
  /* Record the fields for the semantic handler.  */
3893
  FLD (f_operand2) = f_operand2;
3894
  FLD (f_operand1) = f_operand1;
3895
  FLD (f_memmode) = f_memmode;
3896
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3897
 
3898
#if WITH_PROFILE_MODEL_P
3899
  /* Record the fields for profiling.  */
3900
  if (PROFILE_MODEL_P (current_cpu))
3901
    {
3902
      FLD (in_Rd) = f_operand2;
3903
      FLD (in_Rs) = f_operand1;
3904
      FLD (out_Rs) = f_operand1;
3905
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3906
    }
3907
#endif
3908
#undef FLD
3909
    return idesc;
3910
  }
3911
 
3912
 extract_sfmt_adds_m_w_m:
3913
  {
3914
    const IDESC *idesc = &crisv10f_insn_data[itype];
3915
    CGEN_INSN_WORD insn = base_insn;
3916
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3917
    UINT f_operand2;
3918
    UINT f_memmode;
3919
    UINT f_operand1;
3920
 
3921
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3922
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3923
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3924
 
3925
  /* Record the fields for the semantic handler.  */
3926
  FLD (f_operand2) = f_operand2;
3927
  FLD (f_operand1) = f_operand1;
3928
  FLD (f_memmode) = f_memmode;
3929
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3930
 
3931
#if WITH_PROFILE_MODEL_P
3932
  /* Record the fields for profiling.  */
3933
  if (PROFILE_MODEL_P (current_cpu))
3934
    {
3935
      FLD (in_Rd) = f_operand2;
3936
      FLD (in_Rs) = f_operand1;
3937
      FLD (out_Rs) = f_operand1;
3938
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3939
    }
3940
#endif
3941
#undef FLD
3942
    return idesc;
3943
  }
3944
 
3945
 extract_sfmt_addscbr:
3946
  {
3947
    const IDESC *idesc = &crisv10f_insn_data[itype];
3948
    CGEN_INSN_WORD insn = base_insn;
3949
#define FLD(f) abuf->fields.sfmt_addcbr.f
3950
    INT f_indir_pc__byte;
3951
    UINT f_operand2;
3952
    /* Contents of trailing part of insn.  */
3953
    UINT word_1;
3954
 
3955
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3956
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3957
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3958
 
3959
  /* Record the fields for the semantic handler.  */
3960
  FLD (f_operand2) = f_operand2;
3961
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
3962
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3963
 
3964
#if WITH_PROFILE_MODEL_P
3965
  /* Record the fields for profiling.  */
3966
  if (PROFILE_MODEL_P (current_cpu))
3967
    {
3968
      FLD (in_Rd) = f_operand2;
3969
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3970
    }
3971
#endif
3972
#undef FLD
3973
    return idesc;
3974
  }
3975
 
3976
 extract_sfmt_addscwr:
3977
  {
3978
    const IDESC *idesc = &crisv10f_insn_data[itype];
3979
    CGEN_INSN_WORD insn = base_insn;
3980
#define FLD(f) abuf->fields.sfmt_addcwr.f
3981
    INT f_indir_pc__word;
3982
    UINT f_operand2;
3983
    /* Contents of trailing part of insn.  */
3984
    UINT word_1;
3985
 
3986
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
3987
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3988
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3989
 
3990
  /* Record the fields for the semantic handler.  */
3991
  FLD (f_operand2) = f_operand2;
3992
  FLD (f_indir_pc__word) = f_indir_pc__word;
3993
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3994
 
3995
#if WITH_PROFILE_MODEL_P
3996
  /* Record the fields for profiling.  */
3997
  if (PROFILE_MODEL_P (current_cpu))
3998
    {
3999
      FLD (in_Rd) = f_operand2;
4000
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4001
    }
4002
#endif
4003
#undef FLD
4004
    return idesc;
4005
  }
4006
 
4007
 extract_sfmt_addspcpc:
4008
  {
4009
    const IDESC *idesc = &crisv10f_insn_data[itype];
4010
#define FLD(f) abuf->fields.sfmt_empty.f
4011
 
4012
 
4013
  /* Record the fields for the semantic handler.  */
4014
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addspcpc", (char *) 0));
4015
 
4016
#if WITH_PROFILE_MODEL_P
4017
  /* Record the fields for profiling.  */
4018
  if (PROFILE_MODEL_P (current_cpu))
4019
    {
4020
    }
4021
#endif
4022
#undef FLD
4023
    return idesc;
4024
  }
4025
 
4026
 extract_sfmt_addi_b_r:
4027
  {
4028
    const IDESC *idesc = &crisv10f_insn_data[itype];
4029
    CGEN_INSN_WORD insn = base_insn;
4030
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4031
    UINT f_operand2;
4032
    UINT f_operand1;
4033
 
4034
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4035
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4036
 
4037
  /* Record the fields for the semantic handler.  */
4038
  FLD (f_operand2) = f_operand2;
4039
  FLD (f_operand1) = f_operand1;
4040
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4041
 
4042
#if WITH_PROFILE_MODEL_P
4043
  /* Record the fields for profiling.  */
4044
  if (PROFILE_MODEL_P (current_cpu))
4045
    {
4046
      FLD (in_Rd) = f_operand2;
4047
      FLD (in_Rs) = f_operand1;
4048
      FLD (out_Rs) = f_operand1;
4049
    }
4050
#endif
4051
#undef FLD
4052
    return idesc;
4053
  }
4054
 
4055
 extract_sfmt_neg_b_r:
4056
  {
4057
    const IDESC *idesc = &crisv10f_insn_data[itype];
4058
    CGEN_INSN_WORD insn = base_insn;
4059
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4060
    UINT f_operand2;
4061
    UINT f_operand1;
4062
 
4063
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4064
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4065
 
4066
  /* Record the fields for the semantic handler.  */
4067
  FLD (f_operand1) = f_operand1;
4068
  FLD (f_operand2) = f_operand2;
4069
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4070
 
4071
#if WITH_PROFILE_MODEL_P
4072
  /* Record the fields for profiling.  */
4073
  if (PROFILE_MODEL_P (current_cpu))
4074
    {
4075
      FLD (in_Rs) = f_operand1;
4076
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4077
    }
4078
#endif
4079
#undef FLD
4080
    return idesc;
4081
  }
4082
 
4083
 extract_sfmt_neg_d_r:
4084
  {
4085
    const IDESC *idesc = &crisv10f_insn_data[itype];
4086
    CGEN_INSN_WORD insn = base_insn;
4087
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4088
    UINT f_operand2;
4089
    UINT f_operand1;
4090
 
4091
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4092
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4093
 
4094
  /* Record the fields for the semantic handler.  */
4095
  FLD (f_operand1) = f_operand1;
4096
  FLD (f_operand2) = f_operand2;
4097
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4098
 
4099
#if WITH_PROFILE_MODEL_P
4100
  /* Record the fields for profiling.  */
4101
  if (PROFILE_MODEL_P (current_cpu))
4102
    {
4103
      FLD (in_Rs) = f_operand1;
4104
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4105
    }
4106
#endif
4107
#undef FLD
4108
    return idesc;
4109
  }
4110
 
4111
 extract_sfmt_test_m_b_m:
4112
  {
4113
    const IDESC *idesc = &crisv10f_insn_data[itype];
4114
    CGEN_INSN_WORD insn = base_insn;
4115
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4116
    UINT f_memmode;
4117
    UINT f_operand1;
4118
 
4119
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4120
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4121
 
4122
  /* Record the fields for the semantic handler.  */
4123
  FLD (f_operand1) = f_operand1;
4124
  FLD (f_memmode) = f_memmode;
4125
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4126
 
4127
#if WITH_PROFILE_MODEL_P
4128
  /* Record the fields for profiling.  */
4129
  if (PROFILE_MODEL_P (current_cpu))
4130
    {
4131
      FLD (in_Rs) = f_operand1;
4132
      FLD (out_Rs) = f_operand1;
4133
    }
4134
#endif
4135
#undef FLD
4136
    return idesc;
4137
  }
4138
 
4139
 extract_sfmt_test_m_w_m:
4140
  {
4141
    const IDESC *idesc = &crisv10f_insn_data[itype];
4142
    CGEN_INSN_WORD insn = base_insn;
4143
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4144
    UINT f_memmode;
4145
    UINT f_operand1;
4146
 
4147
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4148
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4149
 
4150
  /* Record the fields for the semantic handler.  */
4151
  FLD (f_operand1) = f_operand1;
4152
  FLD (f_memmode) = f_memmode;
4153
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4154
 
4155
#if WITH_PROFILE_MODEL_P
4156
  /* Record the fields for profiling.  */
4157
  if (PROFILE_MODEL_P (current_cpu))
4158
    {
4159
      FLD (in_Rs) = f_operand1;
4160
      FLD (out_Rs) = f_operand1;
4161
    }
4162
#endif
4163
#undef FLD
4164
    return idesc;
4165
  }
4166
 
4167
 extract_sfmt_test_m_d_m:
4168
  {
4169
    const IDESC *idesc = &crisv10f_insn_data[itype];
4170
    CGEN_INSN_WORD insn = base_insn;
4171
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4172
    UINT f_memmode;
4173
    UINT f_operand1;
4174
 
4175
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4176
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4177
 
4178
  /* Record the fields for the semantic handler.  */
4179
  FLD (f_operand1) = f_operand1;
4180
  FLD (f_memmode) = f_memmode;
4181
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4182
 
4183
#if WITH_PROFILE_MODEL_P
4184
  /* Record the fields for profiling.  */
4185
  if (PROFILE_MODEL_P (current_cpu))
4186
    {
4187
      FLD (in_Rs) = f_operand1;
4188
      FLD (out_Rs) = f_operand1;
4189
    }
4190
#endif
4191
#undef FLD
4192
    return idesc;
4193
  }
4194
 
4195
 extract_sfmt_move_r_m_b_m:
4196
  {
4197
    const IDESC *idesc = &crisv10f_insn_data[itype];
4198
    CGEN_INSN_WORD insn = base_insn;
4199
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4200
    UINT f_operand2;
4201
    UINT f_memmode;
4202
    UINT f_operand1;
4203
 
4204
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4205
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4206
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4207
 
4208
  /* Record the fields for the semantic handler.  */
4209
  FLD (f_operand2) = f_operand2;
4210
  FLD (f_operand1) = f_operand1;
4211
  FLD (f_memmode) = f_memmode;
4212
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4213
 
4214
#if WITH_PROFILE_MODEL_P
4215
  /* Record the fields for profiling.  */
4216
  if (PROFILE_MODEL_P (current_cpu))
4217
    {
4218
      FLD (in_Rd) = f_operand2;
4219
      FLD (in_Rs) = f_operand1;
4220
      FLD (out_Rs) = f_operand1;
4221
    }
4222
#endif
4223
#undef FLD
4224
    return idesc;
4225
  }
4226
 
4227
 extract_sfmt_move_r_m_w_m:
4228
  {
4229
    const IDESC *idesc = &crisv10f_insn_data[itype];
4230
    CGEN_INSN_WORD insn = base_insn;
4231
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4232
    UINT f_operand2;
4233
    UINT f_memmode;
4234
    UINT f_operand1;
4235
 
4236
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4237
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4238
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4239
 
4240
  /* Record the fields for the semantic handler.  */
4241
  FLD (f_operand2) = f_operand2;
4242
  FLD (f_operand1) = f_operand1;
4243
  FLD (f_memmode) = f_memmode;
4244
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4245
 
4246
#if WITH_PROFILE_MODEL_P
4247
  /* Record the fields for profiling.  */
4248
  if (PROFILE_MODEL_P (current_cpu))
4249
    {
4250
      FLD (in_Rd) = f_operand2;
4251
      FLD (in_Rs) = f_operand1;
4252
      FLD (out_Rs) = f_operand1;
4253
    }
4254
#endif
4255
#undef FLD
4256
    return idesc;
4257
  }
4258
 
4259
 extract_sfmt_move_r_m_d_m:
4260
  {
4261
    const IDESC *idesc = &crisv10f_insn_data[itype];
4262
    CGEN_INSN_WORD insn = base_insn;
4263
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4264
    UINT f_operand2;
4265
    UINT f_memmode;
4266
    UINT f_operand1;
4267
 
4268
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4269
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4270
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4271
 
4272
  /* Record the fields for the semantic handler.  */
4273
  FLD (f_operand2) = f_operand2;
4274
  FLD (f_operand1) = f_operand1;
4275
  FLD (f_memmode) = f_memmode;
4276
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4277
 
4278
#if WITH_PROFILE_MODEL_P
4279
  /* Record the fields for profiling.  */
4280
  if (PROFILE_MODEL_P (current_cpu))
4281
    {
4282
      FLD (in_Rd) = f_operand2;
4283
      FLD (in_Rs) = f_operand1;
4284
      FLD (out_Rs) = f_operand1;
4285
    }
4286
#endif
4287
#undef FLD
4288
    return idesc;
4289
  }
4290
 
4291
 extract_sfmt_muls_b:
4292
  {
4293
    const IDESC *idesc = &crisv10f_insn_data[itype];
4294
    CGEN_INSN_WORD insn = base_insn;
4295
#define FLD(f) abuf->fields.sfmt_muls_b.f
4296
    UINT f_operand2;
4297
    UINT f_operand1;
4298
 
4299
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4300
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4301
 
4302
  /* Record the fields for the semantic handler.  */
4303
  FLD (f_operand2) = f_operand2;
4304
  FLD (f_operand1) = f_operand1;
4305
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_muls_b", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4306
 
4307
#if WITH_PROFILE_MODEL_P
4308
  /* Record the fields for profiling.  */
4309
  if (PROFILE_MODEL_P (current_cpu))
4310
    {
4311
      FLD (in_Rd) = f_operand2;
4312
      FLD (in_Rs) = f_operand1;
4313
      FLD (out_Rd) = f_operand2;
4314
      FLD (out_h_sr_SI_7) = 7;
4315
    }
4316
#endif
4317
#undef FLD
4318
    return idesc;
4319
  }
4320
 
4321
 extract_sfmt_mstep:
4322
  {
4323
    const IDESC *idesc = &crisv10f_insn_data[itype];
4324
    CGEN_INSN_WORD insn = base_insn;
4325
#define FLD(f) abuf->fields.sfmt_muls_b.f
4326
    UINT f_operand2;
4327
    UINT f_operand1;
4328
 
4329
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4330
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4331
 
4332
  /* Record the fields for the semantic handler.  */
4333
  FLD (f_operand2) = f_operand2;
4334
  FLD (f_operand1) = f_operand1;
4335
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4336
 
4337
#if WITH_PROFILE_MODEL_P
4338
  /* Record the fields for profiling.  */
4339
  if (PROFILE_MODEL_P (current_cpu))
4340
    {
4341
      FLD (in_Rd) = f_operand2;
4342
      FLD (in_Rs) = f_operand1;
4343
      FLD (out_Rd) = f_operand2;
4344
    }
4345
#endif
4346
#undef FLD
4347
    return idesc;
4348
  }
4349
 
4350
 extract_sfmt_dstep:
4351
  {
4352
    const IDESC *idesc = &crisv10f_insn_data[itype];
4353
    CGEN_INSN_WORD insn = base_insn;
4354
#define FLD(f) abuf->fields.sfmt_muls_b.f
4355
    UINT f_operand2;
4356
    UINT f_operand1;
4357
 
4358
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4359
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4360
 
4361
  /* Record the fields for the semantic handler.  */
4362
  FLD (f_operand2) = f_operand2;
4363
  FLD (f_operand1) = f_operand1;
4364
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4365
 
4366
#if WITH_PROFILE_MODEL_P
4367
  /* Record the fields for profiling.  */
4368
  if (PROFILE_MODEL_P (current_cpu))
4369
    {
4370
      FLD (in_Rd) = f_operand2;
4371
      FLD (in_Rs) = f_operand1;
4372
      FLD (out_Rd) = f_operand2;
4373
    }
4374
#endif
4375
#undef FLD
4376
    return idesc;
4377
  }
4378
 
4379
 extract_sfmt_and_b_r:
4380
  {
4381
    const IDESC *idesc = &crisv10f_insn_data[itype];
4382
    CGEN_INSN_WORD insn = base_insn;
4383
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4384
    UINT f_operand2;
4385
    UINT f_operand1;
4386
 
4387
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4388
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4389
 
4390
  /* Record the fields for the semantic handler.  */
4391
  FLD (f_operand2) = f_operand2;
4392
  FLD (f_operand1) = f_operand1;
4393
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4394
 
4395
#if WITH_PROFILE_MODEL_P
4396
  /* Record the fields for profiling.  */
4397
  if (PROFILE_MODEL_P (current_cpu))
4398
    {
4399
      FLD (in_Rd) = f_operand2;
4400
      FLD (in_Rs) = f_operand1;
4401
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4402
    }
4403
#endif
4404
#undef FLD
4405
    return idesc;
4406
  }
4407
 
4408
 extract_sfmt_and_d_r:
4409
  {
4410
    const IDESC *idesc = &crisv10f_insn_data[itype];
4411
    CGEN_INSN_WORD insn = base_insn;
4412
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4413
    UINT f_operand2;
4414
    UINT f_operand1;
4415
 
4416
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4417
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4418
 
4419
  /* Record the fields for the semantic handler.  */
4420
  FLD (f_operand2) = f_operand2;
4421
  FLD (f_operand1) = f_operand1;
4422
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4423
 
4424
#if WITH_PROFILE_MODEL_P
4425
  /* Record the fields for profiling.  */
4426
  if (PROFILE_MODEL_P (current_cpu))
4427
    {
4428
      FLD (in_Rd) = f_operand2;
4429
      FLD (in_Rs) = f_operand1;
4430
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4431
    }
4432
#endif
4433
#undef FLD
4434
    return idesc;
4435
  }
4436
 
4437
 extract_sfmt_and_m_b_m:
4438
  {
4439
    const IDESC *idesc = &crisv10f_insn_data[itype];
4440
    CGEN_INSN_WORD insn = base_insn;
4441
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4442
    UINT f_operand2;
4443
    UINT f_memmode;
4444
    UINT f_operand1;
4445
 
4446
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4447
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4448
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4449
 
4450
  /* Record the fields for the semantic handler.  */
4451
  FLD (f_operand2) = f_operand2;
4452
  FLD (f_operand1) = f_operand1;
4453
  FLD (f_memmode) = f_memmode;
4454
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4455
 
4456
#if WITH_PROFILE_MODEL_P
4457
  /* Record the fields for profiling.  */
4458
  if (PROFILE_MODEL_P (current_cpu))
4459
    {
4460
      FLD (in_Rd) = f_operand2;
4461
      FLD (in_Rs) = f_operand1;
4462
      FLD (out_Rs) = f_operand1;
4463
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4464
    }
4465
#endif
4466
#undef FLD
4467
    return idesc;
4468
  }
4469
 
4470
 extract_sfmt_and_m_w_m:
4471
  {
4472
    const IDESC *idesc = &crisv10f_insn_data[itype];
4473
    CGEN_INSN_WORD insn = base_insn;
4474
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4475
    UINT f_operand2;
4476
    UINT f_memmode;
4477
    UINT f_operand1;
4478
 
4479
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4480
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4481
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4482
 
4483
  /* Record the fields for the semantic handler.  */
4484
  FLD (f_operand2) = f_operand2;
4485
  FLD (f_operand1) = f_operand1;
4486
  FLD (f_memmode) = f_memmode;
4487
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4488
 
4489
#if WITH_PROFILE_MODEL_P
4490
  /* Record the fields for profiling.  */
4491
  if (PROFILE_MODEL_P (current_cpu))
4492
    {
4493
      FLD (in_Rd) = f_operand2;
4494
      FLD (in_Rs) = f_operand1;
4495
      FLD (out_Rs) = f_operand1;
4496
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4497
    }
4498
#endif
4499
#undef FLD
4500
    return idesc;
4501
  }
4502
 
4503
 extract_sfmt_and_m_d_m:
4504
  {
4505
    const IDESC *idesc = &crisv10f_insn_data[itype];
4506
    CGEN_INSN_WORD insn = base_insn;
4507
#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4508
    UINT f_operand2;
4509
    UINT f_memmode;
4510
    UINT f_operand1;
4511
 
4512
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4513
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4514
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4515
 
4516
  /* Record the fields for the semantic handler.  */
4517
  FLD (f_operand2) = f_operand2;
4518
  FLD (f_operand1) = f_operand1;
4519
  FLD (f_memmode) = f_memmode;
4520
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4521
 
4522
#if WITH_PROFILE_MODEL_P
4523
  /* Record the fields for profiling.  */
4524
  if (PROFILE_MODEL_P (current_cpu))
4525
    {
4526
      FLD (in_Rd) = f_operand2;
4527
      FLD (in_Rs) = f_operand1;
4528
      FLD (out_Rs) = f_operand1;
4529
      FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4530
    }
4531
#endif
4532
#undef FLD
4533
    return idesc;
4534
  }
4535
 
4536
 extract_sfmt_andcbr:
4537
  {
4538
    const IDESC *idesc = &crisv10f_insn_data[itype];
4539
    CGEN_INSN_WORD insn = base_insn;
4540
#define FLD(f) abuf->fields.sfmt_addcbr.f
4541
    INT f_indir_pc__byte;
4542
    UINT f_operand2;
4543
    /* Contents of trailing part of insn.  */
4544
    UINT word_1;
4545
 
4546
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
4547
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4548
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4549
 
4550
  /* Record the fields for the semantic handler.  */
4551
  FLD (f_operand2) = f_operand2;
4552
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
4553
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4554
 
4555
#if WITH_PROFILE_MODEL_P
4556
  /* Record the fields for profiling.  */
4557
  if (PROFILE_MODEL_P (current_cpu))
4558
    {
4559
      FLD (in_Rd) = f_operand2;
4560
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4561
    }
4562
#endif
4563
#undef FLD
4564
    return idesc;
4565
  }
4566
 
4567
 extract_sfmt_andcwr:
4568
  {
4569
    const IDESC *idesc = &crisv10f_insn_data[itype];
4570
    CGEN_INSN_WORD insn = base_insn;
4571
#define FLD(f) abuf->fields.sfmt_addcwr.f
4572
    INT f_indir_pc__word;
4573
    UINT f_operand2;
4574
    /* Contents of trailing part of insn.  */
4575
    UINT word_1;
4576
 
4577
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
4578
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4579
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4580
 
4581
  /* Record the fields for the semantic handler.  */
4582
  FLD (f_operand2) = f_operand2;
4583
  FLD (f_indir_pc__word) = f_indir_pc__word;
4584
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4585
 
4586
#if WITH_PROFILE_MODEL_P
4587
  /* Record the fields for profiling.  */
4588
  if (PROFILE_MODEL_P (current_cpu))
4589
    {
4590
      FLD (in_Rd) = f_operand2;
4591
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4592
    }
4593
#endif
4594
#undef FLD
4595
    return idesc;
4596
  }
4597
 
4598
 extract_sfmt_andcdr:
4599
  {
4600
    const IDESC *idesc = &crisv10f_insn_data[itype];
4601
    CGEN_INSN_WORD insn = base_insn;
4602
#define FLD(f) abuf->fields.sfmt_addcdr.f
4603
    INT f_indir_pc__dword;
4604
    UINT f_operand2;
4605
    /* Contents of trailing part of insn.  */
4606
    UINT word_1;
4607
 
4608
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
4609
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4610
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4611
 
4612
  /* Record the fields for the semantic handler.  */
4613
  FLD (f_operand2) = f_operand2;
4614
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
4615
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4616
 
4617
#if WITH_PROFILE_MODEL_P
4618
  /* Record the fields for profiling.  */
4619
  if (PROFILE_MODEL_P (current_cpu))
4620
    {
4621
      FLD (in_Rd) = f_operand2;
4622
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4623
    }
4624
#endif
4625
#undef FLD
4626
    return idesc;
4627
  }
4628
 
4629
 extract_sfmt_andq:
4630
  {
4631
    const IDESC *idesc = &crisv10f_insn_data[itype];
4632
    CGEN_INSN_WORD insn = base_insn;
4633
#define FLD(f) abuf->fields.sfmt_andq.f
4634
    UINT f_operand2;
4635
    INT f_s6;
4636
 
4637
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4638
    f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
4639
 
4640
  /* Record the fields for the semantic handler.  */
4641
  FLD (f_operand2) = f_operand2;
4642
  FLD (f_s6) = f_s6;
4643
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
4644
 
4645
#if WITH_PROFILE_MODEL_P
4646
  /* Record the fields for profiling.  */
4647
  if (PROFILE_MODEL_P (current_cpu))
4648
    {
4649
      FLD (in_Rd) = f_operand2;
4650
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4651
    }
4652
#endif
4653
#undef FLD
4654
    return idesc;
4655
  }
4656
 
4657
 extract_sfmt_swap:
4658
  {
4659
    const IDESC *idesc = &crisv10f_insn_data[itype];
4660
    CGEN_INSN_WORD insn = base_insn;
4661
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4662
    UINT f_operand2;
4663
    UINT f_operand1;
4664
 
4665
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4666
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4667
 
4668
  /* Record the fields for the semantic handler.  */
4669
  FLD (f_operand1) = f_operand1;
4670
  FLD (f_operand2) = f_operand2;
4671
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swap", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4672
 
4673
#if WITH_PROFILE_MODEL_P
4674
  /* Record the fields for profiling.  */
4675
  if (PROFILE_MODEL_P (current_cpu))
4676
    {
4677
      FLD (in_Rs) = f_operand1;
4678
      FLD (out_Rs) = f_operand1;
4679
    }
4680
#endif
4681
#undef FLD
4682
    return idesc;
4683
  }
4684
 
4685
 extract_sfmt_asrq:
4686
  {
4687
    const IDESC *idesc = &crisv10f_insn_data[itype];
4688
    CGEN_INSN_WORD insn = base_insn;
4689
#define FLD(f) abuf->fields.sfmt_asrq.f
4690
    UINT f_operand2;
4691
    UINT f_u5;
4692
 
4693
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4694
    f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4695
 
4696
  /* Record the fields for the semantic handler.  */
4697
  FLD (f_operand2) = f_operand2;
4698
  FLD (f_u5) = f_u5;
4699
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
4700
 
4701
#if WITH_PROFILE_MODEL_P
4702
  /* Record the fields for profiling.  */
4703
  if (PROFILE_MODEL_P (current_cpu))
4704
    {
4705
      FLD (in_Rd) = f_operand2;
4706
      FLD (out_Rd) = f_operand2;
4707
    }
4708
#endif
4709
#undef FLD
4710
    return idesc;
4711
  }
4712
 
4713
 extract_sfmt_lsrr_b_r:
4714
  {
4715
    const IDESC *idesc = &crisv10f_insn_data[itype];
4716
    CGEN_INSN_WORD insn = base_insn;
4717
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4718
    UINT f_operand2;
4719
    UINT f_operand1;
4720
 
4721
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4722
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4723
 
4724
  /* Record the fields for the semantic handler.  */
4725
  FLD (f_operand2) = f_operand2;
4726
  FLD (f_operand1) = f_operand1;
4727
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4728
 
4729
#if WITH_PROFILE_MODEL_P
4730
  /* Record the fields for profiling.  */
4731
  if (PROFILE_MODEL_P (current_cpu))
4732
    {
4733
      FLD (in_Rd) = f_operand2;
4734
      FLD (in_Rs) = f_operand1;
4735
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4736
    }
4737
#endif
4738
#undef FLD
4739
    return idesc;
4740
  }
4741
 
4742
 extract_sfmt_lsrr_d_r:
4743
  {
4744
    const IDESC *idesc = &crisv10f_insn_data[itype];
4745
    CGEN_INSN_WORD insn = base_insn;
4746
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4747
    UINT f_operand2;
4748
    UINT f_operand1;
4749
 
4750
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4751
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4752
 
4753
  /* Record the fields for the semantic handler.  */
4754
  FLD (f_operand2) = f_operand2;
4755
  FLD (f_operand1) = f_operand1;
4756
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4757
 
4758
#if WITH_PROFILE_MODEL_P
4759
  /* Record the fields for profiling.  */
4760
  if (PROFILE_MODEL_P (current_cpu))
4761
    {
4762
      FLD (in_Rd) = f_operand2;
4763
      FLD (in_Rs) = f_operand1;
4764
      FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4765
    }
4766
#endif
4767
#undef FLD
4768
    return idesc;
4769
  }
4770
 
4771
 extract_sfmt_btst:
4772
  {
4773
    const IDESC *idesc = &crisv10f_insn_data[itype];
4774
    CGEN_INSN_WORD insn = base_insn;
4775
#define FLD(f) abuf->fields.sfmt_add_b_r.f
4776
    UINT f_operand2;
4777
    UINT f_operand1;
4778
 
4779
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4780
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4781
 
4782
  /* Record the fields for the semantic handler.  */
4783
  FLD (f_operand2) = f_operand2;
4784
  FLD (f_operand1) = f_operand1;
4785
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4786
 
4787
#if WITH_PROFILE_MODEL_P
4788
  /* Record the fields for profiling.  */
4789
  if (PROFILE_MODEL_P (current_cpu))
4790
    {
4791
      FLD (in_Rd) = f_operand2;
4792
      FLD (in_Rs) = f_operand1;
4793
    }
4794
#endif
4795
#undef FLD
4796
    return idesc;
4797
  }
4798
 
4799
 extract_sfmt_btstq:
4800
  {
4801
    const IDESC *idesc = &crisv10f_insn_data[itype];
4802
    CGEN_INSN_WORD insn = base_insn;
4803
#define FLD(f) abuf->fields.sfmt_asrq.f
4804
    UINT f_operand2;
4805
    UINT f_u5;
4806
 
4807
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4808
    f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4809
 
4810
  /* Record the fields for the semantic handler.  */
4811
  FLD (f_operand2) = f_operand2;
4812
  FLD (f_u5) = f_u5;
4813
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
4814
 
4815
#if WITH_PROFILE_MODEL_P
4816
  /* Record the fields for profiling.  */
4817
  if (PROFILE_MODEL_P (current_cpu))
4818
    {
4819
      FLD (in_Rd) = f_operand2;
4820
    }
4821
#endif
4822
#undef FLD
4823
    return idesc;
4824
  }
4825
 
4826
 extract_sfmt_setf:
4827
  {
4828
    const IDESC *idesc = &crisv10f_insn_data[itype];
4829
    CGEN_INSN_WORD insn = base_insn;
4830
#define FLD(f) abuf->fields.sfmt_setf.f
4831
    UINT f_operand2;
4832
    UINT f_operand1;
4833
    UINT f_dstsrc;
4834
 
4835
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4836
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4837
  f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
4838
 
4839
  /* Record the fields for the semantic handler.  */
4840
  FLD (f_dstsrc) = f_dstsrc;
4841
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
4842
 
4843
#undef FLD
4844
    return idesc;
4845
  }
4846
 
4847
 extract_sfmt_bcc_b:
4848
  {
4849
    const IDESC *idesc = &crisv10f_insn_data[itype];
4850
    CGEN_INSN_WORD insn = base_insn;
4851
#define FLD(f) abuf->fields.sfmt_bcc_b.f
4852
    UINT f_operand2;
4853
    UINT f_disp9_lo;
4854
    INT f_disp9_hi;
4855
    INT f_disp9;
4856
 
4857
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4858
    f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4859
    f_disp9_hi = EXTRACT_LSB0_SINT (insn, 16, 0, 1);
4860
{
4861
  SI tmp_abslo;
4862
  SI tmp_absval;
4863
  tmp_abslo = ((f_disp9_lo) << (1));
4864
  tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4865
  f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
4866
}
4867
 
4868
  /* Record the fields for the semantic handler.  */
4869
  FLD (f_operand2) = f_operand2;
4870
  FLD (i_o_pcrel) = f_disp9;
4871
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_b", "f_operand2 0x%x", 'x', f_operand2, "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
4872
 
4873
#if WITH_PROFILE_MODEL_P
4874
  /* Record the fields for profiling.  */
4875
  if (PROFILE_MODEL_P (current_cpu))
4876
    {
4877
    }
4878
#endif
4879
#undef FLD
4880
    return idesc;
4881
  }
4882
 
4883
 extract_sfmt_ba_b:
4884
  {
4885
    const IDESC *idesc = &crisv10f_insn_data[itype];
4886
    CGEN_INSN_WORD insn = base_insn;
4887
#define FLD(f) abuf->fields.sfmt_bcc_b.f
4888
    UINT f_disp9_lo;
4889
    INT f_disp9_hi;
4890
    INT f_disp9;
4891
 
4892
    f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4893
    f_disp9_hi = EXTRACT_LSB0_SINT (insn, 16, 0, 1);
4894
{
4895
  SI tmp_abslo;
4896
  SI tmp_absval;
4897
  tmp_abslo = ((f_disp9_lo) << (1));
4898
  tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4899
  f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
4900
}
4901
 
4902
  /* Record the fields for the semantic handler.  */
4903
  FLD (i_o_pcrel) = f_disp9;
4904
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
4905
 
4906
#if WITH_PROFILE_MODEL_P
4907
  /* Record the fields for profiling.  */
4908
  if (PROFILE_MODEL_P (current_cpu))
4909
    {
4910
    }
4911
#endif
4912
#undef FLD
4913
    return idesc;
4914
  }
4915
 
4916
 extract_sfmt_bcc_w:
4917
  {
4918
    const IDESC *idesc = &crisv10f_insn_data[itype];
4919
    CGEN_INSN_WORD insn = base_insn;
4920
#define FLD(f) abuf->fields.sfmt_bcc_w.f
4921
    SI f_indir_pc__word_pcrel;
4922
    UINT f_operand2;
4923
    /* Contents of trailing part of insn.  */
4924
    UINT word_1;
4925
 
4926
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
4927
    f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
4928
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4929
 
4930
  /* Record the fields for the semantic handler.  */
4931
  FLD (f_operand2) = f_operand2;
4932
  FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4933
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_w", "f_operand2 0x%x", 'x', f_operand2, "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
4934
 
4935
#if WITH_PROFILE_MODEL_P
4936
  /* Record the fields for profiling.  */
4937
  if (PROFILE_MODEL_P (current_cpu))
4938
    {
4939
    }
4940
#endif
4941
#undef FLD
4942
    return idesc;
4943
  }
4944
 
4945
 extract_sfmt_ba_w:
4946
  {
4947
    const IDESC *idesc = &crisv10f_insn_data[itype];
4948
    CGEN_INSN_WORD insn = base_insn;
4949
#define FLD(f) abuf->fields.sfmt_bcc_w.f
4950
    SI f_indir_pc__word_pcrel;
4951
    /* Contents of trailing part of insn.  */
4952
    UINT word_1;
4953
 
4954
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
4955
    f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
4956
 
4957
  /* Record the fields for the semantic handler.  */
4958
  FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4959
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
4960
 
4961
#if WITH_PROFILE_MODEL_P
4962
  /* Record the fields for profiling.  */
4963
  if (PROFILE_MODEL_P (current_cpu))
4964
    {
4965
    }
4966
#endif
4967
#undef FLD
4968
    return idesc;
4969
  }
4970
 
4971
 extract_sfmt_jump_r:
4972
  {
4973
    const IDESC *idesc = &crisv10f_insn_data[itype];
4974
    CGEN_INSN_WORD insn = base_insn;
4975
#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4976
    UINT f_operand2;
4977
    UINT f_operand1;
4978
 
4979
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4980
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4981
 
4982
  /* Record the fields for the semantic handler.  */
4983
  FLD (f_operand1) = f_operand1;
4984
  FLD (f_operand2) = f_operand2;
4985
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4986
 
4987
#if WITH_PROFILE_MODEL_P
4988
  /* Record the fields for profiling.  */
4989
  if (PROFILE_MODEL_P (current_cpu))
4990
    {
4991
      FLD (in_Rs) = f_operand1;
4992
      FLD (out_Pd) = f_operand2;
4993
    }
4994
#endif
4995
#undef FLD
4996
    return idesc;
4997
  }
4998
 
4999
 extract_sfmt_jump_m:
5000
  {
5001
    const IDESC *idesc = &crisv10f_insn_data[itype];
5002
    CGEN_INSN_WORD insn = base_insn;
5003
#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5004
    UINT f_operand2;
5005
    UINT f_memmode;
5006
    UINT f_operand1;
5007
 
5008
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5009
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5010
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5011
 
5012
  /* Record the fields for the semantic handler.  */
5013
  FLD (f_operand1) = f_operand1;
5014
  FLD (f_memmode) = f_memmode;
5015
  FLD (f_operand2) = f_operand2;
5016
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5017
 
5018
#if WITH_PROFILE_MODEL_P
5019
  /* Record the fields for profiling.  */
5020
  if (PROFILE_MODEL_P (current_cpu))
5021
    {
5022
      FLD (in_Rs) = f_operand1;
5023
      FLD (out_Pd) = f_operand2;
5024
      FLD (out_Rs) = f_operand1;
5025
    }
5026
#endif
5027
#undef FLD
5028
    return idesc;
5029
  }
5030
 
5031
 extract_sfmt_jump_c:
5032
  {
5033
    const IDESC *idesc = &crisv10f_insn_data[itype];
5034
    CGEN_INSN_WORD insn = base_insn;
5035
#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5036
    INT f_indir_pc__dword;
5037
    UINT f_operand2;
5038
    /* Contents of trailing part of insn.  */
5039
    UINT word_1;
5040
 
5041
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5042
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5043
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5044
 
5045
  /* Record the fields for the semantic handler.  */
5046
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
5047
  FLD (f_operand2) = f_operand2;
5048
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5049
 
5050
#if WITH_PROFILE_MODEL_P
5051
  /* Record the fields for profiling.  */
5052
  if (PROFILE_MODEL_P (current_cpu))
5053
    {
5054
      FLD (out_Pd) = f_operand2;
5055
    }
5056
#endif
5057
#undef FLD
5058
    return idesc;
5059
  }
5060
 
5061
 extract_sfmt_break:
5062
  {
5063
    const IDESC *idesc = &crisv10f_insn_data[itype];
5064
    CGEN_INSN_WORD insn = base_insn;
5065
#define FLD(f) abuf->fields.sfmt_break.f
5066
    UINT f_u4;
5067
 
5068
    f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5069
 
5070
  /* Record the fields for the semantic handler.  */
5071
  FLD (f_u4) = f_u4;
5072
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5073
 
5074
#if WITH_PROFILE_MODEL_P
5075
  /* Record the fields for profiling.  */
5076
  if (PROFILE_MODEL_P (current_cpu))
5077
    {
5078
    }
5079
#endif
5080
#undef FLD
5081
    return idesc;
5082
  }
5083
 
5084
 extract_sfmt_bound_m_b_m:
5085
  {
5086
    const IDESC *idesc = &crisv10f_insn_data[itype];
5087
    CGEN_INSN_WORD insn = base_insn;
5088
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5089
    UINT f_operand2;
5090
    UINT f_memmode;
5091
    UINT f_operand1;
5092
 
5093
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5094
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5095
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5096
 
5097
  /* Record the fields for the semantic handler.  */
5098
  FLD (f_operand2) = f_operand2;
5099
  FLD (f_operand1) = f_operand1;
5100
  FLD (f_memmode) = f_memmode;
5101
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5102
 
5103
#if WITH_PROFILE_MODEL_P
5104
  /* Record the fields for profiling.  */
5105
  if (PROFILE_MODEL_P (current_cpu))
5106
    {
5107
      FLD (in_Rd) = f_operand2;
5108
      FLD (in_Rs) = f_operand1;
5109
      FLD (out_Rd) = f_operand2;
5110
      FLD (out_Rs) = f_operand1;
5111
    }
5112
#endif
5113
#undef FLD
5114
    return idesc;
5115
  }
5116
 
5117
 extract_sfmt_bound_m_w_m:
5118
  {
5119
    const IDESC *idesc = &crisv10f_insn_data[itype];
5120
    CGEN_INSN_WORD insn = base_insn;
5121
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5122
    UINT f_operand2;
5123
    UINT f_memmode;
5124
    UINT f_operand1;
5125
 
5126
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5127
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5128
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5129
 
5130
  /* Record the fields for the semantic handler.  */
5131
  FLD (f_operand2) = f_operand2;
5132
  FLD (f_operand1) = f_operand1;
5133
  FLD (f_memmode) = f_memmode;
5134
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5135
 
5136
#if WITH_PROFILE_MODEL_P
5137
  /* Record the fields for profiling.  */
5138
  if (PROFILE_MODEL_P (current_cpu))
5139
    {
5140
      FLD (in_Rd) = f_operand2;
5141
      FLD (in_Rs) = f_operand1;
5142
      FLD (out_Rd) = f_operand2;
5143
      FLD (out_Rs) = f_operand1;
5144
    }
5145
#endif
5146
#undef FLD
5147
    return idesc;
5148
  }
5149
 
5150
 extract_sfmt_bound_m_d_m:
5151
  {
5152
    const IDESC *idesc = &crisv10f_insn_data[itype];
5153
    CGEN_INSN_WORD insn = base_insn;
5154
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5155
    UINT f_operand2;
5156
    UINT f_memmode;
5157
    UINT f_operand1;
5158
 
5159
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5160
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5161
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5162
 
5163
  /* Record the fields for the semantic handler.  */
5164
  FLD (f_operand2) = f_operand2;
5165
  FLD (f_operand1) = f_operand1;
5166
  FLD (f_memmode) = f_memmode;
5167
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5168
 
5169
#if WITH_PROFILE_MODEL_P
5170
  /* Record the fields for profiling.  */
5171
  if (PROFILE_MODEL_P (current_cpu))
5172
    {
5173
      FLD (in_Rd) = f_operand2;
5174
      FLD (in_Rs) = f_operand1;
5175
      FLD (out_Rd) = f_operand2;
5176
      FLD (out_Rs) = f_operand1;
5177
    }
5178
#endif
5179
#undef FLD
5180
    return idesc;
5181
  }
5182
 
5183
 extract_sfmt_bound_cb:
5184
  {
5185
    const IDESC *idesc = &crisv10f_insn_data[itype];
5186
    CGEN_INSN_WORD insn = base_insn;
5187
#define FLD(f) abuf->fields.sfmt_bound_cb.f
5188
    INT f_indir_pc__byte;
5189
    UINT f_operand2;
5190
    /* Contents of trailing part of insn.  */
5191
    UINT word_1;
5192
 
5193
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5194
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5195
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5196
 
5197
  /* Record the fields for the semantic handler.  */
5198
  FLD (f_operand2) = f_operand2;
5199
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
5200
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
5201
 
5202
#if WITH_PROFILE_MODEL_P
5203
  /* Record the fields for profiling.  */
5204
  if (PROFILE_MODEL_P (current_cpu))
5205
    {
5206
      FLD (in_Rd) = f_operand2;
5207
      FLD (out_Rd) = f_operand2;
5208
    }
5209
#endif
5210
#undef FLD
5211
    return idesc;
5212
  }
5213
 
5214
 extract_sfmt_bound_cw:
5215
  {
5216
    const IDESC *idesc = &crisv10f_insn_data[itype];
5217
    CGEN_INSN_WORD insn = base_insn;
5218
#define FLD(f) abuf->fields.sfmt_bound_cw.f
5219
    INT f_indir_pc__word;
5220
    UINT f_operand2;
5221
    /* Contents of trailing part of insn.  */
5222
    UINT word_1;
5223
 
5224
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5225
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5226
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5227
 
5228
  /* Record the fields for the semantic handler.  */
5229
  FLD (f_operand2) = f_operand2;
5230
  FLD (f_indir_pc__word) = f_indir_pc__word;
5231
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
5232
 
5233
#if WITH_PROFILE_MODEL_P
5234
  /* Record the fields for profiling.  */
5235
  if (PROFILE_MODEL_P (current_cpu))
5236
    {
5237
      FLD (in_Rd) = f_operand2;
5238
      FLD (out_Rd) = f_operand2;
5239
    }
5240
#endif
5241
#undef FLD
5242
    return idesc;
5243
  }
5244
 
5245
 extract_sfmt_bound_cd:
5246
  {
5247
    const IDESC *idesc = &crisv10f_insn_data[itype];
5248
    CGEN_INSN_WORD insn = base_insn;
5249
#define FLD(f) abuf->fields.sfmt_bound_cd.f
5250
    INT f_indir_pc__dword;
5251
    UINT f_operand2;
5252
    /* Contents of trailing part of insn.  */
5253
    UINT word_1;
5254
 
5255
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5256
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5257
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5258
 
5259
  /* Record the fields for the semantic handler.  */
5260
  FLD (f_operand2) = f_operand2;
5261
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
5262
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5263
 
5264
#if WITH_PROFILE_MODEL_P
5265
  /* Record the fields for profiling.  */
5266
  if (PROFILE_MODEL_P (current_cpu))
5267
    {
5268
      FLD (in_Rd) = f_operand2;
5269
      FLD (out_Rd) = f_operand2;
5270
    }
5271
#endif
5272
#undef FLD
5273
    return idesc;
5274
  }
5275
 
5276
 extract_sfmt_scc:
5277
  {
5278
    const IDESC *idesc = &crisv10f_insn_data[itype];
5279
    CGEN_INSN_WORD insn = base_insn;
5280
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5281
    UINT f_operand2;
5282
    UINT f_operand1;
5283
 
5284
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5285
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5286
 
5287
  /* Record the fields for the semantic handler.  */
5288
  FLD (f_operand2) = f_operand2;
5289
  FLD (f_operand1) = f_operand1;
5290
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_scc", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5291
 
5292
#if WITH_PROFILE_MODEL_P
5293
  /* Record the fields for profiling.  */
5294
  if (PROFILE_MODEL_P (current_cpu))
5295
    {
5296
      FLD (out_Rs) = f_operand1;
5297
    }
5298
#endif
5299
#undef FLD
5300
    return idesc;
5301
  }
5302
 
5303
 extract_sfmt_addoq:
5304
  {
5305
    const IDESC *idesc = &crisv10f_insn_data[itype];
5306
    CGEN_INSN_WORD insn = base_insn;
5307
#define FLD(f) abuf->fields.sfmt_addoq.f
5308
    UINT f_operand2;
5309
    INT f_s8;
5310
 
5311
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5312
    f_s8 = EXTRACT_LSB0_SINT (insn, 16, 7, 8);
5313
 
5314
  /* Record the fields for the semantic handler.  */
5315
  FLD (f_operand2) = f_operand2;
5316
  FLD (f_s8) = f_s8;
5317
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addoq", "f_operand2 0x%x", 'x', f_operand2, "f_s8 0x%x", 'x', f_s8, (char *) 0));
5318
 
5319
#if WITH_PROFILE_MODEL_P
5320
  /* Record the fields for profiling.  */
5321
  if (PROFILE_MODEL_P (current_cpu))
5322
    {
5323
      FLD (in_Rd) = f_operand2;
5324
    }
5325
#endif
5326
#undef FLD
5327
    return idesc;
5328
  }
5329
 
5330
 extract_sfmt_bdapqpc:
5331
  {
5332
    const IDESC *idesc = &crisv10f_insn_data[itype];
5333
    CGEN_INSN_WORD insn = base_insn;
5334
#define FLD(f) abuf->fields.sfmt_addoq.f
5335
    INT f_s8;
5336
 
5337
    f_s8 = EXTRACT_LSB0_SINT (insn, 16, 7, 8);
5338
 
5339
  /* Record the fields for the semantic handler.  */
5340
  FLD (f_s8) = f_s8;
5341
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bdapqpc", "f_s8 0x%x", 'x', f_s8, (char *) 0));
5342
 
5343
#if WITH_PROFILE_MODEL_P
5344
  /* Record the fields for profiling.  */
5345
  if (PROFILE_MODEL_P (current_cpu))
5346
    {
5347
    }
5348
#endif
5349
#undef FLD
5350
    return idesc;
5351
  }
5352
 
5353
 extract_sfmt_bdap_32_pc:
5354
  {
5355
    const IDESC *idesc = &crisv10f_insn_data[itype];
5356
    CGEN_INSN_WORD insn = base_insn;
5357
#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5358
    INT f_indir_pc__dword;
5359
    /* Contents of trailing part of insn.  */
5360
    UINT word_1;
5361
 
5362
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5363
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5364
 
5365
  /* Record the fields for the semantic handler.  */
5366
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
5367
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bdap_32_pc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5368
 
5369
#if WITH_PROFILE_MODEL_P
5370
  /* Record the fields for profiling.  */
5371
  if (PROFILE_MODEL_P (current_cpu))
5372
    {
5373
    }
5374
#endif
5375
#undef FLD
5376
    return idesc;
5377
  }
5378
 
5379
 extract_sfmt_move_m_pcplus_p0:
5380
  {
5381
    const IDESC *idesc = &crisv10f_insn_data[itype];
5382
    CGEN_INSN_WORD insn = base_insn;
5383
#define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
5384
    UINT f_memmode;
5385
 
5386
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5387
 
5388
  /* Record the fields for the semantic handler.  */
5389
  FLD (f_memmode) = f_memmode;
5390
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_pcplus_p0", "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5391
 
5392
#if WITH_PROFILE_MODEL_P
5393
  /* Record the fields for profiling.  */
5394
  if (PROFILE_MODEL_P (current_cpu))
5395
    {
5396
    }
5397
#endif
5398
#undef FLD
5399
    return idesc;
5400
  }
5401
 
5402
 extract_sfmt_move_m_spplus_p8:
5403
  {
5404
    const IDESC *idesc = &crisv10f_insn_data[itype];
5405
    CGEN_INSN_WORD insn = base_insn;
5406
#define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
5407
    UINT f_memmode;
5408
 
5409
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5410
 
5411
  /* Record the fields for the semantic handler.  */
5412
  FLD (f_memmode) = f_memmode;
5413
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_spplus_p8", "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5414
 
5415
#if WITH_PROFILE_MODEL_P
5416
  /* Record the fields for profiling.  */
5417
  if (PROFILE_MODEL_P (current_cpu))
5418
    {
5419
      FLD (in_h_gr_SI_14) = 14;
5420
      FLD (out_h_gr_SI_14) = 14;
5421
    }
5422
#endif
5423
#undef FLD
5424
    return idesc;
5425
  }
5426
 
5427
 extract_sfmt_addo_m_b_m:
5428
  {
5429
    const IDESC *idesc = &crisv10f_insn_data[itype];
5430
    CGEN_INSN_WORD insn = base_insn;
5431
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5432
    UINT f_operand2;
5433
    UINT f_memmode;
5434
    UINT f_operand1;
5435
 
5436
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5437
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5438
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5439
 
5440
  /* Record the fields for the semantic handler.  */
5441
  FLD (f_operand2) = f_operand2;
5442
  FLD (f_operand1) = f_operand1;
5443
  FLD (f_memmode) = f_memmode;
5444
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5445
 
5446
#if WITH_PROFILE_MODEL_P
5447
  /* Record the fields for profiling.  */
5448
  if (PROFILE_MODEL_P (current_cpu))
5449
    {
5450
      FLD (in_Rd) = f_operand2;
5451
      FLD (in_Rs) = f_operand1;
5452
      FLD (out_Rs) = f_operand1;
5453
    }
5454
#endif
5455
#undef FLD
5456
    return idesc;
5457
  }
5458
 
5459
 extract_sfmt_addo_m_w_m:
5460
  {
5461
    const IDESC *idesc = &crisv10f_insn_data[itype];
5462
    CGEN_INSN_WORD insn = base_insn;
5463
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5464
    UINT f_operand2;
5465
    UINT f_memmode;
5466
    UINT f_operand1;
5467
 
5468
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5469
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5470
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5471
 
5472
  /* Record the fields for the semantic handler.  */
5473
  FLD (f_operand2) = f_operand2;
5474
  FLD (f_operand1) = f_operand1;
5475
  FLD (f_memmode) = f_memmode;
5476
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5477
 
5478
#if WITH_PROFILE_MODEL_P
5479
  /* Record the fields for profiling.  */
5480
  if (PROFILE_MODEL_P (current_cpu))
5481
    {
5482
      FLD (in_Rd) = f_operand2;
5483
      FLD (in_Rs) = f_operand1;
5484
      FLD (out_Rs) = f_operand1;
5485
    }
5486
#endif
5487
#undef FLD
5488
    return idesc;
5489
  }
5490
 
5491
 extract_sfmt_addo_m_d_m:
5492
  {
5493
    const IDESC *idesc = &crisv10f_insn_data[itype];
5494
    CGEN_INSN_WORD insn = base_insn;
5495
#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5496
    UINT f_operand2;
5497
    UINT f_memmode;
5498
    UINT f_operand1;
5499
 
5500
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5501
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5502
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5503
 
5504
  /* Record the fields for the semantic handler.  */
5505
  FLD (f_operand2) = f_operand2;
5506
  FLD (f_operand1) = f_operand1;
5507
  FLD (f_memmode) = f_memmode;
5508
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5509
 
5510
#if WITH_PROFILE_MODEL_P
5511
  /* Record the fields for profiling.  */
5512
  if (PROFILE_MODEL_P (current_cpu))
5513
    {
5514
      FLD (in_Rd) = f_operand2;
5515
      FLD (in_Rs) = f_operand1;
5516
      FLD (out_Rs) = f_operand1;
5517
    }
5518
#endif
5519
#undef FLD
5520
    return idesc;
5521
  }
5522
 
5523
 extract_sfmt_addo_cb:
5524
  {
5525
    const IDESC *idesc = &crisv10f_insn_data[itype];
5526
    CGEN_INSN_WORD insn = base_insn;
5527
#define FLD(f) abuf->fields.sfmt_bound_cb.f
5528
    INT f_indir_pc__byte;
5529
    UINT f_operand2;
5530
    /* Contents of trailing part of insn.  */
5531
    UINT word_1;
5532
 
5533
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5534
    f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5535
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5536
 
5537
  /* Record the fields for the semantic handler.  */
5538
  FLD (f_operand2) = f_operand2;
5539
  FLD (f_indir_pc__byte) = f_indir_pc__byte;
5540
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
5541
 
5542
#if WITH_PROFILE_MODEL_P
5543
  /* Record the fields for profiling.  */
5544
  if (PROFILE_MODEL_P (current_cpu))
5545
    {
5546
      FLD (in_Rd) = f_operand2;
5547
    }
5548
#endif
5549
#undef FLD
5550
    return idesc;
5551
  }
5552
 
5553
 extract_sfmt_addo_cw:
5554
  {
5555
    const IDESC *idesc = &crisv10f_insn_data[itype];
5556
    CGEN_INSN_WORD insn = base_insn;
5557
#define FLD(f) abuf->fields.sfmt_bound_cw.f
5558
    INT f_indir_pc__word;
5559
    UINT f_operand2;
5560
    /* Contents of trailing part of insn.  */
5561
    UINT word_1;
5562
 
5563
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5564
    f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5565
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5566
 
5567
  /* Record the fields for the semantic handler.  */
5568
  FLD (f_operand2) = f_operand2;
5569
  FLD (f_indir_pc__word) = f_indir_pc__word;
5570
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
5571
 
5572
#if WITH_PROFILE_MODEL_P
5573
  /* Record the fields for profiling.  */
5574
  if (PROFILE_MODEL_P (current_cpu))
5575
    {
5576
      FLD (in_Rd) = f_operand2;
5577
    }
5578
#endif
5579
#undef FLD
5580
    return idesc;
5581
  }
5582
 
5583
 extract_sfmt_addo_cd:
5584
  {
5585
    const IDESC *idesc = &crisv10f_insn_data[itype];
5586
    CGEN_INSN_WORD insn = base_insn;
5587
#define FLD(f) abuf->fields.sfmt_bound_cd.f
5588
    INT f_indir_pc__dword;
5589
    UINT f_operand2;
5590
    /* Contents of trailing part of insn.  */
5591
    UINT word_1;
5592
 
5593
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5594
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5595
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5596
 
5597
  /* Record the fields for the semantic handler.  */
5598
  FLD (f_operand2) = f_operand2;
5599
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
5600
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5601
 
5602
#if WITH_PROFILE_MODEL_P
5603
  /* Record the fields for profiling.  */
5604
  if (PROFILE_MODEL_P (current_cpu))
5605
    {
5606
      FLD (in_Rd) = f_operand2;
5607
    }
5608
#endif
5609
#undef FLD
5610
    return idesc;
5611
  }
5612
 
5613
 extract_sfmt_dip_m:
5614
  {
5615
    const IDESC *idesc = &crisv10f_insn_data[itype];
5616
    CGEN_INSN_WORD insn = base_insn;
5617
#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5618
    UINT f_memmode;
5619
    UINT f_operand1;
5620
 
5621
    f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5622
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5623
 
5624
  /* Record the fields for the semantic handler.  */
5625
  FLD (f_operand1) = f_operand1;
5626
  FLD (f_memmode) = f_memmode;
5627
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dip_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5628
 
5629
#if WITH_PROFILE_MODEL_P
5630
  /* Record the fields for profiling.  */
5631
  if (PROFILE_MODEL_P (current_cpu))
5632
    {
5633
      FLD (in_Rs) = f_operand1;
5634
      FLD (out_Rs) = f_operand1;
5635
    }
5636
#endif
5637
#undef FLD
5638
    return idesc;
5639
  }
5640
 
5641
 extract_sfmt_dip_c:
5642
  {
5643
    const IDESC *idesc = &crisv10f_insn_data[itype];
5644
    CGEN_INSN_WORD insn = base_insn;
5645
#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5646
    INT f_indir_pc__dword;
5647
    /* Contents of trailing part of insn.  */
5648
    UINT word_1;
5649
 
5650
  word_1 = GETIMEMUSI (current_cpu, pc + 2);
5651
    f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5652
 
5653
  /* Record the fields for the semantic handler.  */
5654
  FLD (f_indir_pc__dword) = f_indir_pc__dword;
5655
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dip_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5656
 
5657
#undef FLD
5658
    return idesc;
5659
  }
5660
 
5661
 extract_sfmt_addi_acr_b_r:
5662
  {
5663
    const IDESC *idesc = &crisv10f_insn_data[itype];
5664
    CGEN_INSN_WORD insn = base_insn;
5665
#define FLD(f) abuf->fields.sfmt_add_b_r.f
5666
    UINT f_operand2;
5667
    UINT f_operand1;
5668
 
5669
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5670
    f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5671
 
5672
  /* Record the fields for the semantic handler.  */
5673
  FLD (f_operand2) = f_operand2;
5674
  FLD (f_operand1) = f_operand1;
5675
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_acr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5676
 
5677
#if WITH_PROFILE_MODEL_P
5678
  /* Record the fields for profiling.  */
5679
  if (PROFILE_MODEL_P (current_cpu))
5680
    {
5681
      FLD (in_Rd) = f_operand2;
5682
      FLD (in_Rs) = f_operand1;
5683
    }
5684
#endif
5685
#undef FLD
5686
    return idesc;
5687
  }
5688
 
5689
 extract_sfmt_biap_pc_b_r:
5690
  {
5691
    const IDESC *idesc = &crisv10f_insn_data[itype];
5692
    CGEN_INSN_WORD insn = base_insn;
5693
#define FLD(f) abuf->fields.sfmt_addoq.f
5694
    UINT f_operand2;
5695
 
5696
    f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5697
 
5698
  /* Record the fields for the semantic handler.  */
5699
  FLD (f_operand2) = f_operand2;
5700
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_biap_pc_b_r", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5701
 
5702
#if WITH_PROFILE_MODEL_P
5703
  /* Record the fields for profiling.  */
5704
  if (PROFILE_MODEL_P (current_cpu))
5705
    {
5706
      FLD (in_Rd) = f_operand2;
5707
    }
5708
#endif
5709
#undef FLD
5710
    return idesc;
5711
  }
5712
 
5713
}

powered by: WebSVN 2.1.0

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