1 /* Simulator instruction decoder for fr30bf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999, 2000 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
;
285 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
; case 1 : itype
= FR30BF_INSN_LDR13UH
; goto extract_sfmt_ldr13
; case 2 : itype
= FR30BF_INSN_LDR13UB
; goto extract_sfmt_ldr13
; case 3 : itype
= FR30BF_INSN_LDR15
; goto extract_sfmt_ldr15
; case 4 : itype
= FR30BF_INSN_LD
; goto extract_sfmt_ld
; case 5 : itype
= FR30BF_INSN_LDUH
; goto extract_sfmt_ld
; case 6 : itype
= FR30BF_INSN_LDUB
; goto extract_sfmt_ld
; case 7 :
295 unsigned int val
= (((insn
>> 6) & (1 << 1)) | ((insn
>> 4) & (1 << 0)));
298 case 0 : itype
= FR30BF_INSN_LDR15GR
; goto extract_sfmt_ldr15gr
; case 1 : itype
= FR30BF_INSN_MOV2PS
; goto extract_sfmt_mov2ps
; case 2 : itype
= FR30BF_INSN_LDR15DR
; goto extract_sfmt_ldr15dr
; case 3 : itype
= FR30BF_INSN_LDR15PS
; goto extract_sfmt_ldr15ps
; default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
301 case 8 : itype
= FR30BF_INSN_DMOV2R13
; goto extract_sfmt_dmov2r13
; case 9 : itype
= FR30BF_INSN_DMOV2R13H
; goto extract_sfmt_dmov2r13h
; case 10 : itype
= FR30BF_INSN_DMOV2R13B
; goto extract_sfmt_dmov2r13b
; case 11 : itype
= FR30BF_INSN_DMOV2R15PD
; goto extract_sfmt_dmov2r15pd
; case 12 : itype
= FR30BF_INSN_DMOV2R13PI
; goto extract_sfmt_dmov2r13pi
; case 13 : itype
= FR30BF_INSN_DMOV2R13PIH
; goto extract_sfmt_dmov2r13pih
; case 14 : itype
= FR30BF_INSN_DMOV2R13PIB
; goto extract_sfmt_dmov2r13pib
; case 15 : itype
= FR30BF_INSN_ENTER
; goto extract_sfmt_enter
; case 16 : itype
= FR30BF_INSN_STR13
; goto extract_sfmt_str13
; case 17 : itype
= FR30BF_INSN_STR13H
; goto extract_sfmt_str13
; case 18 : itype
= FR30BF_INSN_STR13B
; goto extract_sfmt_str13
; case 19 : itype
= FR30BF_INSN_STR15
; goto extract_sfmt_str15
; case 20 : itype
= FR30BF_INSN_ST
; goto extract_sfmt_st
; case 21 : itype
= FR30BF_INSN_STH
; goto extract_sfmt_st
; case 22 : itype
= FR30BF_INSN_STB
; goto extract_sfmt_st
; case 23 :
303 unsigned int val
= (((insn
>> 6) & (1 << 1)) | ((insn
>> 4) & (1 << 0)));
306 case 0 : itype
= FR30BF_INSN_STR15GR
; goto extract_sfmt_str15gr
; case 1 : itype
= FR30BF_INSN_MOVPS
; goto extract_sfmt_movps
; case 2 : itype
= FR30BF_INSN_STR15DR
; goto extract_sfmt_str15dr
; case 3 : itype
= FR30BF_INSN_STR15PS
; goto extract_sfmt_str15ps
; default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
309 case 24 : itype
= FR30BF_INSN_DMOVR13
; goto extract_sfmt_dmovr13
; case 25 : itype
= FR30BF_INSN_DMOVR13H
; goto extract_sfmt_dmovr13h
; case 26 : itype
= FR30BF_INSN_DMOVR13B
; goto extract_sfmt_dmovr13b
; case 27 : itype
= FR30BF_INSN_DMOVR15PI
; goto extract_sfmt_dmovr15pi
; case 28 : itype
= FR30BF_INSN_DMOVR13PI
; goto extract_sfmt_dmovr13pi
; case 29 : itype
= FR30BF_INSN_DMOVR13PIH
; goto extract_sfmt_dmovr13pih
; case 30 : itype
= FR30BF_INSN_DMOVR13PIB
; goto extract_sfmt_dmovr13pib
; case 31 : itype
= FR30BF_INSN_INT
; goto extract_sfmt_int
; case 32 : /* fall through */
310 case 33 : /* fall through */
311 case 34 : /* fall through */
312 case 35 : /* fall through */
313 case 36 : /* fall through */
314 case 37 : /* fall through */
315 case 38 : /* fall through */
316 case 39 : /* fall through */
317 case 40 : /* fall through */
318 case 41 : /* fall through */
319 case 42 : /* fall through */
320 case 43 : /* fall through */
321 case 44 : /* fall through */
322 case 45 : /* fall through */
323 case 46 : /* fall through */
324 case 47 : itype
= FR30BF_INSN_LDR14
; goto extract_sfmt_ldr14
; case 48 : /* fall through */
325 case 49 : /* fall through */
326 case 50 : /* fall through */
327 case 51 : /* fall through */
328 case 52 : /* fall through */
329 case 53 : /* fall through */
330 case 54 : /* fall through */
331 case 55 : /* fall through */
332 case 56 : /* fall through */
333 case 57 : /* fall through */
334 case 58 : /* fall through */
335 case 59 : /* fall through */
336 case 60 : /* fall through */
337 case 61 : /* fall through */
338 case 62 : /* fall through */
339 case 63 : itype
= FR30BF_INSN_STR14
; goto extract_sfmt_str14
; case 64 : /* fall through */
340 case 65 : /* fall through */
341 case 66 : /* fall through */
342 case 67 : /* fall through */
343 case 68 : /* fall through */
344 case 69 : /* fall through */
345 case 70 : /* fall through */
346 case 71 : /* fall through */
347 case 72 : /* fall through */
348 case 73 : /* fall through */
349 case 74 : /* fall through */
350 case 75 : /* fall through */
351 case 76 : /* fall through */
352 case 77 : /* fall through */
353 case 78 : /* fall through */
354 case 79 : itype
= FR30BF_INSN_LDR14UH
; goto extract_sfmt_ldr14uh
; case 80 : /* fall through */
355 case 81 : /* fall through */
356 case 82 : /* fall through */
357 case 83 : /* fall through */
358 case 84 : /* fall through */
359 case 85 : /* fall through */
360 case 86 : /* fall through */
361 case 87 : /* fall through */
362 case 88 : /* fall through */
363 case 89 : /* fall through */
364 case 90 : /* fall through */
365 case 91 : /* fall through */
366 case 92 : /* fall through */
367 case 93 : /* fall through */
368 case 94 : /* fall through */
369 case 95 : itype
= FR30BF_INSN_STR14H
; goto extract_sfmt_str14h
; case 96 : /* fall through */
370 case 97 : /* fall through */
371 case 98 : /* fall through */
372 case 99 : /* fall through */
373 case 100 : /* fall through */
374 case 101 : /* fall through */
375 case 102 : /* fall through */
376 case 103 : /* fall through */
377 case 104 : /* fall through */
378 case 105 : /* fall through */
379 case 106 : /* fall through */
380 case 107 : /* fall through */
381 case 108 : /* fall through */
382 case 109 : /* fall through */
383 case 110 : /* fall through */
384 case 111 : itype
= FR30BF_INSN_LDR14UB
; goto extract_sfmt_ldr14ub
; case 112 : /* fall through */
385 case 113 : /* fall through */
386 case 114 : /* fall through */
387 case 115 : /* fall through */
388 case 116 : /* fall through */
389 case 117 : /* fall through */
390 case 118 : /* fall through */
391 case 119 : /* fall through */
392 case 120 : /* fall through */
393 case 121 : /* fall through */
394 case 122 : /* fall through */
395 case 123 : /* fall through */
396 case 124 : /* fall through */
397 case 125 : /* fall through */
398 case 126 : /* fall through */
399 case 127 : itype
= FR30BF_INSN_STR14B
; goto extract_sfmt_str14b
; case 128 : itype
= FR30BF_INSN_BANDL
; goto extract_sfmt_bandl
; case 129 : itype
= FR30BF_INSN_BANDH
; goto extract_sfmt_bandl
; case 130 : itype
= FR30BF_INSN_AND
; goto extract_sfmt_and
; case 131 : itype
= FR30BF_INSN_ANDCCR
; goto extract_sfmt_andccr
; case 132 : itype
= FR30BF_INSN_ANDM
; goto extract_sfmt_andm
; case 133 : itype
= FR30BF_INSN_ANDH
; goto extract_sfmt_andh
; case 134 : itype
= FR30BF_INSN_ANDB
; goto extract_sfmt_andb
; case 135 : itype
= FR30BF_INSN_STILM
; goto extract_sfmt_stilm
; case 136 : itype
= FR30BF_INSN_BTSTL
; goto extract_sfmt_btstl
; case 137 : itype
= FR30BF_INSN_BTSTH
; goto extract_sfmt_btstl
; case 138 : itype
= FR30BF_INSN_XCHB
; goto extract_sfmt_xchb
; case 139 : itype
= FR30BF_INSN_MOV
; goto extract_sfmt_mov
; case 140 : itype
= FR30BF_INSN_LDM0
; goto extract_sfmt_ldm0
; case 141 : itype
= FR30BF_INSN_LDM1
; goto extract_sfmt_ldm1
; case 142 : itype
= FR30BF_INSN_STM0
; goto extract_sfmt_stm0
; case 143 : itype
= FR30BF_INSN_STM1
; goto extract_sfmt_stm1
; case 144 : itype
= FR30BF_INSN_BORL
; goto extract_sfmt_bandl
; case 145 : itype
= FR30BF_INSN_BORH
; goto extract_sfmt_bandl
; case 146 : itype
= FR30BF_INSN_OR
; goto extract_sfmt_and
; case 147 : itype
= FR30BF_INSN_ORCCR
; goto extract_sfmt_andccr
; case 148 : itype
= FR30BF_INSN_ORM
; goto extract_sfmt_andm
; case 149 : itype
= FR30BF_INSN_ORH
; goto extract_sfmt_andh
; case 150 : itype
= FR30BF_INSN_ORB
; goto extract_sfmt_andb
; case 151 :
401 unsigned int val
= (((insn
>> 4) & (15 << 0)));
404 case 0 : itype
= FR30BF_INSN_JMP
; goto extract_sfmt_jmp
; case 1 : itype
= FR30BF_INSN_CALLR
; goto extract_sfmt_callr
; case 2 : itype
= FR30BF_INSN_RET
; goto extract_sfmt_ret
; case 3 : itype
= FR30BF_INSN_RETI
; goto extract_sfmt_reti
; case 4 : itype
= FR30BF_INSN_DIV0S
; goto extract_sfmt_div0s
; case 5 : itype
= FR30BF_INSN_DIV0U
; goto extract_sfmt_div0u
; case 6 : itype
= FR30BF_INSN_DIV1
; goto extract_sfmt_div1
; case 7 : itype
= FR30BF_INSN_DIV2
; goto extract_sfmt_div2
; case 8 : itype
= FR30BF_INSN_EXTSB
; goto extract_sfmt_extsb
; case 9 : itype
= FR30BF_INSN_EXTUB
; goto extract_sfmt_extub
; case 10 : itype
= FR30BF_INSN_EXTSH
; goto extract_sfmt_extsh
; case 11 : itype
= FR30BF_INSN_EXTUH
; goto extract_sfmt_extuh
; default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
407 case 152 : itype
= FR30BF_INSN_BEORL
; goto extract_sfmt_bandl
; case 153 : itype
= FR30BF_INSN_BEORH
; goto extract_sfmt_bandl
; case 154 : itype
= FR30BF_INSN_EOR
; goto extract_sfmt_and
; case 155 : itype
= FR30BF_INSN_LDI20
; goto extract_sfmt_ldi20
; case 156 : itype
= FR30BF_INSN_EORM
; goto extract_sfmt_andm
; case 157 : itype
= FR30BF_INSN_EORH
; goto extract_sfmt_andh
; case 158 : itype
= FR30BF_INSN_EORB
; goto extract_sfmt_andb
; case 159 :
409 unsigned int val
= (((insn
>> 4) & (15 << 0)));
412 case 0 : itype
= FR30BF_INSN_JMPD
; goto extract_sfmt_jmp
; case 1 : itype
= FR30BF_INSN_CALLRD
; goto extract_sfmt_callr
; case 2 : itype
= FR30BF_INSN_RET_D
; goto extract_sfmt_ret
; case 3 : itype
= FR30BF_INSN_INTE
; goto extract_sfmt_inte
; case 6 : itype
= FR30BF_INSN_DIV3
; goto extract_sfmt_div3
; case 7 : itype
= FR30BF_INSN_DIV4S
; goto extract_sfmt_div4s
; case 8 : itype
= FR30BF_INSN_LDI32
; goto extract_sfmt_ldi32
; case 9 : itype
= FR30BF_INSN_LEAVE
; goto extract_sfmt_leave
; case 10 : itype
= FR30BF_INSN_NOP
; goto extract_sfmt_bnod
; case 12 : itype
= FR30BF_INSN_COPOP
; goto extract_sfmt_copop
; case 13 : itype
= FR30BF_INSN_COPLD
; goto extract_sfmt_copop
; case 14 : itype
= FR30BF_INSN_COPST
; goto extract_sfmt_copop
; case 15 : itype
= FR30BF_INSN_COPSV
; goto extract_sfmt_copop
; default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
415 case 160 : itype
= FR30BF_INSN_ADDNI
; goto extract_sfmt_addni
; case 161 : itype
= FR30BF_INSN_ADDN2
; goto extract_sfmt_addn2
; case 162 : itype
= FR30BF_INSN_ADDN
; goto extract_sfmt_addn
; case 163 : itype
= FR30BF_INSN_ADDSP
; goto extract_sfmt_addsp
; case 164 : itype
= FR30BF_INSN_ADDI
; goto extract_sfmt_addi
; case 165 : itype
= FR30BF_INSN_ADD2
; goto extract_sfmt_add2
; case 166 : itype
= FR30BF_INSN_ADD
; goto extract_sfmt_add
; case 167 : itype
= FR30BF_INSN_ADDC
; goto extract_sfmt_addc
; case 168 : itype
= FR30BF_INSN_CMPI
; goto extract_sfmt_cmpi
; case 169 : itype
= FR30BF_INSN_CMP2
; goto extract_sfmt_cmp2
; case 170 : itype
= FR30BF_INSN_CMP
; goto extract_sfmt_cmp
; case 171 : itype
= FR30BF_INSN_MULU
; goto extract_sfmt_mulu
; case 172 : itype
= FR30BF_INSN_SUB
; goto extract_sfmt_add
; case 173 : itype
= FR30BF_INSN_SUBC
; goto extract_sfmt_addc
; case 174 : itype
= FR30BF_INSN_SUBN
; goto extract_sfmt_addn
; case 175 : itype
= FR30BF_INSN_MUL
; goto extract_sfmt_mul
; case 176 : itype
= FR30BF_INSN_LSRI
; goto extract_sfmt_lsli
; case 177 : itype
= FR30BF_INSN_LSR2
; goto extract_sfmt_lsli
; case 178 : itype
= FR30BF_INSN_LSR
; goto extract_sfmt_lsl
; case 179 : itype
= FR30BF_INSN_MOV2DR
; goto extract_sfmt_mov2dr
; case 180 : itype
= FR30BF_INSN_LSLI
; goto extract_sfmt_lsli
; case 181 : itype
= FR30BF_INSN_LSL2
; goto extract_sfmt_lsli
; case 182 : itype
= FR30BF_INSN_LSL
; goto extract_sfmt_lsl
; case 183 : itype
= FR30BF_INSN_MOVDR
; goto extract_sfmt_movdr
; case 184 : itype
= FR30BF_INSN_ASRI
; goto extract_sfmt_lsli
; case 185 : itype
= FR30BF_INSN_ASR2
; goto extract_sfmt_lsli
; case 186 : itype
= FR30BF_INSN_ASR
; goto extract_sfmt_lsl
; case 187 : itype
= FR30BF_INSN_MULUH
; goto extract_sfmt_mulh
; case 188 : itype
= FR30BF_INSN_LDRES
; goto extract_sfmt_ldres
; case 189 : itype
= FR30BF_INSN_STRES
; goto extract_sfmt_ldres
; case 191 : itype
= FR30BF_INSN_MULH
; goto extract_sfmt_mulh
; case 192 : /* fall through */
416 case 193 : /* fall through */
417 case 194 : /* fall through */
418 case 195 : /* fall through */
419 case 196 : /* fall through */
420 case 197 : /* fall through */
421 case 198 : /* fall through */
422 case 199 : /* fall through */
423 case 200 : /* fall through */
424 case 201 : /* fall through */
425 case 202 : /* fall through */
426 case 203 : /* fall through */
427 case 204 : /* fall through */
428 case 205 : /* fall through */
429 case 206 : /* fall through */
430 case 207 : itype
= FR30BF_INSN_LDI8
; goto extract_sfmt_ldi8
; case 208 : /* fall through */
431 case 209 : /* fall through */
432 case 210 : /* fall through */
433 case 211 : /* fall through */
434 case 212 : /* fall through */
435 case 213 : /* fall through */
436 case 214 : /* fall through */
437 case 215 : itype
= FR30BF_INSN_CALL
; goto extract_sfmt_call
; case 216 : /* fall through */
438 case 217 : /* fall through */
439 case 218 : /* fall through */
440 case 219 : /* fall through */
441 case 220 : /* fall through */
442 case 221 : /* fall through */
443 case 222 : /* fall through */
444 case 223 : itype
= FR30BF_INSN_CALLD
; goto extract_sfmt_call
; case 224 : itype
= FR30BF_INSN_BRA
; goto extract_sfmt_brad
; case 225 : itype
= FR30BF_INSN_BNO
; goto extract_sfmt_bnod
; case 226 : itype
= FR30BF_INSN_BEQ
; goto extract_sfmt_beqd
; case 227 : itype
= FR30BF_INSN_BNE
; goto extract_sfmt_beqd
; case 228 : itype
= FR30BF_INSN_BC
; goto extract_sfmt_bcd
; case 229 : itype
= FR30BF_INSN_BNC
; goto extract_sfmt_bcd
; case 230 : itype
= FR30BF_INSN_BN
; goto extract_sfmt_bnd
; case 231 : itype
= FR30BF_INSN_BP
; goto extract_sfmt_bnd
; case 232 : itype
= FR30BF_INSN_BV
; goto extract_sfmt_bvd
; case 233 : itype
= FR30BF_INSN_BNV
; goto extract_sfmt_bvd
; case 234 : itype
= FR30BF_INSN_BLT
; goto extract_sfmt_bltd
; case 235 : itype
= FR30BF_INSN_BGE
; goto extract_sfmt_bltd
; case 236 : itype
= FR30BF_INSN_BLE
; goto extract_sfmt_bled
; case 237 : itype
= FR30BF_INSN_BGT
; goto extract_sfmt_bled
; case 238 : itype
= FR30BF_INSN_BLS
; goto extract_sfmt_blsd
; case 239 : itype
= FR30BF_INSN_BHI
; goto extract_sfmt_blsd
; case 240 : itype
= FR30BF_INSN_BRAD
; goto extract_sfmt_brad
; case 241 : itype
= FR30BF_INSN_BNOD
; goto extract_sfmt_bnod
; case 242 : itype
= FR30BF_INSN_BEQD
; goto extract_sfmt_beqd
; case 243 : itype
= FR30BF_INSN_BNED
; goto extract_sfmt_beqd
; case 244 : itype
= FR30BF_INSN_BCD
; goto extract_sfmt_bcd
; case 245 : itype
= FR30BF_INSN_BNCD
; goto extract_sfmt_bcd
; case 246 : itype
= FR30BF_INSN_BND
; goto extract_sfmt_bnd
; case 247 : itype
= FR30BF_INSN_BPD
; goto extract_sfmt_bnd
; case 248 : itype
= FR30BF_INSN_BVD
; goto extract_sfmt_bvd
; case 249 : itype
= FR30BF_INSN_BNVD
; goto extract_sfmt_bvd
; case 250 : itype
= FR30BF_INSN_BLTD
; goto extract_sfmt_bltd
; case 251 : itype
= FR30BF_INSN_BGED
; goto extract_sfmt_bltd
; case 252 : itype
= FR30BF_INSN_BLED
; goto extract_sfmt_bled
; case 253 : itype
= FR30BF_INSN_BGTD
; goto extract_sfmt_bled
; case 254 : itype
= FR30BF_INSN_BLSD
; goto extract_sfmt_blsd
; case 255 : itype
= FR30BF_INSN_BHID
; goto extract_sfmt_blsd
; default : itype
= FR30BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
449 /* The instruction has been decoded, now extract the fields. */
453 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
454 #define FLD(f) abuf->fields.fmt_empty.f
457 /* Record the fields for the semantic handler. */
458 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
466 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
467 #define FLD(f) abuf->fields.sfmt_add.f
471 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
472 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
474 /* Record the fields for the semantic handler. */
477 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
478 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
479 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_add", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
481 #if WITH_PROFILE_MODEL_P
482 /* Record the fields for profiling. */
483 if (PROFILE_MODEL_P (current_cpu
))
496 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
497 #define FLD(f) abuf->fields.sfmt_addi.f
501 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
502 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
504 /* Record the fields for the semantic handler. */
507 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
508 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addi", "f_Ri 0x%x", 'x', f_Ri
, "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
510 #if WITH_PROFILE_MODEL_P
511 /* Record the fields for profiling. */
512 if (PROFILE_MODEL_P (current_cpu
))
524 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
525 #define FLD(f) abuf->fields.sfmt_add2.f
529 f_m4
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) | (((-1) << (4))));
530 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
532 /* Record the fields for the semantic handler. */
535 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
536 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_add2", "f_Ri 0x%x", 'x', f_Ri
, "f_m4 0x%x", 'x', f_m4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
538 #if WITH_PROFILE_MODEL_P
539 /* Record the fields for profiling. */
540 if (PROFILE_MODEL_P (current_cpu
))
552 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
553 #define FLD(f) abuf->fields.sfmt_add.f
557 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
558 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
560 /* Record the fields for the semantic handler. */
563 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
564 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
565 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addc", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
567 #if WITH_PROFILE_MODEL_P
568 /* Record the fields for profiling. */
569 if (PROFILE_MODEL_P (current_cpu
))
582 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
583 #define FLD(f) abuf->fields.sfmt_add.f
587 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
588 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
590 /* Record the fields for the semantic handler. */
593 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
594 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
595 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addn", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
597 #if WITH_PROFILE_MODEL_P
598 /* Record the fields for profiling. */
599 if (PROFILE_MODEL_P (current_cpu
))
612 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
613 #define FLD(f) abuf->fields.sfmt_addi.f
617 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
618 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
620 /* Record the fields for the semantic handler. */
623 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
624 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addni", "f_Ri 0x%x", 'x', f_Ri
, "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
626 #if WITH_PROFILE_MODEL_P
627 /* Record the fields for profiling. */
628 if (PROFILE_MODEL_P (current_cpu
))
640 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
641 #define FLD(f) abuf->fields.sfmt_add2.f
645 f_m4
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) | (((-1) << (4))));
646 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
648 /* Record the fields for the semantic handler. */
651 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
652 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addn2", "f_Ri 0x%x", 'x', f_Ri
, "f_m4 0x%x", 'x', f_m4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
654 #if WITH_PROFILE_MODEL_P
655 /* Record the fields for profiling. */
656 if (PROFILE_MODEL_P (current_cpu
))
668 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
669 #define FLD(f) abuf->fields.sfmt_str13.f
673 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
674 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
676 /* Record the fields for the semantic handler. */
679 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
680 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
681 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmp", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
683 #if WITH_PROFILE_MODEL_P
684 /* Record the fields for profiling. */
685 if (PROFILE_MODEL_P (current_cpu
))
697 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
698 #define FLD(f) abuf->fields.sfmt_addi.f
702 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
703 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
705 /* Record the fields for the semantic handler. */
708 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
709 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmpi", "f_Ri 0x%x", 'x', f_Ri
, "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
711 #if WITH_PROFILE_MODEL_P
712 /* Record the fields for profiling. */
713 if (PROFILE_MODEL_P (current_cpu
))
724 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
725 #define FLD(f) abuf->fields.sfmt_add2.f
729 f_m4
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) | (((-1) << (4))));
730 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
732 /* Record the fields for the semantic handler. */
735 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
736 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmp2", "f_Ri 0x%x", 'x', f_Ri
, "f_m4 0x%x", 'x', f_m4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
738 #if WITH_PROFILE_MODEL_P
739 /* Record the fields for profiling. */
740 if (PROFILE_MODEL_P (current_cpu
))
751 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
752 #define FLD(f) abuf->fields.sfmt_add.f
756 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
757 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
759 /* Record the fields for the semantic handler. */
762 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
763 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
764 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_and", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
766 #if WITH_PROFILE_MODEL_P
767 /* Record the fields for profiling. */
768 if (PROFILE_MODEL_P (current_cpu
))
781 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
782 #define FLD(f) abuf->fields.sfmt_str13.f
786 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
787 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
789 /* Record the fields for the semantic handler. */
792 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
793 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
794 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andm", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
796 #if WITH_PROFILE_MODEL_P
797 /* Record the fields for profiling. */
798 if (PROFILE_MODEL_P (current_cpu
))
810 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
811 #define FLD(f) abuf->fields.sfmt_str13.f
815 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
816 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
818 /* Record the fields for the semantic handler. */
821 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
822 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
823 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andh", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
825 #if WITH_PROFILE_MODEL_P
826 /* Record the fields for profiling. */
827 if (PROFILE_MODEL_P (current_cpu
))
839 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
840 #define FLD(f) abuf->fields.sfmt_str13.f
844 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
845 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
847 /* Record the fields for the semantic handler. */
850 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
851 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
852 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andb", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
854 #if WITH_PROFILE_MODEL_P
855 /* Record the fields for profiling. */
856 if (PROFILE_MODEL_P (current_cpu
))
868 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
869 #define FLD(f) abuf->fields.sfmt_addi.f
873 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
874 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
876 /* Record the fields for the semantic handler. */
879 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
880 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bandl", "f_Ri 0x%x", 'x', f_Ri
, "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
882 #if WITH_PROFILE_MODEL_P
883 /* Record the fields for profiling. */
884 if (PROFILE_MODEL_P (current_cpu
))
895 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
896 #define FLD(f) abuf->fields.sfmt_addi.f
900 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
901 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
903 /* Record the fields for the semantic handler. */
906 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
907 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_btstl", "f_Ri 0x%x", 'x', f_Ri
, "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
909 #if WITH_PROFILE_MODEL_P
910 /* Record the fields for profiling. */
911 if (PROFILE_MODEL_P (current_cpu
))
922 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
923 #define FLD(f) abuf->fields.sfmt_str13.f
927 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
928 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
930 /* Record the fields for the semantic handler. */
933 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
934 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
935 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mul", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
937 #if WITH_PROFILE_MODEL_P
938 /* Record the fields for profiling. */
939 if (PROFILE_MODEL_P (current_cpu
))
951 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
952 #define FLD(f) abuf->fields.sfmt_str13.f
956 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
957 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
959 /* Record the fields for the semantic handler. */
962 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
963 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
964 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mulu", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
966 #if WITH_PROFILE_MODEL_P
967 /* Record the fields for profiling. */
968 if (PROFILE_MODEL_P (current_cpu
))
980 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
981 #define FLD(f) abuf->fields.sfmt_str13.f
985 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
986 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
988 /* Record the fields for the semantic handler. */
991 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
992 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
993 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mulh", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
995 #if WITH_PROFILE_MODEL_P
996 /* Record the fields for profiling. */
997 if (PROFILE_MODEL_P (current_cpu
))
1009 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1010 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1013 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1015 /* Record the fields for the semantic handler. */
1017 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1018 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div0s", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1020 #if WITH_PROFILE_MODEL_P
1021 /* Record the fields for profiling. */
1022 if (PROFILE_MODEL_P (current_cpu
))
1033 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1034 #define FLD(f) abuf->fields.fmt_empty.f
1037 /* Record the fields for the semantic handler. */
1038 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div0u", (char *) 0));
1046 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1047 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1050 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1052 /* Record the fields for the semantic handler. */
1054 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1055 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div1", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1057 #if WITH_PROFILE_MODEL_P
1058 /* Record the fields for profiling. */
1059 if (PROFILE_MODEL_P (current_cpu
))
1070 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1071 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1074 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1076 /* Record the fields for the semantic handler. */
1078 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1079 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div2", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1081 #if WITH_PROFILE_MODEL_P
1082 /* Record the fields for profiling. */
1083 if (PROFILE_MODEL_P (current_cpu
))
1094 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1095 #define FLD(f) abuf->fields.fmt_empty.f
1098 /* Record the fields for the semantic handler. */
1099 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div3", (char *) 0));
1107 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1108 #define FLD(f) abuf->fields.fmt_empty.f
1111 /* Record the fields for the semantic handler. */
1112 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div4s", (char *) 0));
1120 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1121 #define FLD(f) abuf->fields.sfmt_add.f
1125 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1126 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1128 /* Record the fields for the semantic handler. */
1131 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1132 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1133 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lsl", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1135 #if WITH_PROFILE_MODEL_P
1136 /* Record the fields for profiling. */
1137 if (PROFILE_MODEL_P (current_cpu
))
1141 FLD (out_Ri
) = f_Ri
;
1150 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1151 #define FLD(f) abuf->fields.sfmt_addi.f
1155 f_u4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1156 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1158 /* Record the fields for the semantic handler. */
1161 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1162 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lsli", "f_Ri 0x%x", 'x', f_Ri
, "f_u4 0x%x", 'x', f_u4
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1164 #if WITH_PROFILE_MODEL_P
1165 /* Record the fields for profiling. */
1166 if (PROFILE_MODEL_P (current_cpu
))
1169 FLD (out_Ri
) = f_Ri
;
1178 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1179 #define FLD(f) abuf->fields.sfmt_ldi8.f
1183 f_i8
= EXTRACT_MSB0_UINT (insn
, 16, 4, 8);
1184 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1186 /* Record the fields for the semantic handler. */
1189 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1190 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldi8", "f_i8 0x%x", 'x', f_i8
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1192 #if WITH_PROFILE_MODEL_P
1193 /* Record the fields for profiling. */
1194 if (PROFILE_MODEL_P (current_cpu
))
1196 FLD (out_Ri
) = f_Ri
;
1205 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1206 #define FLD(f) abuf->fields.sfmt_ldi20.f
1211 /* Contents of trailing part of insn. */
1214 word_1
= GETIMEMUHI (current_cpu
, pc
+ 2);
1215 f_i20_16
= (0|(EXTRACT_MSB0_UINT (word_1
, 16, 0, 16) << 0));
1216 f_i20_4
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1217 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1219 f_i20
= ((((f_i20_4
) << (16))) | (f_i20_16
));
1222 /* Record the fields for the semantic handler. */
1223 FLD (f_i20
) = f_i20
;
1225 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1226 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldi20", "f_i20 0x%x", 'x', f_i20
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1228 #if WITH_PROFILE_MODEL_P
1229 /* Record the fields for profiling. */
1230 if (PROFILE_MODEL_P (current_cpu
))
1232 FLD (out_Ri
) = f_Ri
;
1241 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1242 #define FLD(f) abuf->fields.sfmt_ldi32.f
1245 /* Contents of trailing part of insn. */
1249 word_1
= GETIMEMUHI (current_cpu
, pc
+ 2);
1250 word_2
= GETIMEMUHI (current_cpu
, pc
+ 4);
1251 f_i32
= (0|(EXTRACT_MSB0_UINT (word_2
, 16, 0, 16) << 0)|(EXTRACT_MSB0_UINT (word_1
, 16, 0, 16) << 16));
1252 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1254 /* Record the fields for the semantic handler. */
1255 FLD (f_i32
) = f_i32
;
1257 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1258 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldi32", "f_i32 0x%x", 'x', f_i32
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1260 #if WITH_PROFILE_MODEL_P
1261 /* Record the fields for profiling. */
1262 if (PROFILE_MODEL_P (current_cpu
))
1264 FLD (out_Ri
) = f_Ri
;
1273 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1274 #define FLD(f) abuf->fields.sfmt_ldr13.f
1278 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1279 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1281 /* Record the fields for the semantic handler. */
1284 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1285 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1286 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ld", "f_Rj 0x%x", 'x', f_Rj
, "f_Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1288 #if WITH_PROFILE_MODEL_P
1289 /* Record the fields for profiling. */
1290 if (PROFILE_MODEL_P (current_cpu
))
1293 FLD (out_Ri
) = f_Ri
;
1302 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1303 #define FLD(f) abuf->fields.sfmt_ldr13.f
1307 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1308 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1310 /* Record the fields for the semantic handler. */
1313 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1314 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1315 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr13", "f_Rj 0x%x", 'x', f_Rj
, "f_Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1317 #if WITH_PROFILE_MODEL_P
1318 /* Record the fields for profiling. */
1319 if (PROFILE_MODEL_P (current_cpu
))
1322 FLD (in_h_gr_13
) = 13;
1323 FLD (out_Ri
) = f_Ri
;
1332 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1333 #define FLD(f) abuf->fields.sfmt_ldr14.f
1337 f_disp10
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (2));
1338 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1340 /* Record the fields for the semantic handler. */
1341 FLD (f_disp10
) = f_disp10
;
1343 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1344 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr14", "f_disp10 0x%x", 'x', f_disp10
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1346 #if WITH_PROFILE_MODEL_P
1347 /* Record the fields for profiling. */
1348 if (PROFILE_MODEL_P (current_cpu
))
1350 FLD (in_h_gr_14
) = 14;
1351 FLD (out_Ri
) = f_Ri
;
1358 extract_sfmt_ldr14uh
:
1360 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1361 #define FLD(f) abuf->fields.sfmt_ldr14uh.f
1365 f_disp9
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (1));
1366 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1368 /* Record the fields for the semantic handler. */
1369 FLD (f_disp9
) = f_disp9
;
1371 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1372 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr14uh", "f_disp9 0x%x", 'x', f_disp9
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1374 #if WITH_PROFILE_MODEL_P
1375 /* Record the fields for profiling. */
1376 if (PROFILE_MODEL_P (current_cpu
))
1378 FLD (in_h_gr_14
) = 14;
1379 FLD (out_Ri
) = f_Ri
;
1386 extract_sfmt_ldr14ub
:
1388 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1389 #define FLD(f) abuf->fields.sfmt_ldr14ub.f
1393 f_disp8
= EXTRACT_MSB0_INT (insn
, 16, 4, 8);
1394 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1396 /* Record the fields for the semantic handler. */
1397 FLD (f_disp8
) = f_disp8
;
1399 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1400 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr14ub", "f_disp8 0x%x", 'x', f_disp8
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1402 #if WITH_PROFILE_MODEL_P
1403 /* Record the fields for profiling. */
1404 if (PROFILE_MODEL_P (current_cpu
))
1406 FLD (in_h_gr_14
) = 14;
1407 FLD (out_Ri
) = f_Ri
;
1416 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1417 #define FLD(f) abuf->fields.sfmt_ldr15.f
1421 f_udisp6
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) << (2));
1422 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1424 /* Record the fields for the semantic handler. */
1425 FLD (f_udisp6
) = f_udisp6
;
1427 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1428 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15", "f_udisp6 0x%x", 'x', f_udisp6
, "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1430 #if WITH_PROFILE_MODEL_P
1431 /* Record the fields for profiling. */
1432 if (PROFILE_MODEL_P (current_cpu
))
1434 FLD (in_h_gr_15
) = 15;
1435 FLD (out_Ri
) = f_Ri
;
1442 extract_sfmt_ldr15gr
:
1444 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1445 #define FLD(f) abuf->fields.sfmt_ldr15gr.f
1448 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1450 /* Record the fields for the semantic handler. */
1452 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1453 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));
1455 #if WITH_PROFILE_MODEL_P
1456 /* Record the fields for profiling. */
1457 if (PROFILE_MODEL_P (current_cpu
))
1459 FLD (in_h_gr_15
) = 15;
1460 FLD (out_Ri
) = f_Ri
;
1461 FLD (out_h_gr_15
) = 15;
1468 extract_sfmt_ldr15dr
:
1470 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1471 #define FLD(f) abuf->fields.sfmt_ldr15dr.f
1474 f_Rs2
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1476 /* Record the fields for the semantic handler. */
1477 FLD (f_Rs2
) = f_Rs2
;
1478 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15dr", "f_Rs2 0x%x", 'x', f_Rs2
, (char *) 0));
1480 #if WITH_PROFILE_MODEL_P
1481 /* Record the fields for profiling. */
1482 if (PROFILE_MODEL_P (current_cpu
))
1484 FLD (in_h_gr_15
) = 15;
1485 FLD (out_h_gr_15
) = 15;
1492 extract_sfmt_ldr15ps
:
1494 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1495 #define FLD(f) abuf->fields.sfmt_addsp.f
1498 /* Record the fields for the semantic handler. */
1499 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldr15ps", (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_15
) = 15;
1506 FLD (out_h_gr_15
) = 15;
1515 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1516 #define FLD(f) abuf->fields.sfmt_str13.f
1520 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1521 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1523 /* Record the fields for the semantic handler. */
1526 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1527 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1528 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_st", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1530 #if WITH_PROFILE_MODEL_P
1531 /* Record the fields for profiling. */
1532 if (PROFILE_MODEL_P (current_cpu
))
1544 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1545 #define FLD(f) abuf->fields.sfmt_str13.f
1549 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1550 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1552 /* Record the fields for the semantic handler. */
1555 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1556 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1557 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str13", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
1559 #if WITH_PROFILE_MODEL_P
1560 /* Record the fields for profiling. */
1561 if (PROFILE_MODEL_P (current_cpu
))
1565 FLD (in_h_gr_13
) = 13;
1574 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1575 #define FLD(f) abuf->fields.sfmt_str14.f
1579 f_disp10
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (2));
1580 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1582 /* Record the fields for the semantic handler. */
1584 FLD (f_disp10
) = f_disp10
;
1585 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1586 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str14", "f_Ri 0x%x", 'x', f_Ri
, "f_disp10 0x%x", 'x', f_disp10
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1588 #if WITH_PROFILE_MODEL_P
1589 /* Record the fields for profiling. */
1590 if (PROFILE_MODEL_P (current_cpu
))
1593 FLD (in_h_gr_14
) = 14;
1600 extract_sfmt_str14h
:
1602 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1603 #define FLD(f) abuf->fields.sfmt_str14h.f
1607 f_disp9
= ((EXTRACT_MSB0_INT (insn
, 16, 4, 8)) << (1));
1608 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1610 /* Record the fields for the semantic handler. */
1612 FLD (f_disp9
) = f_disp9
;
1613 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1614 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str14h", "f_Ri 0x%x", 'x', f_Ri
, "f_disp9 0x%x", 'x', f_disp9
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1616 #if WITH_PROFILE_MODEL_P
1617 /* Record the fields for profiling. */
1618 if (PROFILE_MODEL_P (current_cpu
))
1621 FLD (in_h_gr_14
) = 14;
1628 extract_sfmt_str14b
:
1630 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1631 #define FLD(f) abuf->fields.sfmt_str14b.f
1635 f_disp8
= EXTRACT_MSB0_INT (insn
, 16, 4, 8);
1636 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1638 /* Record the fields for the semantic handler. */
1640 FLD (f_disp8
) = f_disp8
;
1641 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1642 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str14b", "f_Ri 0x%x", 'x', f_Ri
, "f_disp8 0x%x", 'x', f_disp8
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1644 #if WITH_PROFILE_MODEL_P
1645 /* Record the fields for profiling. */
1646 if (PROFILE_MODEL_P (current_cpu
))
1649 FLD (in_h_gr_14
) = 14;
1658 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1659 #define FLD(f) abuf->fields.sfmt_str15.f
1663 f_udisp6
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 4)) << (2));
1664 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1666 /* Record the fields for the semantic handler. */
1668 FLD (f_udisp6
) = f_udisp6
;
1669 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1670 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15", "f_Ri 0x%x", 'x', f_Ri
, "f_udisp6 0x%x", 'x', f_udisp6
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1672 #if WITH_PROFILE_MODEL_P
1673 /* Record the fields for profiling. */
1674 if (PROFILE_MODEL_P (current_cpu
))
1677 FLD (in_h_gr_15
) = 15;
1684 extract_sfmt_str15gr
:
1686 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1687 #define FLD(f) abuf->fields.sfmt_str15gr.f
1690 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1692 /* Record the fields for the semantic handler. */
1694 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1695 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15gr", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1697 #if WITH_PROFILE_MODEL_P
1698 /* Record the fields for profiling. */
1699 if (PROFILE_MODEL_P (current_cpu
))
1702 FLD (in_h_gr_15
) = 15;
1703 FLD (out_h_gr_15
) = 15;
1710 extract_sfmt_str15dr
:
1712 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1713 #define FLD(f) abuf->fields.sfmt_ldr15dr.f
1716 f_Rs2
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1718 /* Record the fields for the semantic handler. */
1719 FLD (f_Rs2
) = f_Rs2
;
1720 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15dr", "f_Rs2 0x%x", 'x', f_Rs2
, (char *) 0));
1722 #if WITH_PROFILE_MODEL_P
1723 /* Record the fields for profiling. */
1724 if (PROFILE_MODEL_P (current_cpu
))
1726 FLD (in_h_gr_15
) = 15;
1727 FLD (out_h_gr_15
) = 15;
1734 extract_sfmt_str15ps
:
1736 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1737 #define FLD(f) abuf->fields.sfmt_addsp.f
1740 /* Record the fields for the semantic handler. */
1741 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_str15ps", (char *) 0));
1743 #if WITH_PROFILE_MODEL_P
1744 /* Record the fields for profiling. */
1745 if (PROFILE_MODEL_P (current_cpu
))
1747 FLD (in_h_gr_15
) = 15;
1748 FLD (out_h_gr_15
) = 15;
1757 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1758 #define FLD(f) abuf->fields.sfmt_ldr13.f
1762 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1763 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1765 /* Record the fields for the semantic handler. */
1768 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
1769 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1770 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov", "f_Rj 0x%x", 'x', f_Rj
, "f_Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, "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 (out_Ri
) = f_Ri
;
1786 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1787 #define FLD(f) abuf->fields.sfmt_movdr.f
1791 f_Rs1
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1792 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1794 /* Record the fields for the semantic handler. */
1795 FLD (f_Rs1
) = f_Rs1
;
1797 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1798 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movdr", "f_Rs1 0x%x", 'x', f_Rs1
, "f_Ri 0x%x", 'x', f_Ri
, "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
))
1804 FLD (out_Ri
) = f_Ri
;
1813 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1814 #define FLD(f) abuf->fields.sfmt_movdr.f
1817 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1819 /* Record the fields for the semantic handler. */
1821 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1822 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movps", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1824 #if WITH_PROFILE_MODEL_P
1825 /* Record the fields for profiling. */
1826 if (PROFILE_MODEL_P (current_cpu
))
1828 FLD (out_Ri
) = f_Ri
;
1835 extract_sfmt_mov2dr
:
1837 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1838 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1842 f_Rs1
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
1843 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1845 /* Record the fields for the semantic handler. */
1847 FLD (f_Rs1
) = f_Rs1
;
1848 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1849 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov2dr", "f_Ri 0x%x", 'x', f_Ri
, "f_Rs1 0x%x", 'x', f_Rs1
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1851 #if WITH_PROFILE_MODEL_P
1852 /* Record the fields for profiling. */
1853 if (PROFILE_MODEL_P (current_cpu
))
1862 extract_sfmt_mov2ps
:
1864 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1865 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1868 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1870 /* Record the fields for the semantic handler. */
1872 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1873 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov2ps", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1875 #if WITH_PROFILE_MODEL_P
1876 /* Record the fields for profiling. */
1877 if (PROFILE_MODEL_P (current_cpu
))
1888 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1889 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1892 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1894 /* Record the fields for the semantic handler. */
1896 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1897 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jmp", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1899 #if WITH_PROFILE_MODEL_P
1900 /* Record the fields for profiling. */
1901 if (PROFILE_MODEL_P (current_cpu
))
1912 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1913 #define FLD(f) abuf->fields.sfmt_mov2dr.f
1916 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
1918 /* Record the fields for the semantic handler. */
1920 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
1921 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_callr", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
1923 #if WITH_PROFILE_MODEL_P
1924 /* Record the fields for profiling. */
1925 if (PROFILE_MODEL_P (current_cpu
))
1936 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1937 #define FLD(f) abuf->fields.sfmt_call.f
1940 f_rel12
= ((((EXTRACT_MSB0_INT (insn
, 16, 5, 11)) << (1))) + (((pc
) + (2))));
1942 /* Record the fields for the semantic handler. */
1943 FLD (i_label12
) = f_rel12
;
1944 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_call", "label12 0x%x", 'x', f_rel12
, (char *) 0));
1946 #if WITH_PROFILE_MODEL_P
1947 /* Record the fields for profiling. */
1948 if (PROFILE_MODEL_P (current_cpu
))
1958 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1959 #define FLD(f) abuf->fields.fmt_empty.f
1962 /* Record the fields for the semantic handler. */
1963 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ret", (char *) 0));
1965 #if WITH_PROFILE_MODEL_P
1966 /* Record the fields for profiling. */
1967 if (PROFILE_MODEL_P (current_cpu
))
1977 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
1978 #define FLD(f) abuf->fields.sfmt_int.f
1981 f_u8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
1983 /* Record the fields for the semantic handler. */
1985 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_int", "f_u8 0x%x", 'x', f_u8
, (char *) 0));
1987 #if WITH_PROFILE_MODEL_P
1988 /* Record the fields for profiling. */
1989 if (PROFILE_MODEL_P (current_cpu
))
1999 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2000 #define FLD(f) abuf->fields.fmt_empty.f
2003 /* Record the fields for the semantic handler. */
2004 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_inte", (char *) 0));
2006 #if WITH_PROFILE_MODEL_P
2007 /* Record the fields for profiling. */
2008 if (PROFILE_MODEL_P (current_cpu
))
2018 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2019 #define FLD(f) abuf->fields.fmt_empty.f
2022 /* Record the fields for the semantic handler. */
2023 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_reti", (char *) 0));
2025 #if WITH_PROFILE_MODEL_P
2026 /* Record the fields for profiling. */
2027 if (PROFILE_MODEL_P (current_cpu
))
2037 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2038 #define FLD(f) abuf->fields.sfmt_brad.f
2041 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2043 /* Record the fields for the semantic handler. */
2044 FLD (i_label9
) = f_rel9
;
2045 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_brad", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2047 #if WITH_PROFILE_MODEL_P
2048 /* Record the fields for profiling. */
2049 if (PROFILE_MODEL_P (current_cpu
))
2059 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2060 #define FLD(f) abuf->fields.fmt_empty.f
2063 /* Record the fields for the semantic handler. */
2064 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bnod", (char *) 0));
2072 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2073 #define FLD(f) abuf->fields.sfmt_brad.f
2076 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2078 /* Record the fields for the semantic handler. */
2079 FLD (i_label9
) = f_rel9
;
2080 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_beqd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2082 #if WITH_PROFILE_MODEL_P
2083 /* Record the fields for profiling. */
2084 if (PROFILE_MODEL_P (current_cpu
))
2094 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2095 #define FLD(f) abuf->fields.sfmt_brad.f
2098 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2100 /* Record the fields for the semantic handler. */
2101 FLD (i_label9
) = f_rel9
;
2102 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bcd", "label9 0x%x", 'x', f_rel9
, (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 #define FLD(f) abuf->fields.sfmt_brad.f
2120 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2122 /* Record the fields for the semantic handler. */
2123 FLD (i_label9
) = f_rel9
;
2124 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bnd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2126 #if WITH_PROFILE_MODEL_P
2127 /* Record the fields for profiling. */
2128 if (PROFILE_MODEL_P (current_cpu
))
2138 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2139 #define FLD(f) abuf->fields.sfmt_brad.f
2142 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2144 /* Record the fields for the semantic handler. */
2145 FLD (i_label9
) = f_rel9
;
2146 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bvd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2148 #if WITH_PROFILE_MODEL_P
2149 /* Record the fields for profiling. */
2150 if (PROFILE_MODEL_P (current_cpu
))
2160 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2161 #define FLD(f) abuf->fields.sfmt_brad.f
2164 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2166 /* Record the fields for the semantic handler. */
2167 FLD (i_label9
) = f_rel9
;
2168 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bltd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2170 #if WITH_PROFILE_MODEL_P
2171 /* Record the fields for profiling. */
2172 if (PROFILE_MODEL_P (current_cpu
))
2182 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2183 #define FLD(f) abuf->fields.sfmt_brad.f
2186 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2188 /* Record the fields for the semantic handler. */
2189 FLD (i_label9
) = f_rel9
;
2190 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bled", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2192 #if WITH_PROFILE_MODEL_P
2193 /* Record the fields for profiling. */
2194 if (PROFILE_MODEL_P (current_cpu
))
2204 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2205 #define FLD(f) abuf->fields.sfmt_brad.f
2208 f_rel9
= ((((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (1))) + (((pc
) + (2))));
2210 /* Record the fields for the semantic handler. */
2211 FLD (i_label9
) = f_rel9
;
2212 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_blsd", "label9 0x%x", 'x', f_rel9
, (char *) 0));
2214 #if WITH_PROFILE_MODEL_P
2215 /* Record the fields for profiling. */
2216 if (PROFILE_MODEL_P (current_cpu
))
2224 extract_sfmt_dmovr13
:
2226 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2227 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2230 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2232 /* Record the fields for the semantic handler. */
2233 FLD (f_dir10
) = f_dir10
;
2234 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2236 #if WITH_PROFILE_MODEL_P
2237 /* Record the fields for profiling. */
2238 if (PROFILE_MODEL_P (current_cpu
))
2240 FLD (in_h_gr_13
) = 13;
2247 extract_sfmt_dmovr13h
:
2249 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2250 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2253 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2255 /* Record the fields for the semantic handler. */
2256 FLD (f_dir9
) = f_dir9
;
2257 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13h", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2259 #if WITH_PROFILE_MODEL_P
2260 /* Record the fields for profiling. */
2261 if (PROFILE_MODEL_P (current_cpu
))
2263 FLD (in_h_gr_13
) = 13;
2270 extract_sfmt_dmovr13b
:
2272 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2273 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2276 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2278 /* Record the fields for the semantic handler. */
2279 FLD (f_dir8
) = f_dir8
;
2280 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13b", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2282 #if WITH_PROFILE_MODEL_P
2283 /* Record the fields for profiling. */
2284 if (PROFILE_MODEL_P (current_cpu
))
2286 FLD (in_h_gr_13
) = 13;
2293 extract_sfmt_dmovr13pi
:
2295 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2296 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2299 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2301 /* Record the fields for the semantic handler. */
2302 FLD (f_dir10
) = f_dir10
;
2303 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13pi", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2305 #if WITH_PROFILE_MODEL_P
2306 /* Record the fields for profiling. */
2307 if (PROFILE_MODEL_P (current_cpu
))
2309 FLD (in_h_gr_13
) = 13;
2310 FLD (out_h_gr_13
) = 13;
2317 extract_sfmt_dmovr13pih
:
2319 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2320 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2323 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2325 /* Record the fields for the semantic handler. */
2326 FLD (f_dir9
) = f_dir9
;
2327 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13pih", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2329 #if WITH_PROFILE_MODEL_P
2330 /* Record the fields for profiling. */
2331 if (PROFILE_MODEL_P (current_cpu
))
2333 FLD (in_h_gr_13
) = 13;
2334 FLD (out_h_gr_13
) = 13;
2341 extract_sfmt_dmovr13pib
:
2343 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2344 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2347 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2349 /* Record the fields for the semantic handler. */
2350 FLD (f_dir8
) = f_dir8
;
2351 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr13pib", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2353 #if WITH_PROFILE_MODEL_P
2354 /* Record the fields for profiling. */
2355 if (PROFILE_MODEL_P (current_cpu
))
2357 FLD (in_h_gr_13
) = 13;
2358 FLD (out_h_gr_13
) = 13;
2365 extract_sfmt_dmovr15pi
:
2367 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2368 #define FLD(f) abuf->fields.sfmt_dmovr15pi.f
2371 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2373 /* Record the fields for the semantic handler. */
2374 FLD (f_dir10
) = f_dir10
;
2375 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmovr15pi", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2377 #if WITH_PROFILE_MODEL_P
2378 /* Record the fields for profiling. */
2379 if (PROFILE_MODEL_P (current_cpu
))
2381 FLD (in_h_gr_15
) = 15;
2382 FLD (out_h_gr_15
) = 15;
2389 extract_sfmt_dmov2r13
:
2391 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2392 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2395 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2397 /* Record the fields for the semantic handler. */
2398 FLD (f_dir10
) = f_dir10
;
2399 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2401 #if WITH_PROFILE_MODEL_P
2402 /* Record the fields for profiling. */
2403 if (PROFILE_MODEL_P (current_cpu
))
2405 FLD (out_h_gr_13
) = 13;
2412 extract_sfmt_dmov2r13h
:
2414 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2415 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2418 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2420 /* Record the fields for the semantic handler. */
2421 FLD (f_dir9
) = f_dir9
;
2422 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13h", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2424 #if WITH_PROFILE_MODEL_P
2425 /* Record the fields for profiling. */
2426 if (PROFILE_MODEL_P (current_cpu
))
2428 FLD (out_h_gr_13
) = 13;
2435 extract_sfmt_dmov2r13b
:
2437 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2438 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2441 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2443 /* Record the fields for the semantic handler. */
2444 FLD (f_dir8
) = f_dir8
;
2445 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13b", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2447 #if WITH_PROFILE_MODEL_P
2448 /* Record the fields for profiling. */
2449 if (PROFILE_MODEL_P (current_cpu
))
2451 FLD (out_h_gr_13
) = 13;
2458 extract_sfmt_dmov2r13pi
:
2460 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2461 #define FLD(f) abuf->fields.sfmt_dmovr13pi.f
2464 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2466 /* Record the fields for the semantic handler. */
2467 FLD (f_dir10
) = f_dir10
;
2468 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13pi", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2470 #if WITH_PROFILE_MODEL_P
2471 /* Record the fields for profiling. */
2472 if (PROFILE_MODEL_P (current_cpu
))
2474 FLD (in_h_gr_13
) = 13;
2475 FLD (out_h_gr_13
) = 13;
2482 extract_sfmt_dmov2r13pih
:
2484 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2485 #define FLD(f) abuf->fields.sfmt_dmovr13pih.f
2488 f_dir9
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (1));
2490 /* Record the fields for the semantic handler. */
2491 FLD (f_dir9
) = f_dir9
;
2492 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13pih", "f_dir9 0x%x", 'x', f_dir9
, (char *) 0));
2494 #if WITH_PROFILE_MODEL_P
2495 /* Record the fields for profiling. */
2496 if (PROFILE_MODEL_P (current_cpu
))
2498 FLD (in_h_gr_13
) = 13;
2499 FLD (out_h_gr_13
) = 13;
2506 extract_sfmt_dmov2r13pib
:
2508 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2509 #define FLD(f) abuf->fields.sfmt_dmovr13pib.f
2512 f_dir8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2514 /* Record the fields for the semantic handler. */
2515 FLD (f_dir8
) = f_dir8
;
2516 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r13pib", "f_dir8 0x%x", 'x', f_dir8
, (char *) 0));
2518 #if WITH_PROFILE_MODEL_P
2519 /* Record the fields for profiling. */
2520 if (PROFILE_MODEL_P (current_cpu
))
2522 FLD (in_h_gr_13
) = 13;
2523 FLD (out_h_gr_13
) = 13;
2530 extract_sfmt_dmov2r15pd
:
2532 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2533 #define FLD(f) abuf->fields.sfmt_dmovr15pi.f
2536 f_dir10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2538 /* Record the fields for the semantic handler. */
2539 FLD (f_dir10
) = f_dir10
;
2540 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmov2r15pd", "f_dir10 0x%x", 'x', f_dir10
, (char *) 0));
2542 #if WITH_PROFILE_MODEL_P
2543 /* Record the fields for profiling. */
2544 if (PROFILE_MODEL_P (current_cpu
))
2546 FLD (in_h_gr_15
) = 15;
2547 FLD (out_h_gr_15
) = 15;
2556 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2557 #define FLD(f) abuf->fields.sfmt_add2.f
2560 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2562 /* Record the fields for the semantic handler. */
2564 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2565 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldres", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2567 #if WITH_PROFILE_MODEL_P
2568 /* Record the fields for profiling. */
2569 if (PROFILE_MODEL_P (current_cpu
))
2572 FLD (out_Ri
) = f_Ri
;
2581 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2582 #define FLD(f) abuf->fields.fmt_empty.f
2583 /* Contents of trailing part of insn. */
2586 word_1
= GETIMEMUHI (current_cpu
, pc
+ 2);
2588 /* Record the fields for the semantic handler. */
2589 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_copop", (char *) 0));
2595 extract_sfmt_andccr
:
2597 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2598 #define FLD(f) abuf->fields.sfmt_int.f
2601 f_u8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2603 /* Record the fields for the semantic handler. */
2605 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andccr", "f_u8 0x%x", 'x', f_u8
, (char *) 0));
2613 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2614 #define FLD(f) abuf->fields.sfmt_int.f
2617 f_u8
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2619 /* Record the fields for the semantic handler. */
2621 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stilm", "f_u8 0x%x", 'x', f_u8
, (char *) 0));
2629 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2630 #define FLD(f) abuf->fields.sfmt_addsp.f
2633 f_s10
= ((EXTRACT_MSB0_INT (insn
, 16, 8, 8)) << (2));
2635 /* Record the fields for the semantic handler. */
2636 FLD (f_s10
) = f_s10
;
2637 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addsp", "f_s10 0x%x", 'x', f_s10
, (char *) 0));
2639 #if WITH_PROFILE_MODEL_P
2640 /* Record the fields for profiling. */
2641 if (PROFILE_MODEL_P (current_cpu
))
2643 FLD (in_h_gr_15
) = 15;
2644 FLD (out_h_gr_15
) = 15;
2653 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2654 #define FLD(f) abuf->fields.sfmt_add2.f
2657 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2659 /* Record the fields for the semantic handler. */
2661 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2662 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extsb", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2664 #if WITH_PROFILE_MODEL_P
2665 /* Record the fields for profiling. */
2666 if (PROFILE_MODEL_P (current_cpu
))
2669 FLD (out_Ri
) = f_Ri
;
2678 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2679 #define FLD(f) abuf->fields.sfmt_add2.f
2682 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2684 /* Record the fields for the semantic handler. */
2686 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2687 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extub", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2689 #if WITH_PROFILE_MODEL_P
2690 /* Record the fields for profiling. */
2691 if (PROFILE_MODEL_P (current_cpu
))
2694 FLD (out_Ri
) = f_Ri
;
2703 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2704 #define FLD(f) abuf->fields.sfmt_add2.f
2707 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2709 /* Record the fields for the semantic handler. */
2711 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2712 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extsh", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2714 #if WITH_PROFILE_MODEL_P
2715 /* Record the fields for profiling. */
2716 if (PROFILE_MODEL_P (current_cpu
))
2719 FLD (out_Ri
) = f_Ri
;
2728 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2729 #define FLD(f) abuf->fields.sfmt_add2.f
2732 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2734 /* Record the fields for the semantic handler. */
2736 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2737 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extuh", "f_Ri 0x%x", 'x', f_Ri
, "Ri 0x%x", 'x', f_Ri
, (char *) 0));
2739 #if WITH_PROFILE_MODEL_P
2740 /* Record the fields for profiling. */
2741 if (PROFILE_MODEL_P (current_cpu
))
2744 FLD (out_Ri
) = f_Ri
;
2753 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2754 #define FLD(f) abuf->fields.sfmt_ldm0.f
2755 UINT f_reglist_low_ld
;
2757 f_reglist_low_ld
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2759 /* Record the fields for the semantic handler. */
2760 FLD (f_reglist_low_ld
) = f_reglist_low_ld
;
2761 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldm0", "f_reglist_low_ld 0x%x", 'x', f_reglist_low_ld
, (char *) 0));
2763 #if WITH_PROFILE_MODEL_P
2764 /* Record the fields for profiling. */
2765 if (PROFILE_MODEL_P (current_cpu
))
2767 FLD (in_h_gr_15
) = 15;
2768 FLD (out_h_gr_0
) = 0;
2769 FLD (out_h_gr_1
) = 1;
2770 FLD (out_h_gr_15
) = 15;
2771 FLD (out_h_gr_2
) = 2;
2772 FLD (out_h_gr_3
) = 3;
2773 FLD (out_h_gr_4
) = 4;
2774 FLD (out_h_gr_5
) = 5;
2775 FLD (out_h_gr_6
) = 6;
2776 FLD (out_h_gr_7
) = 7;
2785 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2786 #define FLD(f) abuf->fields.sfmt_ldm1.f
2787 UINT f_reglist_hi_ld
;
2789 f_reglist_hi_ld
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2791 /* Record the fields for the semantic handler. */
2792 FLD (f_reglist_hi_ld
) = f_reglist_hi_ld
;
2793 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldm1", "f_reglist_hi_ld 0x%x", 'x', f_reglist_hi_ld
, (char *) 0));
2795 #if WITH_PROFILE_MODEL_P
2796 /* Record the fields for profiling. */
2797 if (PROFILE_MODEL_P (current_cpu
))
2799 FLD (in_h_gr_15
) = 15;
2800 FLD (out_h_gr_10
) = 10;
2801 FLD (out_h_gr_11
) = 11;
2802 FLD (out_h_gr_12
) = 12;
2803 FLD (out_h_gr_13
) = 13;
2804 FLD (out_h_gr_14
) = 14;
2805 FLD (out_h_gr_15
) = 15;
2806 FLD (out_h_gr_8
) = 8;
2807 FLD (out_h_gr_9
) = 9;
2816 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2817 #define FLD(f) abuf->fields.sfmt_stm0.f
2818 UINT f_reglist_low_st
;
2820 f_reglist_low_st
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2822 /* Record the fields for the semantic handler. */
2823 FLD (f_reglist_low_st
) = f_reglist_low_st
;
2824 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stm0", "f_reglist_low_st 0x%x", 'x', f_reglist_low_st
, (char *) 0));
2826 #if WITH_PROFILE_MODEL_P
2827 /* Record the fields for profiling. */
2828 if (PROFILE_MODEL_P (current_cpu
))
2830 FLD (in_h_gr_0
) = 0;
2831 FLD (in_h_gr_1
) = 1;
2832 FLD (in_h_gr_15
) = 15;
2833 FLD (in_h_gr_2
) = 2;
2834 FLD (in_h_gr_3
) = 3;
2835 FLD (in_h_gr_4
) = 4;
2836 FLD (in_h_gr_5
) = 5;
2837 FLD (in_h_gr_6
) = 6;
2838 FLD (in_h_gr_7
) = 7;
2839 FLD (out_h_gr_15
) = 15;
2848 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2849 #define FLD(f) abuf->fields.sfmt_stm1.f
2850 UINT f_reglist_hi_st
;
2852 f_reglist_hi_st
= EXTRACT_MSB0_UINT (insn
, 16, 8, 8);
2854 /* Record the fields for the semantic handler. */
2855 FLD (f_reglist_hi_st
) = f_reglist_hi_st
;
2856 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stm1", "f_reglist_hi_st 0x%x", 'x', f_reglist_hi_st
, (char *) 0));
2858 #if WITH_PROFILE_MODEL_P
2859 /* Record the fields for profiling. */
2860 if (PROFILE_MODEL_P (current_cpu
))
2862 FLD (in_h_gr_10
) = 10;
2863 FLD (in_h_gr_11
) = 11;
2864 FLD (in_h_gr_12
) = 12;
2865 FLD (in_h_gr_13
) = 13;
2866 FLD (in_h_gr_14
) = 14;
2867 FLD (in_h_gr_15
) = 15;
2868 FLD (in_h_gr_8
) = 8;
2869 FLD (in_h_gr_9
) = 9;
2870 FLD (out_h_gr_15
) = 15;
2879 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2880 #define FLD(f) abuf->fields.sfmt_enter.f
2883 f_u10
= ((EXTRACT_MSB0_UINT (insn
, 16, 8, 8)) << (2));
2885 /* Record the fields for the semantic handler. */
2886 FLD (f_u10
) = f_u10
;
2887 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_enter", "f_u10 0x%x", 'x', f_u10
, (char *) 0));
2889 #if WITH_PROFILE_MODEL_P
2890 /* Record the fields for profiling. */
2891 if (PROFILE_MODEL_P (current_cpu
))
2893 FLD (in_h_gr_14
) = 14;
2894 FLD (in_h_gr_15
) = 15;
2895 FLD (out_h_gr_14
) = 14;
2896 FLD (out_h_gr_15
) = 15;
2905 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2906 #define FLD(f) abuf->fields.sfmt_enter.f
2909 /* Record the fields for the semantic handler. */
2910 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_leave", (char *) 0));
2912 #if WITH_PROFILE_MODEL_P
2913 /* Record the fields for profiling. */
2914 if (PROFILE_MODEL_P (current_cpu
))
2916 FLD (in_h_gr_14
) = 14;
2917 FLD (in_h_gr_15
) = 15;
2918 FLD (out_h_gr_14
) = 14;
2919 FLD (out_h_gr_15
) = 15;
2928 const IDESC
*idesc
= &fr30bf_insn_data
[itype
];
2929 #define FLD(f) abuf->fields.sfmt_add.f
2933 f_Rj
= EXTRACT_MSB0_UINT (insn
, 16, 8, 4);
2934 f_Ri
= EXTRACT_MSB0_UINT (insn
, 16, 12, 4);
2936 /* Record the fields for the semantic handler. */
2939 FLD (i_Ri
) = & CPU (h_gr
)[f_Ri
];
2940 FLD (i_Rj
) = & CPU (h_gr
)[f_Rj
];
2941 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_xchb", "f_Ri 0x%x", 'x', f_Ri
, "f_Rj 0x%x", 'x', f_Rj
, "Ri 0x%x", 'x', f_Ri
, "Rj 0x%x", 'x', f_Rj
, (char *) 0));
2943 #if WITH_PROFILE_MODEL_P
2944 /* Record the fields for profiling. */
2945 if (PROFILE_MODEL_P (current_cpu
))
2949 FLD (out_Ri
) = f_Ri
;