1 /* Simulator instruction decoder for fr30bf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
7 This file is part of the GNU Simulators.
9 This program 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 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
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 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU fr30bf
26 #define WANT_CPU_FR30BF
29 #include "sim-assert.h"
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 fr30bf_insn_data
[FR30BF_INSN_MAX
];
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
41 static const struct insn_sem fr30bf_insn_sem
[] =
43 { VIRTUAL_INSN_X_INVALID
, FR30BF_INSN_X_INVALID
, FR30BF_SFMT_EMPTY
},
44 { VIRTUAL_INSN_X_AFTER
, FR30BF_INSN_X_AFTER
, FR30BF_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_BEFORE
, FR30BF_INSN_X_BEFORE
, FR30BF_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_CTI_CHAIN
, FR30BF_INSN_X_CTI_CHAIN
, FR30BF_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_CHAIN
, FR30BF_INSN_X_CHAIN
, FR30BF_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_BEGIN
, FR30BF_INSN_X_BEGIN
, FR30BF_SFMT_EMPTY
},
49 { FR30_INSN_ADD
, FR30BF_INSN_ADD
, FR30BF_SFMT_ADD
},
50 { FR30_INSN_ADDI
, FR30BF_INSN_ADDI
, FR30BF_SFMT_ADDI
},
51 { FR30_INSN_ADD2
, FR30BF_INSN_ADD2
, FR30BF_SFMT_ADD2
},
52 { FR30_INSN_ADDC
, FR30BF_INSN_ADDC
, FR30BF_SFMT_ADDC
},
53 { FR30_INSN_ADDN
, FR30BF_INSN_ADDN
, FR30BF_SFMT_ADDN
},
54 { FR30_INSN_ADDNI
, FR30BF_INSN_ADDNI
, FR30BF_SFMT_ADDNI
},
55 { FR30_INSN_ADDN2
, FR30BF_INSN_ADDN2
, FR30BF_SFMT_ADDN2
},
56 { FR30_INSN_SUB
, FR30BF_INSN_SUB
, FR30BF_SFMT_ADD
},
57 { FR30_INSN_SUBC
, FR30BF_INSN_SUBC
, FR30BF_SFMT_ADDC
},
58 { FR30_INSN_SUBN
, FR30BF_INSN_SUBN
, FR30BF_SFMT_ADDN
},
59 { FR30_INSN_CMP
, FR30BF_INSN_CMP
, FR30BF_SFMT_CMP
},
60 { FR30_INSN_CMPI
, FR30BF_INSN_CMPI
, FR30BF_SFMT_CMPI
},
61 { FR30_INSN_CMP2
, FR30BF_INSN_CMP2
, FR30BF_SFMT_CMP2
},
62 { FR30_INSN_AND
, FR30BF_INSN_AND
, FR30BF_SFMT_AND
},
63 { FR30_INSN_OR
, FR30BF_INSN_OR
, FR30BF_SFMT_AND
},
64 { FR30_INSN_EOR
, FR30BF_INSN_EOR
, FR30BF_SFMT_AND
},
65 { FR30_INSN_ANDM
, FR30BF_INSN_ANDM
, FR30BF_SFMT_ANDM
},
66 { FR30_INSN_ANDH
, FR30BF_INSN_ANDH
, FR30BF_SFMT_ANDH
},
67 { FR30_INSN_ANDB
, FR30BF_INSN_ANDB
, FR30BF_SFMT_ANDB
},
68 { FR30_INSN_ORM
, FR30BF_INSN_ORM
, FR30BF_SFMT_ANDM
},
69 { FR30_INSN_ORH
, FR30BF_INSN_ORH
, FR30BF_SFMT_ANDH
},
70 { FR30_INSN_ORB
, FR30BF_INSN_ORB
, FR30BF_SFMT_ANDB
},
71 { FR30_INSN_EORM
, FR30BF_INSN_EORM
, FR30BF_SFMT_ANDM
},
72 { FR30_INSN_EORH
, FR30BF_INSN_EORH
, FR30BF_SFMT_ANDH
},
73 { FR30_INSN_EORB
, FR30BF_INSN_EORB
, FR30BF_SFMT_ANDB
},
74 { FR30_INSN_BANDL
, FR30BF_INSN_BANDL
, FR30BF_SFMT_BANDL
},
75 { FR30_INSN_BORL
, FR30BF_INSN_BORL
, FR30BF_SFMT_BANDL
},
76 { FR30_INSN_BEORL
, FR30BF_INSN_BEORL
, FR30BF_SFMT_BANDL
},
77 { FR30_INSN_BANDH
, FR30BF_INSN_BANDH
, FR30BF_SFMT_BANDL
},
78 { FR30_INSN_BORH
, FR30BF_INSN_BORH
, FR30BF_SFMT_BANDL
},
79 { FR30_INSN_BEORH
, FR30BF_INSN_BEORH
, FR30BF_SFMT_BANDL
},
80 { FR30_INSN_BTSTL
, FR30BF_INSN_BTSTL
, FR30BF_SFMT_BTSTL
},
81 { FR30_INSN_BTSTH
, FR30BF_INSN_BTSTH
, FR30BF_SFMT_BTSTL
},
82 { FR30_INSN_MUL
, FR30BF_INSN_MUL
, FR30BF_SFMT_MUL
},
83 { FR30_INSN_MULU
, FR30BF_INSN_MULU
, FR30BF_SFMT_MULU
},
84 { FR30_INSN_MULH
, FR30BF_INSN_MULH
, FR30BF_SFMT_MULH
},
85 { FR30_INSN_MULUH
, FR30BF_INSN_MULUH
, FR30BF_SFMT_MULH
},
86 { FR30_INSN_DIV0S
, FR30BF_INSN_DIV0S
, FR30BF_SFMT_DIV0S
},
87 { FR30_INSN_DIV0U
, FR30BF_INSN_DIV0U
, FR30BF_SFMT_DIV0U
},
88 { FR30_INSN_DIV1
, FR30BF_INSN_DIV1
, FR30BF_SFMT_DIV1
},
89 { FR30_INSN_DIV2
, FR30BF_INSN_DIV2
, FR30BF_SFMT_DIV2
},
90 { FR30_INSN_DIV3
, FR30BF_INSN_DIV3
, FR30BF_SFMT_DIV3
},
91 { FR30_INSN_DIV4S
, FR30BF_INSN_DIV4S
, FR30BF_SFMT_DIV4S
},
92 { FR30_INSN_LSL
, FR30BF_INSN_LSL
, FR30BF_SFMT_LSL
},
93 { FR30_INSN_LSLI
, FR30BF_INSN_LSLI
, FR30BF_SFMT_LSLI
},
94 { FR30_INSN_LSL2
, FR30BF_INSN_LSL2
, FR30BF_SFMT_LSLI
},
95 { FR30_INSN_LSR
, FR30BF_INSN_LSR
, FR30BF_SFMT_LSL
},
96 { FR30_INSN_LSRI
, FR30BF_INSN_LSRI
, FR30BF_SFMT_LSLI
},
97 { FR30_INSN_LSR2
, FR30BF_INSN_LSR2
, FR30BF_SFMT_LSLI
},
98 { FR30_INSN_ASR
, FR30BF_INSN_ASR
, FR30BF_SFMT_LSL
},
99 { FR30_INSN_ASRI
, FR30BF_INSN_ASRI
, FR30BF_SFMT_LSLI
},
100 { FR30_INSN_ASR2
, FR30BF_INSN_ASR2
, FR30BF_SFMT_LSLI
},
101 { FR30_INSN_LDI8
, FR30BF_INSN_LDI8
, FR30BF_SFMT_LDI8
},
102 { FR30_INSN_LDI20
, FR30BF_INSN_LDI20
, FR30BF_SFMT_LDI20
},
103 { FR30_INSN_LDI32
, FR30BF_INSN_LDI32
, FR30BF_SFMT_LDI32
},
104 { FR30_INSN_LD
, FR30BF_INSN_LD
, FR30BF_SFMT_LD
},
105 { FR30_INSN_LDUH
, FR30BF_INSN_LDUH
, FR30BF_SFMT_LD
},
106 { FR30_INSN_LDUB
, FR30BF_INSN_LDUB
, FR30BF_SFMT_LD
},
107 { FR30_INSN_LDR13
, FR30BF_INSN_LDR13
, FR30BF_SFMT_LDR13
},
108 { FR30_INSN_LDR13UH
, FR30BF_INSN_LDR13UH
, FR30BF_SFMT_LDR13
},
109 { FR30_INSN_LDR13UB
, FR30BF_INSN_LDR13UB
, FR30BF_SFMT_LDR13
},
110 { FR30_INSN_LDR14
, FR30BF_INSN_LDR14
, FR30BF_SFMT_LDR14
},
111 { FR30_INSN_LDR14UH
, FR30BF_INSN_LDR14UH
, FR30BF_SFMT_LDR14UH
},
112 { FR30_INSN_LDR14UB
, FR30BF_INSN_LDR14UB
, FR30BF_SFMT_LDR14UB
},
113 { FR30_INSN_LDR15
, FR30BF_INSN_LDR15
, FR30BF_SFMT_LDR15
},
114 { FR30_INSN_LDR15GR
, FR30BF_INSN_LDR15GR
, FR30BF_SFMT_LDR15GR
},
115 { FR30_INSN_LDR15DR
, FR30BF_INSN_LDR15DR
, FR30BF_SFMT_LDR15DR
},
116 { FR30_INSN_LDR15PS
, FR30BF_INSN_LDR15PS
, FR30BF_SFMT_LDR15PS
},
117 { FR30_INSN_ST
, FR30BF_INSN_ST
, FR30BF_SFMT_ST
},
118 { FR30_INSN_STH
, FR30BF_INSN_STH
, FR30BF_SFMT_ST
},
119 { FR30_INSN_STB
, FR30BF_INSN_STB
, FR30BF_SFMT_ST
},
120 { FR30_INSN_STR13
, FR30BF_INSN_STR13
, FR30BF_SFMT_STR13
},
121 { FR30_INSN_STR13H
, FR30BF_INSN_STR13H
, FR30BF_SFMT_STR13
},
122 { FR30_INSN_STR13B
, FR30BF_INSN_STR13B
, FR30BF_SFMT_STR13
},
123 { FR30_INSN_STR14
, FR30BF_INSN_STR14
, FR30BF_SFMT_STR14
},
124 { FR30_INSN_STR14H
, FR30BF_INSN_STR14H
, FR30BF_SFMT_STR14H
},
125 { FR30_INSN_STR14B
, FR30BF_INSN_STR14B
, FR30BF_SFMT_STR14B
},
126 { FR30_INSN_STR15
, FR30BF_INSN_STR15
, FR30BF_SFMT_STR15
},
127 { FR30_INSN_STR15GR
, FR30BF_INSN_STR15GR
, FR30BF_SFMT_STR15GR
},
128 { FR30_INSN_STR15DR
, FR30BF_INSN_STR15DR
, FR30BF_SFMT_STR15DR
},
129 { FR30_INSN_STR15PS
, FR30BF_INSN_STR15PS
, FR30BF_SFMT_STR15PS
},
130 { FR30_INSN_MOV
, FR30BF_INSN_MOV
, FR30BF_SFMT_MOV
},
131 { FR30_INSN_MOVDR
, FR30BF_INSN_MOVDR
, FR30BF_SFMT_MOVDR
},
132 { FR30_INSN_MOVPS
, FR30BF_INSN_MOVPS
, FR30BF_SFMT_MOVPS
},
133 { FR30_INSN_MOV2DR
, FR30BF_INSN_MOV2DR
, FR30BF_SFMT_MOV2DR
},
134 { FR30_INSN_MOV2PS
, FR30BF_INSN_MOV2PS
, FR30BF_SFMT_MOV2PS
},
135 { FR30_INSN_JMP
, FR30BF_INSN_JMP
, FR30BF_SFMT_JMP
},
136 { FR30_INSN_JMPD
, FR30BF_INSN_JMPD
, FR30BF_SFMT_JMP
},
137 { FR30_INSN_CALLR
, FR30BF_INSN_CALLR
, FR30BF_SFMT_CALLR
},
138 { FR30_INSN_CALLRD
, FR30BF_INSN_CALLRD
, FR30BF_SFMT_CALLR
},
139 { FR30_INSN_CALL
, FR30BF_INSN_CALL
, FR30BF_SFMT_CALL
},
140 { FR30_INSN_CALLD
, FR30BF_INSN_CALLD
, FR30BF_SFMT_CALL
},
141 { FR30_INSN_RET
, FR30BF_INSN_RET
, FR30BF_SFMT_RET
},
142 { FR30_INSN_RET_D
, FR30BF_INSN_RET_D
, FR30BF_SFMT_RET
},
143 { FR30_INSN_INT
, FR30BF_INSN_INT
, FR30BF_SFMT_INT
},
144 { FR30_INSN_INTE
, FR30BF_INSN_INTE
, FR30BF_SFMT_INTE
},
145 { FR30_INSN_RETI
, FR30BF_INSN_RETI
, FR30BF_SFMT_RETI
},
146 { FR30_INSN_BRAD
, FR30BF_INSN_BRAD
, FR30BF_SFMT_BRAD
},
147 { FR30_INSN_BRA
, FR30BF_INSN_BRA
, FR30BF_SFMT_BRAD
},
148 { FR30_INSN_BNOD
, FR30BF_INSN_BNOD
, FR30BF_SFMT_BNOD
},
149 { FR30_INSN_BNO
, FR30BF_INSN_BNO
, FR30BF_SFMT_BNOD
},
150 { FR30_INSN_BEQD
, FR30BF_INSN_BEQD
, FR30BF_SFMT_BEQD
},
151 { FR30_INSN_BEQ
, FR30BF_INSN_BEQ
, FR30BF_SFMT_BEQD
},
152 { FR30_INSN_BNED
, FR30BF_INSN_BNED
, FR30BF_SFMT_BEQD
},
153 { FR30_INSN_BNE
, FR30BF_INSN_BNE
, FR30BF_SFMT_BEQD
},
154 { FR30_INSN_BCD
, FR30BF_INSN_BCD
, FR30BF_SFMT_BCD
},
155 { FR30_INSN_BC
, FR30BF_INSN_BC
, FR30BF_SFMT_BCD
},
156 { FR30_INSN_BNCD
, FR30BF_INSN_BNCD
, FR30BF_SFMT_BCD
},
157 { FR30_INSN_BNC
, FR30BF_INSN_BNC
, FR30BF_SFMT_BCD
},
158 { FR30_INSN_BND
, FR30BF_INSN_BND
, FR30BF_SFMT_BND
},
159 { FR30_INSN_BN
, FR30BF_INSN_BN
, FR30BF_SFMT_BND
},
160 { FR30_INSN_BPD
, FR30BF_INSN_BPD
, FR30BF_SFMT_BND
},
161 { FR30_INSN_BP
, FR30BF_INSN_BP
, FR30BF_SFMT_BND
},
162 { FR30_INSN_BVD
, FR30BF_INSN_BVD
, FR30BF_SFMT_BVD
},
163 { FR30_INSN_BV
, FR30BF_INSN_BV
, FR30BF_SFMT_BVD
},
164 { FR30_INSN_BNVD
, FR30BF_INSN_BNVD
, FR30BF_SFMT_BVD
},
165 { FR30_INSN_BNV
, FR30BF_INSN_BNV
, FR30BF_SFMT_BVD
},
166 { FR30_INSN_BLTD
, FR30BF_INSN_BLTD
, FR30BF_SFMT_BLTD
},
167 { FR30_INSN_BLT
, FR30BF_INSN_BLT
, FR30BF_SFMT_BLTD
},
168 { FR30_INSN_BGED
, FR30BF_INSN_BGED
, FR30BF_SFMT_BLTD
},
169 { FR30_INSN_BGE
, FR30BF_INSN_BGE
, FR30BF_SFMT_BLTD
},
170 { FR30_INSN_BLED
, FR30BF_INSN_BLED
, FR30BF_SFMT_BLED
},
171 { FR30_INSN_BLE
, FR30BF_INSN_BLE
, FR30BF_SFMT_BLED
},
172 { FR30_INSN_BGTD
, FR30BF_INSN_BGTD
, FR30BF_SFMT_BLED
},
173 { FR30_INSN_BGT
, FR30BF_INSN_BGT
, FR30BF_SFMT_BLED
},
174 { FR30_INSN_BLSD
, FR30BF_INSN_BLSD
, FR30BF_SFMT_BLSD
},
175 { FR30_INSN_BLS
, FR30BF_INSN_BLS
, FR30BF_SFMT_BLSD
},
176 { FR30_INSN_BHID
, FR30BF_INSN_BHID
, FR30BF_SFMT_BLSD
},
177 { FR30_INSN_BHI
, FR30BF_INSN_BHI
, FR30BF_SFMT_BLSD
},
178 { FR30_INSN_DMOVR13
, FR30BF_INSN_DMOVR13
, FR30BF_SFMT_DMOVR13
},
179 { FR30_INSN_DMOVR13H
, FR30BF_INSN_DMOVR13H
, FR30BF_SFMT_DMOVR13H
},
180 { FR30_INSN_DMOVR13B
, FR30BF_INSN_DMOVR13B
, FR30BF_SFMT_DMOVR13B
},
181 { FR30_INSN_DMOVR13PI
, FR30BF_INSN_DMOVR13PI
, FR30BF_SFMT_DMOVR13PI
},
182 { FR30_INSN_DMOVR13PIH
, FR30BF_INSN_DMOVR13PIH
, FR30BF_SFMT_DMOVR13PIH
},
183 { FR30_INSN_DMOVR13PIB
, FR30BF_INSN_DMOVR13PIB
, FR30BF_SFMT_DMOVR13PIB
},
184 { FR30_INSN_DMOVR15PI
, FR30BF_INSN_DMOVR15PI
, FR30BF_SFMT_DMOVR15PI
},
185 { FR30_INSN_DMOV2R13
, FR30BF_INSN_DMOV2R13
, FR30BF_SFMT_DMOV2R13
},
186 { FR30_INSN_DMOV2R13H
, FR30BF_INSN_DMOV2R13H
, FR30BF_SFMT_DMOV2R13H
},
187 { FR30_INSN_DMOV2R13B
, FR30BF_INSN_DMOV2R13B
, FR30BF_SFMT_DMOV2R13B
},
188 { FR30_INSN_DMOV2R13PI
, FR30BF_INSN_DMOV2R13PI
, FR30BF_SFMT_DMOV2R13PI
},
189 { FR30_INSN_DMOV2R13PIH
, FR30BF_INSN_DMOV2R13PIH
, FR30BF_SFMT_DMOV2R13PIH
},
190 { FR30_INSN_DMOV2R13PIB
, FR30BF_INSN_DMOV2R13PIB
, FR30BF_SFMT_DMOV2R13PIB
},
191 { FR30_INSN_DMOV2R15PD
, FR30BF_INSN_DMOV2R15PD
, FR30BF_SFMT_DMOV2R15PD
},
192 { FR30_INSN_LDRES
, FR30BF_INSN_LDRES
, FR30BF_SFMT_LDRES
},
193 { FR30_INSN_STRES
, FR30BF_INSN_STRES
, FR30BF_SFMT_LDRES
},
194 { FR30_INSN_COPOP
, FR30BF_INSN_COPOP
, FR30BF_SFMT_COPOP
},
195 { FR30_INSN_COPLD
, FR30BF_INSN_COPLD
, FR30BF_SFMT_COPOP
},
196 { FR30_INSN_COPST
, FR30BF_INSN_COPST
, FR30BF_SFMT_COPOP
},
197 { FR30_INSN_COPSV
, FR30BF_INSN_COPSV
, FR30BF_SFMT_COPOP
},
198 { FR30_INSN_NOP
, FR30BF_INSN_NOP
, FR30BF_SFMT_BNOD
},
199 { FR30_INSN_ANDCCR
, FR30BF_INSN_ANDCCR
, FR30BF_SFMT_ANDCCR
},
200 { FR30_INSN_ORCCR
, FR30BF_INSN_ORCCR
, FR30BF_SFMT_ANDCCR
},
201 { FR30_INSN_STILM
, FR30BF_INSN_STILM
, FR30BF_SFMT_STILM
},
202 { FR30_INSN_ADDSP
, FR30BF_INSN_ADDSP
, FR30BF_SFMT_ADDSP
},
203 { FR30_INSN_EXTSB
, FR30BF_INSN_EXTSB
, FR30BF_SFMT_EXTSB
},
204 { FR30_INSN_EXTUB
, FR30BF_INSN_EXTUB
, FR30BF_SFMT_EXTUB
},
205 { FR30_INSN_EXTSH
, FR30BF_INSN_EXTSH
, FR30BF_SFMT_EXTSH
},
206 { FR30_INSN_EXTUH
, FR30BF_INSN_EXTUH
, FR30BF_SFMT_EXTUH
},
207 { FR30_INSN_LDM0
, FR30BF_INSN_LDM0
, FR30BF_SFMT_LDM0
},
208 { FR30_INSN_LDM1
, FR30BF_INSN_LDM1
, FR30BF_SFMT_LDM1
},
209 { FR30_INSN_STM0
, FR30BF_INSN_STM0
, FR30BF_SFMT_STM0
},
210 { FR30_INSN_STM1
, FR30BF_INSN_STM1
, FR30BF_SFMT_STM1
},
211 { FR30_INSN_ENTER
, FR30BF_INSN_ENTER
, FR30BF_SFMT_ENTER
},
212 { FR30_INSN_LEAVE
, FR30BF_INSN_LEAVE
, FR30BF_SFMT_LEAVE
},
213 { FR30_INSN_XCHB
, FR30BF_INSN_XCHB
, FR30BF_SFMT_XCHB
},
216 static const struct insn_sem fr30bf_insn_sem_invalid
= {
217 VIRTUAL_INSN_X_INVALID
, FR30BF_INSN_X_INVALID
, FR30BF_SFMT_EMPTY
220 /* Initialize an IDESC from the compile-time computable parts. */
223 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
225 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
229 if ((int) t
->type
<= 0)
230 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
232 id
->idata
= & insn_table
[t
->type
];
233 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
234 /* Oh my god, a magic number. */
235 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
237 #if WITH_PROFILE_MODEL_P
238 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
240 SIM_DESC sd
= CPU_STATE (cpu
);
241 SIM_ASSERT (t
->index
== id
->timing
->num
);
245 /* Semantic pointers are initialized elsewhere. */
248 /* Initialize the instruction descriptor table. */
251 fr30bf_init_idesc_table (SIM_CPU
*cpu
)
254 const struct insn_sem
*t
,*tend
;
255 int tabsize
= FR30BF_INSN_MAX
;
256 IDESC
*table
= fr30bf_insn_data
;
258 memset (table
, 0, tabsize
* sizeof (IDESC
));
260 /* First set all entries to the `invalid insn'. */
261 t
= & fr30bf_insn_sem_invalid
;
262 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
263 init_idesc (cpu
, id
, t
);
265 /* Now fill in the values for the chosen cpu. */
266 for (t
= fr30bf_insn_sem
, tend
= t
+ sizeof (fr30bf_insn_sem
) / sizeof (*t
);
269 init_idesc (cpu
, & table
[t
->index
], t
);
272 /* Link the IDESC table into the cpu. */
273 CPU_IDESC (cpu
) = table
;
276 /* Given an instruction, return a pointer to its IDESC entry. */
279 fr30bf_decode (SIM_CPU
*current_cpu
, IADDR pc
,
280 CGEN_INSN_INT base_insn
,
283 /* Result of decoder. */
284 FR30BF_INSN_TYPE itype
;
287 CGEN_INSN_INT insn
= base_insn
;
290 unsigned int val
= (((insn
>> 8) & (255 << 0)));
293 case 0 : itype
= FR30BF_INSN_LDR13
; goto extract_sfmt_ldr13
;
294 case 1 : itype
= FR30BF_INSN_LDR13UH
; goto extract_sfmt_ldr13
;
295 case 2 : itype
= FR30BF_INSN_LDR13UB
; goto extract_sfmt_ldr13
;
296 case 3 : itype
= FR30BF_INSN_LDR15
; goto extract_sfmt_ldr15
;
297 case 4 : itype
= FR30BF_INSN_LD
; goto extract_sfmt_ld
;
298 case 5 : itype
= FR30BF_INSN_LDUH
; goto extract_sfmt_ld
;
299 case 6 : itype
= FR30BF_INSN_LDUB
; goto extract_sfmt_ld
;
302 unsigned int val
= (((insn
>> 4) & (15 << 0)));
305 case 0 : itype
= FR30BF_INSN_LDR15GR
; goto extract_sfmt_ldr15gr
;
306 case 1 : itype
= FR30BF_INSN_MOV2PS
; goto extract_sfmt_mov2ps
;
307 case 8 : itype
= FR30BF_INSN_LDR15DR
; goto extract_sfmt_ldr15dr
;
308 case 9 : itype
= FR30BF_INSN_LDR15PS
; goto extract_sfmt_ldr15ps
;
309 default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
312 case 8 : itype
= FR30BF_INSN_DMOV2R13
; goto extract_sfmt_dmov2r13
;
313 case 9 : itype
= FR30BF_INSN_DMOV2R13H
; goto extract_sfmt_dmov2r13h
;
314 case 10 : itype
= FR30BF_INSN_DMOV2R13B
; goto extract_sfmt_dmov2r13b
;
315 case 11 : itype
= FR30BF_INSN_DMOV2R15PD
; goto extract_sfmt_dmov2r15pd
;
316 case 12 : itype
= FR30BF_INSN_DMOV2R13PI
; goto extract_sfmt_dmov2r13pi
;
317 case 13 : itype
= FR30BF_INSN_DMOV2R13PIH
; goto extract_sfmt_dmov2r13pih
;
318 case 14 : itype
= FR30BF_INSN_DMOV2R13PIB
; goto extract_sfmt_dmov2r13pib
;
319 case 15 : itype
= FR30BF_INSN_ENTER
; goto extract_sfmt_enter
;
320 case 16 : itype
= FR30BF_INSN_STR13
; goto extract_sfmt_str13
;
321 case 17 : itype
= FR30BF_INSN_STR13H
; goto extract_sfmt_str13
;
322 case 18 : itype
= FR30BF_INSN_STR13B
; goto extract_sfmt_str13
;
323 case 19 : itype
= FR30BF_INSN_STR15
; goto extract_sfmt_str15
;
324 case 20 : itype
= FR30BF_INSN_ST
; goto extract_sfmt_st
;
325 case 21 : itype
= FR30BF_INSN_STH
; goto extract_sfmt_st
;
326 case 22 : itype
= FR30BF_INSN_STB
; goto extract_sfmt_st
;
329 unsigned int val
= (((insn
>> 4) & (15 << 0)));
332 case 0 : itype
= FR30BF_INSN_STR15GR
; goto extract_sfmt_str15gr
;
333 case 1 : itype
= FR30BF_INSN_MOVPS
; goto extract_sfmt_movps
;
334 case 8 : itype
= FR30BF_INSN_STR15DR
; goto extract_sfmt_str15dr
;
335 case 9 : itype
= FR30BF_INSN_STR15PS
; goto extract_sfmt_str15ps
;
336 default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
339 case 24 : itype
= FR30BF_INSN_DMOVR13
; goto extract_sfmt_dmovr13
;
340 case 25 : itype
= FR30BF_INSN_DMOVR13H
; goto extract_sfmt_dmovr13h
;
341 case 26 : itype
= FR30BF_INSN_DMOVR13B
; goto extract_sfmt_dmovr13b
;
342 case 27 : itype
= FR30BF_INSN_DMOVR15PI
; goto extract_sfmt_dmovr15pi
;
343 case 28 : itype
= FR30BF_INSN_DMOVR13PI
; goto extract_sfmt_dmovr13pi
;
344 case 29 : itype
= FR30BF_INSN_DMOVR13PIH
; goto extract_sfmt_dmovr13pih
;
345 case 30 : itype
= FR30BF_INSN_DMOVR13PIB
; goto extract_sfmt_dmovr13pib
;
346 case 31 : itype
= FR30BF_INSN_INT
; goto extract_sfmt_int
;
347 case 32 : /* fall through */
348 case 33 : /* fall through */
349 case 34 : /* fall through */
350 case 35 : /* fall through */
351 case 36 : /* fall through */
352 case 37 : /* fall through */
353 case 38 : /* fall through */
354 case 39 : /* fall through */
355 case 40 : /* fall through */
356 case 41 : /* fall through */
357 case 42 : /* fall through */
358 case 43 : /* fall through */
359 case 44 : /* fall through */
360 case 45 : /* fall through */
361 case 46 : /* fall through */
362 case 47 : itype
= FR30BF_INSN_LDR14
; goto extract_sfmt_ldr14
;
363 case 48 : /* fall through */
364 case 49 : /* fall through */
365 case 50 : /* fall through */
366 case 51 : /* fall through */
367 case 52 : /* fall through */
368 case 53 : /* fall through */
369 case 54 : /* fall through */
370 case 55 : /* fall through */
371 case 56 : /* fall through */
372 case 57 : /* fall through */
373 case 58 : /* fall through */
374 case 59 : /* fall through */
375 case 60 : /* fall through */
376 case 61 : /* fall through */
377 case 62 : /* fall through */
378 case 63 : itype
= FR30BF_INSN_STR14
; goto extract_sfmt_str14
;
379 case 64 : /* fall through */
380 case 65 : /* fall through */
381 case 66 : /* fall through */
382 case 67 : /* fall through */
383 case 68 : /* fall through */
384 case 69 : /* fall through */
385 case 70 : /* fall through */
386 case 71 : /* fall through */
387 case 72 : /* fall through */
388 case 73 : /* fall through */
389 case 74 : /* fall through */
390 case 75 : /* fall through */
391 case 76 : /* fall through */
392 case 77 : /* fall through */
393 case 78 : /* fall through */
394 case 79 : itype
= FR30BF_INSN_LDR14UH
; goto extract_sfmt_ldr14uh
;
395 case 80 : /* fall through */
396 case 81 : /* fall through */
397 case 82 : /* fall through */
398 case 83 : /* fall through */
399 case 84 : /* fall through */
400 case 85 : /* fall through */
401 case 86 : /* fall through */
402 case 87 : /* fall through */
403 case 88 : /* fall through */
404 case 89 : /* fall through */
405 case 90 : /* fall through */
406 case 91 : /* fall through */
407 case 92 : /* fall through */
408 case 93 : /* fall through */
409 case 94 : /* fall through */
410 case 95 : itype
= FR30BF_INSN_STR14H
; goto extract_sfmt_str14h
;
411 case 96 : /* fall through */
412 case 97 : /* fall through */
413 case 98 : /* fall through */
414 case 99 : /* fall through */
415 case 100 : /* fall through */
416 case 101 : /* fall through */
417 case 102 : /* fall through */
418 case 103 : /* fall through */
419 case 104 : /* fall through */
420 case 105 : /* fall through */
421 case 106 : /* fall through */
422 case 107 : /* fall through */
423 case 108 : /* fall through */
424 case 109 : /* fall through */
425 case 110 : /* fall through */
426 case 111 : itype
= FR30BF_INSN_LDR14UB
; goto extract_sfmt_ldr14ub
;
427 case 112 : /* fall through */
428 case 113 : /* fall through */
429 case 114 : /* fall through */
430 case 115 : /* fall through */
431 case 116 : /* fall through */
432 case 117 : /* fall through */
433 case 118 : /* fall through */
434 case 119 : /* fall through */
435 case 120 : /* fall through */
436 case 121 : /* fall through */
437 case 122 : /* fall through */
438 case 123 : /* fall through */
439 case 124 : /* fall through */
440 case 125 : /* fall through */
441 case 126 : /* fall through */
442 case 127 : itype
= FR30BF_INSN_STR14B
; goto extract_sfmt_str14b
;
443 case 128 : itype
= FR30BF_INSN_BANDL
; goto extract_sfmt_bandl
;
444 case 129 : itype
= FR30BF_INSN_BANDH
; goto extract_sfmt_bandl
;
445 case 130 : itype
= FR30BF_INSN_AND
; goto extract_sfmt_and
;
446 case 131 : itype
= FR30BF_INSN_ANDCCR
; goto extract_sfmt_andccr
;
447 case 132 : itype
= FR30BF_INSN_ANDM
; goto extract_sfmt_andm
;
448 case 133 : itype
= FR30BF_INSN_ANDH
; goto extract_sfmt_andh
;
449 case 134 : itype
= FR30BF_INSN_ANDB
; goto extract_sfmt_andb
;
450 case 135 : itype
= FR30BF_INSN_STILM
; goto extract_sfmt_stilm
;
451 case 136 : itype
= FR30BF_INSN_BTSTL
; goto extract_sfmt_btstl
;
452 case 137 : itype
= FR30BF_INSN_BTSTH
; goto extract_sfmt_btstl
;
453 case 138 : itype
= FR30BF_INSN_XCHB
; goto extract_sfmt_xchb
;
454 case 139 : itype
= FR30BF_INSN_MOV
; goto extract_sfmt_mov
;
455 case 140 : itype
= FR30BF_INSN_LDM0
; goto extract_sfmt_ldm0
;
456 case 141 : itype
= FR30BF_INSN_LDM1
; goto extract_sfmt_ldm1
;
457 case 142 : itype
= FR30BF_INSN_STM0
; goto extract_sfmt_stm0
;
458 case 143 : itype
= FR30BF_INSN_STM1
; goto extract_sfmt_stm1
;
459 case 144 : itype
= FR30BF_INSN_BORL
; goto extract_sfmt_bandl
;
460 case 145 : itype
= FR30BF_INSN_BORH
; goto extract_sfmt_bandl
;
461 case 146 : itype
= FR30BF_INSN_OR
; goto extract_sfmt_and
;
462 case 147 : itype
= FR30BF_INSN_ORCCR
; goto extract_sfmt_andccr
;
463 case 148 : itype
= FR30BF_INSN_ORM
; goto extract_sfmt_andm
;
464 case 149 : itype
= FR30BF_INSN_ORH
; goto extract_sfmt_andh
;
465 case 150 : itype
= FR30BF_INSN_ORB
; goto extract_sfmt_andb
;
468 unsigned int val
= (((insn
>> 4) & (15 << 0)));
471 case 0 : itype
= FR30BF_INSN_JMP
; goto extract_sfmt_jmp
;
472 case 1 : itype
= FR30BF_INSN_CALLR
; goto extract_sfmt_callr
;
473 case 2 : itype
= FR30BF_INSN_RET
; goto extract_sfmt_ret
;
474 case 3 : itype
= FR30BF_INSN_RETI
; goto extract_sfmt_reti
;
475 case 4 : itype
= FR30BF_INSN_DIV0S
; goto extract_sfmt_div0s
;
476 case 5 : itype
= FR30BF_INSN_DIV0U
; goto extract_sfmt_div0u
;
477 case 6 : itype
= FR30BF_INSN_DIV1
; goto extract_sfmt_div1
;
478 case 7 : itype
= FR30BF_INSN_DIV2
; goto extract_sfmt_div2
;
479 case 8 : itype
= FR30BF_INSN_EXTSB
; goto extract_sfmt_extsb
;
480 case 9 : itype
= FR30BF_INSN_EXTUB
; goto extract_sfmt_extub
;
481 case 10 : itype
= FR30BF_INSN_EXTSH
; goto extract_sfmt_extsh
;
482 case 11 : itype
= FR30BF_INSN_EXTUH
; goto extract_sfmt_extuh
;
483 default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
486 case 152 : itype
= FR30BF_INSN_BEORL
; goto extract_sfmt_bandl
;
487 case 153 : itype
= FR30BF_INSN_BEORH
; goto extract_sfmt_bandl
;
488 case 154 : itype
= FR30BF_INSN_EOR
; goto extract_sfmt_and
;
489 case 155 : itype
= FR30BF_INSN_LDI20
; goto extract_sfmt_ldi20
;
490 case 156 : itype
= FR30BF_INSN_EORM
; goto extract_sfmt_andm
;
491 case 157 : itype
= FR30BF_INSN_EORH
; goto extract_sfmt_andh
;
492 case 158 : itype
= FR30BF_INSN_EORB
; goto extract_sfmt_andb
;
495 unsigned int val
= (((insn
>> 4) & (15 << 0)));
498 case 0 : itype
= FR30BF_INSN_JMPD
; goto extract_sfmt_jmp
;
499 case 1 : itype
= FR30BF_INSN_CALLRD
; goto extract_sfmt_callr
;
500 case 2 : itype
= FR30BF_INSN_RET_D
; goto extract_sfmt_ret
;
501 case 3 : itype
= FR30BF_INSN_INTE
; goto extract_sfmt_inte
;
502 case 6 : itype
= FR30BF_INSN_DIV3
; goto extract_sfmt_div3
;
503 case 7 : itype
= FR30BF_INSN_DIV4S
; goto extract_sfmt_div4s
;
504 case 8 : itype
= FR30BF_INSN_LDI32
; goto extract_sfmt_ldi32
;
505 case 9 : itype
= FR30BF_INSN_LEAVE
; goto extract_sfmt_leave
;
506 case 10 : itype
= FR30BF_INSN_NOP
; goto extract_sfmt_bnod
;
507 case 12 : itype
= FR30BF_INSN_COPOP
; goto extract_sfmt_copop
;
508 case 13 : itype
= FR30BF_INSN_COPLD
; goto extract_sfmt_copop
;
509 case 14 : itype
= FR30BF_INSN_COPST
; goto extract_sfmt_copop
;
510 case 15 : itype
= FR30BF_INSN_COPSV
; goto extract_sfmt_copop
;
511 default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
514 case 160 : itype
= FR30BF_INSN_ADDNI
; goto extract_sfmt_addni
;
515 case 161 : itype
= FR30BF_INSN_ADDN2
; goto extract_sfmt_addn2
;
516 case 162 : itype
= FR30BF_INSN_ADDN
; goto extract_sfmt_addn
;
517 case 163 : itype
= FR30BF_INSN_ADDSP
; goto extract_sfmt_addsp
;
518 case 164 : itype
= FR30BF_INSN_ADDI
; goto extract_sfmt_addi
;
519 case 165 : itype
= FR30BF_INSN_ADD2
; goto extract_sfmt_add2
;
520 case 166 : itype
= FR30BF_INSN_ADD
; goto extract_sfmt_add
;
521 case 167 : itype
= FR30BF_INSN_ADDC
; goto extract_sfmt_addc
;
522 case 168 : itype
= FR30BF_INSN_CMPI
; goto extract_sfmt_cmpi
;
523 case 169 : itype
= FR30BF_INSN_CMP2
; goto extract_sfmt_cmp2
;
524 case 170 : itype
= FR30BF_INSN_CMP
; goto extract_sfmt_cmp
;
525 case 171 : itype
= FR30BF_INSN_MULU
; goto extract_sfmt_mulu
;
526 case 172 : itype
= FR30BF_INSN_SUB
; goto extract_sfmt_add
;
527 case 173 : itype
= FR30BF_INSN_SUBC
; goto extract_sfmt_addc
;
528 case 174 : itype
= FR30BF_INSN_SUBN
; goto extract_sfmt_addn
;
529 case 175 : itype
= FR30BF_INSN_MUL
; goto extract_sfmt_mul
;
530 case 176 : itype
= FR30BF_INSN_LSRI
; goto extract_sfmt_lsli
;
531 case 177 : itype
= FR30BF_INSN_LSR2
; goto extract_sfmt_lsli
;
532 case 178 : itype
= FR30BF_INSN_LSR
; goto extract_sfmt_lsl
;
533 case 179 : itype
= FR30BF_INSN_MOV2DR
; goto extract_sfmt_mov2dr
;
534 case 180 : itype
= FR30BF_INSN_LSLI
; goto extract_sfmt_lsli
;
535 case 181 : itype
= FR30BF_INSN_LSL2
; goto extract_sfmt_lsli
;
536 case 182 : itype
= FR30BF_INSN_LSL
; goto extract_sfmt_lsl
;
537 case 183 : itype
= FR30BF_INSN_MOVDR
; goto extract_sfmt_movdr
;
538 case 184 : itype
= FR30BF_INSN_ASRI
; goto extract_sfmt_lsli
;
539 case 185 : itype
= FR30BF_INSN_ASR2
; goto extract_sfmt_lsli
;
540 case 186 : itype
= FR30BF_INSN_ASR
; goto extract_sfmt_lsl
;
541 case 187 : itype
= FR30BF_INSN_MULUH
; goto extract_sfmt_mulh
;
542 case 188 : itype
= FR30BF_INSN_LDRES
; goto extract_sfmt_ldres
;
543 case 189 : itype
= FR30BF_INSN_STRES
; goto extract_sfmt_ldres
;
544 case 191 : itype
= FR30BF_INSN_MULH
; goto extract_sfmt_mulh
;
545 case 192 : /* fall through */
546 case 193 : /* fall through */
547 case 194 : /* fall through */
548 case 195 : /* fall through */
549 case 196 : /* fall through */
550 case 197 : /* fall through */
551 case 198 : /* fall through */
552 case 199 : /* fall through */
553 case 200 : /* fall through */
554 case 201 : /* fall through */
555 case 202 : /* fall through */
556 case 203 : /* fall through */
557 case 204 : /* fall through */
558 case 205 : /* fall through */
559 case 206 : /* fall through */
560 case 207 : itype
= FR30BF_INSN_LDI8
; goto extract_sfmt_ldi8
;
561 case 208 : /* fall through */
562 case 209 : /* fall through */
563 case 210 : /* fall through */
564 case 211 : /* fall through */
565 case 212 : /* fall through */
566 case 213 : /* fall through */
567 case 214 : /* fall through */
568 case 215 : itype
= FR30BF_INSN_CALL
; goto extract_sfmt_call
;
569 case 216 : /* fall through */
570 case 217 : /* fall through */
571 case 218 : /* fall through */
572 case 219 : /* fall through */
573 case 220 : /* fall through */
574 case 221 : /* fall through */
575 case 222 : /* fall through */
576 case 223 : itype
= FR30BF_INSN_CALLD
; goto extract_sfmt_call
;
577 case 224 : itype
= FR30BF_INSN_BRA
; goto extract_sfmt_brad
;
578 case 225 : itype
= FR30BF_INSN_BNO
; goto extract_sfmt_bnod
;
579 case 226 : itype
= FR30BF_INSN_BEQ
; goto extract_sfmt_beqd
;
580 case 227 : itype
= FR30BF_INSN_BNE
; goto extract_sfmt_beqd
;
581 case 228 : itype
= FR30BF_INSN_BC
; goto extract_sfmt_bcd
;
582 case 229 : itype
= FR30BF_INSN_BNC
; goto extract_sfmt_bcd
;
583 case 230 : itype
= FR30BF_INSN_BN
; goto extract_sfmt_bnd
;
584 case 231 : itype
= FR30BF_INSN_BP
; goto extract_sfmt_bnd
;
585 case 232 : itype
= FR30BF_INSN_BV
; goto extract_sfmt_bvd
;
586 case 233 : itype
= FR30BF_INSN_BNV
; goto extract_sfmt_bvd
;
587 case 234 : itype
= FR30BF_INSN_BLT
; goto extract_sfmt_bltd
;
588 case 235 : itype
= FR30BF_INSN_BGE
; goto extract_sfmt_bltd
;
589 case 236 : itype
= FR30BF_INSN_BLE
; goto extract_sfmt_bled
;
590 case 237 : itype
= FR30BF_INSN_BGT
; goto extract_sfmt_bled
;
591 case 238 : itype
= FR30BF_INSN_BLS
; goto extract_sfmt_blsd
;
592 case 239 : itype
= FR30BF_INSN_BHI
; goto extract_sfmt_blsd
;
593 case 240 : itype
= FR30BF_INSN_BRAD
; goto extract_sfmt_brad
;
594 case 241 : itype
= FR30BF_INSN_BNOD
; goto extract_sfmt_bnod
;
595 case 242 : itype
= FR30BF_INSN_BEQD
; goto extract_sfmt_beqd
;
596 case 243 : itype
= FR30BF_INSN_BNED
; goto extract_sfmt_beqd
;
597 case 244 : itype
= FR30BF_INSN_BCD
; goto extract_sfmt_bcd
;
598 case 245 : itype
= FR30BF_INSN_BNCD
; goto extract_sfmt_bcd
;
599 case 246 : itype
= FR30BF_INSN_BND
; goto extract_sfmt_bnd
;
600 case 247 : itype
= FR30BF_INSN_BPD
; goto extract_sfmt_bnd
;
601 case 248 : itype
= FR30BF_INSN_BVD
; goto extract_sfmt_bvd
;
602 case 249 : itype
= FR30BF_INSN_BNVD
; goto extract_sfmt_bvd
;
603 case 250 : itype
= FR30BF_INSN_BLTD
; goto extract_sfmt_bltd
;
604 case 251 : itype
= FR30BF_INSN_BGED
; goto extract_sfmt_bltd
;
605 case 252 : itype
= FR30BF_INSN_BLED
; goto extract_sfmt_bled
;
606 case 253 : itype
= FR30BF_INSN_BGTD
; goto extract_sfmt_bled
;
607 case 254 : itype
= FR30BF_INSN_BLSD
; goto extract_sfmt_blsd
;
608 case 255 : itype
= FR30BF_INSN_BHID
; goto extract_sfmt_blsd
;
609 default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
614 /* The instruction has been decoded, now extract the fields. */
618 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
619 CGEN_INSN_INT insn
= base_insn
;
620 #define FLD(f) abuf->fields.fmt_empty.f
623 /* Record the fields for the semantic handler. */
624 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
632 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
633 CGEN_INSN_INT insn
= base_insn
;
634 #define FLD(f) abuf->fields.sfmt_add.f
638 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
639 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
641 /* Record the fields for the semantic handler. */
642 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
643 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
644 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_add", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
646 #if WITH_PROFILE_MODEL_P
647 /* Record the fields for profiling. */
648 if (PROFILE_MODEL_P (current_cpu
))
661 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
662 CGEN_INSN_INT insn
= base_insn
;
663 #define FLD(f) abuf->fields.sfmt_addi.f
667 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
668 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
670 /* Record the fields for the semantic handler. */
672 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
673 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addi", "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
675 #if WITH_PROFILE_MODEL_P
676 /* Record the fields for profiling. */
677 if (PROFILE_MODEL_P (current_cpu
))
689 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
690 CGEN_INSN_INT insn
= base_insn
;
691 #define FLD(f) abuf->fields.sfmt_add2.f
695 f_m4
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) | (((-1) << (4))));
696 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
698 /* Record the fields for the semantic handler. */
700 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
701 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_add2", "f_m4 0x%x", 'x', f_m4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
703 #if WITH_PROFILE_MODEL_P
704 /* Record the fields for profiling. */
705 if (PROFILE_MODEL_P (current_cpu
))
717 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
718 CGEN_INSN_INT insn
= base_insn
;
719 #define FLD(f) abuf->fields.sfmt_add.f
723 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
724 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
726 /* Record the fields for the semantic handler. */
727 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
728 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
729 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addc", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
731 #if WITH_PROFILE_MODEL_P
732 /* Record the fields for profiling. */
733 if (PROFILE_MODEL_P (current_cpu
))
746 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
747 CGEN_INSN_INT insn
= base_insn
;
748 #define FLD(f) abuf->fields.sfmt_add.f
752 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
753 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
755 /* Record the fields for the semantic handler. */
756 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
757 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
758 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addn", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
760 #if WITH_PROFILE_MODEL_P
761 /* Record the fields for profiling. */
762 if (PROFILE_MODEL_P (current_cpu
))
775 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
776 CGEN_INSN_INT insn
= base_insn
;
777 #define FLD(f) abuf->fields.sfmt_addi.f
781 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
782 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
784 /* Record the fields for the semantic handler. */
786 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
787 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addni", "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
789 #if WITH_PROFILE_MODEL_P
790 /* Record the fields for profiling. */
791 if (PROFILE_MODEL_P (current_cpu
))
803 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
804 CGEN_INSN_INT insn
= base_insn
;
805 #define FLD(f) abuf->fields.sfmt_add2.f
809 f_m4
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) | (((-1) << (4))));
810 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
812 /* Record the fields for the semantic handler. */
814 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
815 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addn2", "f_m4 0x%x", 'x', f_m4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
817 #if WITH_PROFILE_MODEL_P
818 /* Record the fields for profiling. */
819 if (PROFILE_MODEL_P (current_cpu
))
831 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
832 CGEN_INSN_INT insn
= base_insn
;
833 #define FLD(f) abuf->fields.sfmt_str13.f
837 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
838 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
840 /* Record the fields for the semantic handler. */
841 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
842 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
843 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmp", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
845 #if WITH_PROFILE_MODEL_P
846 /* Record the fields for profiling. */
847 if (PROFILE_MODEL_P (current_cpu
))
859 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
860 CGEN_INSN_INT insn
= base_insn
;
861 #define FLD(f) abuf->fields.sfmt_addi.f
865 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
866 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
868 /* Record the fields for the semantic handler. */
870 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
871 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmpi", "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
873 #if WITH_PROFILE_MODEL_P
874 /* Record the fields for profiling. */
875 if (PROFILE_MODEL_P (current_cpu
))
886 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
887 CGEN_INSN_INT insn
= base_insn
;
888 #define FLD(f) abuf->fields.sfmt_add2.f
892 f_m4
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) | (((-1) << (4))));
893 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
895 /* Record the fields for the semantic handler. */
897 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
898 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmp2", "f_m4 0x%x", 'x', f_m4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
900 #if WITH_PROFILE_MODEL_P
901 /* Record the fields for profiling. */
902 if (PROFILE_MODEL_P (current_cpu
))
913 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
914 CGEN_INSN_INT insn
= base_insn
;
915 #define FLD(f) abuf->fields.sfmt_add.f
919 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
920 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
922 /* Record the fields for the semantic handler. */
923 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
924 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
925 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_and", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
927 #if WITH_PROFILE_MODEL_P
928 /* Record the fields for profiling. */
929 if (PROFILE_MODEL_P (current_cpu
))
942 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
943 CGEN_INSN_INT insn
= base_insn
;
944 #define FLD(f) abuf->fields.sfmt_str13.f
948 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
949 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
951 /* Record the fields for the semantic handler. */
952 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
953 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
954 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andm", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
956 #if WITH_PROFILE_MODEL_P
957 /* Record the fields for profiling. */
958 if (PROFILE_MODEL_P (current_cpu
))
970 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
971 CGEN_INSN_INT insn
= base_insn
;
972 #define FLD(f) abuf->fields.sfmt_str13.f
976 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
977 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
979 /* Record the fields for the semantic handler. */
980 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
981 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
982 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andh", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
984 #if WITH_PROFILE_MODEL_P
985 /* Record the fields for profiling. */
986 if (PROFILE_MODEL_P (current_cpu
))
998 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
999 CGEN_INSN_INT insn
= base_insn
;
1000 #define FLD(f) abuf->fields.sfmt_str13.f
1004 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1005 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1007 /* Record the fields for the semantic handler. */
1008 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1009 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1010 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andb", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1012 #if WITH_PROFILE_MODEL_P
1013 /* Record the fields for profiling. */
1014 if (PROFILE_MODEL_P (current_cpu
))
1026 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1027 CGEN_INSN_INT insn
= base_insn
;
1028 #define FLD(f) abuf->fields.sfmt_addi.f
1032 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1033 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1035 /* Record the fields for the semantic handler. */
1037 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1038 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bandl", "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1040 #if WITH_PROFILE_MODEL_P
1041 /* Record the fields for profiling. */
1042 if (PROFILE_MODEL_P (current_cpu
))
1053 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1054 CGEN_INSN_INT insn
= base_insn
;
1055 #define FLD(f) abuf->fields.sfmt_addi.f
1059 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1060 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1062 /* Record the fields for the semantic handler. */
1064 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1065 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_btstl", "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1067 #if WITH_PROFILE_MODEL_P
1068 /* Record the fields for profiling. */
1069 if (PROFILE_MODEL_P (current_cpu
))
1080 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1081 CGEN_INSN_INT insn
= base_insn
;
1082 #define FLD(f) abuf->fields.sfmt_str13.f
1086 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1087 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1089 /* Record the fields for the semantic handler. */
1090 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1091 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1092 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mul", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1094 #if WITH_PROFILE_MODEL_P
1095 /* Record the fields for profiling. */
1096 if (PROFILE_MODEL_P (current_cpu
))
1108 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1109 CGEN_INSN_INT insn
= base_insn
;
1110 #define FLD(f) abuf->fields.sfmt_str13.f
1114 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1115 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1117 /* Record the fields for the semantic handler. */
1118 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1119 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1120 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mulu", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1122 #if WITH_PROFILE_MODEL_P
1123 /* Record the fields for profiling. */
1124 if (PROFILE_MODEL_P (current_cpu
))
1136 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1137 CGEN_INSN_INT insn
= base_insn
;
1138 #define FLD(f) abuf->fields.sfmt_str13.f
1142 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1143 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1145 /* Record the fields for the semantic handler. */
1146 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1147 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1148 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mulh", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1150 #if WITH_PROFILE_MODEL_P
1151 /* Record the fields for profiling. */
1152 if (PROFILE_MODEL_P (current_cpu
))
1164 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1165 CGEN_INSN_INT insn
= base_insn
;
1166 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1169 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1171 /* Record the fields for the semantic handler. */
1172 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1173 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div0s", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1175 #if WITH_PROFILE_MODEL_P
1176 /* Record the fields for profiling. */
1177 if (PROFILE_MODEL_P (current_cpu
))
1188 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1189 CGEN_INSN_INT insn
= base_insn
;
1190 #define FLD(f) abuf->fields.fmt_empty.f
1193 /* Record the fields for the semantic handler. */
1194 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div0u", (char *) 0));
1202 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1203 CGEN_INSN_INT insn
= base_insn
;
1204 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1207 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1209 /* Record the fields for the semantic handler. */
1210 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1211 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div1", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1213 #if WITH_PROFILE_MODEL_P
1214 /* Record the fields for profiling. */
1215 if (PROFILE_MODEL_P (current_cpu
))
1226 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1227 CGEN_INSN_INT insn
= base_insn
;
1228 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1231 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1233 /* Record the fields for the semantic handler. */
1234 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1235 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div2", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1237 #if WITH_PROFILE_MODEL_P
1238 /* Record the fields for profiling. */
1239 if (PROFILE_MODEL_P (current_cpu
))
1250 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1251 CGEN_INSN_INT insn
= base_insn
;
1252 #define FLD(f) abuf->fields.fmt_empty.f
1255 /* Record the fields for the semantic handler. */
1256 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div3", (char *) 0));
1264 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1265 CGEN_INSN_INT insn
= base_insn
;
1266 #define FLD(f) abuf->fields.fmt_empty.f
1269 /* Record the fields for the semantic handler. */
1270 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div4s", (char *) 0));
1278 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1279 CGEN_INSN_INT insn
= base_insn
;
1280 #define FLD(f) abuf->fields.sfmt_add.f
1284 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1285 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1287 /* Record the fields for the semantic handler. */
1288 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1289 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1290 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lsl", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1292 #if WITH_PROFILE_MODEL_P
1293 /* Record the fields for profiling. */
1294 if (PROFILE_MODEL_P (current_cpu
))
1298 FLD (out_Ri
) = f_Ri
;
1307 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1308 CGEN_INSN_INT insn
= base_insn
;
1309 #define FLD(f) abuf->fields.sfmt_addi.f
1313 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1314 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1316 /* Record the fields for the semantic handler. */
1318 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1319 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lsli", "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1321 #if WITH_PROFILE_MODEL_P
1322 /* Record the fields for profiling. */
1323 if (PROFILE_MODEL_P (current_cpu
))
1326 FLD (out_Ri
) = f_Ri
;
1335 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1336 CGEN_INSN_INT insn
= base_insn
;
1337 #define FLD(f) abuf->fields.sfmt_ldi8.f
1341 f_i8
= EXTRACT_MSB0_UINT (insn
, 16, 4, 8);
1342 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1344 /* Record the fields for the semantic handler. */
1346 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1347 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldi8", "f_i8 0x%x", 'x', f_i8
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1349 #if WITH_PROFILE_MODEL_P
1350 /* Record the fields for profiling. */
1351 if (PROFILE_MODEL_P (current_cpu
))
1353 FLD (out_Ri
) = f_Ri
;
1362 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1363 CGEN_INSN_INT insn
= base_insn
;
1364 #define FLD(f) abuf->fields.sfmt_ldi20.f
1369 /* Contents of trailing part of insn. */
1372 word_1
= GETIMEMUHI (current_cpu
, pc
+ 2);
1373 f_i20_16
= (0|(EXTRACT_MSB0_UINT (word_1
, 16, 0, 16) << 0));
1374 f_i20_4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1375 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1377 f_i20
= ((((f_i20_4
) << (16))) | (f_i20_16
));
1380 /* Record the fields for the semantic handler. */
1381 FLD (f_i20
) = f_i20
;
1382 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1383 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldi20", "f_i20 0x%x", 'x', f_i20
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1385 #if WITH_PROFILE_MODEL_P
1386 /* Record the fields for profiling. */
1387 if (PROFILE_MODEL_P (current_cpu
))
1389 FLD (out_Ri
) = f_Ri
;
1398 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1399 CGEN_INSN_INT insn
= base_insn
;
1400 #define FLD(f) abuf->fields.sfmt_ldi32.f
1403 /* Contents of trailing part of insn. */
1407 word_1
= GETIMEMUHI (current_cpu
, pc
+ 2);
1408 word_2
= GETIMEMUHI (current_cpu
, pc
+ 4);
1409 f_i32
= (0|(EXTRACT_MSB0_UINT (word_2
, 16, 0, 16) << 0)|(EXTRACT_MSB0_UINT (word_1
, 16, 0, 16) << 16));
1410 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1412 /* Record the fields for the semantic handler. */
1413 FLD (f_i32
) = f_i32
;
1414 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1415 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldi32", "f_i32 0x%x", 'x', f_i32
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1417 #if WITH_PROFILE_MODEL_P
1418 /* Record the fields for profiling. */
1419 if (PROFILE_MODEL_P (current_cpu
))
1421 FLD (out_Ri
) = f_Ri
;
1430 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1431 CGEN_INSN_INT insn
= base_insn
;
1432 #define FLD(f) abuf->fields.sfmt_ldr13.f
1436 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1437 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1439 /* Record the fields for the semantic handler. */
1440 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1441 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1442 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ld", "Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1444 #if WITH_PROFILE_MODEL_P
1445 /* Record the fields for profiling. */
1446 if (PROFILE_MODEL_P (current_cpu
))
1449 FLD (out_Ri
) = f_Ri
;
1458 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1459 CGEN_INSN_INT insn
= base_insn
;
1460 #define FLD(f) abuf->fields.sfmt_ldr13.f
1464 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1465 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1467 /* Record the fields for the semantic handler. */
1468 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1469 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1470 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr13", "Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1472 #if WITH_PROFILE_MODEL_P
1473 /* Record the fields for profiling. */
1474 if (PROFILE_MODEL_P (current_cpu
))
1477 FLD (in_h_gr_13
) = 13;
1478 FLD (out_Ri
) = f_Ri
;
1487 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1488 CGEN_INSN_INT insn
= base_insn
;
1489 #define FLD(f) abuf->fields.sfmt_ldr14.f
1493 f_disp10
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (2));
1494 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1496 /* Record the fields for the semantic handler. */
1497 FLD (f_disp10
) = f_disp10
;
1498 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1499 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr14", "f_disp10 0x%x", 'x', f_disp10
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1501 #if WITH_PROFILE_MODEL_P
1502 /* Record the fields for profiling. */
1503 if (PROFILE_MODEL_P (current_cpu
))
1505 FLD (in_h_gr_14
) = 14;
1506 FLD (out_Ri
) = f_Ri
;
1513 extract_sfmt_ldr14uh
:
1515 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1516 CGEN_INSN_INT insn
= base_insn
;
1517 #define FLD(f) abuf->fields.sfmt_ldr14uh.f
1521 f_disp9
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (1));
1522 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1524 /* Record the fields for the semantic handler. */
1525 FLD (f_disp9
) = f_disp9
;
1526 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1527 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr14uh", "f_disp9 0x%x", 'x', f_disp9
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1529 #if WITH_PROFILE_MODEL_P
1530 /* Record the fields for profiling. */
1531 if (PROFILE_MODEL_P (current_cpu
))
1533 FLD (in_h_gr_14
) = 14;
1534 FLD (out_Ri
) = f_Ri
;
1541 extract_sfmt_ldr14ub
:
1543 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1544 CGEN_INSN_INT insn
= base_insn
;
1545 #define FLD(f) abuf->fields.sfmt_ldr14ub.f
1549 f_disp8
= EXTRACT_MSB0_INT (insn
, 16, 4, 8);
1550 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1552 /* Record the fields for the semantic handler. */
1553 FLD (f_disp8
) = f_disp8
;
1554 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1555 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr14ub", "f_disp8 0x%x", 'x', f_disp8
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1557 #if WITH_PROFILE_MODEL_P
1558 /* Record the fields for profiling. */
1559 if (PROFILE_MODEL_P (current_cpu
))
1561 FLD (in_h_gr_14
) = 14;
1562 FLD (out_Ri
) = f_Ri
;
1571 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1572 CGEN_INSN_INT insn
= base_insn
;
1573 #define FLD(f) abuf->fields.sfmt_ldr15.f
1577 f_udisp6
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) << (2));
1578 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1580 /* Record the fields for the semantic handler. */
1581 FLD (f_udisp6
) = f_udisp6
;
1582 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1583 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15", "f_udisp6 0x%x", 'x', f_udisp6
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1585 #if WITH_PROFILE_MODEL_P
1586 /* Record the fields for profiling. */
1587 if (PROFILE_MODEL_P (current_cpu
))
1589 FLD (in_h_gr_15
) = 15;
1590 FLD (out_Ri
) = f_Ri
;
1597 extract_sfmt_ldr15gr
:
1599 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1600 CGEN_INSN_INT insn
= base_insn
;
1601 #define FLD(f) abuf->fields.sfmt_ldr15gr.f
1604 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1606 /* Record the fields for the semantic handler. */
1608 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1609 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15gr", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1611 #if WITH_PROFILE_MODEL_P
1612 /* Record the fields for profiling. */
1613 if (PROFILE_MODEL_P (current_cpu
))
1615 FLD (in_h_gr_15
) = 15;
1616 FLD (out_Ri
) = f_Ri
;
1617 FLD (out_h_gr_15
) = 15;
1624 extract_sfmt_ldr15dr
:
1626 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1627 CGEN_INSN_INT insn
= base_insn
;
1628 #define FLD(f) abuf->fields.sfmt_ldr15dr.f
1631 f_Rs2
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1633 /* Record the fields for the semantic handler. */
1634 FLD (f_Rs2
) = f_Rs2
;
1635 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15dr", "f_Rs2 0x%x", 'x', f_Rs2
, (char *) 0));
1637 #if WITH_PROFILE_MODEL_P
1638 /* Record the fields for profiling. */
1639 if (PROFILE_MODEL_P (current_cpu
))
1641 FLD (in_h_gr_15
) = 15;
1642 FLD (out_h_gr_15
) = 15;
1649 extract_sfmt_ldr15ps
:
1651 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1652 CGEN_INSN_INT insn
= base_insn
;
1653 #define FLD(f) abuf->fields.sfmt_addsp.f
1656 /* Record the fields for the semantic handler. */
1657 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15ps", (char *) 0));
1659 #if WITH_PROFILE_MODEL_P
1660 /* Record the fields for profiling. */
1661 if (PROFILE_MODEL_P (current_cpu
))
1663 FLD (in_h_gr_15
) = 15;
1664 FLD (out_h_gr_15
) = 15;
1673 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1674 CGEN_INSN_INT insn
= base_insn
;
1675 #define FLD(f) abuf->fields.sfmt_str13.f
1679 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1680 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1682 /* Record the fields for the semantic handler. */
1683 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1684 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1685 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_st", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1687 #if WITH_PROFILE_MODEL_P
1688 /* Record the fields for profiling. */
1689 if (PROFILE_MODEL_P (current_cpu
))
1701 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1702 CGEN_INSN_INT insn
= base_insn
;
1703 #define FLD(f) abuf->fields.sfmt_str13.f
1707 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1708 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1710 /* Record the fields for the semantic handler. */
1711 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1712 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1713 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str13", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1715 #if WITH_PROFILE_MODEL_P
1716 /* Record the fields for profiling. */
1717 if (PROFILE_MODEL_P (current_cpu
))
1721 FLD (in_h_gr_13
) = 13;
1730 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1731 CGEN_INSN_INT insn
= base_insn
;
1732 #define FLD(f) abuf->fields.sfmt_str14.f
1736 f_disp10
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (2));
1737 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1739 /* Record the fields for the semantic handler. */
1740 FLD (f_disp10
) = f_disp10
;
1741 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1742 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str14", "f_disp10 0x%x", 'x', f_disp10
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1744 #if WITH_PROFILE_MODEL_P
1745 /* Record the fields for profiling. */
1746 if (PROFILE_MODEL_P (current_cpu
))
1749 FLD (in_h_gr_14
) = 14;
1756 extract_sfmt_str14h
:
1758 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1759 CGEN_INSN_INT insn
= base_insn
;
1760 #define FLD(f) abuf->fields.sfmt_str14h.f
1764 f_disp9
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (1));
1765 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1767 /* Record the fields for the semantic handler. */
1768 FLD (f_disp9
) = f_disp9
;
1769 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1770 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str14h", "f_disp9 0x%x", 'x', f_disp9
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1772 #if WITH_PROFILE_MODEL_P
1773 /* Record the fields for profiling. */
1774 if (PROFILE_MODEL_P (current_cpu
))
1777 FLD (in_h_gr_14
) = 14;
1784 extract_sfmt_str14b
:
1786 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1787 CGEN_INSN_INT insn
= base_insn
;
1788 #define FLD(f) abuf->fields.sfmt_str14b.f
1792 f_disp8
= EXTRACT_MSB0_INT (insn
, 16, 4, 8);
1793 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1795 /* Record the fields for the semantic handler. */
1796 FLD (f_disp8
) = f_disp8
;
1797 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1798 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str14b", "f_disp8 0x%x", 'x', f_disp8
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1800 #if WITH_PROFILE_MODEL_P
1801 /* Record the fields for profiling. */
1802 if (PROFILE_MODEL_P (current_cpu
))
1805 FLD (in_h_gr_14
) = 14;
1814 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1815 CGEN_INSN_INT insn
= base_insn
;
1816 #define FLD(f) abuf->fields.sfmt_str15.f
1820 f_udisp6
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) << (2));
1821 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1823 /* Record the fields for the semantic handler. */
1824 FLD (f_udisp6
) = f_udisp6
;
1825 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1826 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15", "f_udisp6 0x%x", 'x', f_udisp6
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1828 #if WITH_PROFILE_MODEL_P
1829 /* Record the fields for profiling. */
1830 if (PROFILE_MODEL_P (current_cpu
))
1833 FLD (in_h_gr_15
) = 15;
1840 extract_sfmt_str15gr
:
1842 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1843 CGEN_INSN_INT insn
= base_insn
;
1844 #define FLD(f) abuf->fields.sfmt_str15gr.f
1847 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1849 /* Record the fields for the semantic handler. */
1850 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1851 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15gr", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1853 #if WITH_PROFILE_MODEL_P
1854 /* Record the fields for profiling. */
1855 if (PROFILE_MODEL_P (current_cpu
))
1858 FLD (in_h_gr_15
) = 15;
1859 FLD (out_h_gr_15
) = 15;
1866 extract_sfmt_str15dr
:
1868 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1869 CGEN_INSN_INT insn
= base_insn
;
1870 #define FLD(f) abuf->fields.sfmt_ldr15dr.f
1873 f_Rs2
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1875 /* Record the fields for the semantic handler. */
1876 FLD (f_Rs2
) = f_Rs2
;
1877 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15dr", "f_Rs2 0x%x", 'x', f_Rs2
, (char *) 0));
1879 #if WITH_PROFILE_MODEL_P
1880 /* Record the fields for profiling. */
1881 if (PROFILE_MODEL_P (current_cpu
))
1883 FLD (in_h_gr_15
) = 15;
1884 FLD (out_h_gr_15
) = 15;
1891 extract_sfmt_str15ps
:
1893 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1894 CGEN_INSN_INT insn
= base_insn
;
1895 #define FLD(f) abuf->fields.sfmt_addsp.f
1898 /* Record the fields for the semantic handler. */
1899 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15ps", (char *) 0));
1901 #if WITH_PROFILE_MODEL_P
1902 /* Record the fields for profiling. */
1903 if (PROFILE_MODEL_P (current_cpu
))
1905 FLD (in_h_gr_15
) = 15;
1906 FLD (out_h_gr_15
) = 15;
1915 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1916 CGEN_INSN_INT insn
= base_insn
;
1917 #define FLD(f) abuf->fields.sfmt_ldr13.f
1921 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1922 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1924 /* Record the fields for the semantic handler. */
1925 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1926 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1927 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov", "Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1929 #if WITH_PROFILE_MODEL_P
1930 /* Record the fields for profiling. */
1931 if (PROFILE_MODEL_P (current_cpu
))
1934 FLD (out_Ri
) = f_Ri
;
1943 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1944 CGEN_INSN_INT insn
= base_insn
;
1945 #define FLD(f) abuf->fields.sfmt_movdr.f
1949 f_Rs1
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1950 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1952 /* Record the fields for the semantic handler. */
1953 FLD (f_Rs1
) = f_Rs1
;
1954 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1955 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movdr", "f_Rs1 0x%x", 'x', f_Rs1
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1957 #if WITH_PROFILE_MODEL_P
1958 /* Record the fields for profiling. */
1959 if (PROFILE_MODEL_P (current_cpu
))
1961 FLD (out_Ri
) = f_Ri
;
1970 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1971 CGEN_INSN_INT insn
= base_insn
;
1972 #define FLD(f) abuf->fields.sfmt_movdr.f
1975 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1977 /* Record the fields for the semantic handler. */
1978 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1979 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movps", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1981 #if WITH_PROFILE_MODEL_P
1982 /* Record the fields for profiling. */
1983 if (PROFILE_MODEL_P (current_cpu
))
1985 FLD (out_Ri
) = f_Ri
;
1992 extract_sfmt_mov2dr
:
1994 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1995 CGEN_INSN_INT insn
= base_insn
;
1996 #define FLD(f) abuf->fields.sfmt_mov2dr.f
2000 f_Rs1
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
2001 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2003 /* Record the fields for the semantic handler. */
2004 FLD (f_Rs1
) = f_Rs1
;
2005 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2006 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov2dr", "f_Rs1 0x%x", 'x', f_Rs1
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2008 #if WITH_PROFILE_MODEL_P
2009 /* Record the fields for profiling. */
2010 if (PROFILE_MODEL_P (current_cpu
))
2019 extract_sfmt_mov2ps
:
2021 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2022 CGEN_INSN_INT insn
= base_insn
;
2023 #define FLD(f) abuf->fields.sfmt_mov2dr.f
2026 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2028 /* Record the fields for the semantic handler. */
2029 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2030 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov2ps", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2032 #if WITH_PROFILE_MODEL_P
2033 /* Record the fields for profiling. */
2034 if (PROFILE_MODEL_P (current_cpu
))
2045 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2046 CGEN_INSN_INT insn
= base_insn
;
2047 #define FLD(f) abuf->fields.sfmt_mov2dr.f
2050 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2052 /* Record the fields for the semantic handler. */
2053 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2054 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jmp", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2056 #if WITH_PROFILE_MODEL_P
2057 /* Record the fields for profiling. */
2058 if (PROFILE_MODEL_P (current_cpu
))
2069 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2070 CGEN_INSN_INT insn
= base_insn
;
2071 #define FLD(f) abuf->fields.sfmt_mov2dr.f
2074 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2076 /* Record the fields for the semantic handler. */
2077 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2078 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_callr", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2080 #if WITH_PROFILE_MODEL_P
2081 /* Record the fields for profiling. */
2082 if (PROFILE_MODEL_P (current_cpu
))
2093 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2094 CGEN_INSN_INT insn
= base_insn
;
2095 #define FLD(f) abuf->fields.sfmt_call.f
2098 f_rel12
= ((((EXTRACT_MSB0_INT (insn
, 16, 5, 11)) << (1))) + (((pc
) + (2))));
2100 /* Record the fields for the semantic handler. */
2101 FLD (i_label12
) = f_rel12
;
2102 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_call", "label12 0x%x", 'x', f_rel12
, (char *) 0));
2104 #if WITH_PROFILE_MODEL_P
2105 /* Record the fields for profiling. */
2106 if (PROFILE_MODEL_P (current_cpu
))
2116 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2117 CGEN_INSN_INT insn
= base_insn
;
2118 #define FLD(f) abuf->fields.fmt_empty.f
2121 /* Record the fields for the semantic handler. */
2122 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ret", (char *) 0));
2124 #if WITH_PROFILE_MODEL_P
2125 /* Record the fields for profiling. */
2126 if (PROFILE_MODEL_P (current_cpu
))
2136 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2137 CGEN_INSN_INT insn
= base_insn
;
2138 #define FLD(f) abuf->fields.sfmt_int.f
2141 f_u8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2143 /* Record the fields for the semantic handler. */
2145 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_int", "f_u8 0x%x", 'x', f_u8
, (char *) 0));
2147 #if WITH_PROFILE_MODEL_P
2148 /* Record the fields for profiling. */
2149 if (PROFILE_MODEL_P (current_cpu
))
2159 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2160 CGEN_INSN_INT insn
= base_insn
;
2161 #define FLD(f) abuf->fields.fmt_empty.f
2164 /* Record the fields for the semantic handler. */
2165 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_inte", (char *) 0));
2167 #if WITH_PROFILE_MODEL_P
2168 /* Record the fields for profiling. */
2169 if (PROFILE_MODEL_P (current_cpu
))
2179 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2180 CGEN_INSN_INT insn
= base_insn
;
2181 #define FLD(f) abuf->fields.fmt_empty.f
2184 /* Record the fields for the semantic handler. */
2185 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_reti", (char *) 0));
2187 #if WITH_PROFILE_MODEL_P
2188 /* Record the fields for profiling. */
2189 if (PROFILE_MODEL_P (current_cpu
))
2199 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2200 CGEN_INSN_INT insn
= base_insn
;
2201 #define FLD(f) abuf->fields.sfmt_brad.f
2204 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2206 /* Record the fields for the semantic handler. */
2207 FLD (i_label9
) = f_rel9
;
2208 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_brad", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2210 #if WITH_PROFILE_MODEL_P
2211 /* Record the fields for profiling. */
2212 if (PROFILE_MODEL_P (current_cpu
))
2222 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2223 CGEN_INSN_INT insn
= base_insn
;
2224 #define FLD(f) abuf->fields.fmt_empty.f
2227 /* Record the fields for the semantic handler. */
2228 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bnod", (char *) 0));
2236 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2237 CGEN_INSN_INT insn
= base_insn
;
2238 #define FLD(f) abuf->fields.sfmt_brad.f
2241 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2243 /* Record the fields for the semantic handler. */
2244 FLD (i_label9
) = f_rel9
;
2245 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_beqd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2247 #if WITH_PROFILE_MODEL_P
2248 /* Record the fields for profiling. */
2249 if (PROFILE_MODEL_P (current_cpu
))
2259 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2260 CGEN_INSN_INT insn
= base_insn
;
2261 #define FLD(f) abuf->fields.sfmt_brad.f
2264 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2266 /* Record the fields for the semantic handler. */
2267 FLD (i_label9
) = f_rel9
;
2268 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bcd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2270 #if WITH_PROFILE_MODEL_P
2271 /* Record the fields for profiling. */
2272 if (PROFILE_MODEL_P (current_cpu
))
2282 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2283 CGEN_INSN_INT insn
= base_insn
;
2284 #define FLD(f) abuf->fields.sfmt_brad.f
2287 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2289 /* Record the fields for the semantic handler. */
2290 FLD (i_label9
) = f_rel9
;
2291 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bnd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2293 #if WITH_PROFILE_MODEL_P
2294 /* Record the fields for profiling. */
2295 if (PROFILE_MODEL_P (current_cpu
))
2305 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2306 CGEN_INSN_INT insn
= base_insn
;
2307 #define FLD(f) abuf->fields.sfmt_brad.f
2310 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2312 /* Record the fields for the semantic handler. */
2313 FLD (i_label9
) = f_rel9
;
2314 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bvd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2316 #if WITH_PROFILE_MODEL_P
2317 /* Record the fields for profiling. */
2318 if (PROFILE_MODEL_P (current_cpu
))
2328 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2329 CGEN_INSN_INT insn
= base_insn
;
2330 #define FLD(f) abuf->fields.sfmt_brad.f
2333 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2335 /* Record the fields for the semantic handler. */
2336 FLD (i_label9
) = f_rel9
;
2337 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bltd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2339 #if WITH_PROFILE_MODEL_P
2340 /* Record the fields for profiling. */
2341 if (PROFILE_MODEL_P (current_cpu
))
2351 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2352 CGEN_INSN_INT insn
= base_insn
;
2353 #define FLD(f) abuf->fields.sfmt_brad.f
2356 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2358 /* Record the fields for the semantic handler. */
2359 FLD (i_label9
) = f_rel9
;
2360 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bled", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2362 #if WITH_PROFILE_MODEL_P
2363 /* Record the fields for profiling. */
2364 if (PROFILE_MODEL_P (current_cpu
))
2374 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2375 CGEN_INSN_INT insn
= base_insn
;
2376 #define FLD(f) abuf->fields.sfmt_brad.f
2379 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2381 /* Record the fields for the semantic handler. */
2382 FLD (i_label9
) = f_rel9
;
2383 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_blsd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2385 #if WITH_PROFILE_MODEL_P
2386 /* Record the fields for profiling. */
2387 if (PROFILE_MODEL_P (current_cpu
))
2395 extract_sfmt_dmovr13
:
2397 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2398 CGEN_INSN_INT insn
= base_insn
;
2399 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2402 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2404 /* Record the fields for the semantic handler. */
2405 FLD (f_dir10
) = f_dir10
;
2406 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2408 #if WITH_PROFILE_MODEL_P
2409 /* Record the fields for profiling. */
2410 if (PROFILE_MODEL_P (current_cpu
))
2412 FLD (in_h_gr_13
) = 13;
2419 extract_sfmt_dmovr13h
:
2421 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2422 CGEN_INSN_INT insn
= base_insn
;
2423 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2426 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2428 /* Record the fields for the semantic handler. */
2429 FLD (f_dir9
) = f_dir9
;
2430 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13h", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2432 #if WITH_PROFILE_MODEL_P
2433 /* Record the fields for profiling. */
2434 if (PROFILE_MODEL_P (current_cpu
))
2436 FLD (in_h_gr_13
) = 13;
2443 extract_sfmt_dmovr13b
:
2445 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2446 CGEN_INSN_INT insn
= base_insn
;
2447 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2450 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2452 /* Record the fields for the semantic handler. */
2453 FLD (f_dir8
) = f_dir8
;
2454 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13b", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2456 #if WITH_PROFILE_MODEL_P
2457 /* Record the fields for profiling. */
2458 if (PROFILE_MODEL_P (current_cpu
))
2460 FLD (in_h_gr_13
) = 13;
2467 extract_sfmt_dmovr13pi
:
2469 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2470 CGEN_INSN_INT insn
= base_insn
;
2471 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2474 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2476 /* Record the fields for the semantic handler. */
2477 FLD (f_dir10
) = f_dir10
;
2478 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13pi", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2480 #if WITH_PROFILE_MODEL_P
2481 /* Record the fields for profiling. */
2482 if (PROFILE_MODEL_P (current_cpu
))
2484 FLD (in_h_gr_13
) = 13;
2485 FLD (out_h_gr_13
) = 13;
2492 extract_sfmt_dmovr13pih
:
2494 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2495 CGEN_INSN_INT insn
= base_insn
;
2496 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2499 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2501 /* Record the fields for the semantic handler. */
2502 FLD (f_dir9
) = f_dir9
;
2503 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13pih", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2505 #if WITH_PROFILE_MODEL_P
2506 /* Record the fields for profiling. */
2507 if (PROFILE_MODEL_P (current_cpu
))
2509 FLD (in_h_gr_13
) = 13;
2510 FLD (out_h_gr_13
) = 13;
2517 extract_sfmt_dmovr13pib
:
2519 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2520 CGEN_INSN_INT insn
= base_insn
;
2521 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2524 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2526 /* Record the fields for the semantic handler. */
2527 FLD (f_dir8
) = f_dir8
;
2528 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13pib", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2530 #if WITH_PROFILE_MODEL_P
2531 /* Record the fields for profiling. */
2532 if (PROFILE_MODEL_P (current_cpu
))
2534 FLD (in_h_gr_13
) = 13;
2535 FLD (out_h_gr_13
) = 13;
2542 extract_sfmt_dmovr15pi
:
2544 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2545 CGEN_INSN_INT insn
= base_insn
;
2546 #define FLD(f) abuf->fields.sfmt_dmovr15pi.f
2549 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2551 /* Record the fields for the semantic handler. */
2552 FLD (f_dir10
) = f_dir10
;
2553 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr15pi", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2555 #if WITH_PROFILE_MODEL_P
2556 /* Record the fields for profiling. */
2557 if (PROFILE_MODEL_P (current_cpu
))
2559 FLD (in_h_gr_15
) = 15;
2560 FLD (out_h_gr_15
) = 15;
2567 extract_sfmt_dmov2r13
:
2569 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2570 CGEN_INSN_INT insn
= base_insn
;
2571 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2574 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2576 /* Record the fields for the semantic handler. */
2577 FLD (f_dir10
) = f_dir10
;
2578 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2580 #if WITH_PROFILE_MODEL_P
2581 /* Record the fields for profiling. */
2582 if (PROFILE_MODEL_P (current_cpu
))
2584 FLD (out_h_gr_13
) = 13;
2591 extract_sfmt_dmov2r13h
:
2593 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2594 CGEN_INSN_INT insn
= base_insn
;
2595 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2598 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2600 /* Record the fields for the semantic handler. */
2601 FLD (f_dir9
) = f_dir9
;
2602 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13h", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2604 #if WITH_PROFILE_MODEL_P
2605 /* Record the fields for profiling. */
2606 if (PROFILE_MODEL_P (current_cpu
))
2608 FLD (out_h_gr_13
) = 13;
2615 extract_sfmt_dmov2r13b
:
2617 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2618 CGEN_INSN_INT insn
= base_insn
;
2619 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2622 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2624 /* Record the fields for the semantic handler. */
2625 FLD (f_dir8
) = f_dir8
;
2626 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13b", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2628 #if WITH_PROFILE_MODEL_P
2629 /* Record the fields for profiling. */
2630 if (PROFILE_MODEL_P (current_cpu
))
2632 FLD (out_h_gr_13
) = 13;
2639 extract_sfmt_dmov2r13pi
:
2641 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2642 CGEN_INSN_INT insn
= base_insn
;
2643 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2646 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2648 /* Record the fields for the semantic handler. */
2649 FLD (f_dir10
) = f_dir10
;
2650 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13pi", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2652 #if WITH_PROFILE_MODEL_P
2653 /* Record the fields for profiling. */
2654 if (PROFILE_MODEL_P (current_cpu
))
2656 FLD (in_h_gr_13
) = 13;
2657 FLD (out_h_gr_13
) = 13;
2664 extract_sfmt_dmov2r13pih
:
2666 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2667 CGEN_INSN_INT insn
= base_insn
;
2668 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2671 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2673 /* Record the fields for the semantic handler. */
2674 FLD (f_dir9
) = f_dir9
;
2675 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13pih", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2677 #if WITH_PROFILE_MODEL_P
2678 /* Record the fields for profiling. */
2679 if (PROFILE_MODEL_P (current_cpu
))
2681 FLD (in_h_gr_13
) = 13;
2682 FLD (out_h_gr_13
) = 13;
2689 extract_sfmt_dmov2r13pib
:
2691 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2692 CGEN_INSN_INT insn
= base_insn
;
2693 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2696 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2698 /* Record the fields for the semantic handler. */
2699 FLD (f_dir8
) = f_dir8
;
2700 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13pib", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2702 #if WITH_PROFILE_MODEL_P
2703 /* Record the fields for profiling. */
2704 if (PROFILE_MODEL_P (current_cpu
))
2706 FLD (in_h_gr_13
) = 13;
2707 FLD (out_h_gr_13
) = 13;
2714 extract_sfmt_dmov2r15pd
:
2716 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2717 CGEN_INSN_INT insn
= base_insn
;
2718 #define FLD(f) abuf->fields.sfmt_dmovr15pi.f
2721 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2723 /* Record the fields for the semantic handler. */
2724 FLD (f_dir10
) = f_dir10
;
2725 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r15pd", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2727 #if WITH_PROFILE_MODEL_P
2728 /* Record the fields for profiling. */
2729 if (PROFILE_MODEL_P (current_cpu
))
2731 FLD (in_h_gr_15
) = 15;
2732 FLD (out_h_gr_15
) = 15;
2741 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2742 CGEN_INSN_INT insn
= base_insn
;
2743 #define FLD(f) abuf->fields.sfmt_add2.f
2746 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2748 /* Record the fields for the semantic handler. */
2749 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2750 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldres", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2752 #if WITH_PROFILE_MODEL_P
2753 /* Record the fields for profiling. */
2754 if (PROFILE_MODEL_P (current_cpu
))
2757 FLD (out_Ri
) = f_Ri
;
2766 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2767 CGEN_INSN_INT insn
= base_insn
;
2768 #define FLD(f) abuf->fields.fmt_empty.f
2769 /* Contents of trailing part of insn. */
2772 word_1
= GETIMEMUHI (current_cpu
, pc
+ 2);
2774 /* Record the fields for the semantic handler. */
2775 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_copop", (char *) 0));
2781 extract_sfmt_andccr
:
2783 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2784 CGEN_INSN_INT insn
= base_insn
;
2785 #define FLD(f) abuf->fields.sfmt_int.f
2788 f_u8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2790 /* Record the fields for the semantic handler. */
2792 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andccr", "f_u8 0x%x", 'x', f_u8
, (char *) 0));
2800 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2801 CGEN_INSN_INT insn
= base_insn
;
2802 #define FLD(f) abuf->fields.sfmt_int.f
2805 f_u8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2807 /* Record the fields for the semantic handler. */
2809 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stilm", "f_u8 0x%x", 'x', f_u8
, (char *) 0));
2817 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2818 CGEN_INSN_INT insn
= base_insn
;
2819 #define FLD(f) abuf->fields.sfmt_addsp.f
2822 f_s10
= ((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (2));
2824 /* Record the fields for the semantic handler. */
2825 FLD (f_s10
) = f_s10
;
2826 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addsp", "f_s10 0x%x", 'x', f_s10
, (char *) 0));
2828 #if WITH_PROFILE_MODEL_P
2829 /* Record the fields for profiling. */
2830 if (PROFILE_MODEL_P (current_cpu
))
2832 FLD (in_h_gr_15
) = 15;
2833 FLD (out_h_gr_15
) = 15;
2842 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2843 CGEN_INSN_INT insn
= base_insn
;
2844 #define FLD(f) abuf->fields.sfmt_add2.f
2847 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2849 /* Record the fields for the semantic handler. */
2850 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2851 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extsb", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2853 #if WITH_PROFILE_MODEL_P
2854 /* Record the fields for profiling. */
2855 if (PROFILE_MODEL_P (current_cpu
))
2858 FLD (out_Ri
) = f_Ri
;
2867 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2868 CGEN_INSN_INT insn
= base_insn
;
2869 #define FLD(f) abuf->fields.sfmt_add2.f
2872 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2874 /* Record the fields for the semantic handler. */
2875 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2876 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extub", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2878 #if WITH_PROFILE_MODEL_P
2879 /* Record the fields for profiling. */
2880 if (PROFILE_MODEL_P (current_cpu
))
2883 FLD (out_Ri
) = f_Ri
;
2892 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2893 CGEN_INSN_INT insn
= base_insn
;
2894 #define FLD(f) abuf->fields.sfmt_add2.f
2897 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2899 /* Record the fields for the semantic handler. */
2900 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2901 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extsh", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2903 #if WITH_PROFILE_MODEL_P
2904 /* Record the fields for profiling. */
2905 if (PROFILE_MODEL_P (current_cpu
))
2908 FLD (out_Ri
) = f_Ri
;
2917 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2918 CGEN_INSN_INT insn
= base_insn
;
2919 #define FLD(f) abuf->fields.sfmt_add2.f
2922 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2924 /* Record the fields for the semantic handler. */
2925 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2926 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extuh", "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2928 #if WITH_PROFILE_MODEL_P
2929 /* Record the fields for profiling. */
2930 if (PROFILE_MODEL_P (current_cpu
))
2933 FLD (out_Ri
) = f_Ri
;
2942 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2943 CGEN_INSN_INT insn
= base_insn
;
2944 #define FLD(f) abuf->fields.sfmt_ldm0.f
2945 UINT f_reglist_low_ld
;
2947 f_reglist_low_ld
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2949 /* Record the fields for the semantic handler. */
2950 FLD (f_reglist_low_ld
) = f_reglist_low_ld
;
2951 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldm0", "f_reglist_low_ld 0x%x", 'x', f_reglist_low_ld
, (char *) 0));
2953 #if WITH_PROFILE_MODEL_P
2954 /* Record the fields for profiling. */
2955 if (PROFILE_MODEL_P (current_cpu
))
2957 FLD (in_h_gr_15
) = 15;
2958 FLD (out_h_gr_0
) = 0;
2959 FLD (out_h_gr_1
) = 1;
2960 FLD (out_h_gr_15
) = 15;
2961 FLD (out_h_gr_2
) = 2;
2962 FLD (out_h_gr_3
) = 3;
2963 FLD (out_h_gr_4
) = 4;
2964 FLD (out_h_gr_5
) = 5;
2965 FLD (out_h_gr_6
) = 6;
2966 FLD (out_h_gr_7
) = 7;
2975 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2976 CGEN_INSN_INT insn
= base_insn
;
2977 #define FLD(f) abuf->fields.sfmt_ldm1.f
2978 UINT f_reglist_hi_ld
;
2980 f_reglist_hi_ld
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2982 /* Record the fields for the semantic handler. */
2983 FLD (f_reglist_hi_ld
) = f_reglist_hi_ld
;
2984 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldm1", "f_reglist_hi_ld 0x%x", 'x', f_reglist_hi_ld
, (char *) 0));
2986 #if WITH_PROFILE_MODEL_P
2987 /* Record the fields for profiling. */
2988 if (PROFILE_MODEL_P (current_cpu
))
2990 FLD (in_h_gr_15
) = 15;
2991 FLD (out_h_gr_10
) = 10;
2992 FLD (out_h_gr_11
) = 11;
2993 FLD (out_h_gr_12
) = 12;
2994 FLD (out_h_gr_13
) = 13;
2995 FLD (out_h_gr_14
) = 14;
2996 FLD (out_h_gr_15
) = 15;
2997 FLD (out_h_gr_8
) = 8;
2998 FLD (out_h_gr_9
) = 9;
3007 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
3008 CGEN_INSN_INT insn
= base_insn
;
3009 #define FLD(f) abuf->fields.sfmt_stm0.f
3010 UINT f_reglist_low_st
;
3012 f_reglist_low_st
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
3014 /* Record the fields for the semantic handler. */
3015 FLD (f_reglist_low_st
) = f_reglist_low_st
;
3016 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stm0", "f_reglist_low_st 0x%x", 'x', f_reglist_low_st
, (char *) 0));
3018 #if WITH_PROFILE_MODEL_P
3019 /* Record the fields for profiling. */
3020 if (PROFILE_MODEL_P (current_cpu
))
3022 FLD (in_h_gr_0
) = 0;
3023 FLD (in_h_gr_1
) = 1;
3024 FLD (in_h_gr_15
) = 15;
3025 FLD (in_h_gr_2
) = 2;
3026 FLD (in_h_gr_3
) = 3;
3027 FLD (in_h_gr_4
) = 4;
3028 FLD (in_h_gr_5
) = 5;
3029 FLD (in_h_gr_6
) = 6;
3030 FLD (in_h_gr_7
) = 7;
3031 FLD (out_h_gr_15
) = 15;
3040 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
3041 CGEN_INSN_INT insn
= base_insn
;
3042 #define FLD(f) abuf->fields.sfmt_stm1.f
3043 UINT f_reglist_hi_st
;
3045 f_reglist_hi_st
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
3047 /* Record the fields for the semantic handler. */
3048 FLD (f_reglist_hi_st
) = f_reglist_hi_st
;
3049 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stm1", "f_reglist_hi_st 0x%x", 'x', f_reglist_hi_st
, (char *) 0));
3051 #if WITH_PROFILE_MODEL_P
3052 /* Record the fields for profiling. */
3053 if (PROFILE_MODEL_P (current_cpu
))
3055 FLD (in_h_gr_10
) = 10;
3056 FLD (in_h_gr_11
) = 11;
3057 FLD (in_h_gr_12
) = 12;
3058 FLD (in_h_gr_13
) = 13;
3059 FLD (in_h_gr_14
) = 14;
3060 FLD (in_h_gr_15
) = 15;
3061 FLD (in_h_gr_8
) = 8;
3062 FLD (in_h_gr_9
) = 9;
3063 FLD (out_h_gr_15
) = 15;
3072 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
3073 CGEN_INSN_INT insn
= base_insn
;
3074 #define FLD(f) abuf->fields.sfmt_enter.f
3077 f_u10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
3079 /* Record the fields for the semantic handler. */
3080 FLD (f_u10
) = f_u10
;
3081 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_enter", "f_u10 0x%x", 'x', f_u10
, (char *) 0));
3083 #if WITH_PROFILE_MODEL_P
3084 /* Record the fields for profiling. */
3085 if (PROFILE_MODEL_P (current_cpu
))
3087 FLD (in_h_gr_14
) = 14;
3088 FLD (in_h_gr_15
) = 15;
3089 FLD (out_h_gr_14
) = 14;
3090 FLD (out_h_gr_15
) = 15;
3099 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
3100 CGEN_INSN_INT insn
= base_insn
;
3101 #define FLD(f) abuf->fields.sfmt_enter.f
3104 /* Record the fields for the semantic handler. */
3105 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_leave", (char *) 0));
3107 #if WITH_PROFILE_MODEL_P
3108 /* Record the fields for profiling. */
3109 if (PROFILE_MODEL_P (current_cpu
))
3111 FLD (in_h_gr_14
) = 14;
3112 FLD (in_h_gr_15
) = 15;
3113 FLD (out_h_gr_14
) = 14;
3114 FLD (out_h_gr_15
) = 15;
3123 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
3124 CGEN_INSN_INT insn
= base_insn
;
3125 #define FLD(f) abuf->fields.sfmt_add.f
3129 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
3130 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
3132 /* Record the fields for the semantic handler. */
3133 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
3134 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
3135 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_xchb", "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
3137 #if WITH_PROFILE_MODEL_P
3138 /* Record the fields for profiling. */
3139 if (PROFILE_MODEL_P (current_cpu
))
3143 FLD (out_Ri
) = f_Ri
;