1 /* Simulator instruction semantics 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.
33 #if ! defined (SCACHE_P) || (defined (SCACHE_P) && WITH_SCACHE)
36 #define GET_ATTR(cpu, num, attr) CGEN_INSN_ATTR (abuf->opcode, CGEN_INSN_##attr)
38 /* Perform add: add $dr,$sr. */
40 SEM_FN_NAME (m32r
,add
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
42 #define FLD(f) abuf->fields.fmt_0_add.f
43 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
44 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
46 * FLD (f_r1
) = ADDSI (* FLD (f_r1
), * FLD (f_r2
));
47 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
49 #if WITH_PROFILE_MODEL_P
50 if (PROFILE_MODEL_P (current_cpu
))
52 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
53 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
54 m32r_model_profile_insn (current_cpu
, abuf
);
62 /* Perform add3: add3 $dr,$sr,#$slo16. */
64 SEM_FN_NAME (m32r
,add3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
66 #define FLD(f) abuf->fields.fmt_1_add3.f
67 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
68 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
70 * FLD (f_r1
) = ADDSI (* FLD (f_r2
), FLD (f_simm16
));
71 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
73 #if WITH_PROFILE_MODEL_P
74 if (PROFILE_MODEL_P (current_cpu
))
76 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
77 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
78 m32r_model_profile_insn (current_cpu
, abuf
);
86 /* Perform and: and $dr,$sr. */
88 SEM_FN_NAME (m32r
,and) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
90 #define FLD(f) abuf->fields.fmt_0_add.f
91 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
92 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
94 * FLD (f_r1
) = ANDSI (* FLD (f_r1
), * FLD (f_r2
));
95 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
97 #if WITH_PROFILE_MODEL_P
98 if (PROFILE_MODEL_P (current_cpu
))
100 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
101 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
102 m32r_model_profile_insn (current_cpu
, abuf
);
110 /* Perform and3: and3 $dr,$sr,#$uimm16. */
112 SEM_FN_NAME (m32r
,and3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
114 #define FLD(f) abuf->fields.fmt_2_and3.f
115 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
116 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
118 * FLD (f_r1
) = ANDSI (* FLD (f_r2
), FLD (f_uimm16
));
119 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
121 #if WITH_PROFILE_MODEL_P
122 if (PROFILE_MODEL_P (current_cpu
))
124 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
125 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
126 m32r_model_profile_insn (current_cpu
, abuf
);
134 /* Perform or: or $dr,$sr. */
136 SEM_FN_NAME (m32r
,or) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
138 #define FLD(f) abuf->fields.fmt_0_add.f
139 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
140 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
142 * FLD (f_r1
) = ORSI (* FLD (f_r1
), * FLD (f_r2
));
143 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
145 #if WITH_PROFILE_MODEL_P
146 if (PROFILE_MODEL_P (current_cpu
))
148 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
149 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
150 m32r_model_profile_insn (current_cpu
, abuf
);
158 /* Perform or3: or3 $dr,$sr,#$ulo16. */
160 SEM_FN_NAME (m32r
,or3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
162 #define FLD(f) abuf->fields.fmt_3_or3.f
163 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
164 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
166 * FLD (f_r1
) = ORSI (* FLD (f_r2
), FLD (f_uimm16
));
167 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
169 #if WITH_PROFILE_MODEL_P
170 if (PROFILE_MODEL_P (current_cpu
))
172 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
173 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
174 m32r_model_profile_insn (current_cpu
, abuf
);
182 /* Perform xor: xor $dr,$sr. */
184 SEM_FN_NAME (m32r
,xor) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
186 #define FLD(f) abuf->fields.fmt_0_add.f
187 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
188 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
190 * FLD (f_r1
) = XORSI (* FLD (f_r1
), * FLD (f_r2
));
191 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
193 #if WITH_PROFILE_MODEL_P
194 if (PROFILE_MODEL_P (current_cpu
))
196 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
197 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
198 m32r_model_profile_insn (current_cpu
, abuf
);
206 /* Perform xor3: xor3 $dr,$sr,#$uimm16. */
208 SEM_FN_NAME (m32r
,xor3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
210 #define FLD(f) abuf->fields.fmt_2_and3.f
211 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
212 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
214 * FLD (f_r1
) = XORSI (* FLD (f_r2
), FLD (f_uimm16
));
215 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
217 #if WITH_PROFILE_MODEL_P
218 if (PROFILE_MODEL_P (current_cpu
))
220 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
221 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
222 m32r_model_profile_insn (current_cpu
, abuf
);
230 /* Perform addi: addi $dr,#$simm8. */
232 SEM_FN_NAME (m32r
,addi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
234 #define FLD(f) abuf->fields.fmt_4_addi.f
235 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
236 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
238 * FLD (f_r1
) = ADDSI (* FLD (f_r1
), FLD (f_simm8
));
239 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
241 #if WITH_PROFILE_MODEL_P
242 if (PROFILE_MODEL_P (current_cpu
))
244 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
245 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
246 m32r_model_profile_insn (current_cpu
, abuf
);
254 /* Perform addv: addv $dr,$sr. */
256 SEM_FN_NAME (m32r
,addv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
258 #define FLD(f) abuf->fields.fmt_0_add.f
259 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
260 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
264 temp0
= ADDSI (* FLD (f_r1
), * FLD (f_r2
));
265 temp1
= ADDOFSI (* FLD (f_r1
), * FLD (f_r2
), 0);
266 * FLD (f_r1
) = temp0
;
267 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
268 CPU (h_cond
) = temp1
;
269 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
272 #if WITH_PROFILE_MODEL_P
273 if (PROFILE_MODEL_P (current_cpu
))
275 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
276 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
277 m32r_model_profile_insn (current_cpu
, abuf
);
285 /* Perform addv3: addv3 $dr,$sr,#$simm16. */
287 SEM_FN_NAME (m32r
,addv3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
289 #define FLD(f) abuf->fields.fmt_5_addv3.f
290 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
291 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
295 temp0
= ADDSI (* FLD (f_r2
), FLD (f_simm16
));
296 temp1
= ADDOFSI (* FLD (f_r2
), FLD (f_simm16
), 0);
297 * FLD (f_r1
) = temp0
;
298 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
299 CPU (h_cond
) = temp1
;
300 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
303 #if WITH_PROFILE_MODEL_P
304 if (PROFILE_MODEL_P (current_cpu
))
306 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
307 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
308 m32r_model_profile_insn (current_cpu
, abuf
);
316 /* Perform addx: addx $dr,$sr. */
318 SEM_FN_NAME (m32r
,addx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
320 #define FLD(f) abuf->fields.fmt_6_addx.f
321 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
322 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
326 temp0
= ADDCSI (* FLD (f_r1
), * FLD (f_r2
), CPU (h_cond
));
327 temp1
= ADDCFSI (* FLD (f_r1
), * FLD (f_r2
), CPU (h_cond
));
328 * FLD (f_r1
) = temp0
;
329 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
330 CPU (h_cond
) = temp1
;
331 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
334 #if WITH_PROFILE_MODEL_P
335 if (PROFILE_MODEL_P (current_cpu
))
337 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
338 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
339 m32r_model_profile_insn (current_cpu
, abuf
);
347 /* Perform bc8: bc $disp8. */
349 SEM_FN_NAME (m32r
,bc8
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
351 #define FLD(f) abuf->fields.fmt_7_bc8.f
352 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
353 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
357 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp8
)));
361 #if WITH_PROFILE_MODEL_P
362 if (PROFILE_MODEL_P (current_cpu
))
364 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
372 /* Perform bc24: bc $disp24. */
374 SEM_FN_NAME (m32r
,bc24
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
376 #define FLD(f) abuf->fields.fmt_8_bc24.f
377 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
378 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
382 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp24
)));
386 #if WITH_PROFILE_MODEL_P
387 if (PROFILE_MODEL_P (current_cpu
))
389 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
397 /* Perform beq: beq $src1,$src2,$disp16. */
399 SEM_FN_NAME (m32r
,beq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
401 #define FLD(f) abuf->fields.fmt_9_beq.f
402 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
403 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
406 if (EQSI (* FLD (f_r1
), * FLD (f_r2
))) {
407 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
411 #if WITH_PROFILE_MODEL_P
412 if (PROFILE_MODEL_P (current_cpu
))
414 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
415 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
423 /* Perform beqz: beqz $src2,$disp16. */
425 SEM_FN_NAME (m32r
,beqz
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
427 #define FLD(f) abuf->fields.fmt_10_beqz.f
428 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
429 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
432 if (EQSI (* FLD (f_r2
), 0)) {
433 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
437 #if WITH_PROFILE_MODEL_P
438 if (PROFILE_MODEL_P (current_cpu
))
440 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
441 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
449 /* Perform bgez: bgez $src2,$disp16. */
451 SEM_FN_NAME (m32r
,bgez
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
453 #define FLD(f) abuf->fields.fmt_10_beqz.f
454 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
455 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
458 if (GESI (* FLD (f_r2
), 0)) {
459 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
463 #if WITH_PROFILE_MODEL_P
464 if (PROFILE_MODEL_P (current_cpu
))
466 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
467 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
475 /* Perform bgtz: bgtz $src2,$disp16. */
477 SEM_FN_NAME (m32r
,bgtz
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
479 #define FLD(f) abuf->fields.fmt_10_beqz.f
480 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
481 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
484 if (GTSI (* FLD (f_r2
), 0)) {
485 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
489 #if WITH_PROFILE_MODEL_P
490 if (PROFILE_MODEL_P (current_cpu
))
492 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
493 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
501 /* Perform blez: blez $src2,$disp16. */
503 SEM_FN_NAME (m32r
,blez
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
505 #define FLD(f) abuf->fields.fmt_10_beqz.f
506 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
507 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
510 if (LESI (* FLD (f_r2
), 0)) {
511 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
515 #if WITH_PROFILE_MODEL_P
516 if (PROFILE_MODEL_P (current_cpu
))
518 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
519 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
527 /* Perform bltz: bltz $src2,$disp16. */
529 SEM_FN_NAME (m32r
,bltz
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
531 #define FLD(f) abuf->fields.fmt_10_beqz.f
532 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
533 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
536 if (LTSI (* FLD (f_r2
), 0)) {
537 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
541 #if WITH_PROFILE_MODEL_P
542 if (PROFILE_MODEL_P (current_cpu
))
544 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
545 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
553 /* Perform bnez: bnez $src2,$disp16. */
555 SEM_FN_NAME (m32r
,bnez
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
557 #define FLD(f) abuf->fields.fmt_10_beqz.f
558 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
559 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
562 if (NESI (* FLD (f_r2
), 0)) {
563 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
567 #if WITH_PROFILE_MODEL_P
568 if (PROFILE_MODEL_P (current_cpu
))
570 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
571 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
579 /* Perform bl8: bl $disp8. */
581 SEM_FN_NAME (m32r
,bl8
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
583 #define FLD(f) abuf->fields.fmt_11_bl8.f
584 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
585 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
589 CPU (h_gr
[14]) = ADDSI (ANDSI (CPU (h_pc
), -4), 4);
590 TRACE_RESULT (current_cpu
, "h-gr-14", 'x', CPU (h_gr
[14]));
591 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp8
)));
595 #if WITH_PROFILE_MODEL_P
596 if (PROFILE_MODEL_P (current_cpu
))
598 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
599 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
607 /* Perform bl24: bl $disp24. */
609 SEM_FN_NAME (m32r
,bl24
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
611 #define FLD(f) abuf->fields.fmt_12_bl24.f
612 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
613 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
617 CPU (h_gr
[14]) = ADDSI (CPU (h_pc
), 4);
618 TRACE_RESULT (current_cpu
, "h-gr-14", 'x', CPU (h_gr
[14]));
619 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp24
)));
623 #if WITH_PROFILE_MODEL_P
624 if (PROFILE_MODEL_P (current_cpu
))
626 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
627 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
635 /* Perform bnc8: bnc $disp8. */
637 SEM_FN_NAME (m32r
,bnc8
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
639 #define FLD(f) abuf->fields.fmt_7_bc8.f
640 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
641 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
644 if (NOTBI (CPU (h_cond
))) {
645 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp8
)));
649 #if WITH_PROFILE_MODEL_P
650 if (PROFILE_MODEL_P (current_cpu
))
652 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
660 /* Perform bnc24: bnc $disp24. */
662 SEM_FN_NAME (m32r
,bnc24
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
664 #define FLD(f) abuf->fields.fmt_8_bc24.f
665 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
666 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
669 if (NOTBI (CPU (h_cond
))) {
670 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp24
)));
674 #if WITH_PROFILE_MODEL_P
675 if (PROFILE_MODEL_P (current_cpu
))
677 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
685 /* Perform bne: bne $src1,$src2,$disp16. */
687 SEM_FN_NAME (m32r
,bne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
689 #define FLD(f) abuf->fields.fmt_9_beq.f
690 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
691 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
694 if (NESI (* FLD (f_r1
), * FLD (f_r2
))) {
695 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp16
)));
699 #if WITH_PROFILE_MODEL_P
700 if (PROFILE_MODEL_P (current_cpu
))
702 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
703 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
711 /* Perform bra8: bra $disp8. */
713 SEM_FN_NAME (m32r
,bra8
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
715 #define FLD(f) abuf->fields.fmt_13_bra8.f
716 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
717 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
720 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp8
)));
723 #if WITH_PROFILE_MODEL_P
724 if (PROFILE_MODEL_P (current_cpu
))
726 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
734 /* Perform bra24: bra $disp24. */
736 SEM_FN_NAME (m32r
,bra24
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
738 #define FLD(f) abuf->fields.fmt_14_bra24.f
739 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
740 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
743 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_CACHE (sem_arg
, FLD (f_disp24
)));
746 #if WITH_PROFILE_MODEL_P
747 if (PROFILE_MODEL_P (current_cpu
))
749 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
757 /* Perform cmp: cmp $src1,$src2. */
759 SEM_FN_NAME (m32r
,cmp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
761 #define FLD(f) abuf->fields.fmt_15_cmp.f
762 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
763 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
765 CPU (h_cond
) = LTSI (* FLD (f_r1
), * FLD (f_r2
));
766 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
768 #if WITH_PROFILE_MODEL_P
769 if (PROFILE_MODEL_P (current_cpu
))
771 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
772 m32r_model_profile_insn (current_cpu
, abuf
);
780 /* Perform cmpi: cmpi $src2,#$simm16. */
782 SEM_FN_NAME (m32r
,cmpi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
784 #define FLD(f) abuf->fields.fmt_16_cmpi.f
785 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
786 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
788 CPU (h_cond
) = LTSI (* FLD (f_r2
), FLD (f_simm16
));
789 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
791 #if WITH_PROFILE_MODEL_P
792 if (PROFILE_MODEL_P (current_cpu
))
794 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
795 m32r_model_profile_insn (current_cpu
, abuf
);
803 /* Perform cmpu: cmpu $src1,$src2. */
805 SEM_FN_NAME (m32r
,cmpu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
807 #define FLD(f) abuf->fields.fmt_15_cmp.f
808 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
809 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
811 CPU (h_cond
) = LTUSI (* FLD (f_r1
), * FLD (f_r2
));
812 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
814 #if WITH_PROFILE_MODEL_P
815 if (PROFILE_MODEL_P (current_cpu
))
817 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
818 m32r_model_profile_insn (current_cpu
, abuf
);
826 /* Perform cmpui: cmpui $src2,#$uimm16. */
828 SEM_FN_NAME (m32r
,cmpui
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
830 #define FLD(f) abuf->fields.fmt_17_cmpui.f
831 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
832 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
834 CPU (h_cond
) = LTUSI (* FLD (f_r2
), FLD (f_uimm16
));
835 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
837 #if WITH_PROFILE_MODEL_P
838 if (PROFILE_MODEL_P (current_cpu
))
840 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
841 m32r_model_profile_insn (current_cpu
, abuf
);
849 /* Perform div: div $dr,$sr. */
851 SEM_FN_NAME (m32r
,div
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
853 #define FLD(f) abuf->fields.fmt_18_div.f
854 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
855 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
857 if (NESI (* FLD (f_r2
), 0)) {
858 * FLD (f_r1
) = DIVSI (* FLD (f_r1
), * FLD (f_r2
));
859 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
862 #if WITH_PROFILE_MODEL_P
863 if (PROFILE_MODEL_P (current_cpu
))
865 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
866 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
867 m32r_model_profile_insn (current_cpu
, abuf
);
875 /* Perform divu: divu $dr,$sr. */
877 SEM_FN_NAME (m32r
,divu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
879 #define FLD(f) abuf->fields.fmt_18_div.f
880 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
881 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
883 if (NESI (* FLD (f_r2
), 0)) {
884 * FLD (f_r1
) = UDIVSI (* FLD (f_r1
), * FLD (f_r2
));
885 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
888 #if WITH_PROFILE_MODEL_P
889 if (PROFILE_MODEL_P (current_cpu
))
891 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
892 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
893 m32r_model_profile_insn (current_cpu
, abuf
);
901 /* Perform rem: rem $dr,$sr. */
903 SEM_FN_NAME (m32r
,rem
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
905 #define FLD(f) abuf->fields.fmt_18_div.f
906 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
907 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
909 if (NESI (* FLD (f_r2
), 0)) {
910 * FLD (f_r1
) = MODSI (* FLD (f_r1
), * FLD (f_r2
));
911 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
914 #if WITH_PROFILE_MODEL_P
915 if (PROFILE_MODEL_P (current_cpu
))
917 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
918 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
919 m32r_model_profile_insn (current_cpu
, abuf
);
927 /* Perform remu: remu $dr,$sr. */
929 SEM_FN_NAME (m32r
,remu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
931 #define FLD(f) abuf->fields.fmt_18_div.f
932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
933 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
935 if (NESI (* FLD (f_r2
), 0)) {
936 * FLD (f_r1
) = UMODSI (* FLD (f_r1
), * FLD (f_r2
));
937 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
940 #if WITH_PROFILE_MODEL_P
941 if (PROFILE_MODEL_P (current_cpu
))
943 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
944 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
945 m32r_model_profile_insn (current_cpu
, abuf
);
953 /* Perform divh: divh $dr,$sr. */
955 SEM_FN_NAME (m32r
,divh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
957 #define FLD(f) abuf->fields.fmt_18_div.f
958 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
959 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
961 if (NESI (* FLD (f_r2
), 0)) {
962 * FLD (f_r1
) = DIVSI (EXTHISI (TRUNCSIHI (* FLD (f_r1
))), * FLD (f_r2
));
963 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
966 #if WITH_PROFILE_MODEL_P
967 if (PROFILE_MODEL_P (current_cpu
))
969 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
970 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
971 m32r_model_profile_insn (current_cpu
, abuf
);
979 /* Perform jl: jl $sr. */
981 SEM_FN_NAME (m32r
,jl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
983 #define FLD(f) abuf->fields.fmt_19_jl.f
984 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
985 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
990 temp0
= ADDSI (ANDSI (CPU (h_pc
), -4), 4);
991 temp1
= * FLD (f_r2
);
992 CPU (h_gr
[14]) = temp0
;
993 TRACE_RESULT (current_cpu
, "h-gr-14", 'x', CPU (h_gr
[14]));
994 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_ADDR (sem_arg
, temp1
));
998 #if WITH_PROFILE_MODEL_P
999 if (PROFILE_MODEL_P (current_cpu
))
1001 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1002 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1003 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
1011 /* Perform jmp: jmp $sr. */
1013 SEM_FN_NAME (m32r
,jmp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1015 #define FLD(f) abuf->fields.fmt_20_jmp.f
1016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1017 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1020 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_ADDR (sem_arg
, * FLD (f_r2
)));
1023 #if WITH_PROFILE_MODEL_P
1024 if (PROFILE_MODEL_P (current_cpu
))
1026 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1027 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
1035 /* Perform ld: ld $dr,@$sr. */
1037 SEM_FN_NAME (m32r
,ld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1039 #define FLD(f) abuf->fields.fmt_21_ld.f
1040 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1041 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1043 * FLD (f_r1
) = GETMEMSI (current_cpu
, * FLD (f_r2
));
1044 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1046 #if WITH_PROFILE_MODEL_P
1047 if (PROFILE_MODEL_P (current_cpu
))
1049 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1050 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1051 m32r_model_profile_insn (current_cpu
, abuf
);
1059 /* Perform ld-d: ld $dr,@($slo16,$sr). */
1061 SEM_FN_NAME (m32r
,ld_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1063 #define FLD(f) abuf->fields.fmt_22_ld_d.f
1064 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1065 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1067 * FLD (f_r1
) = GETMEMSI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
)));
1068 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1070 #if WITH_PROFILE_MODEL_P
1071 if (PROFILE_MODEL_P (current_cpu
))
1073 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1074 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1075 m32r_model_profile_insn (current_cpu
, abuf
);
1083 /* Perform ldb: ldb $dr,@$sr. */
1085 SEM_FN_NAME (m32r
,ldb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1087 #define FLD(f) abuf->fields.fmt_23_ldb.f
1088 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1089 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1091 * FLD (f_r1
) = EXTQISI (GETMEMQI (current_cpu
, * FLD (f_r2
)));
1092 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1094 #if WITH_PROFILE_MODEL_P
1095 if (PROFILE_MODEL_P (current_cpu
))
1097 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1098 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1099 m32r_model_profile_insn (current_cpu
, abuf
);
1107 /* Perform ldb-d: ldb $dr,@($slo16,$sr). */
1109 SEM_FN_NAME (m32r
,ldb_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1111 #define FLD(f) abuf->fields.fmt_24_ldb_d.f
1112 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1113 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1115 * FLD (f_r1
) = EXTQISI (GETMEMQI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
1116 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1118 #if WITH_PROFILE_MODEL_P
1119 if (PROFILE_MODEL_P (current_cpu
))
1121 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1122 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1123 m32r_model_profile_insn (current_cpu
, abuf
);
1131 /* Perform ldh: ldh $dr,@$sr. */
1133 SEM_FN_NAME (m32r
,ldh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1135 #define FLD(f) abuf->fields.fmt_25_ldh.f
1136 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1137 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1139 * FLD (f_r1
) = EXTHISI (GETMEMHI (current_cpu
, * FLD (f_r2
)));
1140 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1142 #if WITH_PROFILE_MODEL_P
1143 if (PROFILE_MODEL_P (current_cpu
))
1145 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1146 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1147 m32r_model_profile_insn (current_cpu
, abuf
);
1155 /* Perform ldh-d: ldh $dr,@($slo16,$sr). */
1157 SEM_FN_NAME (m32r
,ldh_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1159 #define FLD(f) abuf->fields.fmt_26_ldh_d.f
1160 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1161 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1163 * FLD (f_r1
) = EXTHISI (GETMEMHI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
1164 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1166 #if WITH_PROFILE_MODEL_P
1167 if (PROFILE_MODEL_P (current_cpu
))
1169 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1170 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1171 m32r_model_profile_insn (current_cpu
, abuf
);
1179 /* Perform ldub: ldub $dr,@$sr. */
1181 SEM_FN_NAME (m32r
,ldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1183 #define FLD(f) abuf->fields.fmt_23_ldb.f
1184 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1185 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1187 * FLD (f_r1
) = ZEXTQISI (GETMEMQI (current_cpu
, * FLD (f_r2
)));
1188 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1190 #if WITH_PROFILE_MODEL_P
1191 if (PROFILE_MODEL_P (current_cpu
))
1193 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1194 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1195 m32r_model_profile_insn (current_cpu
, abuf
);
1203 /* Perform ldub-d: ldub $dr,@($slo16,$sr). */
1205 SEM_FN_NAME (m32r
,ldub_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1207 #define FLD(f) abuf->fields.fmt_24_ldb_d.f
1208 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1209 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1211 * FLD (f_r1
) = ZEXTQISI (GETMEMQI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
1212 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1214 #if WITH_PROFILE_MODEL_P
1215 if (PROFILE_MODEL_P (current_cpu
))
1217 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1218 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1219 m32r_model_profile_insn (current_cpu
, abuf
);
1227 /* Perform lduh: lduh $dr,@$sr. */
1229 SEM_FN_NAME (m32r
,lduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1231 #define FLD(f) abuf->fields.fmt_25_ldh.f
1232 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1233 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1235 * FLD (f_r1
) = ZEXTHISI (GETMEMHI (current_cpu
, * FLD (f_r2
)));
1236 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1238 #if WITH_PROFILE_MODEL_P
1239 if (PROFILE_MODEL_P (current_cpu
))
1241 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1242 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1243 m32r_model_profile_insn (current_cpu
, abuf
);
1251 /* Perform lduh-d: lduh $dr,@($slo16,$sr). */
1253 SEM_FN_NAME (m32r
,lduh_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1255 #define FLD(f) abuf->fields.fmt_26_ldh_d.f
1256 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1257 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1259 * FLD (f_r1
) = ZEXTHISI (GETMEMHI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
1260 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1262 #if WITH_PROFILE_MODEL_P
1263 if (PROFILE_MODEL_P (current_cpu
))
1265 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1266 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1267 m32r_model_profile_insn (current_cpu
, abuf
);
1275 /* Perform ld-plus: ld $dr,@$sr+. */
1277 SEM_FN_NAME (m32r
,ld_plus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1279 #define FLD(f) abuf->fields.fmt_21_ld.f
1280 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1281 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1285 temp0
= GETMEMSI (current_cpu
, * FLD (f_r2
));
1286 temp1
= ADDSI (* FLD (f_r2
), 4);
1287 * FLD (f_r1
) = temp0
;
1288 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1289 * FLD (f_r2
) = temp1
;
1290 TRACE_RESULT (current_cpu
, "sr", 'x', * FLD (f_r2
));
1293 #if WITH_PROFILE_MODEL_P
1294 if (PROFILE_MODEL_P (current_cpu
))
1296 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1297 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1298 m32r_model_profile_insn (current_cpu
, abuf
);
1306 /* Perform ld24: ld24 $dr,#$uimm24. */
1308 SEM_FN_NAME (m32r
,ld24
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1310 #define FLD(f) abuf->fields.fmt_27_ld24.f
1311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1312 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1314 * FLD (f_r1
) = FLD (f_uimm24
);
1315 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1317 #if WITH_PROFILE_MODEL_P
1318 if (PROFILE_MODEL_P (current_cpu
))
1320 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1321 m32r_model_profile_insn (current_cpu
, abuf
);
1329 /* Perform ldi8: ldi $dr,#$simm8. */
1331 SEM_FN_NAME (m32r
,ldi8
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1333 #define FLD(f) abuf->fields.fmt_28_ldi8.f
1334 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1335 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1337 * FLD (f_r1
) = FLD (f_simm8
);
1338 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1340 #if WITH_PROFILE_MODEL_P
1341 if (PROFILE_MODEL_P (current_cpu
))
1343 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1344 m32r_model_profile_insn (current_cpu
, abuf
);
1352 /* Perform ldi16: ldi $dr,$slo16. */
1354 SEM_FN_NAME (m32r
,ldi16
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1356 #define FLD(f) abuf->fields.fmt_29_ldi16.f
1357 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1358 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1360 * FLD (f_r1
) = FLD (f_simm16
);
1361 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1363 #if WITH_PROFILE_MODEL_P
1364 if (PROFILE_MODEL_P (current_cpu
))
1366 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1367 m32r_model_profile_insn (current_cpu
, abuf
);
1375 /* Perform lock: lock $dr,@$sr. */
1377 SEM_FN_NAME (m32r
,lock
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1379 #define FLD(f) abuf->fields.fmt_0_add.f
1380 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1381 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1383 do_lock (current_cpu
, * FLD (f_r1
), * FLD (f_r2
));
1385 #if WITH_PROFILE_MODEL_P
1386 if (PROFILE_MODEL_P (current_cpu
))
1388 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1389 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1390 m32r_model_profile_insn (current_cpu
, abuf
);
1398 /* Perform machi: machi $src1,$src2. */
1400 SEM_FN_NAME (m32r
,machi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1402 #define FLD(f) abuf->fields.fmt_30_machi.f
1403 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1404 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1406 CPU (h_accum
) = SRADI (SLLDI (ADDDI (CPU (h_accum
), MULDI (EXTSIDI (ANDSI (* FLD (f_r1
), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (f_r2
), 16))))), 8), 8);
1407 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1409 #if WITH_PROFILE_MODEL_P
1410 if (PROFILE_MODEL_P (current_cpu
))
1412 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1413 m32r_model_profile_insn (current_cpu
, abuf
);
1421 /* Perform maclo: maclo $src1,$src2. */
1423 SEM_FN_NAME (m32r
,maclo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1425 #define FLD(f) abuf->fields.fmt_30_machi.f
1426 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1427 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1429 CPU (h_accum
) = SRADI (SLLDI (ADDDI (CPU (h_accum
), MULDI (EXTSIDI (SLLSI (* FLD (f_r1
), 16)), EXTHIDI (TRUNCSIHI (* FLD (f_r2
))))), 8), 8);
1430 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1432 #if WITH_PROFILE_MODEL_P
1433 if (PROFILE_MODEL_P (current_cpu
))
1435 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1436 m32r_model_profile_insn (current_cpu
, abuf
);
1444 /* Perform macwhi: macwhi $src1,$src2. */
1446 SEM_FN_NAME (m32r
,macwhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1448 #define FLD(f) abuf->fields.fmt_30_machi.f
1449 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1450 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1452 CPU (h_accum
) = SRADI (SLLDI (ADDDI (CPU (h_accum
), MULDI (EXTSIDI (* FLD (f_r1
)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (f_r2
), 16))))), 8), 8);
1453 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1455 #if WITH_PROFILE_MODEL_P
1456 if (PROFILE_MODEL_P (current_cpu
))
1458 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1459 m32r_model_profile_insn (current_cpu
, abuf
);
1467 /* Perform macwlo: macwlo $src1,$src2. */
1469 SEM_FN_NAME (m32r
,macwlo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1471 #define FLD(f) abuf->fields.fmt_30_machi.f
1472 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1473 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1475 CPU (h_accum
) = SRADI (SLLDI (ADDDI (CPU (h_accum
), MULDI (EXTSIDI (* FLD (f_r1
)), EXTHIDI (TRUNCSIHI (* FLD (f_r2
))))), 8), 8);
1476 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1478 #if WITH_PROFILE_MODEL_P
1479 if (PROFILE_MODEL_P (current_cpu
))
1481 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1482 m32r_model_profile_insn (current_cpu
, abuf
);
1490 /* Perform mul: mul $dr,$sr. */
1492 SEM_FN_NAME (m32r
,mul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1494 #define FLD(f) abuf->fields.fmt_0_add.f
1495 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1496 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1498 * FLD (f_r1
) = MULSI (* FLD (f_r1
), * FLD (f_r2
));
1499 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1501 #if WITH_PROFILE_MODEL_P
1502 if (PROFILE_MODEL_P (current_cpu
))
1504 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1505 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1506 m32r_model_profile_insn (current_cpu
, abuf
);
1514 /* Perform mulhi: mulhi $src1,$src2. */
1516 SEM_FN_NAME (m32r
,mulhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1518 #define FLD(f) abuf->fields.fmt_15_cmp.f
1519 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1520 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1522 CPU (h_accum
) = SRADI (SLLDI (MULDI (EXTSIDI (ANDSI (* FLD (f_r1
), 0xffff0000)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (f_r2
), 16)))), 16), 16);
1523 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1525 #if WITH_PROFILE_MODEL_P
1526 if (PROFILE_MODEL_P (current_cpu
))
1528 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1529 m32r_model_profile_insn (current_cpu
, abuf
);
1537 /* Perform mullo: mullo $src1,$src2. */
1539 SEM_FN_NAME (m32r
,mullo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1541 #define FLD(f) abuf->fields.fmt_15_cmp.f
1542 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1543 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1545 CPU (h_accum
) = SRADI (SLLDI (MULDI (EXTSIDI (SLLSI (* FLD (f_r1
), 16)), EXTHIDI (TRUNCSIHI (* FLD (f_r2
)))), 16), 16);
1546 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1548 #if WITH_PROFILE_MODEL_P
1549 if (PROFILE_MODEL_P (current_cpu
))
1551 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1552 m32r_model_profile_insn (current_cpu
, abuf
);
1560 /* Perform mulwhi: mulwhi $src1,$src2. */
1562 SEM_FN_NAME (m32r
,mulwhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1564 #define FLD(f) abuf->fields.fmt_15_cmp.f
1565 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1566 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1568 CPU (h_accum
) = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (f_r1
)), EXTHIDI (TRUNCSIHI (SRASI (* FLD (f_r2
), 16)))), 8), 8);
1569 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1571 #if WITH_PROFILE_MODEL_P
1572 if (PROFILE_MODEL_P (current_cpu
))
1574 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1575 m32r_model_profile_insn (current_cpu
, abuf
);
1583 /* Perform mulwlo: mulwlo $src1,$src2. */
1585 SEM_FN_NAME (m32r
,mulwlo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1587 #define FLD(f) abuf->fields.fmt_15_cmp.f
1588 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1589 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1591 CPU (h_accum
) = SRADI (SLLDI (MULDI (EXTSIDI (* FLD (f_r1
)), EXTHIDI (TRUNCSIHI (* FLD (f_r2
)))), 8), 8);
1592 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1594 #if WITH_PROFILE_MODEL_P
1595 if (PROFILE_MODEL_P (current_cpu
))
1597 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1598 m32r_model_profile_insn (current_cpu
, abuf
);
1606 /* Perform mv: mv $dr,$sr. */
1608 SEM_FN_NAME (m32r
,mv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1610 #define FLD(f) abuf->fields.fmt_31_mv.f
1611 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1612 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1614 * FLD (f_r1
) = * FLD (f_r2
);
1615 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1617 #if WITH_PROFILE_MODEL_P
1618 if (PROFILE_MODEL_P (current_cpu
))
1620 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1621 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1622 m32r_model_profile_insn (current_cpu
, abuf
);
1630 /* Perform mvfachi: mvfachi $dr. */
1632 SEM_FN_NAME (m32r
,mvfachi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1634 #define FLD(f) abuf->fields.fmt_32_mvfachi.f
1635 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1636 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1638 * FLD (f_r1
) = TRUNCDISI (SRADI (CPU (h_accum
), 32));
1639 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1641 #if WITH_PROFILE_MODEL_P
1642 if (PROFILE_MODEL_P (current_cpu
))
1644 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1645 m32r_model_profile_insn (current_cpu
, abuf
);
1653 /* Perform mvfaclo: mvfaclo $dr. */
1655 SEM_FN_NAME (m32r
,mvfaclo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1657 #define FLD(f) abuf->fields.fmt_32_mvfachi.f
1658 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1659 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1661 * FLD (f_r1
) = TRUNCDISI (CPU (h_accum
));
1662 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1664 #if WITH_PROFILE_MODEL_P
1665 if (PROFILE_MODEL_P (current_cpu
))
1667 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1668 m32r_model_profile_insn (current_cpu
, abuf
);
1676 /* Perform mvfacmi: mvfacmi $dr. */
1678 SEM_FN_NAME (m32r
,mvfacmi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1680 #define FLD(f) abuf->fields.fmt_32_mvfachi.f
1681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1682 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1684 * FLD (f_r1
) = TRUNCDISI (SRADI (CPU (h_accum
), 16));
1685 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1687 #if WITH_PROFILE_MODEL_P
1688 if (PROFILE_MODEL_P (current_cpu
))
1690 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1691 m32r_model_profile_insn (current_cpu
, abuf
);
1699 /* Perform mvfc: mvfc $dr,$scr. */
1701 SEM_FN_NAME (m32r
,mvfc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1703 #define FLD(f) abuf->fields.fmt_33_mvfc.f
1704 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1705 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1707 * FLD (f_r1
) = m32r_h_cr_get (current_cpu
, FLD (f_r2
));
1708 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1710 #if WITH_PROFILE_MODEL_P
1711 if (PROFILE_MODEL_P (current_cpu
))
1713 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1714 m32r_model_profile_insn (current_cpu
, abuf
);
1722 /* Perform mvtachi: mvtachi $src1. */
1724 SEM_FN_NAME (m32r
,mvtachi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1726 #define FLD(f) abuf->fields.fmt_34_mvtachi.f
1727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1728 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1730 CPU (h_accum
) = ORDI (ANDDI (CPU (h_accum
), MAKEDI (0, 0xffffffff)), SLLDI (EXTSIDI (* FLD (f_r1
)), 32));
1731 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1733 #if WITH_PROFILE_MODEL_P
1734 if (PROFILE_MODEL_P (current_cpu
))
1736 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1737 m32r_model_profile_insn (current_cpu
, abuf
);
1745 /* Perform mvtaclo: mvtaclo $src1. */
1747 SEM_FN_NAME (m32r
,mvtaclo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1749 #define FLD(f) abuf->fields.fmt_34_mvtachi.f
1750 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1751 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1753 CPU (h_accum
) = ORDI (ANDDI (CPU (h_accum
), MAKEDI (0xffffffff, 0)), EXTSIDI (* FLD (f_r1
)));
1754 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1756 #if WITH_PROFILE_MODEL_P
1757 if (PROFILE_MODEL_P (current_cpu
))
1759 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1760 m32r_model_profile_insn (current_cpu
, abuf
);
1768 /* Perform mvtc: mvtc $sr,$dcr. */
1770 SEM_FN_NAME (m32r
,mvtc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1772 #define FLD(f) abuf->fields.fmt_35_mvtc.f
1773 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1774 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1776 m32r_h_cr_set (current_cpu
, FLD (f_r1
), * FLD (f_r2
));
1777 TRACE_RESULT (current_cpu
, "dcr", 'x', m32r_h_cr_get (current_cpu
, FLD (f_r1
)));
1779 #if WITH_PROFILE_MODEL_P
1780 if (PROFILE_MODEL_P (current_cpu
))
1782 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1783 m32r_model_profile_insn (current_cpu
, abuf
);
1791 /* Perform neg: neg $dr,$sr. */
1793 SEM_FN_NAME (m32r
,neg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1795 #define FLD(f) abuf->fields.fmt_31_mv.f
1796 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1797 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1799 * FLD (f_r1
) = NEGSI (* FLD (f_r2
));
1800 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1802 #if WITH_PROFILE_MODEL_P
1803 if (PROFILE_MODEL_P (current_cpu
))
1805 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1806 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1807 m32r_model_profile_insn (current_cpu
, abuf
);
1815 /* Perform nop: nop. */
1817 SEM_FN_NAME (m32r
,nop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1819 #define FLD(f) abuf->fields.fmt_36_nop.f
1820 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1821 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1823 PROFILE_COUNT_FILLNOPS (current_cpu
, abuf
->addr
);
1825 #if WITH_PROFILE_MODEL_P
1826 if (PROFILE_MODEL_P (current_cpu
))
1828 m32r_model_profile_insn (current_cpu
, abuf
);
1836 /* Perform not: not $dr,$sr. */
1838 SEM_FN_NAME (m32r
,not) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1840 #define FLD(f) abuf->fields.fmt_31_mv.f
1841 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1842 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1844 * FLD (f_r1
) = INVSI (* FLD (f_r2
));
1845 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1847 #if WITH_PROFILE_MODEL_P
1848 if (PROFILE_MODEL_P (current_cpu
))
1850 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1851 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1852 m32r_model_profile_insn (current_cpu
, abuf
);
1860 /* Perform rac: rac. */
1862 SEM_FN_NAME (m32r
,rac
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1864 #define FLD(f) abuf->fields.fmt_37_rac.f
1865 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1866 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1870 tmp_tmp1
= SLLDI (CPU (h_accum
), 1);
1871 tmp_tmp1
= ADDDI (tmp_tmp1
, MAKEDI (0, 32768));
1872 CPU (h_accum
) = (GTDI (tmp_tmp1
, MAKEDI (32767, 0xffff0000))) ? (MAKEDI (32767, 0xffff0000)) : (LTDI (tmp_tmp1
, MAKEDI (0xffff8000, 0))) ? (MAKEDI (0xffff8000, 0)) : (ANDDI (tmp_tmp1
, MAKEDI (0xffffffff, 0xffff0000)));
1873 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1876 #if WITH_PROFILE_MODEL_P
1877 if (PROFILE_MODEL_P (current_cpu
))
1879 m32r_model_profile_insn (current_cpu
, abuf
);
1887 /* Perform rach: rach. */
1889 SEM_FN_NAME (m32r
,rach
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1891 #define FLD(f) abuf->fields.fmt_37_rac.f
1892 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1893 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1897 tmp_tmp1
= ANDDI (CPU (h_accum
), MAKEDI (16777215, 0xffffffff));
1898 if (ANDIFSI (GEDI (tmp_tmp1
, MAKEDI (16383, 0x80000000)), LEDI (tmp_tmp1
, MAKEDI (8388607, 0xffffffff)))) {
1899 tmp_tmp1
= MAKEDI (16383, 0x80000000);
1901 if (ANDIFSI (GEDI (tmp_tmp1
, MAKEDI (8388608, 0)), LEDI (tmp_tmp1
, MAKEDI (16760832, 0)))) {
1902 tmp_tmp1
= MAKEDI (16760832, 0);
1904 tmp_tmp1
= ANDDI (ADDDI (CPU (h_accum
), MAKEDI (0, 1073741824)), MAKEDI (0xffffffff, 0x80000000));
1907 tmp_tmp1
= SLLDI (tmp_tmp1
, 1);
1908 CPU (h_accum
) = SRADI (SLLDI (tmp_tmp1
, 7), 7);
1909 TRACE_RESULT (current_cpu
, "accum", 'D', CPU (h_accum
));
1912 #if WITH_PROFILE_MODEL_P
1913 if (PROFILE_MODEL_P (current_cpu
))
1915 m32r_model_profile_insn (current_cpu
, abuf
);
1923 /* Perform rte: rte. */
1925 SEM_FN_NAME (m32r
,rte
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1927 #define FLD(f) abuf->fields.fmt_38_rte.f
1928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1929 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1933 CPU (h_sm
) = CPU (h_bsm
);
1934 TRACE_RESULT (current_cpu
, "h-sm-0", 'x', CPU (h_sm
));
1935 CPU (h_ie
) = CPU (h_bie
);
1936 TRACE_RESULT (current_cpu
, "h-ie-0", 'x', CPU (h_ie
));
1937 CPU (h_cond
) = CPU (h_bcond
);
1938 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
1939 BRANCH_NEW_PC (current_cpu
, new_pc
, SEM_BRANCH_VIA_ADDR (sem_arg
, CPU (h_bpc
)));
1941 TRACE_RESULT (current_cpu
, "pc", 'x', CPU (h_pc
));
1944 #if WITH_PROFILE_MODEL_P
1945 if (PROFILE_MODEL_P (current_cpu
))
1947 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
1955 /* Perform seth: seth $dr,#$hi16. */
1957 SEM_FN_NAME (m32r
,seth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1959 #define FLD(f) abuf->fields.fmt_39_seth.f
1960 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1961 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1963 * FLD (f_r1
) = SLLSI (FLD (f_hi16
), 16);
1964 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1966 #if WITH_PROFILE_MODEL_P
1967 if (PROFILE_MODEL_P (current_cpu
))
1969 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1970 m32r_model_profile_insn (current_cpu
, abuf
);
1978 /* Perform sll: sll $dr,$sr. */
1980 SEM_FN_NAME (m32r
,sll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1982 #define FLD(f) abuf->fields.fmt_0_add.f
1983 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1984 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
1986 * FLD (f_r1
) = SLLSI (* FLD (f_r1
), ANDSI (* FLD (f_r2
), 31));
1987 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
1989 #if WITH_PROFILE_MODEL_P
1990 if (PROFILE_MODEL_P (current_cpu
))
1992 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
1993 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
1994 m32r_model_profile_insn (current_cpu
, abuf
);
2002 /* Perform sll3: sll3 $dr,$sr,#$simm16. */
2004 SEM_FN_NAME (m32r
,sll3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2006 #define FLD(f) abuf->fields.fmt_5_addv3.f
2007 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2008 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2010 * FLD (f_r1
) = SLLSI (* FLD (f_r2
), ANDSI (FLD (f_simm16
), 31));
2011 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2013 #if WITH_PROFILE_MODEL_P
2014 if (PROFILE_MODEL_P (current_cpu
))
2016 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2017 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2018 m32r_model_profile_insn (current_cpu
, abuf
);
2026 /* Perform slli: slli $dr,#$uimm5. */
2028 SEM_FN_NAME (m32r
,slli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2030 #define FLD(f) abuf->fields.fmt_40_slli.f
2031 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2032 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2034 * FLD (f_r1
) = SLLSI (* FLD (f_r1
), FLD (f_uimm5
));
2035 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2037 #if WITH_PROFILE_MODEL_P
2038 if (PROFILE_MODEL_P (current_cpu
))
2040 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2041 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2042 m32r_model_profile_insn (current_cpu
, abuf
);
2050 /* Perform sra: sra $dr,$sr. */
2052 SEM_FN_NAME (m32r
,sra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2054 #define FLD(f) abuf->fields.fmt_0_add.f
2055 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2056 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2058 * FLD (f_r1
) = SRASI (* FLD (f_r1
), ANDSI (* FLD (f_r2
), 31));
2059 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2061 #if WITH_PROFILE_MODEL_P
2062 if (PROFILE_MODEL_P (current_cpu
))
2064 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2065 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2066 m32r_model_profile_insn (current_cpu
, abuf
);
2074 /* Perform sra3: sra3 $dr,$sr,#$simm16. */
2076 SEM_FN_NAME (m32r
,sra3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2078 #define FLD(f) abuf->fields.fmt_5_addv3.f
2079 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2080 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2082 * FLD (f_r1
) = SRASI (* FLD (f_r2
), ANDSI (FLD (f_simm16
), 31));
2083 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2085 #if WITH_PROFILE_MODEL_P
2086 if (PROFILE_MODEL_P (current_cpu
))
2088 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2089 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2090 m32r_model_profile_insn (current_cpu
, abuf
);
2098 /* Perform srai: srai $dr,#$uimm5. */
2100 SEM_FN_NAME (m32r
,srai
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2102 #define FLD(f) abuf->fields.fmt_40_slli.f
2103 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2104 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2106 * FLD (f_r1
) = SRASI (* FLD (f_r1
), FLD (f_uimm5
));
2107 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2109 #if WITH_PROFILE_MODEL_P
2110 if (PROFILE_MODEL_P (current_cpu
))
2112 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2113 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2114 m32r_model_profile_insn (current_cpu
, abuf
);
2122 /* Perform srl: srl $dr,$sr. */
2124 SEM_FN_NAME (m32r
,srl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2126 #define FLD(f) abuf->fields.fmt_0_add.f
2127 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2128 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2130 * FLD (f_r1
) = SRLSI (* FLD (f_r1
), ANDSI (* FLD (f_r2
), 31));
2131 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2133 #if WITH_PROFILE_MODEL_P
2134 if (PROFILE_MODEL_P (current_cpu
))
2136 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2137 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2138 m32r_model_profile_insn (current_cpu
, abuf
);
2146 /* Perform srl3: srl3 $dr,$sr,#$simm16. */
2148 SEM_FN_NAME (m32r
,srl3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2150 #define FLD(f) abuf->fields.fmt_5_addv3.f
2151 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2152 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2154 * FLD (f_r1
) = SRLSI (* FLD (f_r2
), ANDSI (FLD (f_simm16
), 31));
2155 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2157 #if WITH_PROFILE_MODEL_P
2158 if (PROFILE_MODEL_P (current_cpu
))
2160 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2161 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2162 m32r_model_profile_insn (current_cpu
, abuf
);
2170 /* Perform srli: srli $dr,#$uimm5. */
2172 SEM_FN_NAME (m32r
,srli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2174 #define FLD(f) abuf->fields.fmt_40_slli.f
2175 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2176 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2178 * FLD (f_r1
) = SRLSI (* FLD (f_r1
), FLD (f_uimm5
));
2179 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2181 #if WITH_PROFILE_MODEL_P
2182 if (PROFILE_MODEL_P (current_cpu
))
2184 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2185 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2186 m32r_model_profile_insn (current_cpu
, abuf
);
2194 /* Perform st: st $src1,@$src2. */
2196 SEM_FN_NAME (m32r
,st
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2198 #define FLD(f) abuf->fields.fmt_15_cmp.f
2199 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2200 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2202 SETMEMSI (current_cpu
, * FLD (f_r2
), * FLD (f_r1
));
2203 TRACE_RESULT (current_cpu
, "h-memory-src2", 'x', GETMEMSI (current_cpu
, * FLD (f_r2
)));
2205 #if WITH_PROFILE_MODEL_P
2206 if (PROFILE_MODEL_P (current_cpu
))
2208 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2209 m32r_model_profile_insn (current_cpu
, abuf
);
2217 /* Perform st-d: st $src1,@($slo16,$src2). */
2219 SEM_FN_NAME (m32r
,st_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2221 #define FLD(f) abuf->fields.fmt_41_st_d.f
2222 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2223 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2225 SETMEMSI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
)), * FLD (f_r1
));
2226 TRACE_RESULT (current_cpu
, "h-memory-add-WI-src2-slo16", 'x', GETMEMSI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
2228 #if WITH_PROFILE_MODEL_P
2229 if (PROFILE_MODEL_P (current_cpu
))
2231 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2232 m32r_model_profile_insn (current_cpu
, abuf
);
2240 /* Perform stb: stb $src1,@$src2. */
2242 SEM_FN_NAME (m32r
,stb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2244 #define FLD(f) abuf->fields.fmt_15_cmp.f
2245 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2246 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2248 SETMEMQI (current_cpu
, * FLD (f_r2
), * FLD (f_r1
));
2249 TRACE_RESULT (current_cpu
, "h-memory-src2", 'x', GETMEMQI (current_cpu
, * FLD (f_r2
)));
2251 #if WITH_PROFILE_MODEL_P
2252 if (PROFILE_MODEL_P (current_cpu
))
2254 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2255 m32r_model_profile_insn (current_cpu
, abuf
);
2263 /* Perform stb-d: stb $src1,@($slo16,$src2). */
2265 SEM_FN_NAME (m32r
,stb_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2267 #define FLD(f) abuf->fields.fmt_41_st_d.f
2268 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2269 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2271 SETMEMQI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
)), * FLD (f_r1
));
2272 TRACE_RESULT (current_cpu
, "h-memory-add-WI-src2-slo16", 'x', GETMEMQI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
2274 #if WITH_PROFILE_MODEL_P
2275 if (PROFILE_MODEL_P (current_cpu
))
2277 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2278 m32r_model_profile_insn (current_cpu
, abuf
);
2286 /* Perform sth: sth $src1,@$src2. */
2288 SEM_FN_NAME (m32r
,sth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2290 #define FLD(f) abuf->fields.fmt_15_cmp.f
2291 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2292 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2294 SETMEMHI (current_cpu
, * FLD (f_r2
), * FLD (f_r1
));
2295 TRACE_RESULT (current_cpu
, "h-memory-src2", 'x', GETMEMHI (current_cpu
, * FLD (f_r2
)));
2297 #if WITH_PROFILE_MODEL_P
2298 if (PROFILE_MODEL_P (current_cpu
))
2300 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2301 m32r_model_profile_insn (current_cpu
, abuf
);
2309 /* Perform sth-d: sth $src1,@($slo16,$src2). */
2311 SEM_FN_NAME (m32r
,sth_d
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2313 #define FLD(f) abuf->fields.fmt_41_st_d.f
2314 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2315 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2317 SETMEMHI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
)), * FLD (f_r1
));
2318 TRACE_RESULT (current_cpu
, "h-memory-add-WI-src2-slo16", 'x', GETMEMHI (current_cpu
, ADDSI (* FLD (f_r2
), FLD (f_simm16
))));
2320 #if WITH_PROFILE_MODEL_P
2321 if (PROFILE_MODEL_P (current_cpu
))
2323 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2324 m32r_model_profile_insn (current_cpu
, abuf
);
2332 /* Perform st-plus: st $src1,@+$src2. */
2334 SEM_FN_NAME (m32r
,st_plus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2336 #define FLD(f) abuf->fields.fmt_15_cmp.f
2337 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2338 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2341 * FLD (f_r2
) = ADDSI (* FLD (f_r2
), 4);
2342 TRACE_RESULT (current_cpu
, "src2", 'x', * FLD (f_r2
));
2343 SETMEMSI (current_cpu
, * FLD (f_r2
), * FLD (f_r1
));
2344 TRACE_RESULT (current_cpu
, "h-memory-src2", 'x', GETMEMSI (current_cpu
, * FLD (f_r2
)));
2347 #if WITH_PROFILE_MODEL_P
2348 if (PROFILE_MODEL_P (current_cpu
))
2350 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2351 m32r_model_profile_insn (current_cpu
, abuf
);
2359 /* Perform st-minus: st $src1,@-$src2. */
2361 SEM_FN_NAME (m32r
,st_minus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2363 #define FLD(f) abuf->fields.fmt_15_cmp.f
2364 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2365 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2368 * FLD (f_r2
) = SUBSI (* FLD (f_r2
), 4);
2369 TRACE_RESULT (current_cpu
, "src2", 'x', * FLD (f_r2
));
2370 SETMEMSI (current_cpu
, * FLD (f_r2
), * FLD (f_r1
));
2371 TRACE_RESULT (current_cpu
, "h-memory-src2", 'x', GETMEMSI (current_cpu
, * FLD (f_r2
)));
2374 #if WITH_PROFILE_MODEL_P
2375 if (PROFILE_MODEL_P (current_cpu
))
2377 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2378 m32r_model_profile_insn (current_cpu
, abuf
);
2386 /* Perform sub: sub $dr,$sr. */
2388 SEM_FN_NAME (m32r
,sub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2390 #define FLD(f) abuf->fields.fmt_0_add.f
2391 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2392 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2394 * FLD (f_r1
) = SUBSI (* FLD (f_r1
), * FLD (f_r2
));
2395 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2397 #if WITH_PROFILE_MODEL_P
2398 if (PROFILE_MODEL_P (current_cpu
))
2400 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2401 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2402 m32r_model_profile_insn (current_cpu
, abuf
);
2410 /* Perform subv: subv $dr,$sr. */
2412 SEM_FN_NAME (m32r
,subv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2414 #define FLD(f) abuf->fields.fmt_0_add.f
2415 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2416 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2420 temp0
= SUBSI (* FLD (f_r1
), * FLD (f_r2
));
2421 temp1
= SUBOFSI (* FLD (f_r1
), * FLD (f_r2
), 0);
2422 * FLD (f_r1
) = temp0
;
2423 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2424 CPU (h_cond
) = temp1
;
2425 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
2428 #if WITH_PROFILE_MODEL_P
2429 if (PROFILE_MODEL_P (current_cpu
))
2431 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2432 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2433 m32r_model_profile_insn (current_cpu
, abuf
);
2441 /* Perform subx: subx $dr,$sr. */
2443 SEM_FN_NAME (m32r
,subx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2445 #define FLD(f) abuf->fields.fmt_6_addx.f
2446 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2447 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2451 temp0
= SUBCSI (* FLD (f_r1
), * FLD (f_r2
), CPU (h_cond
));
2452 temp1
= SUBCFSI (* FLD (f_r1
), * FLD (f_r2
), CPU (h_cond
));
2453 * FLD (f_r1
) = temp0
;
2454 TRACE_RESULT (current_cpu
, "dr", 'x', * FLD (f_r1
));
2455 CPU (h_cond
) = temp1
;
2456 TRACE_RESULT (current_cpu
, "condbit", 'x', CPU (h_cond
));
2459 #if WITH_PROFILE_MODEL_P
2460 if (PROFILE_MODEL_P (current_cpu
))
2462 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2463 m32r_model_mark_set_h_gr (current_cpu
, abuf
);
2464 m32r_model_profile_insn (current_cpu
, abuf
);
2472 /* Perform trap: trap #$uimm4. */
2474 SEM_FN_NAME (m32r
,trap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2476 #define FLD(f) abuf->fields.fmt_42_trap.f
2477 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2478 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2481 do_trap (current_cpu
, FLD (f_uimm4
));
2483 #if WITH_PROFILE_MODEL_P
2484 if (PROFILE_MODEL_P (current_cpu
))
2486 m32r_model_profile_cti_insn (current_cpu
, abuf
, taken_p
);
2494 /* Perform unlock: unlock $src1,@$src2. */
2496 SEM_FN_NAME (m32r
,unlock
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2498 #define FLD(f) abuf->fields.fmt_15_cmp.f
2499 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2500 CIA new_pc
= SEM_NEXT_PC (sem_arg
);
2502 do_unlock (current_cpu
, * FLD (f_r1
), * FLD (f_r2
));
2504 #if WITH_PROFILE_MODEL_P
2505 if (PROFILE_MODEL_P (current_cpu
))
2507 m32r_model_mark_get_h_gr (current_cpu
, abuf
);
2508 m32r_model_profile_insn (current_cpu
, abuf
);
2517 SEM_FN_NAME (m32r
,illegal
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2519 sim_engine_illegal_insn (current_cpu
, NULL_CIA
/*FIXME*/);
2523 #endif /* ! defined (SCACHE_P) || (defined (SCACHE_P) && WITH_SCACHE) */
This page took 0.081014 seconds and 4 git commands to generate.