1 /* Simulator instruction extractor for m32r.
3 This file is machine generated with CGEN.
5 Copyright (C) 1996, 1997, 1998 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.
32 EX_FN_NAME (m32r
,fmt_0_add
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
34 #define FLD(f) abuf->fields.fmt_0_add.f
35 EXTRACT_FMT_0_ADD_VARS
/* f-op1 f-r1 f-op2 f-r2 */
37 EXTRACT_FMT_0_ADD_CODE
39 /* Record the fields for the semantic handler. */
40 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
41 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
42 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_0_add", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
44 abuf
->length
= length
;
47 #if WITH_PROFILE_MODEL_P
48 /* Record the fields for profiling. */
49 if (PROFILE_MODEL_P (current_cpu
))
51 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
52 abuf
->h_gr_set
= 0 | (1 << f_r1
);
59 EX_FN_NAME (m32r
,fmt_1_add3
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
61 #define FLD(f) abuf->fields.fmt_1_add3.f
62 EXTRACT_FMT_1_ADD3_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
64 EXTRACT_FMT_1_ADD3_CODE
66 /* Record the fields for the semantic handler. */
67 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
68 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
69 FLD (f_simm16
) = f_simm16
;
70 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_1_add3", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "slo16 0x%x", 'x', f_simm16
, (char *) 0));
72 abuf
->length
= length
;
75 #if WITH_PROFILE_MODEL_P
76 /* Record the fields for profiling. */
77 if (PROFILE_MODEL_P (current_cpu
))
79 abuf
->h_gr_get
= 0 | (1 << f_r2
);
80 abuf
->h_gr_set
= 0 | (1 << f_r1
);
87 EX_FN_NAME (m32r
,fmt_2_and3
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
89 #define FLD(f) abuf->fields.fmt_2_and3.f
90 EXTRACT_FMT_2_AND3_VARS
/* f-op1 f-r1 f-op2 f-r2 f-uimm16 */
92 EXTRACT_FMT_2_AND3_CODE
94 /* Record the fields for the semantic handler. */
95 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
96 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
97 FLD (f_uimm16
) = f_uimm16
;
98 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_2_and3", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "uimm16 0x%x", 'x', f_uimm16
, (char *) 0));
100 abuf
->length
= length
;
103 #if WITH_PROFILE_MODEL_P
104 /* Record the fields for profiling. */
105 if (PROFILE_MODEL_P (current_cpu
))
107 abuf
->h_gr_get
= 0 | (1 << f_r2
);
108 abuf
->h_gr_set
= 0 | (1 << f_r1
);
115 EX_FN_NAME (m32r
,fmt_3_or3
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
117 #define FLD(f) abuf->fields.fmt_3_or3.f
118 EXTRACT_FMT_3_OR3_VARS
/* f-op1 f-r1 f-op2 f-r2 f-uimm16 */
120 EXTRACT_FMT_3_OR3_CODE
122 /* Record the fields for the semantic handler. */
123 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
124 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
125 FLD (f_uimm16
) = f_uimm16
;
126 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_3_or3", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "ulo16 0x%x", 'x', f_uimm16
, (char *) 0));
128 abuf
->length
= length
;
131 #if WITH_PROFILE_MODEL_P
132 /* Record the fields for profiling. */
133 if (PROFILE_MODEL_P (current_cpu
))
135 abuf
->h_gr_get
= 0 | (1 << f_r2
);
136 abuf
->h_gr_set
= 0 | (1 << f_r1
);
143 EX_FN_NAME (m32r
,fmt_4_addi
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
145 #define FLD(f) abuf->fields.fmt_4_addi.f
146 EXTRACT_FMT_4_ADDI_VARS
/* f-op1 f-r1 f-simm8 */
148 EXTRACT_FMT_4_ADDI_CODE
150 /* Record the fields for the semantic handler. */
151 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
152 FLD (f_simm8
) = f_simm8
;
153 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_4_addi", "dr 0x%x", 'x', f_r1
, "simm8 0x%x", 'x', f_simm8
, (char *) 0));
155 abuf
->length
= length
;
158 #if WITH_PROFILE_MODEL_P
159 /* Record the fields for profiling. */
160 if (PROFILE_MODEL_P (current_cpu
))
162 abuf
->h_gr_get
= 0 | (1 << f_r1
);
163 abuf
->h_gr_set
= 0 | (1 << f_r1
);
170 EX_FN_NAME (m32r
,fmt_5_addv3
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
172 #define FLD(f) abuf->fields.fmt_5_addv3.f
173 EXTRACT_FMT_5_ADDV3_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
175 EXTRACT_FMT_5_ADDV3_CODE
177 /* Record the fields for the semantic handler. */
178 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
179 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
180 FLD (f_simm16
) = f_simm16
;
181 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_5_addv3", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "simm16 0x%x", 'x', f_simm16
, (char *) 0));
183 abuf
->length
= length
;
186 #if WITH_PROFILE_MODEL_P
187 /* Record the fields for profiling. */
188 if (PROFILE_MODEL_P (current_cpu
))
190 abuf
->h_gr_get
= 0 | (1 << f_r2
);
191 abuf
->h_gr_set
= 0 | (1 << f_r1
);
198 EX_FN_NAME (m32r
,fmt_6_addx
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
200 #define FLD(f) abuf->fields.fmt_6_addx.f
201 EXTRACT_FMT_6_ADDX_VARS
/* f-op1 f-r1 f-op2 f-r2 */
203 EXTRACT_FMT_6_ADDX_CODE
205 /* Record the fields for the semantic handler. */
206 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
207 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
208 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_6_addx", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
210 abuf
->length
= length
;
213 #if WITH_PROFILE_MODEL_P
214 /* Record the fields for profiling. */
215 if (PROFILE_MODEL_P (current_cpu
))
217 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
218 abuf
->h_gr_set
= 0 | (1 << f_r1
);
225 EX_FN_NAME (m32r
,fmt_7_bc8
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
227 #define FLD(f) abuf->fields.fmt_7_bc8.f
228 EXTRACT_FMT_7_BC8_VARS
/* f-op1 f-r1 f-disp8 */
230 EXTRACT_FMT_7_BC8_CODE
232 /* Record the fields for the semantic handler. */
233 RECORD_IADDR (FLD (f_disp8
), (pc
& -4L) + f_disp8
);
234 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_7_bc8", "disp8 0x%x", 'x', f_disp8
, (char *) 0));
236 abuf
->length
= length
;
242 EX_FN_NAME (m32r
,fmt_8_bc24
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
244 #define FLD(f) abuf->fields.fmt_8_bc24.f
245 EXTRACT_FMT_8_BC24_VARS
/* f-op1 f-r1 f-disp24 */
247 EXTRACT_FMT_8_BC24_CODE
249 /* Record the fields for the semantic handler. */
250 RECORD_IADDR (FLD (f_disp24
), pc
+ f_disp24
);
251 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_8_bc24", "disp24 0x%x", 'x', f_disp24
, (char *) 0));
253 abuf
->length
= length
;
259 EX_FN_NAME (m32r
,fmt_9_beq
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
261 #define FLD(f) abuf->fields.fmt_9_beq.f
262 EXTRACT_FMT_9_BEQ_VARS
/* f-op1 f-r1 f-op2 f-r2 f-disp16 */
264 EXTRACT_FMT_9_BEQ_CODE
266 /* Record the fields for the semantic handler. */
267 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
268 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
269 RECORD_IADDR (FLD (f_disp16
), pc
+ f_disp16
);
270 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_9_beq", "src1 0x%x", 'x', f_r1
, "src2 0x%x", 'x', f_r2
, "disp16 0x%x", 'x', f_disp16
, (char *) 0));
272 abuf
->length
= length
;
275 #if WITH_PROFILE_MODEL_P
276 /* Record the fields for profiling. */
277 if (PROFILE_MODEL_P (current_cpu
))
279 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
286 EX_FN_NAME (m32r
,fmt_10_beqz
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
288 #define FLD(f) abuf->fields.fmt_10_beqz.f
289 EXTRACT_FMT_10_BEQZ_VARS
/* f-op1 f-r1 f-op2 f-r2 f-disp16 */
291 EXTRACT_FMT_10_BEQZ_CODE
293 /* Record the fields for the semantic handler. */
294 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
295 RECORD_IADDR (FLD (f_disp16
), pc
+ f_disp16
);
296 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_10_beqz", "src2 0x%x", 'x', f_r2
, "disp16 0x%x", 'x', f_disp16
, (char *) 0));
298 abuf
->length
= length
;
301 #if WITH_PROFILE_MODEL_P
302 /* Record the fields for profiling. */
303 if (PROFILE_MODEL_P (current_cpu
))
305 abuf
->h_gr_get
= 0 | (1 << f_r2
);
312 EX_FN_NAME (m32r
,fmt_11_bl8
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
314 #define FLD(f) abuf->fields.fmt_11_bl8.f
315 EXTRACT_FMT_11_BL8_VARS
/* f-op1 f-r1 f-disp8 */
317 EXTRACT_FMT_11_BL8_CODE
319 /* Record the fields for the semantic handler. */
320 RECORD_IADDR (FLD (f_disp8
), (pc
& -4L) + f_disp8
);
321 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_11_bl8", "disp8 0x%x", 'x', f_disp8
, (char *) 0));
323 abuf
->length
= length
;
326 #if WITH_PROFILE_MODEL_P
327 /* Record the fields for profiling. */
328 if (PROFILE_MODEL_P (current_cpu
))
330 abuf
->h_gr_set
= 0 | (1 << 14);
337 EX_FN_NAME (m32r
,fmt_12_bl24
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
339 #define FLD(f) abuf->fields.fmt_12_bl24.f
340 EXTRACT_FMT_12_BL24_VARS
/* f-op1 f-r1 f-disp24 */
342 EXTRACT_FMT_12_BL24_CODE
344 /* Record the fields for the semantic handler. */
345 RECORD_IADDR (FLD (f_disp24
), pc
+ f_disp24
);
346 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_12_bl24", "disp24 0x%x", 'x', f_disp24
, (char *) 0));
348 abuf
->length
= length
;
351 #if WITH_PROFILE_MODEL_P
352 /* Record the fields for profiling. */
353 if (PROFILE_MODEL_P (current_cpu
))
355 abuf
->h_gr_set
= 0 | (1 << 14);
362 EX_FN_NAME (m32r
,fmt_13_bra8
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
364 #define FLD(f) abuf->fields.fmt_13_bra8.f
365 EXTRACT_FMT_13_BRA8_VARS
/* f-op1 f-r1 f-disp8 */
367 EXTRACT_FMT_13_BRA8_CODE
369 /* Record the fields for the semantic handler. */
370 RECORD_IADDR (FLD (f_disp8
), (pc
& -4L) + f_disp8
);
371 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_13_bra8", "disp8 0x%x", 'x', f_disp8
, (char *) 0));
373 abuf
->length
= length
;
379 EX_FN_NAME (m32r
,fmt_14_bra24
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
381 #define FLD(f) abuf->fields.fmt_14_bra24.f
382 EXTRACT_FMT_14_BRA24_VARS
/* f-op1 f-r1 f-disp24 */
384 EXTRACT_FMT_14_BRA24_CODE
386 /* Record the fields for the semantic handler. */
387 RECORD_IADDR (FLD (f_disp24
), pc
+ f_disp24
);
388 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_14_bra24", "disp24 0x%x", 'x', f_disp24
, (char *) 0));
390 abuf
->length
= length
;
396 EX_FN_NAME (m32r
,fmt_15_cmp
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
398 #define FLD(f) abuf->fields.fmt_15_cmp.f
399 EXTRACT_FMT_15_CMP_VARS
/* f-op1 f-r1 f-op2 f-r2 */
401 EXTRACT_FMT_15_CMP_CODE
403 /* Record the fields for the semantic handler. */
404 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
405 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
406 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_15_cmp", "src1 0x%x", 'x', f_r1
, "src2 0x%x", 'x', f_r2
, (char *) 0));
408 abuf
->length
= length
;
411 #if WITH_PROFILE_MODEL_P
412 /* Record the fields for profiling. */
413 if (PROFILE_MODEL_P (current_cpu
))
415 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
422 EX_FN_NAME (m32r
,fmt_16_cmpi
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
424 #define FLD(f) abuf->fields.fmt_16_cmpi.f
425 EXTRACT_FMT_16_CMPI_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
427 EXTRACT_FMT_16_CMPI_CODE
429 /* Record the fields for the semantic handler. */
430 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
431 FLD (f_simm16
) = f_simm16
;
432 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_16_cmpi", "src2 0x%x", 'x', f_r2
, "simm16 0x%x", 'x', f_simm16
, (char *) 0));
434 abuf
->length
= length
;
437 #if WITH_PROFILE_MODEL_P
438 /* Record the fields for profiling. */
439 if (PROFILE_MODEL_P (current_cpu
))
441 abuf
->h_gr_get
= 0 | (1 << f_r2
);
448 EX_FN_NAME (m32r
,fmt_17_cmpui
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
450 #define FLD(f) abuf->fields.fmt_17_cmpui.f
451 EXTRACT_FMT_17_CMPUI_VARS
/* f-op1 f-r1 f-op2 f-r2 f-uimm16 */
453 EXTRACT_FMT_17_CMPUI_CODE
455 /* Record the fields for the semantic handler. */
456 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
457 FLD (f_uimm16
) = f_uimm16
;
458 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_17_cmpui", "src2 0x%x", 'x', f_r2
, "uimm16 0x%x", 'x', f_uimm16
, (char *) 0));
460 abuf
->length
= length
;
463 #if WITH_PROFILE_MODEL_P
464 /* Record the fields for profiling. */
465 if (PROFILE_MODEL_P (current_cpu
))
467 abuf
->h_gr_get
= 0 | (1 << f_r2
);
474 EX_FN_NAME (m32r
,fmt_18_div
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
476 #define FLD(f) abuf->fields.fmt_18_div.f
477 EXTRACT_FMT_18_DIV_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
479 EXTRACT_FMT_18_DIV_CODE
481 /* Record the fields for the semantic handler. */
482 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
483 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
484 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_18_div", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
486 abuf
->length
= length
;
489 #if WITH_PROFILE_MODEL_P
490 /* Record the fields for profiling. */
491 if (PROFILE_MODEL_P (current_cpu
))
493 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
494 abuf
->h_gr_set
= 0 | (1 << f_r1
);
501 EX_FN_NAME (m32r
,fmt_19_jl
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
503 #define FLD(f) abuf->fields.fmt_19_jl.f
504 EXTRACT_FMT_19_JL_VARS
/* f-op1 f-r1 f-op2 f-r2 */
506 EXTRACT_FMT_19_JL_CODE
508 /* Record the fields for the semantic handler. */
509 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
510 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_19_jl", "sr 0x%x", 'x', f_r2
, (char *) 0));
512 abuf
->length
= length
;
515 #if WITH_PROFILE_MODEL_P
516 /* Record the fields for profiling. */
517 if (PROFILE_MODEL_P (current_cpu
))
519 abuf
->h_gr_get
= 0 | (1 << f_r2
);
520 abuf
->h_gr_set
= 0 | (1 << 14);
527 EX_FN_NAME (m32r
,fmt_20_jmp
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
529 #define FLD(f) abuf->fields.fmt_20_jmp.f
530 EXTRACT_FMT_20_JMP_VARS
/* f-op1 f-r1 f-op2 f-r2 */
532 EXTRACT_FMT_20_JMP_CODE
534 /* Record the fields for the semantic handler. */
535 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
536 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_20_jmp", "sr 0x%x", 'x', f_r2
, (char *) 0));
538 abuf
->length
= length
;
541 #if WITH_PROFILE_MODEL_P
542 /* Record the fields for profiling. */
543 if (PROFILE_MODEL_P (current_cpu
))
545 abuf
->h_gr_get
= 0 | (1 << f_r2
);
552 EX_FN_NAME (m32r
,fmt_21_ld
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
554 #define FLD(f) abuf->fields.fmt_21_ld.f
555 EXTRACT_FMT_21_LD_VARS
/* f-op1 f-r1 f-op2 f-r2 */
557 EXTRACT_FMT_21_LD_CODE
559 /* Record the fields for the semantic handler. */
560 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
561 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
562 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_21_ld", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
564 abuf
->length
= length
;
567 #if WITH_PROFILE_MODEL_P
568 /* Record the fields for profiling. */
569 if (PROFILE_MODEL_P (current_cpu
))
571 abuf
->h_gr_get
= 0 | (1 << f_r2
);
572 abuf
->h_gr_set
= 0 | (1 << f_r1
);
579 EX_FN_NAME (m32r
,fmt_22_ld_d
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
581 #define FLD(f) abuf->fields.fmt_22_ld_d.f
582 EXTRACT_FMT_22_LD_D_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
584 EXTRACT_FMT_22_LD_D_CODE
586 /* Record the fields for the semantic handler. */
587 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
588 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
589 FLD (f_simm16
) = f_simm16
;
590 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_22_ld_d", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "slo16 0x%x", 'x', f_simm16
, (char *) 0));
592 abuf
->length
= length
;
595 #if WITH_PROFILE_MODEL_P
596 /* Record the fields for profiling. */
597 if (PROFILE_MODEL_P (current_cpu
))
599 abuf
->h_gr_get
= 0 | (1 << f_r2
);
600 abuf
->h_gr_set
= 0 | (1 << f_r1
);
607 EX_FN_NAME (m32r
,fmt_23_ldb
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
609 #define FLD(f) abuf->fields.fmt_23_ldb.f
610 EXTRACT_FMT_23_LDB_VARS
/* f-op1 f-r1 f-op2 f-r2 */
612 EXTRACT_FMT_23_LDB_CODE
614 /* Record the fields for the semantic handler. */
615 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
616 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
617 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_23_ldb", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
619 abuf
->length
= length
;
622 #if WITH_PROFILE_MODEL_P
623 /* Record the fields for profiling. */
624 if (PROFILE_MODEL_P (current_cpu
))
626 abuf
->h_gr_get
= 0 | (1 << f_r2
);
627 abuf
->h_gr_set
= 0 | (1 << f_r1
);
634 EX_FN_NAME (m32r
,fmt_24_ldb_d
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
636 #define FLD(f) abuf->fields.fmt_24_ldb_d.f
637 EXTRACT_FMT_24_LDB_D_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
639 EXTRACT_FMT_24_LDB_D_CODE
641 /* Record the fields for the semantic handler. */
642 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
643 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
644 FLD (f_simm16
) = f_simm16
;
645 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_24_ldb_d", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "slo16 0x%x", 'x', f_simm16
, (char *) 0));
647 abuf
->length
= length
;
650 #if WITH_PROFILE_MODEL_P
651 /* Record the fields for profiling. */
652 if (PROFILE_MODEL_P (current_cpu
))
654 abuf
->h_gr_get
= 0 | (1 << f_r2
);
655 abuf
->h_gr_set
= 0 | (1 << f_r1
);
662 EX_FN_NAME (m32r
,fmt_25_ldh
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
664 #define FLD(f) abuf->fields.fmt_25_ldh.f
665 EXTRACT_FMT_25_LDH_VARS
/* f-op1 f-r1 f-op2 f-r2 */
667 EXTRACT_FMT_25_LDH_CODE
669 /* Record the fields for the semantic handler. */
670 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
671 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
672 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_25_ldh", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
674 abuf
->length
= length
;
677 #if WITH_PROFILE_MODEL_P
678 /* Record the fields for profiling. */
679 if (PROFILE_MODEL_P (current_cpu
))
681 abuf
->h_gr_get
= 0 | (1 << f_r2
);
682 abuf
->h_gr_set
= 0 | (1 << f_r1
);
689 EX_FN_NAME (m32r
,fmt_26_ldh_d
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
691 #define FLD(f) abuf->fields.fmt_26_ldh_d.f
692 EXTRACT_FMT_26_LDH_D_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
694 EXTRACT_FMT_26_LDH_D_CODE
696 /* Record the fields for the semantic handler. */
697 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
698 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
699 FLD (f_simm16
) = f_simm16
;
700 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_26_ldh_d", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, "slo16 0x%x", 'x', f_simm16
, (char *) 0));
702 abuf
->length
= length
;
705 #if WITH_PROFILE_MODEL_P
706 /* Record the fields for profiling. */
707 if (PROFILE_MODEL_P (current_cpu
))
709 abuf
->h_gr_get
= 0 | (1 << f_r2
);
710 abuf
->h_gr_set
= 0 | (1 << f_r1
);
717 EX_FN_NAME (m32r
,fmt_27_ld24
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
719 #define FLD(f) abuf->fields.fmt_27_ld24.f
720 EXTRACT_FMT_27_LD24_VARS
/* f-op1 f-r1 f-uimm24 */
722 EXTRACT_FMT_27_LD24_CODE
724 /* Record the fields for the semantic handler. */
725 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
726 FLD (f_uimm24
) = f_uimm24
;
727 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_27_ld24", "dr 0x%x", 'x', f_r1
, "uimm24 0x%x", 'x', f_uimm24
, (char *) 0));
729 abuf
->length
= length
;
732 #if WITH_PROFILE_MODEL_P
733 /* Record the fields for profiling. */
734 if (PROFILE_MODEL_P (current_cpu
))
736 abuf
->h_gr_set
= 0 | (1 << f_r1
);
743 EX_FN_NAME (m32r
,fmt_28_ldi8
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
745 #define FLD(f) abuf->fields.fmt_28_ldi8.f
746 EXTRACT_FMT_28_LDI8_VARS
/* f-op1 f-r1 f-simm8 */
748 EXTRACT_FMT_28_LDI8_CODE
750 /* Record the fields for the semantic handler. */
751 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
752 FLD (f_simm8
) = f_simm8
;
753 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_28_ldi8", "dr 0x%x", 'x', f_r1
, "simm8 0x%x", 'x', f_simm8
, (char *) 0));
755 abuf
->length
= length
;
758 #if WITH_PROFILE_MODEL_P
759 /* Record the fields for profiling. */
760 if (PROFILE_MODEL_P (current_cpu
))
762 abuf
->h_gr_set
= 0 | (1 << f_r1
);
769 EX_FN_NAME (m32r
,fmt_29_ldi16
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
771 #define FLD(f) abuf->fields.fmt_29_ldi16.f
772 EXTRACT_FMT_29_LDI16_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
774 EXTRACT_FMT_29_LDI16_CODE
776 /* Record the fields for the semantic handler. */
777 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
778 FLD (f_simm16
) = f_simm16
;
779 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_29_ldi16", "dr 0x%x", 'x', f_r1
, "slo16 0x%x", 'x', f_simm16
, (char *) 0));
781 abuf
->length
= length
;
784 #if WITH_PROFILE_MODEL_P
785 /* Record the fields for profiling. */
786 if (PROFILE_MODEL_P (current_cpu
))
788 abuf
->h_gr_set
= 0 | (1 << f_r1
);
795 EX_FN_NAME (m32r
,fmt_30_machi
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
797 #define FLD(f) abuf->fields.fmt_30_machi.f
798 EXTRACT_FMT_30_MACHI_VARS
/* f-op1 f-r1 f-op2 f-r2 */
800 EXTRACT_FMT_30_MACHI_CODE
802 /* Record the fields for the semantic handler. */
803 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
804 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
805 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_30_machi", "src1 0x%x", 'x', f_r1
, "src2 0x%x", 'x', f_r2
, (char *) 0));
807 abuf
->length
= length
;
810 #if WITH_PROFILE_MODEL_P
811 /* Record the fields for profiling. */
812 if (PROFILE_MODEL_P (current_cpu
))
814 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
821 EX_FN_NAME (m32r
,fmt_31_mv
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
823 #define FLD(f) abuf->fields.fmt_31_mv.f
824 EXTRACT_FMT_31_MV_VARS
/* f-op1 f-r1 f-op2 f-r2 */
826 EXTRACT_FMT_31_MV_CODE
828 /* Record the fields for the semantic handler. */
829 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
830 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
831 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_31_mv", "dr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
833 abuf
->length
= length
;
836 #if WITH_PROFILE_MODEL_P
837 /* Record the fields for profiling. */
838 if (PROFILE_MODEL_P (current_cpu
))
840 abuf
->h_gr_get
= 0 | (1 << f_r2
);
841 abuf
->h_gr_set
= 0 | (1 << f_r1
);
848 EX_FN_NAME (m32r
,fmt_32_mvfachi
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
850 #define FLD(f) abuf->fields.fmt_32_mvfachi.f
851 EXTRACT_FMT_32_MVFACHI_VARS
/* f-op1 f-r1 f-op2 f-r2 */
853 EXTRACT_FMT_32_MVFACHI_CODE
855 /* Record the fields for the semantic handler. */
856 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
857 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_32_mvfachi", "dr 0x%x", 'x', f_r1
, (char *) 0));
859 abuf
->length
= length
;
862 #if WITH_PROFILE_MODEL_P
863 /* Record the fields for profiling. */
864 if (PROFILE_MODEL_P (current_cpu
))
866 abuf
->h_gr_set
= 0 | (1 << f_r1
);
873 EX_FN_NAME (m32r
,fmt_33_mvfc
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
875 #define FLD(f) abuf->fields.fmt_33_mvfc.f
876 EXTRACT_FMT_33_MVFC_VARS
/* f-op1 f-r1 f-op2 f-r2 */
878 EXTRACT_FMT_33_MVFC_CODE
880 /* Record the fields for the semantic handler. */
881 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
883 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_33_mvfc", "dr 0x%x", 'x', f_r1
, "scr 0x%x", 'x', f_r2
, (char *) 0));
885 abuf
->length
= length
;
888 #if WITH_PROFILE_MODEL_P
889 /* Record the fields for profiling. */
890 if (PROFILE_MODEL_P (current_cpu
))
892 abuf
->h_gr_set
= 0 | (1 << f_r1
);
899 EX_FN_NAME (m32r
,fmt_34_mvtachi
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
901 #define FLD(f) abuf->fields.fmt_34_mvtachi.f
902 EXTRACT_FMT_34_MVTACHI_VARS
/* f-op1 f-r1 f-op2 f-r2 */
904 EXTRACT_FMT_34_MVTACHI_CODE
906 /* Record the fields for the semantic handler. */
907 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
908 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_34_mvtachi", "src1 0x%x", 'x', f_r1
, (char *) 0));
910 abuf
->length
= length
;
913 #if WITH_PROFILE_MODEL_P
914 /* Record the fields for profiling. */
915 if (PROFILE_MODEL_P (current_cpu
))
917 abuf
->h_gr_get
= 0 | (1 << f_r1
);
924 EX_FN_NAME (m32r
,fmt_35_mvtc
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
926 #define FLD(f) abuf->fields.fmt_35_mvtc.f
927 EXTRACT_FMT_35_MVTC_VARS
/* f-op1 f-r1 f-op2 f-r2 */
929 EXTRACT_FMT_35_MVTC_CODE
931 /* Record the fields for the semantic handler. */
933 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
934 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_35_mvtc", "dcr 0x%x", 'x', f_r1
, "sr 0x%x", 'x', f_r2
, (char *) 0));
936 abuf
->length
= length
;
939 #if WITH_PROFILE_MODEL_P
940 /* Record the fields for profiling. */
941 if (PROFILE_MODEL_P (current_cpu
))
943 abuf
->h_gr_get
= 0 | (1 << f_r2
);
950 EX_FN_NAME (m32r
,fmt_36_nop
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
952 #define FLD(f) abuf->fields.fmt_36_nop.f
953 EXTRACT_FMT_36_NOP_VARS
/* f-op1 f-r1 f-op2 f-r2 */
955 EXTRACT_FMT_36_NOP_CODE
957 /* Record the fields for the semantic handler. */
958 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_36_nop", (char *) 0));
960 abuf
->length
= length
;
966 EX_FN_NAME (m32r
,fmt_37_rac
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
968 #define FLD(f) abuf->fields.fmt_37_rac.f
969 EXTRACT_FMT_37_RAC_VARS
/* f-op1 f-r1 f-op2 f-r2 */
971 EXTRACT_FMT_37_RAC_CODE
973 /* Record the fields for the semantic handler. */
974 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_37_rac", (char *) 0));
976 abuf
->length
= length
;
982 EX_FN_NAME (m32r
,fmt_38_rte
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
984 #define FLD(f) abuf->fields.fmt_38_rte.f
985 EXTRACT_FMT_38_RTE_VARS
/* f-op1 f-r1 f-op2 f-r2 */
987 EXTRACT_FMT_38_RTE_CODE
989 /* Record the fields for the semantic handler. */
990 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_38_rte", (char *) 0));
992 abuf
->length
= length
;
998 EX_FN_NAME (m32r
,fmt_39_seth
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
1000 #define FLD(f) abuf->fields.fmt_39_seth.f
1001 EXTRACT_FMT_39_SETH_VARS
/* f-op1 f-r1 f-op2 f-r2 f-hi16 */
1003 EXTRACT_FMT_39_SETH_CODE
1005 /* Record the fields for the semantic handler. */
1006 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
1007 FLD (f_hi16
) = f_hi16
;
1008 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_39_seth", "dr 0x%x", 'x', f_r1
, "hi16 0x%x", 'x', f_hi16
, (char *) 0));
1010 abuf
->length
= length
;
1013 #if WITH_PROFILE_MODEL_P
1014 /* Record the fields for profiling. */
1015 if (PROFILE_MODEL_P (current_cpu
))
1017 abuf
->h_gr_set
= 0 | (1 << f_r1
);
1024 EX_FN_NAME (m32r
,fmt_40_slli
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
1026 #define FLD(f) abuf->fields.fmt_40_slli.f
1027 EXTRACT_FMT_40_SLLI_VARS
/* f-op1 f-r1 f-shift-op2 f-uimm5 */
1029 EXTRACT_FMT_40_SLLI_CODE
1031 /* Record the fields for the semantic handler. */
1032 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
1033 FLD (f_uimm5
) = f_uimm5
;
1034 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_40_slli", "dr 0x%x", 'x', f_r1
, "uimm5 0x%x", 'x', f_uimm5
, (char *) 0));
1036 abuf
->length
= length
;
1039 #if WITH_PROFILE_MODEL_P
1040 /* Record the fields for profiling. */
1041 if (PROFILE_MODEL_P (current_cpu
))
1043 abuf
->h_gr_get
= 0 | (1 << f_r1
);
1044 abuf
->h_gr_set
= 0 | (1 << f_r1
);
1051 EX_FN_NAME (m32r
,fmt_41_st_d
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
1053 #define FLD(f) abuf->fields.fmt_41_st_d.f
1054 EXTRACT_FMT_41_ST_D_VARS
/* f-op1 f-r1 f-op2 f-r2 f-simm16 */
1056 EXTRACT_FMT_41_ST_D_CODE
1058 /* Record the fields for the semantic handler. */
1059 FLD (f_r1
) = & CPU (h_gr
)[f_r1
];
1060 FLD (f_r2
) = & CPU (h_gr
)[f_r2
];
1061 FLD (f_simm16
) = f_simm16
;
1062 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_41_st_d", "src1 0x%x", 'x', f_r1
, "src2 0x%x", 'x', f_r2
, "slo16 0x%x", 'x', f_simm16
, (char *) 0));
1064 abuf
->length
= length
;
1067 #if WITH_PROFILE_MODEL_P
1068 /* Record the fields for profiling. */
1069 if (PROFILE_MODEL_P (current_cpu
))
1071 abuf
->h_gr_get
= 0 | (1 << f_r1
) | (1 << f_r2
);
1078 EX_FN_NAME (m32r
,fmt_42_trap
) (SIM_CPU
*current_cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
1080 #define FLD(f) abuf->fields.fmt_42_trap.f
1081 EXTRACT_FMT_42_TRAP_VARS
/* f-op1 f-r1 f-op2 f-uimm4 */
1083 EXTRACT_FMT_42_TRAP_CODE
1085 /* Record the fields for the semantic handler. */
1086 FLD (f_uimm4
) = f_uimm4
;
1087 TRACE_EXTRACT (current_cpu
, (current_cpu
, pc
, "fmt_42_trap", "uimm4 0x%x", 'x', f_uimm4
, (char *) 0));
1089 abuf
->length
= length
;
1095 EX_FN_NAME (m32r
,illegal
) (SIM_CPU
*cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
1097 abuf
->length
= CGEN_BASE_INSN_SIZE
;
1099 /* Leave signalling to semantic fn. */
1104 EXC_FN_NAME (m32r
,illegal
) (SIM_CPU
*cpu
, PCADDR pc
, insn_t insn
, ARGBUF
*abuf
)
1106 abuf
->length
= CGEN_BASE_INSN_SIZE
;
1108 /* Leave signalling to semantic fn. */