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

Subversion Repositories openrisc_me

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

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

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

powered by: WebSVN 2.1.0

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