xref: /netbsd-src/external/gpl3/gdb/dist/sim/or1k/decode.c (revision ccd9df534e375a4366c5b55f23782053c7a98d82)
1 /* Simulator instruction decoder for or1k32bf.
2 
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4 
5 Copyright (C) 1996-2023 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 or1k32bf
26 #define WANT_CPU_OR1K32BF
27 
28 #include "sim-main.h"
29 #include "sim-assert.h"
30 
31 /* The instruction descriptor array.
32    This is computed at runtime.  Space for it is not malloc'd to save a
33    teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
34    but won't be done until necessary (we don't currently support the runtime
35    addition of instructions nor an SMP machine with different cpus).  */
36 static IDESC or1k32bf_insn_data[OR1K32BF_INSN__MAX];
37 
38 /* Commas between elements are contained in the macros.
39    Some of these are conditionally compiled out.  */
40 
41 static const struct insn_sem or1k32bf_insn_sem[] =
42 {
43   { VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY },
44   { VIRTUAL_INSN_X_AFTER, OR1K32BF_INSN_X_AFTER, OR1K32BF_SFMT_EMPTY },
45   { VIRTUAL_INSN_X_BEFORE, OR1K32BF_INSN_X_BEFORE, OR1K32BF_SFMT_EMPTY },
46   { VIRTUAL_INSN_X_CTI_CHAIN, OR1K32BF_INSN_X_CTI_CHAIN, OR1K32BF_SFMT_EMPTY },
47   { VIRTUAL_INSN_X_CHAIN, OR1K32BF_INSN_X_CHAIN, OR1K32BF_SFMT_EMPTY },
48   { VIRTUAL_INSN_X_BEGIN, OR1K32BF_INSN_X_BEGIN, OR1K32BF_SFMT_EMPTY },
49   { OR1K_INSN_L_J, OR1K32BF_INSN_L_J, OR1K32BF_SFMT_L_J },
50   { OR1K_INSN_L_ADRP, OR1K32BF_INSN_L_ADRP, OR1K32BF_SFMT_L_ADRP },
51   { OR1K_INSN_L_JAL, OR1K32BF_INSN_L_JAL, OR1K32BF_SFMT_L_JAL },
52   { OR1K_INSN_L_JR, OR1K32BF_INSN_L_JR, OR1K32BF_SFMT_L_JR },
53   { OR1K_INSN_L_JALR, OR1K32BF_INSN_L_JALR, OR1K32BF_SFMT_L_JALR },
54   { OR1K_INSN_L_BNF, OR1K32BF_INSN_L_BNF, OR1K32BF_SFMT_L_BNF },
55   { OR1K_INSN_L_BF, OR1K32BF_INSN_L_BF, OR1K32BF_SFMT_L_BNF },
56   { OR1K_INSN_L_TRAP, OR1K32BF_INSN_L_TRAP, OR1K32BF_SFMT_L_TRAP },
57   { OR1K_INSN_L_SYS, OR1K32BF_INSN_L_SYS, OR1K32BF_SFMT_L_TRAP },
58   { OR1K_INSN_L_MSYNC, OR1K32BF_INSN_L_MSYNC, OR1K32BF_SFMT_L_MSYNC },
59   { OR1K_INSN_L_PSYNC, OR1K32BF_INSN_L_PSYNC, OR1K32BF_SFMT_L_MSYNC },
60   { OR1K_INSN_L_CSYNC, OR1K32BF_INSN_L_CSYNC, OR1K32BF_SFMT_L_MSYNC },
61   { OR1K_INSN_L_RFE, OR1K32BF_INSN_L_RFE, OR1K32BF_SFMT_L_MSYNC },
62   { OR1K_INSN_L_NOP_IMM, OR1K32BF_INSN_L_NOP_IMM, OR1K32BF_SFMT_L_NOP_IMM },
63   { OR1K_INSN_L_MOVHI, OR1K32BF_INSN_L_MOVHI, OR1K32BF_SFMT_L_MOVHI },
64   { OR1K_INSN_L_MACRC, OR1K32BF_INSN_L_MACRC, OR1K32BF_SFMT_L_MACRC },
65   { OR1K_INSN_L_MFSPR, OR1K32BF_INSN_L_MFSPR, OR1K32BF_SFMT_L_MFSPR },
66   { OR1K_INSN_L_MTSPR, OR1K32BF_INSN_L_MTSPR, OR1K32BF_SFMT_L_MTSPR },
67   { OR1K_INSN_L_LWZ, OR1K32BF_INSN_L_LWZ, OR1K32BF_SFMT_L_LWZ },
68   { OR1K_INSN_L_LWS, OR1K32BF_INSN_L_LWS, OR1K32BF_SFMT_L_LWS },
69   { OR1K_INSN_L_LWA, OR1K32BF_INSN_L_LWA, OR1K32BF_SFMT_L_LWA },
70   { OR1K_INSN_L_LBZ, OR1K32BF_INSN_L_LBZ, OR1K32BF_SFMT_L_LBZ },
71   { OR1K_INSN_L_LBS, OR1K32BF_INSN_L_LBS, OR1K32BF_SFMT_L_LBS },
72   { OR1K_INSN_L_LHZ, OR1K32BF_INSN_L_LHZ, OR1K32BF_SFMT_L_LHZ },
73   { OR1K_INSN_L_LHS, OR1K32BF_INSN_L_LHS, OR1K32BF_SFMT_L_LHS },
74   { OR1K_INSN_L_SW, OR1K32BF_INSN_L_SW, OR1K32BF_SFMT_L_SW },
75   { OR1K_INSN_L_SB, OR1K32BF_INSN_L_SB, OR1K32BF_SFMT_L_SB },
76   { OR1K_INSN_L_SH, OR1K32BF_INSN_L_SH, OR1K32BF_SFMT_L_SH },
77   { OR1K_INSN_L_SWA, OR1K32BF_INSN_L_SWA, OR1K32BF_SFMT_L_SWA },
78   { OR1K_INSN_L_SLL, OR1K32BF_INSN_L_SLL, OR1K32BF_SFMT_L_SLL },
79   { OR1K_INSN_L_SLLI, OR1K32BF_INSN_L_SLLI, OR1K32BF_SFMT_L_SLLI },
80   { OR1K_INSN_L_SRL, OR1K32BF_INSN_L_SRL, OR1K32BF_SFMT_L_SLL },
81   { OR1K_INSN_L_SRLI, OR1K32BF_INSN_L_SRLI, OR1K32BF_SFMT_L_SLLI },
82   { OR1K_INSN_L_SRA, OR1K32BF_INSN_L_SRA, OR1K32BF_SFMT_L_SLL },
83   { OR1K_INSN_L_SRAI, OR1K32BF_INSN_L_SRAI, OR1K32BF_SFMT_L_SLLI },
84   { OR1K_INSN_L_ROR, OR1K32BF_INSN_L_ROR, OR1K32BF_SFMT_L_SLL },
85   { OR1K_INSN_L_RORI, OR1K32BF_INSN_L_RORI, OR1K32BF_SFMT_L_SLLI },
86   { OR1K_INSN_L_AND, OR1K32BF_INSN_L_AND, OR1K32BF_SFMT_L_AND },
87   { OR1K_INSN_L_OR, OR1K32BF_INSN_L_OR, OR1K32BF_SFMT_L_AND },
88   { OR1K_INSN_L_XOR, OR1K32BF_INSN_L_XOR, OR1K32BF_SFMT_L_AND },
89   { OR1K_INSN_L_ADD, OR1K32BF_INSN_L_ADD, OR1K32BF_SFMT_L_ADD },
90   { OR1K_INSN_L_SUB, OR1K32BF_INSN_L_SUB, OR1K32BF_SFMT_L_ADD },
91   { OR1K_INSN_L_ADDC, OR1K32BF_INSN_L_ADDC, OR1K32BF_SFMT_L_ADDC },
92   { OR1K_INSN_L_MUL, OR1K32BF_INSN_L_MUL, OR1K32BF_SFMT_L_MUL },
93   { OR1K_INSN_L_MULD, OR1K32BF_INSN_L_MULD, OR1K32BF_SFMT_L_MULD },
94   { OR1K_INSN_L_MULU, OR1K32BF_INSN_L_MULU, OR1K32BF_SFMT_L_MULU },
95   { OR1K_INSN_L_MULDU, OR1K32BF_INSN_L_MULDU, OR1K32BF_SFMT_L_MULD },
96   { OR1K_INSN_L_DIV, OR1K32BF_INSN_L_DIV, OR1K32BF_SFMT_L_DIV },
97   { OR1K_INSN_L_DIVU, OR1K32BF_INSN_L_DIVU, OR1K32BF_SFMT_L_DIVU },
98   { OR1K_INSN_L_FF1, OR1K32BF_INSN_L_FF1, OR1K32BF_SFMT_L_FF1 },
99   { OR1K_INSN_L_FL1, OR1K32BF_INSN_L_FL1, OR1K32BF_SFMT_L_FF1 },
100   { OR1K_INSN_L_ANDI, OR1K32BF_INSN_L_ANDI, OR1K32BF_SFMT_L_MFSPR },
101   { OR1K_INSN_L_ORI, OR1K32BF_INSN_L_ORI, OR1K32BF_SFMT_L_MFSPR },
102   { OR1K_INSN_L_XORI, OR1K32BF_INSN_L_XORI, OR1K32BF_SFMT_L_XORI },
103   { OR1K_INSN_L_ADDI, OR1K32BF_INSN_L_ADDI, OR1K32BF_SFMT_L_ADDI },
104   { OR1K_INSN_L_ADDIC, OR1K32BF_INSN_L_ADDIC, OR1K32BF_SFMT_L_ADDIC },
105   { OR1K_INSN_L_MULI, OR1K32BF_INSN_L_MULI, OR1K32BF_SFMT_L_MULI },
106   { OR1K_INSN_L_EXTHS, OR1K32BF_INSN_L_EXTHS, OR1K32BF_SFMT_L_EXTHS },
107   { OR1K_INSN_L_EXTBS, OR1K32BF_INSN_L_EXTBS, OR1K32BF_SFMT_L_EXTHS },
108   { OR1K_INSN_L_EXTHZ, OR1K32BF_INSN_L_EXTHZ, OR1K32BF_SFMT_L_EXTHS },
109   { OR1K_INSN_L_EXTBZ, OR1K32BF_INSN_L_EXTBZ, OR1K32BF_SFMT_L_EXTHS },
110   { OR1K_INSN_L_EXTWS, OR1K32BF_INSN_L_EXTWS, OR1K32BF_SFMT_L_EXTHS },
111   { OR1K_INSN_L_EXTWZ, OR1K32BF_INSN_L_EXTWZ, OR1K32BF_SFMT_L_EXTHS },
112   { OR1K_INSN_L_CMOV, OR1K32BF_INSN_L_CMOV, OR1K32BF_SFMT_L_CMOV },
113   { OR1K_INSN_L_SFGTS, OR1K32BF_INSN_L_SFGTS, OR1K32BF_SFMT_L_SFGTS },
114   { OR1K_INSN_L_SFGTSI, OR1K32BF_INSN_L_SFGTSI, OR1K32BF_SFMT_L_SFGTSI },
115   { OR1K_INSN_L_SFGTU, OR1K32BF_INSN_L_SFGTU, OR1K32BF_SFMT_L_SFGTS },
116   { OR1K_INSN_L_SFGTUI, OR1K32BF_INSN_L_SFGTUI, OR1K32BF_SFMT_L_SFGTSI },
117   { OR1K_INSN_L_SFGES, OR1K32BF_INSN_L_SFGES, OR1K32BF_SFMT_L_SFGTS },
118   { OR1K_INSN_L_SFGESI, OR1K32BF_INSN_L_SFGESI, OR1K32BF_SFMT_L_SFGTSI },
119   { OR1K_INSN_L_SFGEU, OR1K32BF_INSN_L_SFGEU, OR1K32BF_SFMT_L_SFGTS },
120   { OR1K_INSN_L_SFGEUI, OR1K32BF_INSN_L_SFGEUI, OR1K32BF_SFMT_L_SFGTSI },
121   { OR1K_INSN_L_SFLTS, OR1K32BF_INSN_L_SFLTS, OR1K32BF_SFMT_L_SFGTS },
122   { OR1K_INSN_L_SFLTSI, OR1K32BF_INSN_L_SFLTSI, OR1K32BF_SFMT_L_SFGTSI },
123   { OR1K_INSN_L_SFLTU, OR1K32BF_INSN_L_SFLTU, OR1K32BF_SFMT_L_SFGTS },
124   { OR1K_INSN_L_SFLTUI, OR1K32BF_INSN_L_SFLTUI, OR1K32BF_SFMT_L_SFGTSI },
125   { OR1K_INSN_L_SFLES, OR1K32BF_INSN_L_SFLES, OR1K32BF_SFMT_L_SFGTS },
126   { OR1K_INSN_L_SFLESI, OR1K32BF_INSN_L_SFLESI, OR1K32BF_SFMT_L_SFGTSI },
127   { OR1K_INSN_L_SFLEU, OR1K32BF_INSN_L_SFLEU, OR1K32BF_SFMT_L_SFGTS },
128   { OR1K_INSN_L_SFLEUI, OR1K32BF_INSN_L_SFLEUI, OR1K32BF_SFMT_L_SFGTSI },
129   { OR1K_INSN_L_SFEQ, OR1K32BF_INSN_L_SFEQ, OR1K32BF_SFMT_L_SFGTS },
130   { OR1K_INSN_L_SFEQI, OR1K32BF_INSN_L_SFEQI, OR1K32BF_SFMT_L_SFGTSI },
131   { OR1K_INSN_L_SFNE, OR1K32BF_INSN_L_SFNE, OR1K32BF_SFMT_L_SFGTS },
132   { OR1K_INSN_L_SFNEI, OR1K32BF_INSN_L_SFNEI, OR1K32BF_SFMT_L_SFGTSI },
133   { OR1K_INSN_L_MAC, OR1K32BF_INSN_L_MAC, OR1K32BF_SFMT_L_MAC },
134   { OR1K_INSN_L_MACI, OR1K32BF_INSN_L_MACI, OR1K32BF_SFMT_L_MACI },
135   { OR1K_INSN_L_MACU, OR1K32BF_INSN_L_MACU, OR1K32BF_SFMT_L_MACU },
136   { OR1K_INSN_L_MSB, OR1K32BF_INSN_L_MSB, OR1K32BF_SFMT_L_MAC },
137   { OR1K_INSN_L_MSBU, OR1K32BF_INSN_L_MSBU, OR1K32BF_SFMT_L_MACU },
138   { OR1K_INSN_L_CUST1, OR1K32BF_INSN_L_CUST1, OR1K32BF_SFMT_L_MSYNC },
139   { OR1K_INSN_L_CUST2, OR1K32BF_INSN_L_CUST2, OR1K32BF_SFMT_L_MSYNC },
140   { OR1K_INSN_L_CUST3, OR1K32BF_INSN_L_CUST3, OR1K32BF_SFMT_L_MSYNC },
141   { OR1K_INSN_L_CUST4, OR1K32BF_INSN_L_CUST4, OR1K32BF_SFMT_L_MSYNC },
142   { OR1K_INSN_L_CUST5, OR1K32BF_INSN_L_CUST5, OR1K32BF_SFMT_L_MSYNC },
143   { OR1K_INSN_L_CUST6, OR1K32BF_INSN_L_CUST6, OR1K32BF_SFMT_L_MSYNC },
144   { OR1K_INSN_L_CUST7, OR1K32BF_INSN_L_CUST7, OR1K32BF_SFMT_L_MSYNC },
145   { OR1K_INSN_L_CUST8, OR1K32BF_INSN_L_CUST8, OR1K32BF_SFMT_L_MSYNC },
146   { OR1K_INSN_LF_ADD_S, OR1K32BF_INSN_LF_ADD_S, OR1K32BF_SFMT_LF_ADD_S },
147   { OR1K_INSN_LF_ADD_D32, OR1K32BF_INSN_LF_ADD_D32, OR1K32BF_SFMT_LF_ADD_D32 },
148   { OR1K_INSN_LF_SUB_S, OR1K32BF_INSN_LF_SUB_S, OR1K32BF_SFMT_LF_ADD_S },
149   { OR1K_INSN_LF_SUB_D32, OR1K32BF_INSN_LF_SUB_D32, OR1K32BF_SFMT_LF_ADD_D32 },
150   { OR1K_INSN_LF_MUL_S, OR1K32BF_INSN_LF_MUL_S, OR1K32BF_SFMT_LF_ADD_S },
151   { OR1K_INSN_LF_MUL_D32, OR1K32BF_INSN_LF_MUL_D32, OR1K32BF_SFMT_LF_ADD_D32 },
152   { OR1K_INSN_LF_DIV_S, OR1K32BF_INSN_LF_DIV_S, OR1K32BF_SFMT_LF_ADD_S },
153   { OR1K_INSN_LF_DIV_D32, OR1K32BF_INSN_LF_DIV_D32, OR1K32BF_SFMT_LF_ADD_D32 },
154   { OR1K_INSN_LF_REM_S, OR1K32BF_INSN_LF_REM_S, OR1K32BF_SFMT_LF_ADD_S },
155   { OR1K_INSN_LF_REM_D32, OR1K32BF_INSN_LF_REM_D32, OR1K32BF_SFMT_LF_ADD_D32 },
156   { OR1K_INSN_LF_ITOF_S, OR1K32BF_INSN_LF_ITOF_S, OR1K32BF_SFMT_LF_ITOF_S },
157   { OR1K_INSN_LF_ITOF_D32, OR1K32BF_INSN_LF_ITOF_D32, OR1K32BF_SFMT_LF_ITOF_D32 },
158   { OR1K_INSN_LF_FTOI_S, OR1K32BF_INSN_LF_FTOI_S, OR1K32BF_SFMT_LF_FTOI_S },
159   { OR1K_INSN_LF_FTOI_D32, OR1K32BF_INSN_LF_FTOI_D32, OR1K32BF_SFMT_LF_FTOI_D32 },
160   { OR1K_INSN_LF_SFEQ_S, OR1K32BF_INSN_LF_SFEQ_S, OR1K32BF_SFMT_LF_SFEQ_S },
161   { OR1K_INSN_LF_SFEQ_D32, OR1K32BF_INSN_LF_SFEQ_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
162   { OR1K_INSN_LF_SFNE_S, OR1K32BF_INSN_LF_SFNE_S, OR1K32BF_SFMT_LF_SFEQ_S },
163   { OR1K_INSN_LF_SFNE_D32, OR1K32BF_INSN_LF_SFNE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
164   { OR1K_INSN_LF_SFGE_S, OR1K32BF_INSN_LF_SFGE_S, OR1K32BF_SFMT_LF_SFEQ_S },
165   { OR1K_INSN_LF_SFGE_D32, OR1K32BF_INSN_LF_SFGE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
166   { OR1K_INSN_LF_SFGT_S, OR1K32BF_INSN_LF_SFGT_S, OR1K32BF_SFMT_LF_SFEQ_S },
167   { OR1K_INSN_LF_SFGT_D32, OR1K32BF_INSN_LF_SFGT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
168   { OR1K_INSN_LF_SFLT_S, OR1K32BF_INSN_LF_SFLT_S, OR1K32BF_SFMT_LF_SFEQ_S },
169   { OR1K_INSN_LF_SFLT_D32, OR1K32BF_INSN_LF_SFLT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
170   { OR1K_INSN_LF_SFLE_S, OR1K32BF_INSN_LF_SFLE_S, OR1K32BF_SFMT_LF_SFEQ_S },
171   { OR1K_INSN_LF_SFLE_D32, OR1K32BF_INSN_LF_SFLE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
172   { OR1K_INSN_LF_SFUEQ_S, OR1K32BF_INSN_LF_SFUEQ_S, OR1K32BF_SFMT_LF_SFEQ_S },
173   { OR1K_INSN_LF_SFUEQ_D32, OR1K32BF_INSN_LF_SFUEQ_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
174   { OR1K_INSN_LF_SFUNE_S, OR1K32BF_INSN_LF_SFUNE_S, OR1K32BF_SFMT_LF_SFEQ_S },
175   { OR1K_INSN_LF_SFUNE_D32, OR1K32BF_INSN_LF_SFUNE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
176   { OR1K_INSN_LF_SFUGT_S, OR1K32BF_INSN_LF_SFUGT_S, OR1K32BF_SFMT_LF_SFEQ_S },
177   { OR1K_INSN_LF_SFUGT_D32, OR1K32BF_INSN_LF_SFUGT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
178   { OR1K_INSN_LF_SFUGE_S, OR1K32BF_INSN_LF_SFUGE_S, OR1K32BF_SFMT_LF_SFEQ_S },
179   { OR1K_INSN_LF_SFUGE_D32, OR1K32BF_INSN_LF_SFUGE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
180   { OR1K_INSN_LF_SFULT_S, OR1K32BF_INSN_LF_SFULT_S, OR1K32BF_SFMT_LF_SFEQ_S },
181   { OR1K_INSN_LF_SFULT_D32, OR1K32BF_INSN_LF_SFULT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
182   { OR1K_INSN_LF_SFULE_S, OR1K32BF_INSN_LF_SFULE_S, OR1K32BF_SFMT_LF_SFEQ_S },
183   { OR1K_INSN_LF_SFULE_D32, OR1K32BF_INSN_LF_SFULE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
184   { OR1K_INSN_LF_SFUN_S, OR1K32BF_INSN_LF_SFUN_S, OR1K32BF_SFMT_LF_SFEQ_S },
185   { OR1K_INSN_LF_SFUN_D32, OR1K32BF_INSN_LF_SFUN_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
186   { OR1K_INSN_LF_MADD_S, OR1K32BF_INSN_LF_MADD_S, OR1K32BF_SFMT_LF_MADD_S },
187   { OR1K_INSN_LF_MADD_D32, OR1K32BF_INSN_LF_MADD_D32, OR1K32BF_SFMT_LF_MADD_D32 },
188   { OR1K_INSN_LF_CUST1_S, OR1K32BF_INSN_LF_CUST1_S, OR1K32BF_SFMT_L_MSYNC },
189   { OR1K_INSN_LF_CUST1_D32, OR1K32BF_INSN_LF_CUST1_D32, OR1K32BF_SFMT_L_MSYNC },
190 };
191 
192 static const struct insn_sem or1k32bf_insn_sem_invalid =
193 {
194   VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY
195 };
196 
197 /* Initialize an IDESC from the compile-time computable parts.  */
198 
199 static INLINE void
200 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
201 {
202   const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
203 
204   id->num = t->index;
205   id->sfmt = t->sfmt;
206   if ((int) t->type <= 0)
207     id->idata = & cgen_virtual_insn_table[- (int) t->type];
208   else
209     id->idata = & insn_table[t->type];
210   id->attrs = CGEN_INSN_ATTRS (id->idata);
211   /* Oh my god, a magic number.  */
212   id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
213 
214 #if WITH_PROFILE_MODEL_P
215   id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
216   {
217     SIM_DESC sd = CPU_STATE (cpu);
218     SIM_ASSERT (t->index == id->timing->num);
219   }
220 #endif
221 
222   /* Semantic pointers are initialized elsewhere.  */
223 }
224 
225 /* Initialize the instruction descriptor table.  */
226 
227 void
228 or1k32bf_init_idesc_table (SIM_CPU *cpu)
229 {
230   IDESC *id,*tabend;
231   const struct insn_sem *t,*tend;
232   int tabsize = OR1K32BF_INSN__MAX;
233   IDESC *table = or1k32bf_insn_data;
234 
235   memset (table, 0, tabsize * sizeof (IDESC));
236 
237   /* First set all entries to the `invalid insn'.  */
238   t = & or1k32bf_insn_sem_invalid;
239   for (id = table, tabend = table + tabsize; id < tabend; ++id)
240     init_idesc (cpu, id, t);
241 
242   /* Now fill in the values for the chosen cpu.  */
243   for (t = or1k32bf_insn_sem, tend = t + sizeof (or1k32bf_insn_sem) / sizeof (*t);
244        t != tend; ++t)
245     {
246       init_idesc (cpu, & table[t->index], t);
247     }
248 
249   /* Link the IDESC table into the cpu.  */
250   CPU_IDESC (cpu) = table;
251 }
252 
253 /* Given an instruction, return a pointer to its IDESC entry.  */
254 
255 const IDESC *
256 or1k32bf_decode (SIM_CPU *current_cpu, IADDR pc,
257               CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
258               ARGBUF *abuf)
259 {
260   /* Result of decoder.  */
261   OR1K32BF_INSN_TYPE itype;
262 
263   {
264     CGEN_INSN_WORD insn = base_insn;
265 
266     {
267       unsigned int val = (((insn >> 21) & (63 << 5)) | ((insn >> 0) & (31 << 0)));
268       switch (val)
269       {
270       case 0 : /* fall through */
271       case 1 : /* fall through */
272       case 2 : /* fall through */
273       case 3 : /* fall through */
274       case 4 : /* fall through */
275       case 5 : /* fall through */
276       case 6 : /* fall through */
277       case 7 : /* fall through */
278       case 8 : /* fall through */
279       case 9 : /* fall through */
280       case 10 : /* fall through */
281       case 11 : /* fall through */
282       case 12 : /* fall through */
283       case 13 : /* fall through */
284       case 14 : /* fall through */
285       case 15 : /* fall through */
286       case 16 : /* fall through */
287       case 17 : /* fall through */
288       case 18 : /* fall through */
289       case 19 : /* fall through */
290       case 20 : /* fall through */
291       case 21 : /* fall through */
292       case 22 : /* fall through */
293       case 23 : /* fall through */
294       case 24 : /* fall through */
295       case 25 : /* fall through */
296       case 26 : /* fall through */
297       case 27 : /* fall through */
298       case 28 : /* fall through */
299       case 29 : /* fall through */
300       case 30 : /* fall through */
301       case 31 : itype = OR1K32BF_INSN_L_J; goto extract_sfmt_l_j;
302       case 32 : /* fall through */
303       case 33 : /* fall through */
304       case 34 : /* fall through */
305       case 35 : /* fall through */
306       case 36 : /* fall through */
307       case 37 : /* fall through */
308       case 38 : /* fall through */
309       case 39 : /* fall through */
310       case 40 : /* fall through */
311       case 41 : /* fall through */
312       case 42 : /* fall through */
313       case 43 : /* fall through */
314       case 44 : /* fall through */
315       case 45 : /* fall through */
316       case 46 : /* fall through */
317       case 47 : /* fall through */
318       case 48 : /* fall through */
319       case 49 : /* fall through */
320       case 50 : /* fall through */
321       case 51 : /* fall through */
322       case 52 : /* fall through */
323       case 53 : /* fall through */
324       case 54 : /* fall through */
325       case 55 : /* fall through */
326       case 56 : /* fall through */
327       case 57 : /* fall through */
328       case 58 : /* fall through */
329       case 59 : /* fall through */
330       case 60 : /* fall through */
331       case 61 : /* fall through */
332       case 62 : /* fall through */
333       case 63 : itype = OR1K32BF_INSN_L_JAL; goto extract_sfmt_l_jal;
334       case 64 : /* fall through */
335       case 65 : /* fall through */
336       case 66 : /* fall through */
337       case 67 : /* fall through */
338       case 68 : /* fall through */
339       case 69 : /* fall through */
340       case 70 : /* fall through */
341       case 71 : /* fall through */
342       case 72 : /* fall through */
343       case 73 : /* fall through */
344       case 74 : /* fall through */
345       case 75 : /* fall through */
346       case 76 : /* fall through */
347       case 77 : /* fall through */
348       case 78 : /* fall through */
349       case 79 : /* fall through */
350       case 80 : /* fall through */
351       case 81 : /* fall through */
352       case 82 : /* fall through */
353       case 83 : /* fall through */
354       case 84 : /* fall through */
355       case 85 : /* fall through */
356       case 86 : /* fall through */
357       case 87 : /* fall through */
358       case 88 : /* fall through */
359       case 89 : /* fall through */
360       case 90 : /* fall through */
361       case 91 : /* fall through */
362       case 92 : /* fall through */
363       case 93 : /* fall through */
364       case 94 : /* fall through */
365       case 95 : itype = OR1K32BF_INSN_L_ADRP; goto extract_sfmt_l_adrp;
366       case 96 : /* fall through */
367       case 97 : /* fall through */
368       case 98 : /* fall through */
369       case 99 : /* fall through */
370       case 100 : /* fall through */
371       case 101 : /* fall through */
372       case 102 : /* fall through */
373       case 103 : /* fall through */
374       case 104 : /* fall through */
375       case 105 : /* fall through */
376       case 106 : /* fall through */
377       case 107 : /* fall through */
378       case 108 : /* fall through */
379       case 109 : /* fall through */
380       case 110 : /* fall through */
381       case 111 : /* fall through */
382       case 112 : /* fall through */
383       case 113 : /* fall through */
384       case 114 : /* fall through */
385       case 115 : /* fall through */
386       case 116 : /* fall through */
387       case 117 : /* fall through */
388       case 118 : /* fall through */
389       case 119 : /* fall through */
390       case 120 : /* fall through */
391       case 121 : /* fall through */
392       case 122 : /* fall through */
393       case 123 : /* fall through */
394       case 124 : /* fall through */
395       case 125 : /* fall through */
396       case 126 : /* fall through */
397       case 127 : itype = OR1K32BF_INSN_L_BNF; goto extract_sfmt_l_bnf;
398       case 128 : /* fall through */
399       case 129 : /* fall through */
400       case 130 : /* fall through */
401       case 131 : /* fall through */
402       case 132 : /* fall through */
403       case 133 : /* fall through */
404       case 134 : /* fall through */
405       case 135 : /* fall through */
406       case 136 : /* fall through */
407       case 137 : /* fall through */
408       case 138 : /* fall through */
409       case 139 : /* fall through */
410       case 140 : /* fall through */
411       case 141 : /* fall through */
412       case 142 : /* fall through */
413       case 143 : /* fall through */
414       case 144 : /* fall through */
415       case 145 : /* fall through */
416       case 146 : /* fall through */
417       case 147 : /* fall through */
418       case 148 : /* fall through */
419       case 149 : /* fall through */
420       case 150 : /* fall through */
421       case 151 : /* fall through */
422       case 152 : /* fall through */
423       case 153 : /* fall through */
424       case 154 : /* fall through */
425       case 155 : /* fall through */
426       case 156 : /* fall through */
427       case 157 : /* fall through */
428       case 158 : /* fall through */
429       case 159 : itype = OR1K32BF_INSN_L_BF; goto extract_sfmt_l_bnf;
430       case 160 : /* fall through */
431       case 161 : /* fall through */
432       case 162 : /* fall through */
433       case 163 : /* fall through */
434       case 164 : /* fall through */
435       case 165 : /* fall through */
436       case 166 : /* fall through */
437       case 167 : /* fall through */
438       case 168 : /* fall through */
439       case 169 : /* fall through */
440       case 170 : /* fall through */
441       case 171 : /* fall through */
442       case 172 : /* fall through */
443       case 173 : /* fall through */
444       case 174 : /* fall through */
445       case 175 : /* fall through */
446       case 176 : /* fall through */
447       case 177 : /* fall through */
448       case 178 : /* fall through */
449       case 179 : /* fall through */
450       case 180 : /* fall through */
451       case 181 : /* fall through */
452       case 182 : /* fall through */
453       case 183 : /* fall through */
454       case 184 : /* fall through */
455       case 185 : /* fall through */
456       case 186 : /* fall through */
457       case 187 : /* fall through */
458       case 188 : /* fall through */
459       case 189 : /* fall through */
460       case 190 : /* fall through */
461       case 191 :
462         if ((entire_insn & 0xffff0000) == 0x15000000)
463           { itype = OR1K32BF_INSN_L_NOP_IMM; goto extract_sfmt_l_nop_imm; }
464         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
465       case 192 :
466         {
467           unsigned int val = (((insn >> 16) & (1 << 0)));
468           switch (val)
469           {
470           case 0 :
471             if ((entire_insn & 0xfc1f0000) == 0x18000000)
472               { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
473             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
474           case 1 :
475             if ((entire_insn & 0xfc1fffff) == 0x18010000)
476               { itype = OR1K32BF_INSN_L_MACRC; goto extract_sfmt_l_macrc; }
477             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
478           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
479           }
480         }
481       case 193 : /* fall through */
482       case 194 : /* fall through */
483       case 195 : /* fall through */
484       case 196 : /* fall through */
485       case 197 : /* fall through */
486       case 198 : /* fall through */
487       case 199 : /* fall through */
488       case 200 : /* fall through */
489       case 201 : /* fall through */
490       case 202 : /* fall through */
491       case 203 : /* fall through */
492       case 204 : /* fall through */
493       case 205 : /* fall through */
494       case 206 : /* fall through */
495       case 207 : /* fall through */
496       case 208 : /* fall through */
497       case 209 : /* fall through */
498       case 210 : /* fall through */
499       case 211 : /* fall through */
500       case 212 : /* fall through */
501       case 213 : /* fall through */
502       case 214 : /* fall through */
503       case 215 : /* fall through */
504       case 216 : /* fall through */
505       case 217 : /* fall through */
506       case 218 : /* fall through */
507       case 219 : /* fall through */
508       case 220 : /* fall through */
509       case 221 : /* fall through */
510       case 222 : /* fall through */
511       case 223 :
512         if ((entire_insn & 0xfc1f0000) == 0x18000000)
513           { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
514         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
515       case 256 :
516         {
517           unsigned int val = (((insn >> 23) & (7 << 0)));
518           switch (val)
519           {
520           case 0 :
521             if ((entire_insn & 0xffff0000) == 0x20000000)
522               { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
523             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
524           case 2 :
525             if ((entire_insn & 0xffff0000) == 0x21000000)
526               { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
527             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
528           case 4 :
529             if ((entire_insn & 0xffffffff) == 0x22000000)
530               { itype = OR1K32BF_INSN_L_MSYNC; goto extract_sfmt_l_msync; }
531             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
532           case 5 :
533             if ((entire_insn & 0xffffffff) == 0x22800000)
534               { itype = OR1K32BF_INSN_L_PSYNC; goto extract_sfmt_l_msync; }
535             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
536           case 6 :
537             if ((entire_insn & 0xffffffff) == 0x23000000)
538               { itype = OR1K32BF_INSN_L_CSYNC; goto extract_sfmt_l_msync; }
539             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
540           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
541           }
542         }
543       case 257 : /* fall through */
544       case 258 : /* fall through */
545       case 259 : /* fall through */
546       case 260 : /* fall through */
547       case 261 : /* fall through */
548       case 262 : /* fall through */
549       case 263 : /* fall through */
550       case 264 : /* fall through */
551       case 265 : /* fall through */
552       case 266 : /* fall through */
553       case 267 : /* fall through */
554       case 268 : /* fall through */
555       case 269 : /* fall through */
556       case 270 : /* fall through */
557       case 271 : /* fall through */
558       case 272 : /* fall through */
559       case 273 : /* fall through */
560       case 274 : /* fall through */
561       case 275 : /* fall through */
562       case 276 : /* fall through */
563       case 277 : /* fall through */
564       case 278 : /* fall through */
565       case 279 : /* fall through */
566       case 280 : /* fall through */
567       case 281 : /* fall through */
568       case 282 : /* fall through */
569       case 283 : /* fall through */
570       case 284 : /* fall through */
571       case 285 : /* fall through */
572       case 286 : /* fall through */
573       case 287 :
574         {
575           unsigned int val = (((insn >> 24) & (1 << 0)));
576           switch (val)
577           {
578           case 0 :
579             if ((entire_insn & 0xffff0000) == 0x20000000)
580               { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
581             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
582           case 1 :
583             if ((entire_insn & 0xffff0000) == 0x21000000)
584               { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
585             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
586           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
587           }
588         }
589       case 288 :
590         if ((entire_insn & 0xffffffff) == 0x24000000)
591           { itype = OR1K32BF_INSN_L_RFE; goto extract_sfmt_l_msync; }
592         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
593       case 544 :
594         if ((entire_insn & 0xffff07ff) == 0x44000000)
595           { itype = OR1K32BF_INSN_L_JR; goto extract_sfmt_l_jr; }
596         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
597       case 576 :
598         if ((entire_insn & 0xffff07ff) == 0x48000000)
599           { itype = OR1K32BF_INSN_L_JALR; goto extract_sfmt_l_jalr; }
600         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
601       case 608 : /* fall through */
602       case 609 : /* fall through */
603       case 610 : /* fall through */
604       case 611 : /* fall through */
605       case 612 : /* fall through */
606       case 613 : /* fall through */
607       case 614 : /* fall through */
608       case 615 : /* fall through */
609       case 616 : /* fall through */
610       case 617 : /* fall through */
611       case 618 : /* fall through */
612       case 619 : /* fall through */
613       case 620 : /* fall through */
614       case 621 : /* fall through */
615       case 622 : /* fall through */
616       case 623 : /* fall through */
617       case 624 : /* fall through */
618       case 625 : /* fall through */
619       case 626 : /* fall through */
620       case 627 : /* fall through */
621       case 628 : /* fall through */
622       case 629 : /* fall through */
623       case 630 : /* fall through */
624       case 631 : /* fall through */
625       case 632 : /* fall through */
626       case 633 : /* fall through */
627       case 634 : /* fall through */
628       case 635 : /* fall through */
629       case 636 : /* fall through */
630       case 637 : /* fall through */
631       case 638 : /* fall through */
632       case 639 :
633         if ((entire_insn & 0xffe00000) == 0x4c000000)
634           { itype = OR1K32BF_INSN_L_MACI; goto extract_sfmt_l_maci; }
635         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
636       case 864 : /* fall through */
637       case 865 : /* fall through */
638       case 866 : /* fall through */
639       case 867 : /* fall through */
640       case 868 : /* fall through */
641       case 869 : /* fall through */
642       case 870 : /* fall through */
643       case 871 : /* fall through */
644       case 872 : /* fall through */
645       case 873 : /* fall through */
646       case 874 : /* fall through */
647       case 875 : /* fall through */
648       case 876 : /* fall through */
649       case 877 : /* fall through */
650       case 878 : /* fall through */
651       case 879 : /* fall through */
652       case 880 : /* fall through */
653       case 881 : /* fall through */
654       case 882 : /* fall through */
655       case 883 : /* fall through */
656       case 884 : /* fall through */
657       case 885 : /* fall through */
658       case 886 : /* fall through */
659       case 887 : /* fall through */
660       case 888 : /* fall through */
661       case 889 : /* fall through */
662       case 890 : /* fall through */
663       case 891 : /* fall through */
664       case 892 : /* fall through */
665       case 893 : /* fall through */
666       case 894 : /* fall through */
667       case 895 : itype = OR1K32BF_INSN_L_LWA; goto extract_sfmt_l_lwa;
668       case 896 :
669         if ((entire_insn & 0xffffffff) == 0x70000000)
670           { itype = OR1K32BF_INSN_L_CUST1; goto extract_sfmt_l_msync; }
671         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
672       case 928 :
673         if ((entire_insn & 0xffffffff) == 0x74000000)
674           { itype = OR1K32BF_INSN_L_CUST2; goto extract_sfmt_l_msync; }
675         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
676       case 960 :
677         if ((entire_insn & 0xffffffff) == 0x78000000)
678           { itype = OR1K32BF_INSN_L_CUST3; goto extract_sfmt_l_msync; }
679         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
680       case 992 :
681         if ((entire_insn & 0xffffffff) == 0x7c000000)
682           { itype = OR1K32BF_INSN_L_CUST4; goto extract_sfmt_l_msync; }
683         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
684       case 1056 : /* fall through */
685       case 1057 : /* fall through */
686       case 1058 : /* fall through */
687       case 1059 : /* fall through */
688       case 1060 : /* fall through */
689       case 1061 : /* fall through */
690       case 1062 : /* fall through */
691       case 1063 : /* fall through */
692       case 1064 : /* fall through */
693       case 1065 : /* fall through */
694       case 1066 : /* fall through */
695       case 1067 : /* fall through */
696       case 1068 : /* fall through */
697       case 1069 : /* fall through */
698       case 1070 : /* fall through */
699       case 1071 : /* fall through */
700       case 1072 : /* fall through */
701       case 1073 : /* fall through */
702       case 1074 : /* fall through */
703       case 1075 : /* fall through */
704       case 1076 : /* fall through */
705       case 1077 : /* fall through */
706       case 1078 : /* fall through */
707       case 1079 : /* fall through */
708       case 1080 : /* fall through */
709       case 1081 : /* fall through */
710       case 1082 : /* fall through */
711       case 1083 : /* fall through */
712       case 1084 : /* fall through */
713       case 1085 : /* fall through */
714       case 1086 : /* fall through */
715       case 1087 : itype = OR1K32BF_INSN_L_LWZ; goto extract_sfmt_l_lwz;
716       case 1088 : /* fall through */
717       case 1089 : /* fall through */
718       case 1090 : /* fall through */
719       case 1091 : /* fall through */
720       case 1092 : /* fall through */
721       case 1093 : /* fall through */
722       case 1094 : /* fall through */
723       case 1095 : /* fall through */
724       case 1096 : /* fall through */
725       case 1097 : /* fall through */
726       case 1098 : /* fall through */
727       case 1099 : /* fall through */
728       case 1100 : /* fall through */
729       case 1101 : /* fall through */
730       case 1102 : /* fall through */
731       case 1103 : /* fall through */
732       case 1104 : /* fall through */
733       case 1105 : /* fall through */
734       case 1106 : /* fall through */
735       case 1107 : /* fall through */
736       case 1108 : /* fall through */
737       case 1109 : /* fall through */
738       case 1110 : /* fall through */
739       case 1111 : /* fall through */
740       case 1112 : /* fall through */
741       case 1113 : /* fall through */
742       case 1114 : /* fall through */
743       case 1115 : /* fall through */
744       case 1116 : /* fall through */
745       case 1117 : /* fall through */
746       case 1118 : /* fall through */
747       case 1119 : itype = OR1K32BF_INSN_L_LWS; goto extract_sfmt_l_lws;
748       case 1120 : /* fall through */
749       case 1121 : /* fall through */
750       case 1122 : /* fall through */
751       case 1123 : /* fall through */
752       case 1124 : /* fall through */
753       case 1125 : /* fall through */
754       case 1126 : /* fall through */
755       case 1127 : /* fall through */
756       case 1128 : /* fall through */
757       case 1129 : /* fall through */
758       case 1130 : /* fall through */
759       case 1131 : /* fall through */
760       case 1132 : /* fall through */
761       case 1133 : /* fall through */
762       case 1134 : /* fall through */
763       case 1135 : /* fall through */
764       case 1136 : /* fall through */
765       case 1137 : /* fall through */
766       case 1138 : /* fall through */
767       case 1139 : /* fall through */
768       case 1140 : /* fall through */
769       case 1141 : /* fall through */
770       case 1142 : /* fall through */
771       case 1143 : /* fall through */
772       case 1144 : /* fall through */
773       case 1145 : /* fall through */
774       case 1146 : /* fall through */
775       case 1147 : /* fall through */
776       case 1148 : /* fall through */
777       case 1149 : /* fall through */
778       case 1150 : /* fall through */
779       case 1151 : itype = OR1K32BF_INSN_L_LBZ; goto extract_sfmt_l_lbz;
780       case 1152 : /* fall through */
781       case 1153 : /* fall through */
782       case 1154 : /* fall through */
783       case 1155 : /* fall through */
784       case 1156 : /* fall through */
785       case 1157 : /* fall through */
786       case 1158 : /* fall through */
787       case 1159 : /* fall through */
788       case 1160 : /* fall through */
789       case 1161 : /* fall through */
790       case 1162 : /* fall through */
791       case 1163 : /* fall through */
792       case 1164 : /* fall through */
793       case 1165 : /* fall through */
794       case 1166 : /* fall through */
795       case 1167 : /* fall through */
796       case 1168 : /* fall through */
797       case 1169 : /* fall through */
798       case 1170 : /* fall through */
799       case 1171 : /* fall through */
800       case 1172 : /* fall through */
801       case 1173 : /* fall through */
802       case 1174 : /* fall through */
803       case 1175 : /* fall through */
804       case 1176 : /* fall through */
805       case 1177 : /* fall through */
806       case 1178 : /* fall through */
807       case 1179 : /* fall through */
808       case 1180 : /* fall through */
809       case 1181 : /* fall through */
810       case 1182 : /* fall through */
811       case 1183 : itype = OR1K32BF_INSN_L_LBS; goto extract_sfmt_l_lbs;
812       case 1184 : /* fall through */
813       case 1185 : /* fall through */
814       case 1186 : /* fall through */
815       case 1187 : /* fall through */
816       case 1188 : /* fall through */
817       case 1189 : /* fall through */
818       case 1190 : /* fall through */
819       case 1191 : /* fall through */
820       case 1192 : /* fall through */
821       case 1193 : /* fall through */
822       case 1194 : /* fall through */
823       case 1195 : /* fall through */
824       case 1196 : /* fall through */
825       case 1197 : /* fall through */
826       case 1198 : /* fall through */
827       case 1199 : /* fall through */
828       case 1200 : /* fall through */
829       case 1201 : /* fall through */
830       case 1202 : /* fall through */
831       case 1203 : /* fall through */
832       case 1204 : /* fall through */
833       case 1205 : /* fall through */
834       case 1206 : /* fall through */
835       case 1207 : /* fall through */
836       case 1208 : /* fall through */
837       case 1209 : /* fall through */
838       case 1210 : /* fall through */
839       case 1211 : /* fall through */
840       case 1212 : /* fall through */
841       case 1213 : /* fall through */
842       case 1214 : /* fall through */
843       case 1215 : itype = OR1K32BF_INSN_L_LHZ; goto extract_sfmt_l_lhz;
844       case 1216 : /* fall through */
845       case 1217 : /* fall through */
846       case 1218 : /* fall through */
847       case 1219 : /* fall through */
848       case 1220 : /* fall through */
849       case 1221 : /* fall through */
850       case 1222 : /* fall through */
851       case 1223 : /* fall through */
852       case 1224 : /* fall through */
853       case 1225 : /* fall through */
854       case 1226 : /* fall through */
855       case 1227 : /* fall through */
856       case 1228 : /* fall through */
857       case 1229 : /* fall through */
858       case 1230 : /* fall through */
859       case 1231 : /* fall through */
860       case 1232 : /* fall through */
861       case 1233 : /* fall through */
862       case 1234 : /* fall through */
863       case 1235 : /* fall through */
864       case 1236 : /* fall through */
865       case 1237 : /* fall through */
866       case 1238 : /* fall through */
867       case 1239 : /* fall through */
868       case 1240 : /* fall through */
869       case 1241 : /* fall through */
870       case 1242 : /* fall through */
871       case 1243 : /* fall through */
872       case 1244 : /* fall through */
873       case 1245 : /* fall through */
874       case 1246 : /* fall through */
875       case 1247 : itype = OR1K32BF_INSN_L_LHS; goto extract_sfmt_l_lhs;
876       case 1248 : /* fall through */
877       case 1249 : /* fall through */
878       case 1250 : /* fall through */
879       case 1251 : /* fall through */
880       case 1252 : /* fall through */
881       case 1253 : /* fall through */
882       case 1254 : /* fall through */
883       case 1255 : /* fall through */
884       case 1256 : /* fall through */
885       case 1257 : /* fall through */
886       case 1258 : /* fall through */
887       case 1259 : /* fall through */
888       case 1260 : /* fall through */
889       case 1261 : /* fall through */
890       case 1262 : /* fall through */
891       case 1263 : /* fall through */
892       case 1264 : /* fall through */
893       case 1265 : /* fall through */
894       case 1266 : /* fall through */
895       case 1267 : /* fall through */
896       case 1268 : /* fall through */
897       case 1269 : /* fall through */
898       case 1270 : /* fall through */
899       case 1271 : /* fall through */
900       case 1272 : /* fall through */
901       case 1273 : /* fall through */
902       case 1274 : /* fall through */
903       case 1275 : /* fall through */
904       case 1276 : /* fall through */
905       case 1277 : /* fall through */
906       case 1278 : /* fall through */
907       case 1279 : itype = OR1K32BF_INSN_L_ADDI; goto extract_sfmt_l_addi;
908       case 1280 : /* fall through */
909       case 1281 : /* fall through */
910       case 1282 : /* fall through */
911       case 1283 : /* fall through */
912       case 1284 : /* fall through */
913       case 1285 : /* fall through */
914       case 1286 : /* fall through */
915       case 1287 : /* fall through */
916       case 1288 : /* fall through */
917       case 1289 : /* fall through */
918       case 1290 : /* fall through */
919       case 1291 : /* fall through */
920       case 1292 : /* fall through */
921       case 1293 : /* fall through */
922       case 1294 : /* fall through */
923       case 1295 : /* fall through */
924       case 1296 : /* fall through */
925       case 1297 : /* fall through */
926       case 1298 : /* fall through */
927       case 1299 : /* fall through */
928       case 1300 : /* fall through */
929       case 1301 : /* fall through */
930       case 1302 : /* fall through */
931       case 1303 : /* fall through */
932       case 1304 : /* fall through */
933       case 1305 : /* fall through */
934       case 1306 : /* fall through */
935       case 1307 : /* fall through */
936       case 1308 : /* fall through */
937       case 1309 : /* fall through */
938       case 1310 : /* fall through */
939       case 1311 : itype = OR1K32BF_INSN_L_ADDIC; goto extract_sfmt_l_addic;
940       case 1312 : /* fall through */
941       case 1313 : /* fall through */
942       case 1314 : /* fall through */
943       case 1315 : /* fall through */
944       case 1316 : /* fall through */
945       case 1317 : /* fall through */
946       case 1318 : /* fall through */
947       case 1319 : /* fall through */
948       case 1320 : /* fall through */
949       case 1321 : /* fall through */
950       case 1322 : /* fall through */
951       case 1323 : /* fall through */
952       case 1324 : /* fall through */
953       case 1325 : /* fall through */
954       case 1326 : /* fall through */
955       case 1327 : /* fall through */
956       case 1328 : /* fall through */
957       case 1329 : /* fall through */
958       case 1330 : /* fall through */
959       case 1331 : /* fall through */
960       case 1332 : /* fall through */
961       case 1333 : /* fall through */
962       case 1334 : /* fall through */
963       case 1335 : /* fall through */
964       case 1336 : /* fall through */
965       case 1337 : /* fall through */
966       case 1338 : /* fall through */
967       case 1339 : /* fall through */
968       case 1340 : /* fall through */
969       case 1341 : /* fall through */
970       case 1342 : /* fall through */
971       case 1343 : itype = OR1K32BF_INSN_L_ANDI; goto extract_sfmt_l_mfspr;
972       case 1344 : /* fall through */
973       case 1345 : /* fall through */
974       case 1346 : /* fall through */
975       case 1347 : /* fall through */
976       case 1348 : /* fall through */
977       case 1349 : /* fall through */
978       case 1350 : /* fall through */
979       case 1351 : /* fall through */
980       case 1352 : /* fall through */
981       case 1353 : /* fall through */
982       case 1354 : /* fall through */
983       case 1355 : /* fall through */
984       case 1356 : /* fall through */
985       case 1357 : /* fall through */
986       case 1358 : /* fall through */
987       case 1359 : /* fall through */
988       case 1360 : /* fall through */
989       case 1361 : /* fall through */
990       case 1362 : /* fall through */
991       case 1363 : /* fall through */
992       case 1364 : /* fall through */
993       case 1365 : /* fall through */
994       case 1366 : /* fall through */
995       case 1367 : /* fall through */
996       case 1368 : /* fall through */
997       case 1369 : /* fall through */
998       case 1370 : /* fall through */
999       case 1371 : /* fall through */
1000       case 1372 : /* fall through */
1001       case 1373 : /* fall through */
1002       case 1374 : /* fall through */
1003       case 1375 : itype = OR1K32BF_INSN_L_ORI; goto extract_sfmt_l_mfspr;
1004       case 1376 : /* fall through */
1005       case 1377 : /* fall through */
1006       case 1378 : /* fall through */
1007       case 1379 : /* fall through */
1008       case 1380 : /* fall through */
1009       case 1381 : /* fall through */
1010       case 1382 : /* fall through */
1011       case 1383 : /* fall through */
1012       case 1384 : /* fall through */
1013       case 1385 : /* fall through */
1014       case 1386 : /* fall through */
1015       case 1387 : /* fall through */
1016       case 1388 : /* fall through */
1017       case 1389 : /* fall through */
1018       case 1390 : /* fall through */
1019       case 1391 : /* fall through */
1020       case 1392 : /* fall through */
1021       case 1393 : /* fall through */
1022       case 1394 : /* fall through */
1023       case 1395 : /* fall through */
1024       case 1396 : /* fall through */
1025       case 1397 : /* fall through */
1026       case 1398 : /* fall through */
1027       case 1399 : /* fall through */
1028       case 1400 : /* fall through */
1029       case 1401 : /* fall through */
1030       case 1402 : /* fall through */
1031       case 1403 : /* fall through */
1032       case 1404 : /* fall through */
1033       case 1405 : /* fall through */
1034       case 1406 : /* fall through */
1035       case 1407 : itype = OR1K32BF_INSN_L_XORI; goto extract_sfmt_l_xori;
1036       case 1408 : /* fall through */
1037       case 1409 : /* fall through */
1038       case 1410 : /* fall through */
1039       case 1411 : /* fall through */
1040       case 1412 : /* fall through */
1041       case 1413 : /* fall through */
1042       case 1414 : /* fall through */
1043       case 1415 : /* fall through */
1044       case 1416 : /* fall through */
1045       case 1417 : /* fall through */
1046       case 1418 : /* fall through */
1047       case 1419 : /* fall through */
1048       case 1420 : /* fall through */
1049       case 1421 : /* fall through */
1050       case 1422 : /* fall through */
1051       case 1423 : /* fall through */
1052       case 1424 : /* fall through */
1053       case 1425 : /* fall through */
1054       case 1426 : /* fall through */
1055       case 1427 : /* fall through */
1056       case 1428 : /* fall through */
1057       case 1429 : /* fall through */
1058       case 1430 : /* fall through */
1059       case 1431 : /* fall through */
1060       case 1432 : /* fall through */
1061       case 1433 : /* fall through */
1062       case 1434 : /* fall through */
1063       case 1435 : /* fall through */
1064       case 1436 : /* fall through */
1065       case 1437 : /* fall through */
1066       case 1438 : /* fall through */
1067       case 1439 : itype = OR1K32BF_INSN_L_MULI; goto extract_sfmt_l_muli;
1068       case 1440 : /* fall through */
1069       case 1441 : /* fall through */
1070       case 1442 : /* fall through */
1071       case 1443 : /* fall through */
1072       case 1444 : /* fall through */
1073       case 1445 : /* fall through */
1074       case 1446 : /* fall through */
1075       case 1447 : /* fall through */
1076       case 1448 : /* fall through */
1077       case 1449 : /* fall through */
1078       case 1450 : /* fall through */
1079       case 1451 : /* fall through */
1080       case 1452 : /* fall through */
1081       case 1453 : /* fall through */
1082       case 1454 : /* fall through */
1083       case 1455 : /* fall through */
1084       case 1456 : /* fall through */
1085       case 1457 : /* fall through */
1086       case 1458 : /* fall through */
1087       case 1459 : /* fall through */
1088       case 1460 : /* fall through */
1089       case 1461 : /* fall through */
1090       case 1462 : /* fall through */
1091       case 1463 : /* fall through */
1092       case 1464 : /* fall through */
1093       case 1465 : /* fall through */
1094       case 1466 : /* fall through */
1095       case 1467 : /* fall through */
1096       case 1468 : /* fall through */
1097       case 1469 : /* fall through */
1098       case 1470 : /* fall through */
1099       case 1471 : itype = OR1K32BF_INSN_L_MFSPR; goto extract_sfmt_l_mfspr;
1100       case 1472 : /* fall through */
1101       case 1473 : /* fall through */
1102       case 1474 : /* fall through */
1103       case 1475 : /* fall through */
1104       case 1476 : /* fall through */
1105       case 1477 : /* fall through */
1106       case 1478 : /* fall through */
1107       case 1479 : /* fall through */
1108       case 1480 : /* fall through */
1109       case 1481 : /* fall through */
1110       case 1482 : /* fall through */
1111       case 1483 : /* fall through */
1112       case 1484 : /* fall through */
1113       case 1485 : /* fall through */
1114       case 1486 : /* fall through */
1115       case 1487 : /* fall through */
1116       case 1488 : /* fall through */
1117       case 1489 : /* fall through */
1118       case 1490 : /* fall through */
1119       case 1491 : /* fall through */
1120       case 1492 : /* fall through */
1121       case 1493 : /* fall through */
1122       case 1494 : /* fall through */
1123       case 1495 : /* fall through */
1124       case 1496 : /* fall through */
1125       case 1497 : /* fall through */
1126       case 1498 : /* fall through */
1127       case 1499 : /* fall through */
1128       case 1500 : /* fall through */
1129       case 1501 : /* fall through */
1130       case 1502 : /* fall through */
1131       case 1503 :
1132         {
1133           unsigned int val = (((insn >> 6) & (3 << 0)));
1134           switch (val)
1135           {
1136           case 0 :
1137             if ((entire_insn & 0xfc00ffc0) == 0xb8000000)
1138               { itype = OR1K32BF_INSN_L_SLLI; goto extract_sfmt_l_slli; }
1139             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1140           case 1 :
1141             if ((entire_insn & 0xfc00ffc0) == 0xb8000040)
1142               { itype = OR1K32BF_INSN_L_SRLI; goto extract_sfmt_l_slli; }
1143             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1144           case 2 :
1145             if ((entire_insn & 0xfc00ffc0) == 0xb8000080)
1146               { itype = OR1K32BF_INSN_L_SRAI; goto extract_sfmt_l_slli; }
1147             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1148           case 3 :
1149             if ((entire_insn & 0xfc00ffc0) == 0xb80000c0)
1150               { itype = OR1K32BF_INSN_L_RORI; goto extract_sfmt_l_slli; }
1151             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1152           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1153           }
1154         }
1155       case 1504 : /* fall through */
1156       case 1505 : /* fall through */
1157       case 1506 : /* fall through */
1158       case 1507 : /* fall through */
1159       case 1508 : /* fall through */
1160       case 1509 : /* fall through */
1161       case 1510 : /* fall through */
1162       case 1511 : /* fall through */
1163       case 1512 : /* fall through */
1164       case 1513 : /* fall through */
1165       case 1514 : /* fall through */
1166       case 1515 : /* fall through */
1167       case 1516 : /* fall through */
1168       case 1517 : /* fall through */
1169       case 1518 : /* fall through */
1170       case 1519 : /* fall through */
1171       case 1520 : /* fall through */
1172       case 1521 : /* fall through */
1173       case 1522 : /* fall through */
1174       case 1523 : /* fall through */
1175       case 1524 : /* fall through */
1176       case 1525 : /* fall through */
1177       case 1526 : /* fall through */
1178       case 1527 : /* fall through */
1179       case 1528 : /* fall through */
1180       case 1529 : /* fall through */
1181       case 1530 : /* fall through */
1182       case 1531 : /* fall through */
1183       case 1532 : /* fall through */
1184       case 1533 : /* fall through */
1185       case 1534 : /* fall through */
1186       case 1535 :
1187         {
1188           unsigned int val = (((insn >> 21) & (15 << 0)));
1189           switch (val)
1190           {
1191           case 0 :
1192             if ((entire_insn & 0xffe00000) == 0xbc000000)
1193               { itype = OR1K32BF_INSN_L_SFEQI; goto extract_sfmt_l_sfgtsi; }
1194             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1195           case 1 :
1196             if ((entire_insn & 0xffe00000) == 0xbc200000)
1197               { itype = OR1K32BF_INSN_L_SFNEI; goto extract_sfmt_l_sfgtsi; }
1198             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1199           case 2 :
1200             if ((entire_insn & 0xffe00000) == 0xbc400000)
1201               { itype = OR1K32BF_INSN_L_SFGTUI; goto extract_sfmt_l_sfgtsi; }
1202             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1203           case 3 :
1204             if ((entire_insn & 0xffe00000) == 0xbc600000)
1205               { itype = OR1K32BF_INSN_L_SFGEUI; goto extract_sfmt_l_sfgtsi; }
1206             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1207           case 4 :
1208             if ((entire_insn & 0xffe00000) == 0xbc800000)
1209               { itype = OR1K32BF_INSN_L_SFLTUI; goto extract_sfmt_l_sfgtsi; }
1210             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1211           case 5 :
1212             if ((entire_insn & 0xffe00000) == 0xbca00000)
1213               { itype = OR1K32BF_INSN_L_SFLEUI; goto extract_sfmt_l_sfgtsi; }
1214             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1215           case 10 :
1216             if ((entire_insn & 0xffe00000) == 0xbd400000)
1217               { itype = OR1K32BF_INSN_L_SFGTSI; goto extract_sfmt_l_sfgtsi; }
1218             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1219           case 11 :
1220             if ((entire_insn & 0xffe00000) == 0xbd600000)
1221               { itype = OR1K32BF_INSN_L_SFGESI; goto extract_sfmt_l_sfgtsi; }
1222             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1223           case 12 :
1224             if ((entire_insn & 0xffe00000) == 0xbd800000)
1225               { itype = OR1K32BF_INSN_L_SFLTSI; goto extract_sfmt_l_sfgtsi; }
1226             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1227           case 13 :
1228             if ((entire_insn & 0xffe00000) == 0xbda00000)
1229               { itype = OR1K32BF_INSN_L_SFLESI; goto extract_sfmt_l_sfgtsi; }
1230             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1231           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1232           }
1233         }
1234       case 1536 : /* fall through */
1235       case 1537 : /* fall through */
1236       case 1538 : /* fall through */
1237       case 1539 : /* fall through */
1238       case 1540 : /* fall through */
1239       case 1541 : /* fall through */
1240       case 1542 : /* fall through */
1241       case 1543 : /* fall through */
1242       case 1544 : /* fall through */
1243       case 1545 : /* fall through */
1244       case 1546 : /* fall through */
1245       case 1547 : /* fall through */
1246       case 1548 : /* fall through */
1247       case 1549 : /* fall through */
1248       case 1550 : /* fall through */
1249       case 1551 : /* fall through */
1250       case 1552 : /* fall through */
1251       case 1553 : /* fall through */
1252       case 1554 : /* fall through */
1253       case 1555 : /* fall through */
1254       case 1556 : /* fall through */
1255       case 1557 : /* fall through */
1256       case 1558 : /* fall through */
1257       case 1559 : /* fall through */
1258       case 1560 : /* fall through */
1259       case 1561 : /* fall through */
1260       case 1562 : /* fall through */
1261       case 1563 : /* fall through */
1262       case 1564 : /* fall through */
1263       case 1565 : /* fall through */
1264       case 1566 : /* fall through */
1265       case 1567 : itype = OR1K32BF_INSN_L_MTSPR; goto extract_sfmt_l_mtspr;
1266       case 1569 :
1267         if ((entire_insn & 0xffe007ff) == 0xc4000001)
1268           { itype = OR1K32BF_INSN_L_MAC; goto extract_sfmt_l_mac; }
1269         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1270       case 1570 :
1271         if ((entire_insn & 0xffe007ff) == 0xc4000002)
1272           { itype = OR1K32BF_INSN_L_MSB; goto extract_sfmt_l_mac; }
1273         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1274       case 1571 :
1275         if ((entire_insn & 0xffe007ff) == 0xc4000003)
1276           { itype = OR1K32BF_INSN_L_MACU; goto extract_sfmt_l_macu; }
1277         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1278       case 1572 :
1279         if ((entire_insn & 0xffe007ff) == 0xc4000004)
1280           { itype = OR1K32BF_INSN_L_MSBU; goto extract_sfmt_l_macu; }
1281         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1282       case 1600 :
1283         {
1284           unsigned int val = (((insn >> 5) & (7 << 0)));
1285           switch (val)
1286           {
1287           case 0 :
1288             if ((entire_insn & 0xfc0007ff) == 0xc8000000)
1289               { itype = OR1K32BF_INSN_LF_ADD_S; goto extract_sfmt_lf_add_s; }
1290             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1291           case 7 :
1292             if ((entire_insn & 0xffe004ff) == 0xc80000e0)
1293               { itype = OR1K32BF_INSN_LF_CUST1_D32; goto extract_sfmt_l_msync; }
1294             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1295           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1296           }
1297         }
1298       case 1601 :
1299         if ((entire_insn & 0xfc0007ff) == 0xc8000001)
1300           { itype = OR1K32BF_INSN_LF_SUB_S; goto extract_sfmt_lf_add_s; }
1301         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1302       case 1602 :
1303         if ((entire_insn & 0xfc0007ff) == 0xc8000002)
1304           { itype = OR1K32BF_INSN_LF_MUL_S; goto extract_sfmt_lf_add_s; }
1305         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1306       case 1603 :
1307         if ((entire_insn & 0xfc0007ff) == 0xc8000003)
1308           { itype = OR1K32BF_INSN_LF_DIV_S; goto extract_sfmt_lf_add_s; }
1309         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1310       case 1604 :
1311         if ((entire_insn & 0xfc00ffff) == 0xc8000004)
1312           { itype = OR1K32BF_INSN_LF_ITOF_S; goto extract_sfmt_lf_itof_s; }
1313         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1314       case 1605 :
1315         if ((entire_insn & 0xfc00ffff) == 0xc8000005)
1316           { itype = OR1K32BF_INSN_LF_FTOI_S; goto extract_sfmt_lf_ftoi_s; }
1317         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1318       case 1606 :
1319         if ((entire_insn & 0xfc0007ff) == 0xc8000006)
1320           { itype = OR1K32BF_INSN_LF_REM_S; goto extract_sfmt_lf_add_s; }
1321         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1322       case 1607 :
1323         if ((entire_insn & 0xfc0007ff) == 0xc8000007)
1324           { itype = OR1K32BF_INSN_LF_MADD_S; goto extract_sfmt_lf_madd_s; }
1325         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1326       case 1608 :
1327         {
1328           unsigned int val = (((insn >> 5) & (1 << 0)));
1329           switch (val)
1330           {
1331           case 0 :
1332             if ((entire_insn & 0xffe007ff) == 0xc8000008)
1333               { itype = OR1K32BF_INSN_LF_SFEQ_S; goto extract_sfmt_lf_sfeq_s; }
1334             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1335           case 1 :
1336             if ((entire_insn & 0xffe007ff) == 0xc8000028)
1337               { itype = OR1K32BF_INSN_LF_SFUEQ_S; goto extract_sfmt_lf_sfeq_s; }
1338             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1339           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1340           }
1341         }
1342       case 1609 :
1343         {
1344           unsigned int val = (((insn >> 5) & (1 << 0)));
1345           switch (val)
1346           {
1347           case 0 :
1348             if ((entire_insn & 0xffe007ff) == 0xc8000009)
1349               { itype = OR1K32BF_INSN_LF_SFNE_S; goto extract_sfmt_lf_sfeq_s; }
1350             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1351           case 1 :
1352             if ((entire_insn & 0xffe007ff) == 0xc8000029)
1353               { itype = OR1K32BF_INSN_LF_SFUNE_S; goto extract_sfmt_lf_sfeq_s; }
1354             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1355           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1356           }
1357         }
1358       case 1610 :
1359         {
1360           unsigned int val = (((insn >> 5) & (1 << 0)));
1361           switch (val)
1362           {
1363           case 0 :
1364             if ((entire_insn & 0xffe007ff) == 0xc800000a)
1365               { itype = OR1K32BF_INSN_LF_SFGT_S; goto extract_sfmt_lf_sfeq_s; }
1366             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1367           case 1 :
1368             if ((entire_insn & 0xffe007ff) == 0xc800002a)
1369               { itype = OR1K32BF_INSN_LF_SFUGT_S; goto extract_sfmt_lf_sfeq_s; }
1370             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1371           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1372           }
1373         }
1374       case 1611 :
1375         {
1376           unsigned int val = (((insn >> 5) & (1 << 0)));
1377           switch (val)
1378           {
1379           case 0 :
1380             if ((entire_insn & 0xffe007ff) == 0xc800000b)
1381               { itype = OR1K32BF_INSN_LF_SFGE_S; goto extract_sfmt_lf_sfeq_s; }
1382             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1383           case 1 :
1384             if ((entire_insn & 0xffe007ff) == 0xc800002b)
1385               { itype = OR1K32BF_INSN_LF_SFUGE_S; goto extract_sfmt_lf_sfeq_s; }
1386             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1387           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1388           }
1389         }
1390       case 1612 :
1391         {
1392           unsigned int val = (((insn >> 5) & (1 << 0)));
1393           switch (val)
1394           {
1395           case 0 :
1396             if ((entire_insn & 0xffe007ff) == 0xc800000c)
1397               { itype = OR1K32BF_INSN_LF_SFLT_S; goto extract_sfmt_lf_sfeq_s; }
1398             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1399           case 1 :
1400             if ((entire_insn & 0xffe007ff) == 0xc800002c)
1401               { itype = OR1K32BF_INSN_LF_SFULT_S; goto extract_sfmt_lf_sfeq_s; }
1402             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1403           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1404           }
1405         }
1406       case 1613 :
1407         {
1408           unsigned int val = (((insn >> 5) & (1 << 0)));
1409           switch (val)
1410           {
1411           case 0 :
1412             if ((entire_insn & 0xffe007ff) == 0xc800000d)
1413               { itype = OR1K32BF_INSN_LF_SFLE_S; goto extract_sfmt_lf_sfeq_s; }
1414             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1415           case 1 :
1416             if ((entire_insn & 0xffe007ff) == 0xc800002d)
1417               { itype = OR1K32BF_INSN_LF_SFULE_S; goto extract_sfmt_lf_sfeq_s; }
1418             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1419           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1420           }
1421         }
1422       case 1614 :
1423         if ((entire_insn & 0xffe007ff) == 0xc800002e)
1424           { itype = OR1K32BF_INSN_LF_SFUN_S; goto extract_sfmt_lf_sfeq_s; }
1425         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1426       case 1616 :
1427         {
1428           unsigned int val = (((insn >> 6) & (3 << 0)));
1429           switch (val)
1430           {
1431           case 0 :
1432             if ((entire_insn & 0xfc0000ff) == 0xc8000010)
1433               { itype = OR1K32BF_INSN_LF_ADD_D32; goto extract_sfmt_lf_add_d32; }
1434             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1435           case 3 :
1436             if ((entire_insn & 0xffe007ff) == 0xc80000d0)
1437               { itype = OR1K32BF_INSN_LF_CUST1_S; goto extract_sfmt_l_msync; }
1438             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1439           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1440           }
1441         }
1442       case 1617 :
1443         if ((entire_insn & 0xfc0000ff) == 0xc8000011)
1444           { itype = OR1K32BF_INSN_LF_SUB_D32; goto extract_sfmt_lf_add_d32; }
1445         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1446       case 1618 :
1447         if ((entire_insn & 0xfc0000ff) == 0xc8000012)
1448           { itype = OR1K32BF_INSN_LF_MUL_D32; goto extract_sfmt_lf_add_d32; }
1449         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1450       case 1619 :
1451         if ((entire_insn & 0xfc0000ff) == 0xc8000013)
1452           { itype = OR1K32BF_INSN_LF_DIV_D32; goto extract_sfmt_lf_add_d32; }
1453         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1454       case 1620 :
1455         if ((entire_insn & 0xfc00f9ff) == 0xc8000014)
1456           { itype = OR1K32BF_INSN_LF_ITOF_D32; goto extract_sfmt_lf_itof_d32; }
1457         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1458       case 1621 :
1459         if ((entire_insn & 0xfc00f9ff) == 0xc8000015)
1460           { itype = OR1K32BF_INSN_LF_FTOI_D32; goto extract_sfmt_lf_ftoi_d32; }
1461         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1462       case 1622 :
1463         if ((entire_insn & 0xfc0000ff) == 0xc8000016)
1464           { itype = OR1K32BF_INSN_LF_REM_D32; goto extract_sfmt_lf_add_d32; }
1465         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1466       case 1623 :
1467         if ((entire_insn & 0xfc0000ff) == 0xc8000017)
1468           { itype = OR1K32BF_INSN_LF_MADD_D32; goto extract_sfmt_lf_madd_d32; }
1469         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1470       case 1624 :
1471         {
1472           unsigned int val = (((insn >> 5) & (1 << 0)));
1473           switch (val)
1474           {
1475           case 0 :
1476             if ((entire_insn & 0xffe004ff) == 0xc8000018)
1477               { itype = OR1K32BF_INSN_LF_SFEQ_D32; goto extract_sfmt_lf_sfeq_d32; }
1478             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1479           case 1 :
1480             if ((entire_insn & 0xffe004ff) == 0xc8000038)
1481               { itype = OR1K32BF_INSN_LF_SFUEQ_D32; goto extract_sfmt_lf_sfeq_d32; }
1482             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1483           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1484           }
1485         }
1486       case 1625 :
1487         {
1488           unsigned int val = (((insn >> 5) & (1 << 0)));
1489           switch (val)
1490           {
1491           case 0 :
1492             if ((entire_insn & 0xffe004ff) == 0xc8000019)
1493               { itype = OR1K32BF_INSN_LF_SFNE_D32; goto extract_sfmt_lf_sfeq_d32; }
1494             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1495           case 1 :
1496             if ((entire_insn & 0xffe004ff) == 0xc8000039)
1497               { itype = OR1K32BF_INSN_LF_SFUNE_D32; goto extract_sfmt_lf_sfeq_d32; }
1498             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1499           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1500           }
1501         }
1502       case 1626 :
1503         {
1504           unsigned int val = (((insn >> 5) & (1 << 0)));
1505           switch (val)
1506           {
1507           case 0 :
1508             if ((entire_insn & 0xffe004ff) == 0xc800001a)
1509               { itype = OR1K32BF_INSN_LF_SFGT_D32; goto extract_sfmt_lf_sfeq_d32; }
1510             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1511           case 1 :
1512             if ((entire_insn & 0xffe004ff) == 0xc800003a)
1513               { itype = OR1K32BF_INSN_LF_SFUGT_D32; goto extract_sfmt_lf_sfeq_d32; }
1514             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1515           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1516           }
1517         }
1518       case 1627 :
1519         {
1520           unsigned int val = (((insn >> 5) & (1 << 0)));
1521           switch (val)
1522           {
1523           case 0 :
1524             if ((entire_insn & 0xffe004ff) == 0xc800001b)
1525               { itype = OR1K32BF_INSN_LF_SFGE_D32; goto extract_sfmt_lf_sfeq_d32; }
1526             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1527           case 1 :
1528             if ((entire_insn & 0xffe004ff) == 0xc800003b)
1529               { itype = OR1K32BF_INSN_LF_SFUGE_D32; goto extract_sfmt_lf_sfeq_d32; }
1530             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1531           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1532           }
1533         }
1534       case 1628 :
1535         {
1536           unsigned int val = (((insn >> 5) & (1 << 0)));
1537           switch (val)
1538           {
1539           case 0 :
1540             if ((entire_insn & 0xffe004ff) == 0xc800001c)
1541               { itype = OR1K32BF_INSN_LF_SFLT_D32; goto extract_sfmt_lf_sfeq_d32; }
1542             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1543           case 1 :
1544             if ((entire_insn & 0xffe004ff) == 0xc800003c)
1545               { itype = OR1K32BF_INSN_LF_SFULT_D32; goto extract_sfmt_lf_sfeq_d32; }
1546             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1547           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1548           }
1549         }
1550       case 1629 :
1551         {
1552           unsigned int val = (((insn >> 5) & (1 << 0)));
1553           switch (val)
1554           {
1555           case 0 :
1556             if ((entire_insn & 0xffe004ff) == 0xc800001d)
1557               { itype = OR1K32BF_INSN_LF_SFLE_D32; goto extract_sfmt_lf_sfeq_d32; }
1558             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1559           case 1 :
1560             if ((entire_insn & 0xffe004ff) == 0xc800003d)
1561               { itype = OR1K32BF_INSN_LF_SFULE_D32; goto extract_sfmt_lf_sfeq_d32; }
1562             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1563           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1564           }
1565         }
1566       case 1630 :
1567         if ((entire_insn & 0xffe004ff) == 0xc800003e)
1568           { itype = OR1K32BF_INSN_LF_SFUN_D32; goto extract_sfmt_lf_sfeq_d32; }
1569         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1570       case 1632 : /* fall through */
1571       case 1633 : /* fall through */
1572       case 1634 : /* fall through */
1573       case 1635 : /* fall through */
1574       case 1636 : /* fall through */
1575       case 1637 : /* fall through */
1576       case 1638 : /* fall through */
1577       case 1639 : /* fall through */
1578       case 1640 : /* fall through */
1579       case 1641 : /* fall through */
1580       case 1642 : /* fall through */
1581       case 1643 : /* fall through */
1582       case 1644 : /* fall through */
1583       case 1645 : /* fall through */
1584       case 1646 : /* fall through */
1585       case 1647 : /* fall through */
1586       case 1648 : /* fall through */
1587       case 1649 : /* fall through */
1588       case 1650 : /* fall through */
1589       case 1651 : /* fall through */
1590       case 1652 : /* fall through */
1591       case 1653 : /* fall through */
1592       case 1654 : /* fall through */
1593       case 1655 : /* fall through */
1594       case 1656 : /* fall through */
1595       case 1657 : /* fall through */
1596       case 1658 : /* fall through */
1597       case 1659 : /* fall through */
1598       case 1660 : /* fall through */
1599       case 1661 : /* fall through */
1600       case 1662 : /* fall through */
1601       case 1663 : itype = OR1K32BF_INSN_L_SWA; goto extract_sfmt_l_swa;
1602       case 1696 : /* fall through */
1603       case 1697 : /* fall through */
1604       case 1698 : /* fall through */
1605       case 1699 : /* fall through */
1606       case 1700 : /* fall through */
1607       case 1701 : /* fall through */
1608       case 1702 : /* fall through */
1609       case 1703 : /* fall through */
1610       case 1704 : /* fall through */
1611       case 1705 : /* fall through */
1612       case 1706 : /* fall through */
1613       case 1707 : /* fall through */
1614       case 1708 : /* fall through */
1615       case 1709 : /* fall through */
1616       case 1710 : /* fall through */
1617       case 1711 : /* fall through */
1618       case 1712 : /* fall through */
1619       case 1713 : /* fall through */
1620       case 1714 : /* fall through */
1621       case 1715 : /* fall through */
1622       case 1716 : /* fall through */
1623       case 1717 : /* fall through */
1624       case 1718 : /* fall through */
1625       case 1719 : /* fall through */
1626       case 1720 : /* fall through */
1627       case 1721 : /* fall through */
1628       case 1722 : /* fall through */
1629       case 1723 : /* fall through */
1630       case 1724 : /* fall through */
1631       case 1725 : /* fall through */
1632       case 1726 : /* fall through */
1633       case 1727 : itype = OR1K32BF_INSN_L_SW; goto extract_sfmt_l_sw;
1634       case 1728 : /* fall through */
1635       case 1729 : /* fall through */
1636       case 1730 : /* fall through */
1637       case 1731 : /* fall through */
1638       case 1732 : /* fall through */
1639       case 1733 : /* fall through */
1640       case 1734 : /* fall through */
1641       case 1735 : /* fall through */
1642       case 1736 : /* fall through */
1643       case 1737 : /* fall through */
1644       case 1738 : /* fall through */
1645       case 1739 : /* fall through */
1646       case 1740 : /* fall through */
1647       case 1741 : /* fall through */
1648       case 1742 : /* fall through */
1649       case 1743 : /* fall through */
1650       case 1744 : /* fall through */
1651       case 1745 : /* fall through */
1652       case 1746 : /* fall through */
1653       case 1747 : /* fall through */
1654       case 1748 : /* fall through */
1655       case 1749 : /* fall through */
1656       case 1750 : /* fall through */
1657       case 1751 : /* fall through */
1658       case 1752 : /* fall through */
1659       case 1753 : /* fall through */
1660       case 1754 : /* fall through */
1661       case 1755 : /* fall through */
1662       case 1756 : /* fall through */
1663       case 1757 : /* fall through */
1664       case 1758 : /* fall through */
1665       case 1759 : itype = OR1K32BF_INSN_L_SB; goto extract_sfmt_l_sb;
1666       case 1760 : /* fall through */
1667       case 1761 : /* fall through */
1668       case 1762 : /* fall through */
1669       case 1763 : /* fall through */
1670       case 1764 : /* fall through */
1671       case 1765 : /* fall through */
1672       case 1766 : /* fall through */
1673       case 1767 : /* fall through */
1674       case 1768 : /* fall through */
1675       case 1769 : /* fall through */
1676       case 1770 : /* fall through */
1677       case 1771 : /* fall through */
1678       case 1772 : /* fall through */
1679       case 1773 : /* fall through */
1680       case 1774 : /* fall through */
1681       case 1775 : /* fall through */
1682       case 1776 : /* fall through */
1683       case 1777 : /* fall through */
1684       case 1778 : /* fall through */
1685       case 1779 : /* fall through */
1686       case 1780 : /* fall through */
1687       case 1781 : /* fall through */
1688       case 1782 : /* fall through */
1689       case 1783 : /* fall through */
1690       case 1784 : /* fall through */
1691       case 1785 : /* fall through */
1692       case 1786 : /* fall through */
1693       case 1787 : /* fall through */
1694       case 1788 : /* fall through */
1695       case 1789 : /* fall through */
1696       case 1790 : /* fall through */
1697       case 1791 : itype = OR1K32BF_INSN_L_SH; goto extract_sfmt_l_sh;
1698       case 1792 :
1699         if ((entire_insn & 0xfc0007ff) == 0xe0000000)
1700           { itype = OR1K32BF_INSN_L_ADD; goto extract_sfmt_l_add; }
1701         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1702       case 1793 :
1703         if ((entire_insn & 0xfc0007ff) == 0xe0000001)
1704           { itype = OR1K32BF_INSN_L_ADDC; goto extract_sfmt_l_addc; }
1705         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1706       case 1794 :
1707         if ((entire_insn & 0xfc0007ff) == 0xe0000002)
1708           { itype = OR1K32BF_INSN_L_SUB; goto extract_sfmt_l_add; }
1709         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1710       case 1795 :
1711         if ((entire_insn & 0xfc0007ff) == 0xe0000003)
1712           { itype = OR1K32BF_INSN_L_AND; goto extract_sfmt_l_and; }
1713         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1714       case 1796 :
1715         if ((entire_insn & 0xfc0007ff) == 0xe0000004)
1716           { itype = OR1K32BF_INSN_L_OR; goto extract_sfmt_l_and; }
1717         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1718       case 1797 :
1719         if ((entire_insn & 0xfc0007ff) == 0xe0000005)
1720           { itype = OR1K32BF_INSN_L_XOR; goto extract_sfmt_l_and; }
1721         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1722       case 1798 :
1723         if ((entire_insn & 0xfc0007ff) == 0xe0000306)
1724           { itype = OR1K32BF_INSN_L_MUL; goto extract_sfmt_l_mul; }
1725         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1726       case 1799 :
1727         if ((entire_insn & 0xffe007ff) == 0xe0000307)
1728           { itype = OR1K32BF_INSN_L_MULD; goto extract_sfmt_l_muld; }
1729         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1730       case 1800 :
1731         {
1732           unsigned int val = (((insn >> 6) & (3 << 0)));
1733           switch (val)
1734           {
1735           case 0 :
1736             if ((entire_insn & 0xfc0007ff) == 0xe0000008)
1737               { itype = OR1K32BF_INSN_L_SLL; goto extract_sfmt_l_sll; }
1738             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1739           case 1 :
1740             if ((entire_insn & 0xfc0007ff) == 0xe0000048)
1741               { itype = OR1K32BF_INSN_L_SRL; goto extract_sfmt_l_sll; }
1742             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1743           case 2 :
1744             if ((entire_insn & 0xfc0007ff) == 0xe0000088)
1745               { itype = OR1K32BF_INSN_L_SRA; goto extract_sfmt_l_sll; }
1746             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1747           case 3 :
1748             if ((entire_insn & 0xfc0007ff) == 0xe00000c8)
1749               { itype = OR1K32BF_INSN_L_ROR; goto extract_sfmt_l_sll; }
1750             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1751           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1752           }
1753         }
1754       case 1801 :
1755         if ((entire_insn & 0xfc0007ff) == 0xe0000309)
1756           { itype = OR1K32BF_INSN_L_DIV; goto extract_sfmt_l_div; }
1757         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1758       case 1802 :
1759         if ((entire_insn & 0xfc0007ff) == 0xe000030a)
1760           { itype = OR1K32BF_INSN_L_DIVU; goto extract_sfmt_l_divu; }
1761         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1762       case 1803 :
1763         if ((entire_insn & 0xfc0007ff) == 0xe000030b)
1764           { itype = OR1K32BF_INSN_L_MULU; goto extract_sfmt_l_mulu; }
1765         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1766       case 1804 :
1767         {
1768           unsigned int val = (((insn >> 6) & (3 << 0)));
1769           switch (val)
1770           {
1771           case 0 :
1772             if ((entire_insn & 0xfc00ffff) == 0xe000000c)
1773               { itype = OR1K32BF_INSN_L_EXTHS; goto extract_sfmt_l_exths; }
1774             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1775           case 1 :
1776             if ((entire_insn & 0xfc00ffff) == 0xe000004c)
1777               { itype = OR1K32BF_INSN_L_EXTBS; goto extract_sfmt_l_exths; }
1778             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1779           case 2 :
1780             if ((entire_insn & 0xfc00ffff) == 0xe000008c)
1781               { itype = OR1K32BF_INSN_L_EXTHZ; goto extract_sfmt_l_exths; }
1782             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1783           case 3 :
1784             if ((entire_insn & 0xfc00ffff) == 0xe00000cc)
1785               { itype = OR1K32BF_INSN_L_EXTBZ; goto extract_sfmt_l_exths; }
1786             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1787           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1788           }
1789         }
1790       case 1805 :
1791         {
1792           unsigned int val = (((insn >> 7) & (3 << 1)) | ((insn >> 6) & (1 << 0)));
1793           switch (val)
1794           {
1795           case 0 :
1796             if ((entire_insn & 0xfc00ffff) == 0xe000000d)
1797               { itype = OR1K32BF_INSN_L_EXTWS; goto extract_sfmt_l_exths; }
1798             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1799           case 1 :
1800             if ((entire_insn & 0xfc00ffff) == 0xe000004d)
1801               { itype = OR1K32BF_INSN_L_EXTWZ; goto extract_sfmt_l_exths; }
1802             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1803           case 6 :
1804             if ((entire_insn & 0xffe007ff) == 0xe000030d)
1805               { itype = OR1K32BF_INSN_L_MULDU; goto extract_sfmt_l_muld; }
1806             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1807           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1808           }
1809         }
1810       case 1806 :
1811         if ((entire_insn & 0xfc0007ff) == 0xe000000e)
1812           { itype = OR1K32BF_INSN_L_CMOV; goto extract_sfmt_l_cmov; }
1813         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1814       case 1807 :
1815         {
1816           unsigned int val = (((insn >> 8) & (1 << 0)));
1817           switch (val)
1818           {
1819           case 0 :
1820             if ((entire_insn & 0xfc0007ff) == 0xe000000f)
1821               { itype = OR1K32BF_INSN_L_FF1; goto extract_sfmt_l_ff1; }
1822             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1823           case 1 :
1824             if ((entire_insn & 0xfc0007ff) == 0xe000010f)
1825               { itype = OR1K32BF_INSN_L_FL1; goto extract_sfmt_l_ff1; }
1826             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1827           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1828           }
1829         }
1830       case 1824 :
1831         {
1832           unsigned int val = (((insn >> 21) & (15 << 0)));
1833           switch (val)
1834           {
1835           case 0 :
1836             if ((entire_insn & 0xffe007ff) == 0xe4000000)
1837               { itype = OR1K32BF_INSN_L_SFEQ; goto extract_sfmt_l_sfgts; }
1838             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1839           case 1 :
1840             if ((entire_insn & 0xffe007ff) == 0xe4200000)
1841               { itype = OR1K32BF_INSN_L_SFNE; goto extract_sfmt_l_sfgts; }
1842             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1843           case 2 :
1844             if ((entire_insn & 0xffe007ff) == 0xe4400000)
1845               { itype = OR1K32BF_INSN_L_SFGTU; goto extract_sfmt_l_sfgts; }
1846             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1847           case 3 :
1848             if ((entire_insn & 0xffe007ff) == 0xe4600000)
1849               { itype = OR1K32BF_INSN_L_SFGEU; goto extract_sfmt_l_sfgts; }
1850             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1851           case 4 :
1852             if ((entire_insn & 0xffe007ff) == 0xe4800000)
1853               { itype = OR1K32BF_INSN_L_SFLTU; goto extract_sfmt_l_sfgts; }
1854             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1855           case 5 :
1856             if ((entire_insn & 0xffe007ff) == 0xe4a00000)
1857               { itype = OR1K32BF_INSN_L_SFLEU; goto extract_sfmt_l_sfgts; }
1858             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1859           case 10 :
1860             if ((entire_insn & 0xffe007ff) == 0xe5400000)
1861               { itype = OR1K32BF_INSN_L_SFGTS; goto extract_sfmt_l_sfgts; }
1862             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1863           case 11 :
1864             if ((entire_insn & 0xffe007ff) == 0xe5600000)
1865               { itype = OR1K32BF_INSN_L_SFGES; goto extract_sfmt_l_sfgts; }
1866             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1867           case 12 :
1868             if ((entire_insn & 0xffe007ff) == 0xe5800000)
1869               { itype = OR1K32BF_INSN_L_SFLTS; goto extract_sfmt_l_sfgts; }
1870             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1871           case 13 :
1872             if ((entire_insn & 0xffe007ff) == 0xe5a00000)
1873               { itype = OR1K32BF_INSN_L_SFLES; goto extract_sfmt_l_sfgts; }
1874             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1875           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1876           }
1877         }
1878       case 1920 :
1879         if ((entire_insn & 0xffffffff) == 0xf0000000)
1880           { itype = OR1K32BF_INSN_L_CUST5; goto extract_sfmt_l_msync; }
1881         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1882       case 1952 :
1883         if ((entire_insn & 0xffffffff) == 0xf4000000)
1884           { itype = OR1K32BF_INSN_L_CUST6; goto extract_sfmt_l_msync; }
1885         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1886       case 1984 :
1887         if ((entire_insn & 0xffffffff) == 0xf8000000)
1888           { itype = OR1K32BF_INSN_L_CUST7; goto extract_sfmt_l_msync; }
1889         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1890       case 2016 :
1891         if ((entire_insn & 0xffffffff) == 0xfc000000)
1892           { itype = OR1K32BF_INSN_L_CUST8; goto extract_sfmt_l_msync; }
1893         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1894       default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1895       }
1896     }
1897   }
1898 
1899   /* The instruction has been decoded, now extract the fields.  */
1900 
1901  extract_sfmt_empty:
1902   {
1903     const IDESC *idesc = &or1k32bf_insn_data[itype];
1904 #define FLD(f) abuf->fields.sfmt_empty.f
1905 
1906 
1907   /* Record the fields for the semantic handler.  */
1908   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1909 
1910 #undef FLD
1911     return idesc;
1912   }
1913 
1914  extract_sfmt_l_j:
1915   {
1916     const IDESC *idesc = &or1k32bf_insn_data[itype];
1917     CGEN_INSN_WORD insn = entire_insn;
1918 #define FLD(f) abuf->fields.sfmt_l_j.f
1919     USI f_disp26;
1920 
1921     f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
1922 
1923   /* Record the fields for the semantic handler.  */
1924   FLD (i_disp26) = f_disp26;
1925   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_j", "disp26 0x%x", 'x', f_disp26, (char *) 0));
1926 
1927 #undef FLD
1928     return idesc;
1929   }
1930 
1931  extract_sfmt_l_adrp:
1932   {
1933     const IDESC *idesc = &or1k32bf_insn_data[itype];
1934     CGEN_INSN_WORD insn = entire_insn;
1935 #define FLD(f) abuf->fields.sfmt_l_adrp.f
1936     UINT f_r1;
1937     USI f_disp21;
1938 
1939     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1940     f_disp21 = ((((EXTRACT_LSB0_SINT (insn, 32, 20, 21)) + (((SI) (pc) >> (13))))) << (13));
1941 
1942   /* Record the fields for the semantic handler.  */
1943   FLD (f_r1) = f_r1;
1944   FLD (i_disp21) = f_disp21;
1945   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_adrp", "f_r1 0x%x", 'x', f_r1, "disp21 0x%x", 'x', f_disp21, (char *) 0));
1946 
1947 #undef FLD
1948     return idesc;
1949   }
1950 
1951  extract_sfmt_l_jal:
1952   {
1953     const IDESC *idesc = &or1k32bf_insn_data[itype];
1954     CGEN_INSN_WORD insn = entire_insn;
1955 #define FLD(f) abuf->fields.sfmt_l_j.f
1956     USI f_disp26;
1957 
1958     f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
1959 
1960   /* Record the fields for the semantic handler.  */
1961   FLD (i_disp26) = f_disp26;
1962   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jal", "disp26 0x%x", 'x', f_disp26, (char *) 0));
1963 
1964 #undef FLD
1965     return idesc;
1966   }
1967 
1968  extract_sfmt_l_jr:
1969   {
1970     const IDESC *idesc = &or1k32bf_insn_data[itype];
1971     CGEN_INSN_WORD insn = entire_insn;
1972 #define FLD(f) abuf->fields.sfmt_l_sll.f
1973     UINT f_r3;
1974 
1975     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
1976 
1977   /* Record the fields for the semantic handler.  */
1978   FLD (f_r3) = f_r3;
1979   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
1980 
1981 #undef FLD
1982     return idesc;
1983   }
1984 
1985  extract_sfmt_l_jalr:
1986   {
1987     const IDESC *idesc = &or1k32bf_insn_data[itype];
1988     CGEN_INSN_WORD insn = entire_insn;
1989 #define FLD(f) abuf->fields.sfmt_l_sll.f
1990     UINT f_r3;
1991 
1992     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
1993 
1994   /* Record the fields for the semantic handler.  */
1995   FLD (f_r3) = f_r3;
1996   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jalr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
1997 
1998 #undef FLD
1999     return idesc;
2000   }
2001 
2002  extract_sfmt_l_bnf:
2003   {
2004     const IDESC *idesc = &or1k32bf_insn_data[itype];
2005     CGEN_INSN_WORD insn = entire_insn;
2006 #define FLD(f) abuf->fields.sfmt_l_j.f
2007     USI f_disp26;
2008 
2009     f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
2010 
2011   /* Record the fields for the semantic handler.  */
2012   FLD (i_disp26) = f_disp26;
2013   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_bnf", "disp26 0x%x", 'x', f_disp26, (char *) 0));
2014 
2015 #undef FLD
2016     return idesc;
2017   }
2018 
2019  extract_sfmt_l_trap:
2020   {
2021     const IDESC *idesc = &or1k32bf_insn_data[itype];
2022 #define FLD(f) abuf->fields.sfmt_empty.f
2023 
2024 
2025   /* Record the fields for the semantic handler.  */
2026   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_trap", (char *) 0));
2027 
2028 #undef FLD
2029     return idesc;
2030   }
2031 
2032  extract_sfmt_l_msync:
2033   {
2034     const IDESC *idesc = &or1k32bf_insn_data[itype];
2035 #define FLD(f) abuf->fields.sfmt_empty.f
2036 
2037 
2038   /* Record the fields for the semantic handler.  */
2039   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_msync", (char *) 0));
2040 
2041 #undef FLD
2042     return idesc;
2043   }
2044 
2045  extract_sfmt_l_nop_imm:
2046   {
2047     const IDESC *idesc = &or1k32bf_insn_data[itype];
2048     CGEN_INSN_WORD insn = entire_insn;
2049 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
2050     UINT f_uimm16;
2051 
2052     f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
2053 
2054   /* Record the fields for the semantic handler.  */
2055   FLD (f_uimm16) = f_uimm16;
2056   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_nop_imm", "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
2057 
2058 #undef FLD
2059     return idesc;
2060   }
2061 
2062  extract_sfmt_l_movhi:
2063   {
2064     const IDESC *idesc = &or1k32bf_insn_data[itype];
2065     CGEN_INSN_WORD insn = entire_insn;
2066 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
2067     UINT f_r1;
2068     UINT f_uimm16;
2069 
2070     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2071     f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
2072 
2073   /* Record the fields for the semantic handler.  */
2074   FLD (f_uimm16) = f_uimm16;
2075   FLD (f_r1) = f_r1;
2076   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_movhi", "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2077 
2078 #undef FLD
2079     return idesc;
2080   }
2081 
2082  extract_sfmt_l_macrc:
2083   {
2084     const IDESC *idesc = &or1k32bf_insn_data[itype];
2085     CGEN_INSN_WORD insn = entire_insn;
2086 #define FLD(f) abuf->fields.sfmt_l_adrp.f
2087     UINT f_r1;
2088 
2089     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2090 
2091   /* Record the fields for the semantic handler.  */
2092   FLD (f_r1) = f_r1;
2093   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macrc", "f_r1 0x%x", 'x', f_r1, (char *) 0));
2094 
2095 #undef FLD
2096     return idesc;
2097   }
2098 
2099  extract_sfmt_l_mfspr:
2100   {
2101     const IDESC *idesc = &or1k32bf_insn_data[itype];
2102     CGEN_INSN_WORD insn = entire_insn;
2103 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
2104     UINT f_r1;
2105     UINT f_r2;
2106     UINT f_uimm16;
2107 
2108     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2109     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2110     f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
2111 
2112   /* Record the fields for the semantic handler.  */
2113   FLD (f_r2) = f_r2;
2114   FLD (f_uimm16) = f_uimm16;
2115   FLD (f_r1) = f_r1;
2116   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mfspr", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2117 
2118 #undef FLD
2119     return idesc;
2120   }
2121 
2122  extract_sfmt_l_mtspr:
2123   {
2124     const IDESC *idesc = &or1k32bf_insn_data[itype];
2125     CGEN_INSN_WORD insn = entire_insn;
2126 #define FLD(f) abuf->fields.sfmt_l_mtspr.f
2127     UINT f_imm16_25_5;
2128     UINT f_r2;
2129     UINT f_r3;
2130     UINT f_imm16_10_11;
2131     UINT f_uimm16_split;
2132 
2133     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2134     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2135     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2136     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2137   f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2138 
2139   /* Record the fields for the semantic handler.  */
2140   FLD (f_r2) = f_r2;
2141   FLD (f_r3) = f_r3;
2142   FLD (f_uimm16_split) = f_uimm16_split;
2143   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mtspr", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_uimm16_split 0x%x", 'x', f_uimm16_split, (char *) 0));
2144 
2145 #undef FLD
2146     return idesc;
2147   }
2148 
2149  extract_sfmt_l_lwz:
2150   {
2151     const IDESC *idesc = &or1k32bf_insn_data[itype];
2152     CGEN_INSN_WORD insn = entire_insn;
2153 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2154     UINT f_r1;
2155     UINT f_r2;
2156     INT f_simm16;
2157 
2158     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2159     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2160     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2161 
2162   /* Record the fields for the semantic handler.  */
2163   FLD (f_r2) = f_r2;
2164   FLD (f_simm16) = f_simm16;
2165   FLD (f_r1) = f_r1;
2166   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2167 
2168 #undef FLD
2169     return idesc;
2170   }
2171 
2172  extract_sfmt_l_lws:
2173   {
2174     const IDESC *idesc = &or1k32bf_insn_data[itype];
2175     CGEN_INSN_WORD insn = entire_insn;
2176 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2177     UINT f_r1;
2178     UINT f_r2;
2179     INT f_simm16;
2180 
2181     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2182     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2183     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2184 
2185   /* Record the fields for the semantic handler.  */
2186   FLD (f_r2) = f_r2;
2187   FLD (f_simm16) = f_simm16;
2188   FLD (f_r1) = f_r1;
2189   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lws", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2190 
2191 #undef FLD
2192     return idesc;
2193   }
2194 
2195  extract_sfmt_l_lwa:
2196   {
2197     const IDESC *idesc = &or1k32bf_insn_data[itype];
2198     CGEN_INSN_WORD insn = entire_insn;
2199 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2200     UINT f_r1;
2201     UINT f_r2;
2202     INT f_simm16;
2203 
2204     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2205     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2206     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2207 
2208   /* Record the fields for the semantic handler.  */
2209   FLD (f_r2) = f_r2;
2210   FLD (f_simm16) = f_simm16;
2211   FLD (f_r1) = f_r1;
2212   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwa", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2213 
2214 #undef FLD
2215     return idesc;
2216   }
2217 
2218  extract_sfmt_l_lbz:
2219   {
2220     const IDESC *idesc = &or1k32bf_insn_data[itype];
2221     CGEN_INSN_WORD insn = entire_insn;
2222 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2223     UINT f_r1;
2224     UINT f_r2;
2225     INT f_simm16;
2226 
2227     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2228     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2229     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2230 
2231   /* Record the fields for the semantic handler.  */
2232   FLD (f_r2) = f_r2;
2233   FLD (f_simm16) = f_simm16;
2234   FLD (f_r1) = f_r1;
2235   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2236 
2237 #undef FLD
2238     return idesc;
2239   }
2240 
2241  extract_sfmt_l_lbs:
2242   {
2243     const IDESC *idesc = &or1k32bf_insn_data[itype];
2244     CGEN_INSN_WORD insn = entire_insn;
2245 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2246     UINT f_r1;
2247     UINT f_r2;
2248     INT f_simm16;
2249 
2250     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2251     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2252     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2253 
2254   /* Record the fields for the semantic handler.  */
2255   FLD (f_r2) = f_r2;
2256   FLD (f_simm16) = f_simm16;
2257   FLD (f_r1) = f_r1;
2258   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2259 
2260 #undef FLD
2261     return idesc;
2262   }
2263 
2264  extract_sfmt_l_lhz:
2265   {
2266     const IDESC *idesc = &or1k32bf_insn_data[itype];
2267     CGEN_INSN_WORD insn = entire_insn;
2268 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2269     UINT f_r1;
2270     UINT f_r2;
2271     INT f_simm16;
2272 
2273     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2274     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2275     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2276 
2277   /* Record the fields for the semantic handler.  */
2278   FLD (f_r2) = f_r2;
2279   FLD (f_simm16) = f_simm16;
2280   FLD (f_r1) = f_r1;
2281   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2282 
2283 #undef FLD
2284     return idesc;
2285   }
2286 
2287  extract_sfmt_l_lhs:
2288   {
2289     const IDESC *idesc = &or1k32bf_insn_data[itype];
2290     CGEN_INSN_WORD insn = entire_insn;
2291 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2292     UINT f_r1;
2293     UINT f_r2;
2294     INT f_simm16;
2295 
2296     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2297     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2298     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2299 
2300   /* Record the fields for the semantic handler.  */
2301   FLD (f_r2) = f_r2;
2302   FLD (f_simm16) = f_simm16;
2303   FLD (f_r1) = f_r1;
2304   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2305 
2306 #undef FLD
2307     return idesc;
2308   }
2309 
2310  extract_sfmt_l_sw:
2311   {
2312     const IDESC *idesc = &or1k32bf_insn_data[itype];
2313     CGEN_INSN_WORD insn = entire_insn;
2314 #define FLD(f) abuf->fields.sfmt_l_sw.f
2315     UINT f_imm16_25_5;
2316     UINT f_r2;
2317     UINT f_r3;
2318     UINT f_imm16_10_11;
2319     INT f_simm16_split;
2320 
2321     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2322     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2323     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2324     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2325   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2326 
2327   /* Record the fields for the semantic handler.  */
2328   FLD (f_r2) = f_r2;
2329   FLD (f_r3) = f_r3;
2330   FLD (f_simm16_split) = f_simm16_split;
2331   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sw", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2332 
2333 #undef FLD
2334     return idesc;
2335   }
2336 
2337  extract_sfmt_l_sb:
2338   {
2339     const IDESC *idesc = &or1k32bf_insn_data[itype];
2340     CGEN_INSN_WORD insn = entire_insn;
2341 #define FLD(f) abuf->fields.sfmt_l_sw.f
2342     UINT f_imm16_25_5;
2343     UINT f_r2;
2344     UINT f_r3;
2345     UINT f_imm16_10_11;
2346     INT f_simm16_split;
2347 
2348     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2349     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2350     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2351     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2352   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2353 
2354   /* Record the fields for the semantic handler.  */
2355   FLD (f_r2) = f_r2;
2356   FLD (f_r3) = f_r3;
2357   FLD (f_simm16_split) = f_simm16_split;
2358   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sb", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2359 
2360 #undef FLD
2361     return idesc;
2362   }
2363 
2364  extract_sfmt_l_sh:
2365   {
2366     const IDESC *idesc = &or1k32bf_insn_data[itype];
2367     CGEN_INSN_WORD insn = entire_insn;
2368 #define FLD(f) abuf->fields.sfmt_l_sw.f
2369     UINT f_imm16_25_5;
2370     UINT f_r2;
2371     UINT f_r3;
2372     UINT f_imm16_10_11;
2373     INT f_simm16_split;
2374 
2375     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2376     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2377     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2378     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2379   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2380 
2381   /* Record the fields for the semantic handler.  */
2382   FLD (f_r2) = f_r2;
2383   FLD (f_r3) = f_r3;
2384   FLD (f_simm16_split) = f_simm16_split;
2385   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sh", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2386 
2387 #undef FLD
2388     return idesc;
2389   }
2390 
2391  extract_sfmt_l_swa:
2392   {
2393     const IDESC *idesc = &or1k32bf_insn_data[itype];
2394     CGEN_INSN_WORD insn = entire_insn;
2395 #define FLD(f) abuf->fields.sfmt_l_sw.f
2396     UINT f_imm16_25_5;
2397     UINT f_r2;
2398     UINT f_r3;
2399     UINT f_imm16_10_11;
2400     INT f_simm16_split;
2401 
2402     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2403     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2404     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2405     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2406   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2407 
2408   /* Record the fields for the semantic handler.  */
2409   FLD (f_r2) = f_r2;
2410   FLD (f_r3) = f_r3;
2411   FLD (f_simm16_split) = f_simm16_split;
2412   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_swa", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2413 
2414 #undef FLD
2415     return idesc;
2416   }
2417 
2418  extract_sfmt_l_sll:
2419   {
2420     const IDESC *idesc = &or1k32bf_insn_data[itype];
2421     CGEN_INSN_WORD insn = entire_insn;
2422 #define FLD(f) abuf->fields.sfmt_l_sll.f
2423     UINT f_r1;
2424     UINT f_r2;
2425     UINT f_r3;
2426 
2427     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2428     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2429     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2430 
2431   /* Record the fields for the semantic handler.  */
2432   FLD (f_r2) = f_r2;
2433   FLD (f_r3) = f_r3;
2434   FLD (f_r1) = f_r1;
2435   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sll", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2436 
2437 #undef FLD
2438     return idesc;
2439   }
2440 
2441  extract_sfmt_l_slli:
2442   {
2443     const IDESC *idesc = &or1k32bf_insn_data[itype];
2444     CGEN_INSN_WORD insn = entire_insn;
2445 #define FLD(f) abuf->fields.sfmt_l_slli.f
2446     UINT f_r1;
2447     UINT f_r2;
2448     UINT f_uimm6;
2449 
2450     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2451     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2452     f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6);
2453 
2454   /* Record the fields for the semantic handler.  */
2455   FLD (f_r2) = f_r2;
2456   FLD (f_uimm6) = f_uimm6;
2457   FLD (f_r1) = f_r1;
2458   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_slli", "f_r2 0x%x", 'x', f_r2, "f_uimm6 0x%x", 'x', f_uimm6, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2459 
2460 #undef FLD
2461     return idesc;
2462   }
2463 
2464  extract_sfmt_l_and:
2465   {
2466     const IDESC *idesc = &or1k32bf_insn_data[itype];
2467     CGEN_INSN_WORD insn = entire_insn;
2468 #define FLD(f) abuf->fields.sfmt_l_sll.f
2469     UINT f_r1;
2470     UINT f_r2;
2471     UINT f_r3;
2472 
2473     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2474     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2475     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2476 
2477   /* Record the fields for the semantic handler.  */
2478   FLD (f_r2) = f_r2;
2479   FLD (f_r3) = f_r3;
2480   FLD (f_r1) = f_r1;
2481   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_and", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2482 
2483 #undef FLD
2484     return idesc;
2485   }
2486 
2487  extract_sfmt_l_add:
2488   {
2489     const IDESC *idesc = &or1k32bf_insn_data[itype];
2490     CGEN_INSN_WORD insn = entire_insn;
2491 #define FLD(f) abuf->fields.sfmt_l_sll.f
2492     UINT f_r1;
2493     UINT f_r2;
2494     UINT f_r3;
2495 
2496     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2497     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2498     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2499 
2500   /* Record the fields for the semantic handler.  */
2501   FLD (f_r2) = f_r2;
2502   FLD (f_r3) = f_r3;
2503   FLD (f_r1) = f_r1;
2504   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_add", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2505 
2506 #undef FLD
2507     return idesc;
2508   }
2509 
2510  extract_sfmt_l_addc:
2511   {
2512     const IDESC *idesc = &or1k32bf_insn_data[itype];
2513     CGEN_INSN_WORD insn = entire_insn;
2514 #define FLD(f) abuf->fields.sfmt_l_sll.f
2515     UINT f_r1;
2516     UINT f_r2;
2517     UINT f_r3;
2518 
2519     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2520     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2521     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2522 
2523   /* Record the fields for the semantic handler.  */
2524   FLD (f_r2) = f_r2;
2525   FLD (f_r3) = f_r3;
2526   FLD (f_r1) = f_r1;
2527   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addc", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2528 
2529 #undef FLD
2530     return idesc;
2531   }
2532 
2533  extract_sfmt_l_mul:
2534   {
2535     const IDESC *idesc = &or1k32bf_insn_data[itype];
2536     CGEN_INSN_WORD insn = entire_insn;
2537 #define FLD(f) abuf->fields.sfmt_l_sll.f
2538     UINT f_r1;
2539     UINT f_r2;
2540     UINT f_r3;
2541 
2542     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2543     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2544     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2545 
2546   /* Record the fields for the semantic handler.  */
2547   FLD (f_r2) = f_r2;
2548   FLD (f_r3) = f_r3;
2549   FLD (f_r1) = f_r1;
2550   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mul", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2551 
2552 #undef FLD
2553     return idesc;
2554   }
2555 
2556  extract_sfmt_l_muld:
2557   {
2558     const IDESC *idesc = &or1k32bf_insn_data[itype];
2559     CGEN_INSN_WORD insn = entire_insn;
2560 #define FLD(f) abuf->fields.sfmt_l_sll.f
2561     UINT f_r2;
2562     UINT f_r3;
2563 
2564     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2565     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2566 
2567   /* Record the fields for the semantic handler.  */
2568   FLD (f_r2) = f_r2;
2569   FLD (f_r3) = f_r3;
2570   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_muld", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2571 
2572 #undef FLD
2573     return idesc;
2574   }
2575 
2576  extract_sfmt_l_mulu:
2577   {
2578     const IDESC *idesc = &or1k32bf_insn_data[itype];
2579     CGEN_INSN_WORD insn = entire_insn;
2580 #define FLD(f) abuf->fields.sfmt_l_sll.f
2581     UINT f_r1;
2582     UINT f_r2;
2583     UINT f_r3;
2584 
2585     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2586     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2587     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2588 
2589   /* Record the fields for the semantic handler.  */
2590   FLD (f_r2) = f_r2;
2591   FLD (f_r3) = f_r3;
2592   FLD (f_r1) = f_r1;
2593   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mulu", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2594 
2595 #undef FLD
2596     return idesc;
2597   }
2598 
2599  extract_sfmt_l_div:
2600   {
2601     const IDESC *idesc = &or1k32bf_insn_data[itype];
2602     CGEN_INSN_WORD insn = entire_insn;
2603 #define FLD(f) abuf->fields.sfmt_l_sll.f
2604     UINT f_r1;
2605     UINT f_r2;
2606     UINT f_r3;
2607 
2608     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2609     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2610     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2611 
2612   /* Record the fields for the semantic handler.  */
2613   FLD (f_r2) = f_r2;
2614   FLD (f_r3) = f_r3;
2615   FLD (f_r1) = f_r1;
2616   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_div", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2617 
2618 #undef FLD
2619     return idesc;
2620   }
2621 
2622  extract_sfmt_l_divu:
2623   {
2624     const IDESC *idesc = &or1k32bf_insn_data[itype];
2625     CGEN_INSN_WORD insn = entire_insn;
2626 #define FLD(f) abuf->fields.sfmt_l_sll.f
2627     UINT f_r1;
2628     UINT f_r2;
2629     UINT f_r3;
2630 
2631     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2632     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2633     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2634 
2635   /* Record the fields for the semantic handler.  */
2636   FLD (f_r2) = f_r2;
2637   FLD (f_r3) = f_r3;
2638   FLD (f_r1) = f_r1;
2639   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_divu", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2640 
2641 #undef FLD
2642     return idesc;
2643   }
2644 
2645  extract_sfmt_l_ff1:
2646   {
2647     const IDESC *idesc = &or1k32bf_insn_data[itype];
2648     CGEN_INSN_WORD insn = entire_insn;
2649 #define FLD(f) abuf->fields.sfmt_l_slli.f
2650     UINT f_r1;
2651     UINT f_r2;
2652 
2653     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2654     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2655 
2656   /* Record the fields for the semantic handler.  */
2657   FLD (f_r2) = f_r2;
2658   FLD (f_r1) = f_r1;
2659   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_ff1", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2660 
2661 #undef FLD
2662     return idesc;
2663   }
2664 
2665  extract_sfmt_l_xori:
2666   {
2667     const IDESC *idesc = &or1k32bf_insn_data[itype];
2668     CGEN_INSN_WORD insn = entire_insn;
2669 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2670     UINT f_r1;
2671     UINT f_r2;
2672     INT f_simm16;
2673 
2674     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2675     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2676     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2677 
2678   /* Record the fields for the semantic handler.  */
2679   FLD (f_r2) = f_r2;
2680   FLD (f_simm16) = f_simm16;
2681   FLD (f_r1) = f_r1;
2682   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_xori", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2683 
2684 #undef FLD
2685     return idesc;
2686   }
2687 
2688  extract_sfmt_l_addi:
2689   {
2690     const IDESC *idesc = &or1k32bf_insn_data[itype];
2691     CGEN_INSN_WORD insn = entire_insn;
2692 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2693     UINT f_r1;
2694     UINT f_r2;
2695     INT f_simm16;
2696 
2697     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2698     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2699     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2700 
2701   /* Record the fields for the semantic handler.  */
2702   FLD (f_r2) = f_r2;
2703   FLD (f_simm16) = f_simm16;
2704   FLD (f_r1) = f_r1;
2705   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2706 
2707 #undef FLD
2708     return idesc;
2709   }
2710 
2711  extract_sfmt_l_addic:
2712   {
2713     const IDESC *idesc = &or1k32bf_insn_data[itype];
2714     CGEN_INSN_WORD insn = entire_insn;
2715 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2716     UINT f_r1;
2717     UINT f_r2;
2718     INT f_simm16;
2719 
2720     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2721     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2722     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2723 
2724   /* Record the fields for the semantic handler.  */
2725   FLD (f_r2) = f_r2;
2726   FLD (f_simm16) = f_simm16;
2727   FLD (f_r1) = f_r1;
2728   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addic", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2729 
2730 #undef FLD
2731     return idesc;
2732   }
2733 
2734  extract_sfmt_l_muli:
2735   {
2736     const IDESC *idesc = &or1k32bf_insn_data[itype];
2737     CGEN_INSN_WORD insn = entire_insn;
2738 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2739     UINT f_r1;
2740     UINT f_r2;
2741     INT f_simm16;
2742 
2743     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2744     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2745     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2746 
2747   /* Record the fields for the semantic handler.  */
2748   FLD (f_r2) = f_r2;
2749   FLD (f_simm16) = f_simm16;
2750   FLD (f_r1) = f_r1;
2751   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_muli", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2752 
2753 #undef FLD
2754     return idesc;
2755   }
2756 
2757  extract_sfmt_l_exths:
2758   {
2759     const IDESC *idesc = &or1k32bf_insn_data[itype];
2760     CGEN_INSN_WORD insn = entire_insn;
2761 #define FLD(f) abuf->fields.sfmt_l_slli.f
2762     UINT f_r1;
2763     UINT f_r2;
2764 
2765     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2766     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2767 
2768   /* Record the fields for the semantic handler.  */
2769   FLD (f_r2) = f_r2;
2770   FLD (f_r1) = f_r1;
2771   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_exths", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2772 
2773 #undef FLD
2774     return idesc;
2775   }
2776 
2777  extract_sfmt_l_cmov:
2778   {
2779     const IDESC *idesc = &or1k32bf_insn_data[itype];
2780     CGEN_INSN_WORD insn = entire_insn;
2781 #define FLD(f) abuf->fields.sfmt_l_sll.f
2782     UINT f_r1;
2783     UINT f_r2;
2784     UINT f_r3;
2785 
2786     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2787     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2788     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2789 
2790   /* Record the fields for the semantic handler.  */
2791   FLD (f_r2) = f_r2;
2792   FLD (f_r3) = f_r3;
2793   FLD (f_r1) = f_r1;
2794   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_cmov", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2795 
2796 #undef FLD
2797     return idesc;
2798   }
2799 
2800  extract_sfmt_l_sfgts:
2801   {
2802     const IDESC *idesc = &or1k32bf_insn_data[itype];
2803     CGEN_INSN_WORD insn = entire_insn;
2804 #define FLD(f) abuf->fields.sfmt_l_sll.f
2805     UINT f_r2;
2806     UINT f_r3;
2807 
2808     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2809     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2810 
2811   /* Record the fields for the semantic handler.  */
2812   FLD (f_r2) = f_r2;
2813   FLD (f_r3) = f_r3;
2814   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgts", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2815 
2816 #undef FLD
2817     return idesc;
2818   }
2819 
2820  extract_sfmt_l_sfgtsi:
2821   {
2822     const IDESC *idesc = &or1k32bf_insn_data[itype];
2823     CGEN_INSN_WORD insn = entire_insn;
2824 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2825     UINT f_r2;
2826     INT f_simm16;
2827 
2828     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2829     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2830 
2831   /* Record the fields for the semantic handler.  */
2832   FLD (f_r2) = f_r2;
2833   FLD (f_simm16) = f_simm16;
2834   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgtsi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
2835 
2836 #undef FLD
2837     return idesc;
2838   }
2839 
2840  extract_sfmt_l_mac:
2841   {
2842     const IDESC *idesc = &or1k32bf_insn_data[itype];
2843     CGEN_INSN_WORD insn = entire_insn;
2844 #define FLD(f) abuf->fields.sfmt_l_sll.f
2845     UINT f_r2;
2846     UINT f_r3;
2847 
2848     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2849     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2850 
2851   /* Record the fields for the semantic handler.  */
2852   FLD (f_r2) = f_r2;
2853   FLD (f_r3) = f_r3;
2854   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mac", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2855 
2856 #undef FLD
2857     return idesc;
2858   }
2859 
2860  extract_sfmt_l_maci:
2861   {
2862     const IDESC *idesc = &or1k32bf_insn_data[itype];
2863     CGEN_INSN_WORD insn = entire_insn;
2864 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2865     UINT f_r2;
2866     INT f_simm16;
2867 
2868     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2869     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2870 
2871   /* Record the fields for the semantic handler.  */
2872   FLD (f_r2) = f_r2;
2873   FLD (f_simm16) = f_simm16;
2874   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_maci", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
2875 
2876 #undef FLD
2877     return idesc;
2878   }
2879 
2880  extract_sfmt_l_macu:
2881   {
2882     const IDESC *idesc = &or1k32bf_insn_data[itype];
2883     CGEN_INSN_WORD insn = entire_insn;
2884 #define FLD(f) abuf->fields.sfmt_l_sll.f
2885     UINT f_r2;
2886     UINT f_r3;
2887 
2888     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2889     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2890 
2891   /* Record the fields for the semantic handler.  */
2892   FLD (f_r2) = f_r2;
2893   FLD (f_r3) = f_r3;
2894   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macu", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2895 
2896 #undef FLD
2897     return idesc;
2898   }
2899 
2900  extract_sfmt_lf_add_s:
2901   {
2902     const IDESC *idesc = &or1k32bf_insn_data[itype];
2903     CGEN_INSN_WORD insn = entire_insn;
2904 #define FLD(f) abuf->fields.sfmt_l_sll.f
2905     UINT f_r1;
2906     UINT f_r2;
2907     UINT f_r3;
2908 
2909     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2910     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2911     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2912 
2913   /* Record the fields for the semantic handler.  */
2914   FLD (f_r2) = f_r2;
2915   FLD (f_r3) = f_r3;
2916   FLD (f_r1) = f_r1;
2917   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2918 
2919 #undef FLD
2920     return idesc;
2921   }
2922 
2923  extract_sfmt_lf_add_d32:
2924   {
2925     const IDESC *idesc = &or1k32bf_insn_data[itype];
2926     CGEN_INSN_WORD insn = entire_insn;
2927 #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
2928     UINT f_r1;
2929     UINT f_r2;
2930     UINT f_r3;
2931     UINT f_rdoff_10_1;
2932     UINT f_raoff_9_1;
2933     UINT f_rboff_8_1;
2934     SI f_rdd32;
2935     SI f_rad32;
2936     SI f_rbd32;
2937 
2938     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2939     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2940     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2941     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
2942     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
2943     f_rboff_8_1 = EXTRACT_LSB0_UINT (insn, 32, 8, 1);
2944   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
2945   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
2946   f_rbd32 = ((f_r3) | (((f_rboff_8_1) << (5))));
2947 
2948   /* Record the fields for the semantic handler.  */
2949   FLD (f_rad32) = f_rad32;
2950   FLD (f_rbd32) = f_rbd32;
2951   FLD (f_rdd32) = f_rdd32;
2952   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rbd32 0x%x", 'x', f_rbd32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
2953 
2954 #undef FLD
2955     return idesc;
2956   }
2957 
2958  extract_sfmt_lf_itof_s:
2959   {
2960     const IDESC *idesc = &or1k32bf_insn_data[itype];
2961     CGEN_INSN_WORD insn = entire_insn;
2962 #define FLD(f) abuf->fields.sfmt_l_slli.f
2963     UINT f_r1;
2964     UINT f_r2;
2965 
2966     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2967     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2968 
2969   /* Record the fields for the semantic handler.  */
2970   FLD (f_r2) = f_r2;
2971   FLD (f_r1) = f_r1;
2972   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2973 
2974 #undef FLD
2975     return idesc;
2976   }
2977 
2978  extract_sfmt_lf_itof_d32:
2979   {
2980     const IDESC *idesc = &or1k32bf_insn_data[itype];
2981     CGEN_INSN_WORD insn = entire_insn;
2982 #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
2983     UINT f_r1;
2984     UINT f_r2;
2985     UINT f_rdoff_10_1;
2986     UINT f_raoff_9_1;
2987     SI f_rdd32;
2988     SI f_rad32;
2989 
2990     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2991     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2992     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
2993     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
2994   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
2995   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
2996 
2997   /* Record the fields for the semantic handler.  */
2998   FLD (f_rad32) = f_rad32;
2999   FLD (f_rdd32) = f_rdd32;
3000   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
3001 
3002 #undef FLD
3003     return idesc;
3004   }
3005 
3006  extract_sfmt_lf_ftoi_s:
3007   {
3008     const IDESC *idesc = &or1k32bf_insn_data[itype];
3009     CGEN_INSN_WORD insn = entire_insn;
3010 #define FLD(f) abuf->fields.sfmt_l_slli.f
3011     UINT f_r1;
3012     UINT f_r2;
3013 
3014     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
3015     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
3016 
3017   /* Record the fields for the semantic handler.  */
3018   FLD (f_r2) = f_r2;
3019   FLD (f_r1) = f_r1;
3020   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
3021 
3022 #undef FLD
3023     return idesc;
3024   }
3025 
3026  extract_sfmt_lf_ftoi_d32:
3027   {
3028     const IDESC *idesc = &or1k32bf_insn_data[itype];
3029     CGEN_INSN_WORD insn = entire_insn;
3030 #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
3031     UINT f_r1;
3032     UINT f_r2;
3033     UINT f_rdoff_10_1;
3034     UINT f_raoff_9_1;
3035     SI f_rdd32;
3036     SI f_rad32;
3037 
3038     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
3039     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
3040     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
3041     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
3042   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
3043   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
3044 
3045   /* Record the fields for the semantic handler.  */
3046   FLD (f_rad32) = f_rad32;
3047   FLD (f_rdd32) = f_rdd32;
3048   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
3049 
3050 #undef FLD
3051     return idesc;
3052   }
3053 
3054  extract_sfmt_lf_sfeq_s:
3055   {
3056     const IDESC *idesc = &or1k32bf_insn_data[itype];
3057     CGEN_INSN_WORD insn = entire_insn;
3058 #define FLD(f) abuf->fields.sfmt_l_sll.f
3059     UINT f_r2;
3060     UINT f_r3;
3061 
3062     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
3063     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
3064 
3065   /* Record the fields for the semantic handler.  */
3066   FLD (f_r2) = f_r2;
3067   FLD (f_r3) = f_r3;
3068   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_sfeq_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
3069 
3070 #undef FLD
3071     return idesc;
3072   }
3073 
3074  extract_sfmt_lf_sfeq_d32:
3075   {
3076     const IDESC *idesc = &or1k32bf_insn_data[itype];
3077     CGEN_INSN_WORD insn = entire_insn;
3078 #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
3079     UINT f_r2;
3080     UINT f_r3;
3081     UINT f_raoff_9_1;
3082     UINT f_rboff_8_1;
3083     SI f_rad32;
3084     SI f_rbd32;
3085 
3086     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
3087     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
3088     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
3089     f_rboff_8_1 = EXTRACT_LSB0_UINT (insn, 32, 8, 1);
3090   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
3091   f_rbd32 = ((f_r3) | (((f_rboff_8_1) << (5))));
3092 
3093   /* Record the fields for the semantic handler.  */
3094   FLD (f_rad32) = f_rad32;
3095   FLD (f_rbd32) = f_rbd32;
3096   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_sfeq_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rbd32 0x%x", 'x', f_rbd32, (char *) 0));
3097 
3098 #undef FLD
3099     return idesc;
3100   }
3101 
3102  extract_sfmt_lf_madd_s:
3103   {
3104     const IDESC *idesc = &or1k32bf_insn_data[itype];
3105     CGEN_INSN_WORD insn = entire_insn;
3106 #define FLD(f) abuf->fields.sfmt_l_sll.f
3107     UINT f_r1;
3108     UINT f_r2;
3109     UINT f_r3;
3110 
3111     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
3112     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
3113     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
3114 
3115   /* Record the fields for the semantic handler.  */
3116   FLD (f_r2) = f_r2;
3117   FLD (f_r3) = f_r3;
3118   FLD (f_r1) = f_r1;
3119   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
3120 
3121 #undef FLD
3122     return idesc;
3123   }
3124 
3125  extract_sfmt_lf_madd_d32:
3126   {
3127     const IDESC *idesc = &or1k32bf_insn_data[itype];
3128     CGEN_INSN_WORD insn = entire_insn;
3129 #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
3130     UINT f_r1;
3131     UINT f_r2;
3132     UINT f_r3;
3133     UINT f_rdoff_10_1;
3134     UINT f_raoff_9_1;
3135     UINT f_rboff_8_1;
3136     SI f_rdd32;
3137     SI f_rad32;
3138     SI f_rbd32;
3139 
3140     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
3141     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
3142     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
3143     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
3144     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
3145     f_rboff_8_1 = EXTRACT_LSB0_UINT (insn, 32, 8, 1);
3146   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
3147   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
3148   f_rbd32 = ((f_r3) | (((f_rboff_8_1) << (5))));
3149 
3150   /* Record the fields for the semantic handler.  */
3151   FLD (f_rad32) = f_rad32;
3152   FLD (f_rbd32) = f_rbd32;
3153   FLD (f_rdd32) = f_rdd32;
3154   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rbd32 0x%x", 'x', f_rbd32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
3155 
3156 #undef FLD
3157     return idesc;
3158   }
3159 
3160 }
3161