1 /* Simulator instruction semantics for i960base.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
7 This file is part of the GNU Simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU i960base
26 #define WANT_CPU_I960BASE
33 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 /* x-invalid: --invalid-- */
38 SEM_FN_NAME (i960base
,x_invalid
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
40 #define FLD(f) abuf->fields.fmt_empty.f
41 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
42 int UNUSED written
= 0;
43 IADDR UNUSED pc
= abuf
->addr
;
44 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
48 /* Update the recorded pc in the cpu state struct. */
51 sim_engine_invalid_insn (current_cpu
, pc
);
52 sim_io_error (CPU_STATE (current_cpu
), "invalid insn not handled\n");
60 /* x-after: --after-- */
63 SEM_FN_NAME (i960base
,x_after
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
65 #define FLD(f) abuf->fields.fmt_empty.f
66 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
67 int UNUSED written
= 0;
68 IADDR UNUSED pc
= abuf
->addr
;
69 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
72 #if WITH_SCACHE_PBB_I960BASE
73 i960base_pbb_after (current_cpu
, sem_arg
);
81 /* x-before: --before-- */
84 SEM_FN_NAME (i960base
,x_before
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
86 #define FLD(f) abuf->fields.fmt_empty.f
87 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
88 int UNUSED written
= 0;
89 IADDR UNUSED pc
= abuf
->addr
;
90 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
93 #if WITH_SCACHE_PBB_I960BASE
94 i960base_pbb_before (current_cpu
, sem_arg
);
102 /* x-cti-chain: --cti-chain-- */
105 SEM_FN_NAME (i960base
,x_cti_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
107 #define FLD(f) abuf->fields.fmt_empty.f
108 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
109 int UNUSED written
= 0;
110 IADDR UNUSED pc
= abuf
->addr
;
111 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
114 #if WITH_SCACHE_PBB_I960BASE
116 vpc
= i960base_pbb_cti_chain (current_cpu
, sem_arg
,
117 pbb_br_npc_ptr
, pbb_br_npc
);
120 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
121 vpc
= i960base_pbb_cti_chain (current_cpu
, sem_arg
,
122 CPU_PBB_BR_NPC_PTR (current_cpu
),
123 CPU_PBB_BR_NPC (current_cpu
));
132 /* x-chain: --chain-- */
135 SEM_FN_NAME (i960base
,x_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
137 #define FLD(f) abuf->fields.fmt_empty.f
138 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
139 int UNUSED written
= 0;
140 IADDR UNUSED pc
= abuf
->addr
;
141 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
144 #if WITH_SCACHE_PBB_I960BASE
145 vpc
= i960base_pbb_chain (current_cpu
, sem_arg
);
156 /* x-begin: --begin-- */
159 SEM_FN_NAME (i960base
,x_begin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
161 #define FLD(f) abuf->fields.fmt_empty.f
162 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
163 int UNUSED written
= 0;
164 IADDR UNUSED pc
= abuf
->addr
;
165 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
168 #if WITH_SCACHE_PBB_I960BASE
170 /* In the switch case FAST_P is a constant, allowing several optimizations
171 in any called inline functions. */
172 vpc
= i960base_pbb_begin (current_cpu
, FAST_P
);
174 vpc
= i960base_pbb_begin (current_cpu
, STATE_RUN_FAST_P (CPU_STATE (current_cpu
)));
183 /* mulo: mulo $src1, $src2, $dst */
186 SEM_FN_NAME (i960base
,mulo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
188 #define FLD(f) abuf->fields.fmt_mulo.f
189 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
190 int UNUSED written
= 0;
191 IADDR UNUSED pc
= abuf
->addr
;
192 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
195 SI opval
= MULSI (* FLD (i_src1
), * FLD (i_src2
));
196 * FLD (i_dst
) = opval
;
197 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
204 /* mulo1: mulo $lit1, $src2, $dst */
207 SEM_FN_NAME (i960base
,mulo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
209 #define FLD(f) abuf->fields.fmt_mulo1.f
210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
211 int UNUSED written
= 0;
212 IADDR UNUSED pc
= abuf
->addr
;
213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
216 SI opval
= MULSI (FLD (f_src1
), * FLD (i_src2
));
217 * FLD (i_dst
) = opval
;
218 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
225 /* mulo2: mulo $src1, $lit2, $dst */
228 SEM_FN_NAME (i960base
,mulo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
230 #define FLD(f) abuf->fields.fmt_mulo2.f
231 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
232 int UNUSED written
= 0;
233 IADDR UNUSED pc
= abuf
->addr
;
234 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
237 SI opval
= MULSI (* FLD (i_src1
), FLD (f_src2
));
238 * FLD (i_dst
) = opval
;
239 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
246 /* mulo3: mulo $lit1, $lit2, $dst */
249 SEM_FN_NAME (i960base
,mulo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
251 #define FLD(f) abuf->fields.fmt_mulo3.f
252 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
253 int UNUSED written
= 0;
254 IADDR UNUSED pc
= abuf
->addr
;
255 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
258 SI opval
= MULSI (FLD (f_src1
), FLD (f_src2
));
259 * FLD (i_dst
) = opval
;
260 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
267 /* remo: remo $src1, $src2, $dst */
270 SEM_FN_NAME (i960base
,remo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
272 #define FLD(f) abuf->fields.fmt_mulo.f
273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
274 int UNUSED written
= 0;
275 IADDR UNUSED pc
= abuf
->addr
;
276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
279 SI opval
= UMODSI (* FLD (i_src2
), * FLD (i_src1
));
280 * FLD (i_dst
) = opval
;
281 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
288 /* remo1: remo $lit1, $src2, $dst */
291 SEM_FN_NAME (i960base
,remo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
293 #define FLD(f) abuf->fields.fmt_mulo1.f
294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
295 int UNUSED written
= 0;
296 IADDR UNUSED pc
= abuf
->addr
;
297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
300 SI opval
= UMODSI (* FLD (i_src2
), FLD (f_src1
));
301 * FLD (i_dst
) = opval
;
302 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
309 /* remo2: remo $src1, $lit2, $dst */
312 SEM_FN_NAME (i960base
,remo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
314 #define FLD(f) abuf->fields.fmt_mulo2.f
315 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
316 int UNUSED written
= 0;
317 IADDR UNUSED pc
= abuf
->addr
;
318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
321 SI opval
= UMODSI (FLD (f_src2
), * FLD (i_src1
));
322 * FLD (i_dst
) = opval
;
323 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
330 /* remo3: remo $lit1, $lit2, $dst */
333 SEM_FN_NAME (i960base
,remo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
335 #define FLD(f) abuf->fields.fmt_mulo3.f
336 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
337 int UNUSED written
= 0;
338 IADDR UNUSED pc
= abuf
->addr
;
339 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
342 SI opval
= UMODSI (FLD (f_src2
), FLD (f_src1
));
343 * FLD (i_dst
) = opval
;
344 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
351 /* divo: divo $src1, $src2, $dst */
354 SEM_FN_NAME (i960base
,divo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
356 #define FLD(f) abuf->fields.fmt_mulo.f
357 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
358 int UNUSED written
= 0;
359 IADDR UNUSED pc
= abuf
->addr
;
360 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
363 SI opval
= UDIVSI (* FLD (i_src2
), * FLD (i_src1
));
364 * FLD (i_dst
) = opval
;
365 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
372 /* divo1: divo $lit1, $src2, $dst */
375 SEM_FN_NAME (i960base
,divo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
377 #define FLD(f) abuf->fields.fmt_mulo1.f
378 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
379 int UNUSED written
= 0;
380 IADDR UNUSED pc
= abuf
->addr
;
381 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
384 SI opval
= UDIVSI (* FLD (i_src2
), FLD (f_src1
));
385 * FLD (i_dst
) = opval
;
386 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
393 /* divo2: divo $src1, $lit2, $dst */
396 SEM_FN_NAME (i960base
,divo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
398 #define FLD(f) abuf->fields.fmt_mulo2.f
399 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
400 int UNUSED written
= 0;
401 IADDR UNUSED pc
= abuf
->addr
;
402 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
405 SI opval
= UDIVSI (FLD (f_src2
), * FLD (i_src1
));
406 * FLD (i_dst
) = opval
;
407 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
414 /* divo3: divo $lit1, $lit2, $dst */
417 SEM_FN_NAME (i960base
,divo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
419 #define FLD(f) abuf->fields.fmt_mulo3.f
420 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
421 int UNUSED written
= 0;
422 IADDR UNUSED pc
= abuf
->addr
;
423 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
426 SI opval
= UDIVSI (FLD (f_src2
), FLD (f_src1
));
427 * FLD (i_dst
) = opval
;
428 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
435 /* remi: remi $src1, $src2, $dst */
438 SEM_FN_NAME (i960base
,remi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
440 #define FLD(f) abuf->fields.fmt_mulo.f
441 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
442 int UNUSED written
= 0;
443 IADDR UNUSED pc
= abuf
->addr
;
444 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
447 SI opval
= MODSI (* FLD (i_src2
), * FLD (i_src1
));
448 * FLD (i_dst
) = opval
;
449 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
456 /* remi1: remi $lit1, $src2, $dst */
459 SEM_FN_NAME (i960base
,remi1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
461 #define FLD(f) abuf->fields.fmt_mulo1.f
462 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
463 int UNUSED written
= 0;
464 IADDR UNUSED pc
= abuf
->addr
;
465 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
468 SI opval
= MODSI (* FLD (i_src2
), FLD (f_src1
));
469 * FLD (i_dst
) = opval
;
470 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
477 /* remi2: remi $src1, $lit2, $dst */
480 SEM_FN_NAME (i960base
,remi2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
482 #define FLD(f) abuf->fields.fmt_mulo2.f
483 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
484 int UNUSED written
= 0;
485 IADDR UNUSED pc
= abuf
->addr
;
486 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
489 SI opval
= MODSI (FLD (f_src2
), * FLD (i_src1
));
490 * FLD (i_dst
) = opval
;
491 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
498 /* remi3: remi $lit1, $lit2, $dst */
501 SEM_FN_NAME (i960base
,remi3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
503 #define FLD(f) abuf->fields.fmt_mulo3.f
504 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
505 int UNUSED written
= 0;
506 IADDR UNUSED pc
= abuf
->addr
;
507 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
510 SI opval
= MODSI (FLD (f_src2
), FLD (f_src1
));
511 * FLD (i_dst
) = opval
;
512 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
519 /* divi: divi $src1, $src2, $dst */
522 SEM_FN_NAME (i960base
,divi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
524 #define FLD(f) abuf->fields.fmt_mulo.f
525 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
526 int UNUSED written
= 0;
527 IADDR UNUSED pc
= abuf
->addr
;
528 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
531 SI opval
= DIVSI (* FLD (i_src2
), * FLD (i_src1
));
532 * FLD (i_dst
) = opval
;
533 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
540 /* divi1: divi $lit1, $src2, $dst */
543 SEM_FN_NAME (i960base
,divi1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
545 #define FLD(f) abuf->fields.fmt_mulo1.f
546 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
547 int UNUSED written
= 0;
548 IADDR UNUSED pc
= abuf
->addr
;
549 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
552 SI opval
= DIVSI (* FLD (i_src2
), FLD (f_src1
));
553 * FLD (i_dst
) = opval
;
554 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
561 /* divi2: divi $src1, $lit2, $dst */
564 SEM_FN_NAME (i960base
,divi2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
566 #define FLD(f) abuf->fields.fmt_mulo2.f
567 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
568 int UNUSED written
= 0;
569 IADDR UNUSED pc
= abuf
->addr
;
570 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
573 SI opval
= DIVSI (FLD (f_src2
), * FLD (i_src1
));
574 * FLD (i_dst
) = opval
;
575 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
582 /* divi3: divi $lit1, $lit2, $dst */
585 SEM_FN_NAME (i960base
,divi3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
587 #define FLD(f) abuf->fields.fmt_mulo3.f
588 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
589 int UNUSED written
= 0;
590 IADDR UNUSED pc
= abuf
->addr
;
591 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
594 SI opval
= DIVSI (FLD (f_src2
), FLD (f_src1
));
595 * FLD (i_dst
) = opval
;
596 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
603 /* addo: addo $src1, $src2, $dst */
606 SEM_FN_NAME (i960base
,addo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
608 #define FLD(f) abuf->fields.fmt_mulo.f
609 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
610 int UNUSED written
= 0;
611 IADDR UNUSED pc
= abuf
->addr
;
612 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
615 SI opval
= ADDSI (* FLD (i_src1
), * FLD (i_src2
));
616 * FLD (i_dst
) = opval
;
617 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
624 /* addo1: addo $lit1, $src2, $dst */
627 SEM_FN_NAME (i960base
,addo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
629 #define FLD(f) abuf->fields.fmt_mulo1.f
630 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
631 int UNUSED written
= 0;
632 IADDR UNUSED pc
= abuf
->addr
;
633 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
636 SI opval
= ADDSI (FLD (f_src1
), * FLD (i_src2
));
637 * FLD (i_dst
) = opval
;
638 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
645 /* addo2: addo $src1, $lit2, $dst */
648 SEM_FN_NAME (i960base
,addo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
650 #define FLD(f) abuf->fields.fmt_mulo2.f
651 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
652 int UNUSED written
= 0;
653 IADDR UNUSED pc
= abuf
->addr
;
654 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
657 SI opval
= ADDSI (* FLD (i_src1
), FLD (f_src2
));
658 * FLD (i_dst
) = opval
;
659 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
666 /* addo3: addo $lit1, $lit2, $dst */
669 SEM_FN_NAME (i960base
,addo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
671 #define FLD(f) abuf->fields.fmt_mulo3.f
672 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
673 int UNUSED written
= 0;
674 IADDR UNUSED pc
= abuf
->addr
;
675 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
678 SI opval
= ADDSI (FLD (f_src1
), FLD (f_src2
));
679 * FLD (i_dst
) = opval
;
680 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
687 /* subo: subo $src1, $src2, $dst */
690 SEM_FN_NAME (i960base
,subo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
692 #define FLD(f) abuf->fields.fmt_mulo.f
693 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
694 int UNUSED written
= 0;
695 IADDR UNUSED pc
= abuf
->addr
;
696 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
699 SI opval
= SUBSI (* FLD (i_src2
), * FLD (i_src1
));
700 * FLD (i_dst
) = opval
;
701 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
708 /* subo1: subo $lit1, $src2, $dst */
711 SEM_FN_NAME (i960base
,subo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
713 #define FLD(f) abuf->fields.fmt_mulo1.f
714 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
715 int UNUSED written
= 0;
716 IADDR UNUSED pc
= abuf
->addr
;
717 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
720 SI opval
= SUBSI (* FLD (i_src2
), FLD (f_src1
));
721 * FLD (i_dst
) = opval
;
722 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
729 /* subo2: subo $src1, $lit2, $dst */
732 SEM_FN_NAME (i960base
,subo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
734 #define FLD(f) abuf->fields.fmt_mulo2.f
735 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
736 int UNUSED written
= 0;
737 IADDR UNUSED pc
= abuf
->addr
;
738 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
741 SI opval
= SUBSI (FLD (f_src2
), * FLD (i_src1
));
742 * FLD (i_dst
) = opval
;
743 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
750 /* subo3: subo $lit1, $lit2, $dst */
753 SEM_FN_NAME (i960base
,subo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
755 #define FLD(f) abuf->fields.fmt_mulo3.f
756 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
757 int UNUSED written
= 0;
758 IADDR UNUSED pc
= abuf
->addr
;
759 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
762 SI opval
= SUBSI (FLD (f_src2
), FLD (f_src1
));
763 * FLD (i_dst
) = opval
;
764 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
771 /* notbit: notbit $src1, $src2, $dst */
774 SEM_FN_NAME (i960base
,notbit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
776 #define FLD(f) abuf->fields.fmt_notbit.f
777 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
778 int UNUSED written
= 0;
779 IADDR UNUSED pc
= abuf
->addr
;
780 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
783 SI opval
= XORSI (SLLSI (1, * FLD (i_src1
)), * FLD (i_src2
));
784 * FLD (i_dst
) = opval
;
785 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
792 /* notbit1: notbit $lit1, $src2, $dst */
795 SEM_FN_NAME (i960base
,notbit1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
797 #define FLD(f) abuf->fields.fmt_notbit1.f
798 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
799 int UNUSED written
= 0;
800 IADDR UNUSED pc
= abuf
->addr
;
801 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
804 SI opval
= XORSI (SLLSI (1, FLD (f_src1
)), * FLD (i_src2
));
805 * FLD (i_dst
) = opval
;
806 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
813 /* notbit2: notbit $src1, $lit2, $dst */
816 SEM_FN_NAME (i960base
,notbit2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
818 #define FLD(f) abuf->fields.fmt_notbit2.f
819 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
820 int UNUSED written
= 0;
821 IADDR UNUSED pc
= abuf
->addr
;
822 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
825 SI opval
= XORSI (SLLSI (1, * FLD (i_src1
)), FLD (f_src2
));
826 * FLD (i_dst
) = opval
;
827 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
834 /* notbit3: notbit $lit1, $lit2, $dst */
837 SEM_FN_NAME (i960base
,notbit3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
839 #define FLD(f) abuf->fields.fmt_notbit3.f
840 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
841 int UNUSED written
= 0;
842 IADDR UNUSED pc
= abuf
->addr
;
843 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
846 SI opval
= XORSI (SLLSI (1, FLD (f_src1
)), FLD (f_src2
));
847 * FLD (i_dst
) = opval
;
848 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
855 /* and: and $src1, $src2, $dst */
858 SEM_FN_NAME (i960base
,and) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
860 #define FLD(f) abuf->fields.fmt_mulo.f
861 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
862 int UNUSED written
= 0;
863 IADDR UNUSED pc
= abuf
->addr
;
864 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
867 SI opval
= ANDSI (* FLD (i_src1
), * FLD (i_src2
));
868 * FLD (i_dst
) = opval
;
869 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
876 /* and1: and $lit1, $src2, $dst */
879 SEM_FN_NAME (i960base
,and1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
881 #define FLD(f) abuf->fields.fmt_mulo1.f
882 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
883 int UNUSED written
= 0;
884 IADDR UNUSED pc
= abuf
->addr
;
885 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
888 SI opval
= ANDSI (FLD (f_src1
), * FLD (i_src2
));
889 * FLD (i_dst
) = opval
;
890 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
897 /* and2: and $src1, $lit2, $dst */
900 SEM_FN_NAME (i960base
,and2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
902 #define FLD(f) abuf->fields.fmt_mulo2.f
903 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
904 int UNUSED written
= 0;
905 IADDR UNUSED pc
= abuf
->addr
;
906 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
909 SI opval
= ANDSI (* FLD (i_src1
), FLD (f_src2
));
910 * FLD (i_dst
) = opval
;
911 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
918 /* and3: and $lit1, $lit2, $dst */
921 SEM_FN_NAME (i960base
,and3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
923 #define FLD(f) abuf->fields.fmt_mulo3.f
924 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
925 int UNUSED written
= 0;
926 IADDR UNUSED pc
= abuf
->addr
;
927 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
930 SI opval
= ANDSI (FLD (f_src1
), FLD (f_src2
));
931 * FLD (i_dst
) = opval
;
932 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
939 /* andnot: andnot $src1, $src2, $dst */
942 SEM_FN_NAME (i960base
,andnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
944 #define FLD(f) abuf->fields.fmt_mulo.f
945 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
946 int UNUSED written
= 0;
947 IADDR UNUSED pc
= abuf
->addr
;
948 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
951 SI opval
= ANDSI (* FLD (i_src2
), INVSI (* FLD (i_src1
)));
952 * FLD (i_dst
) = opval
;
953 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
960 /* andnot1: andnot $lit1, $src2, $dst */
963 SEM_FN_NAME (i960base
,andnot1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
965 #define FLD(f) abuf->fields.fmt_mulo1.f
966 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
967 int UNUSED written
= 0;
968 IADDR UNUSED pc
= abuf
->addr
;
969 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
972 SI opval
= ANDSI (* FLD (i_src2
), INVSI (FLD (f_src1
)));
973 * FLD (i_dst
) = opval
;
974 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
981 /* andnot2: andnot $src1, $lit2, $dst */
984 SEM_FN_NAME (i960base
,andnot2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
986 #define FLD(f) abuf->fields.fmt_mulo2.f
987 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
988 int UNUSED written
= 0;
989 IADDR UNUSED pc
= abuf
->addr
;
990 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
993 SI opval
= ANDSI (FLD (f_src2
), INVSI (* FLD (i_src1
)));
994 * FLD (i_dst
) = opval
;
995 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1002 /* andnot3: andnot $lit1, $lit2, $dst */
1005 SEM_FN_NAME (i960base
,andnot3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1007 #define FLD(f) abuf->fields.fmt_mulo3.f
1008 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1009 int UNUSED written
= 0;
1010 IADDR UNUSED pc
= abuf
->addr
;
1011 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1014 SI opval
= ANDSI (FLD (f_src2
), INVSI (FLD (f_src1
)));
1015 * FLD (i_dst
) = opval
;
1016 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1023 /* setbit: setbit $src1, $src2, $dst */
1026 SEM_FN_NAME (i960base
,setbit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1028 #define FLD(f) abuf->fields.fmt_notbit.f
1029 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1030 int UNUSED written
= 0;
1031 IADDR UNUSED pc
= abuf
->addr
;
1032 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1035 SI opval
= ORSI (SLLSI (1, * FLD (i_src1
)), * FLD (i_src2
));
1036 * FLD (i_dst
) = opval
;
1037 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1044 /* setbit1: setbit $lit1, $src2, $dst */
1047 SEM_FN_NAME (i960base
,setbit1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1049 #define FLD(f) abuf->fields.fmt_notbit1.f
1050 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1051 int UNUSED written
= 0;
1052 IADDR UNUSED pc
= abuf
->addr
;
1053 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1056 SI opval
= ORSI (SLLSI (1, FLD (f_src1
)), * FLD (i_src2
));
1057 * FLD (i_dst
) = opval
;
1058 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1065 /* setbit2: setbit $src1, $lit2, $dst */
1068 SEM_FN_NAME (i960base
,setbit2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1070 #define FLD(f) abuf->fields.fmt_notbit2.f
1071 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1072 int UNUSED written
= 0;
1073 IADDR UNUSED pc
= abuf
->addr
;
1074 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1077 SI opval
= ORSI (SLLSI (1, * FLD (i_src1
)), FLD (f_src2
));
1078 * FLD (i_dst
) = opval
;
1079 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1086 /* setbit3: setbit $lit1, $lit2, $dst */
1089 SEM_FN_NAME (i960base
,setbit3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1091 #define FLD(f) abuf->fields.fmt_notbit3.f
1092 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1093 int UNUSED written
= 0;
1094 IADDR UNUSED pc
= abuf
->addr
;
1095 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1098 SI opval
= ORSI (SLLSI (1, FLD (f_src1
)), FLD (f_src2
));
1099 * FLD (i_dst
) = opval
;
1100 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1107 /* notand: notand $src1, $src2, $dst */
1110 SEM_FN_NAME (i960base
,notand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1112 #define FLD(f) abuf->fields.fmt_mulo.f
1113 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1114 int UNUSED written
= 0;
1115 IADDR UNUSED pc
= abuf
->addr
;
1116 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1119 SI opval
= ANDSI (INVSI (* FLD (i_src2
)), * FLD (i_src1
));
1120 * FLD (i_dst
) = opval
;
1121 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1128 /* notand1: notand $lit1, $src2, $dst */
1131 SEM_FN_NAME (i960base
,notand1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1133 #define FLD(f) abuf->fields.fmt_mulo1.f
1134 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1135 int UNUSED written
= 0;
1136 IADDR UNUSED pc
= abuf
->addr
;
1137 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1140 SI opval
= ANDSI (INVSI (* FLD (i_src2
)), FLD (f_src1
));
1141 * FLD (i_dst
) = opval
;
1142 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1149 /* notand2: notand $src1, $lit2, $dst */
1152 SEM_FN_NAME (i960base
,notand2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1154 #define FLD(f) abuf->fields.fmt_mulo2.f
1155 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1156 int UNUSED written
= 0;
1157 IADDR UNUSED pc
= abuf
->addr
;
1158 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1161 SI opval
= ANDSI (INVSI (FLD (f_src2
)), * FLD (i_src1
));
1162 * FLD (i_dst
) = opval
;
1163 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1170 /* notand3: notand $lit1, $lit2, $dst */
1173 SEM_FN_NAME (i960base
,notand3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1175 #define FLD(f) abuf->fields.fmt_mulo3.f
1176 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1177 int UNUSED written
= 0;
1178 IADDR UNUSED pc
= abuf
->addr
;
1179 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1182 SI opval
= ANDSI (INVSI (FLD (f_src2
)), FLD (f_src1
));
1183 * FLD (i_dst
) = opval
;
1184 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1191 /* xor: xor $src1, $src2, $dst */
1194 SEM_FN_NAME (i960base
,xor) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1196 #define FLD(f) abuf->fields.fmt_mulo.f
1197 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1198 int UNUSED written
= 0;
1199 IADDR UNUSED pc
= abuf
->addr
;
1200 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1203 SI opval
= XORSI (* FLD (i_src1
), * FLD (i_src2
));
1204 * FLD (i_dst
) = opval
;
1205 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1212 /* xor1: xor $lit1, $src2, $dst */
1215 SEM_FN_NAME (i960base
,xor1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1217 #define FLD(f) abuf->fields.fmt_mulo1.f
1218 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1219 int UNUSED written
= 0;
1220 IADDR UNUSED pc
= abuf
->addr
;
1221 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1224 SI opval
= XORSI (FLD (f_src1
), * FLD (i_src2
));
1225 * FLD (i_dst
) = opval
;
1226 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1233 /* xor2: xor $src1, $lit2, $dst */
1236 SEM_FN_NAME (i960base
,xor2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1238 #define FLD(f) abuf->fields.fmt_mulo2.f
1239 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1240 int UNUSED written
= 0;
1241 IADDR UNUSED pc
= abuf
->addr
;
1242 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1245 SI opval
= XORSI (* FLD (i_src1
), FLD (f_src2
));
1246 * FLD (i_dst
) = opval
;
1247 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1254 /* xor3: xor $lit1, $lit2, $dst */
1257 SEM_FN_NAME (i960base
,xor3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1259 #define FLD(f) abuf->fields.fmt_mulo3.f
1260 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1261 int UNUSED written
= 0;
1262 IADDR UNUSED pc
= abuf
->addr
;
1263 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1266 SI opval
= XORSI (FLD (f_src1
), FLD (f_src2
));
1267 * FLD (i_dst
) = opval
;
1268 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1275 /* or: or $src1, $src2, $dst */
1278 SEM_FN_NAME (i960base
,or) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1280 #define FLD(f) abuf->fields.fmt_mulo.f
1281 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1282 int UNUSED written
= 0;
1283 IADDR UNUSED pc
= abuf
->addr
;
1284 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1287 SI opval
= ORSI (* FLD (i_src1
), * FLD (i_src2
));
1288 * FLD (i_dst
) = opval
;
1289 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1296 /* or1: or $lit1, $src2, $dst */
1299 SEM_FN_NAME (i960base
,or1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1301 #define FLD(f) abuf->fields.fmt_mulo1.f
1302 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1303 int UNUSED written
= 0;
1304 IADDR UNUSED pc
= abuf
->addr
;
1305 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1308 SI opval
= ORSI (FLD (f_src1
), * FLD (i_src2
));
1309 * FLD (i_dst
) = opval
;
1310 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1317 /* or2: or $src1, $lit2, $dst */
1320 SEM_FN_NAME (i960base
,or2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1322 #define FLD(f) abuf->fields.fmt_mulo2.f
1323 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1324 int UNUSED written
= 0;
1325 IADDR UNUSED pc
= abuf
->addr
;
1326 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1329 SI opval
= ORSI (* FLD (i_src1
), FLD (f_src2
));
1330 * FLD (i_dst
) = opval
;
1331 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1338 /* or3: or $lit1, $lit2, $dst */
1341 SEM_FN_NAME (i960base
,or3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1343 #define FLD(f) abuf->fields.fmt_mulo3.f
1344 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1345 int UNUSED written
= 0;
1346 IADDR UNUSED pc
= abuf
->addr
;
1347 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1350 SI opval
= ORSI (FLD (f_src1
), FLD (f_src2
));
1351 * FLD (i_dst
) = opval
;
1352 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1359 /* nor: nor $src1, $src2, $dst */
1362 SEM_FN_NAME (i960base
,nor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1364 #define FLD(f) abuf->fields.fmt_mulo.f
1365 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1366 int UNUSED written
= 0;
1367 IADDR UNUSED pc
= abuf
->addr
;
1368 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1371 SI opval
= ANDSI (INVSI (* FLD (i_src2
)), INVSI (* FLD (i_src1
)));
1372 * FLD (i_dst
) = opval
;
1373 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1380 /* nor1: nor $lit1, $src2, $dst */
1383 SEM_FN_NAME (i960base
,nor1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1385 #define FLD(f) abuf->fields.fmt_mulo1.f
1386 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1387 int UNUSED written
= 0;
1388 IADDR UNUSED pc
= abuf
->addr
;
1389 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1392 SI opval
= ANDSI (INVSI (* FLD (i_src2
)), INVSI (FLD (f_src1
)));
1393 * FLD (i_dst
) = opval
;
1394 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1401 /* nor2: nor $src1, $lit2, $dst */
1404 SEM_FN_NAME (i960base
,nor2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1406 #define FLD(f) abuf->fields.fmt_mulo2.f
1407 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1408 int UNUSED written
= 0;
1409 IADDR UNUSED pc
= abuf
->addr
;
1410 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1413 SI opval
= ANDSI (INVSI (FLD (f_src2
)), INVSI (* FLD (i_src1
)));
1414 * FLD (i_dst
) = opval
;
1415 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1422 /* nor3: nor $lit1, $lit2, $dst */
1425 SEM_FN_NAME (i960base
,nor3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1427 #define FLD(f) abuf->fields.fmt_mulo3.f
1428 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1429 int UNUSED written
= 0;
1430 IADDR UNUSED pc
= abuf
->addr
;
1431 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1434 SI opval
= ANDSI (INVSI (FLD (f_src2
)), INVSI (FLD (f_src1
)));
1435 * FLD (i_dst
) = opval
;
1436 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1443 /* xnor: xnor $src1, $src2, $dst */
1446 SEM_FN_NAME (i960base
,xnor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1448 #define FLD(f) abuf->fields.fmt_mulo.f
1449 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1450 int UNUSED written
= 0;
1451 IADDR UNUSED pc
= abuf
->addr
;
1452 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1455 SI opval
= INVSI (XORSI (* FLD (i_src1
), * FLD (i_src2
)));
1456 * FLD (i_dst
) = opval
;
1457 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1464 /* xnor1: xnor $lit1, $src2, $dst */
1467 SEM_FN_NAME (i960base
,xnor1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1469 #define FLD(f) abuf->fields.fmt_mulo1.f
1470 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1471 int UNUSED written
= 0;
1472 IADDR UNUSED pc
= abuf
->addr
;
1473 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1476 SI opval
= INVSI (XORSI (FLD (f_src1
), * FLD (i_src2
)));
1477 * FLD (i_dst
) = opval
;
1478 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1485 /* xnor2: xnor $src1, $lit2, $dst */
1488 SEM_FN_NAME (i960base
,xnor2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1490 #define FLD(f) abuf->fields.fmt_mulo2.f
1491 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1492 int UNUSED written
= 0;
1493 IADDR UNUSED pc
= abuf
->addr
;
1494 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1497 SI opval
= INVSI (XORSI (* FLD (i_src1
), FLD (f_src2
)));
1498 * FLD (i_dst
) = opval
;
1499 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1506 /* xnor3: xnor $lit1, $lit2, $dst */
1509 SEM_FN_NAME (i960base
,xnor3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1511 #define FLD(f) abuf->fields.fmt_mulo3.f
1512 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1513 int UNUSED written
= 0;
1514 IADDR UNUSED pc
= abuf
->addr
;
1515 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1518 SI opval
= INVSI (XORSI (FLD (f_src1
), FLD (f_src2
)));
1519 * FLD (i_dst
) = opval
;
1520 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1527 /* not: not $src1, $src2, $dst */
1530 SEM_FN_NAME (i960base
,not) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1532 #define FLD(f) abuf->fields.fmt_not.f
1533 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1534 int UNUSED written
= 0;
1535 IADDR UNUSED pc
= abuf
->addr
;
1536 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1539 SI opval
= INVSI (* FLD (i_src1
));
1540 * FLD (i_dst
) = opval
;
1541 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1548 /* not1: not $lit1, $src2, $dst */
1551 SEM_FN_NAME (i960base
,not1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1553 #define FLD(f) abuf->fields.fmt_not1.f
1554 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1555 int UNUSED written
= 0;
1556 IADDR UNUSED pc
= abuf
->addr
;
1557 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1560 SI opval
= INVSI (FLD (f_src1
));
1561 * FLD (i_dst
) = opval
;
1562 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1569 /* not2: not $src1, $lit2, $dst */
1572 SEM_FN_NAME (i960base
,not2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1574 #define FLD(f) abuf->fields.fmt_not2.f
1575 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1576 int UNUSED written
= 0;
1577 IADDR UNUSED pc
= abuf
->addr
;
1578 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1581 SI opval
= INVSI (* FLD (i_src1
));
1582 * FLD (i_dst
) = opval
;
1583 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1590 /* not3: not $lit1, $lit2, $dst */
1593 SEM_FN_NAME (i960base
,not3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1595 #define FLD(f) abuf->fields.fmt_not3.f
1596 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1597 int UNUSED written
= 0;
1598 IADDR UNUSED pc
= abuf
->addr
;
1599 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1602 SI opval
= INVSI (FLD (f_src1
));
1603 * FLD (i_dst
) = opval
;
1604 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1611 /* ornot: ornot $src1, $src2, $dst */
1614 SEM_FN_NAME (i960base
,ornot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1616 #define FLD(f) abuf->fields.fmt_mulo.f
1617 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1618 int UNUSED written
= 0;
1619 IADDR UNUSED pc
= abuf
->addr
;
1620 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1623 SI opval
= ORSI (* FLD (i_src2
), INVSI (* FLD (i_src1
)));
1624 * FLD (i_dst
) = opval
;
1625 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1632 /* ornot1: ornot $lit1, $src2, $dst */
1635 SEM_FN_NAME (i960base
,ornot1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1637 #define FLD(f) abuf->fields.fmt_mulo1.f
1638 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1639 int UNUSED written
= 0;
1640 IADDR UNUSED pc
= abuf
->addr
;
1641 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1644 SI opval
= ORSI (* FLD (i_src2
), INVSI (FLD (f_src1
)));
1645 * FLD (i_dst
) = opval
;
1646 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1653 /* ornot2: ornot $src1, $lit2, $dst */
1656 SEM_FN_NAME (i960base
,ornot2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1658 #define FLD(f) abuf->fields.fmt_mulo2.f
1659 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1660 int UNUSED written
= 0;
1661 IADDR UNUSED pc
= abuf
->addr
;
1662 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1665 SI opval
= ORSI (FLD (f_src2
), INVSI (* FLD (i_src1
)));
1666 * FLD (i_dst
) = opval
;
1667 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1674 /* ornot3: ornot $lit1, $lit2, $dst */
1677 SEM_FN_NAME (i960base
,ornot3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1679 #define FLD(f) abuf->fields.fmt_mulo3.f
1680 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1681 int UNUSED written
= 0;
1682 IADDR UNUSED pc
= abuf
->addr
;
1683 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1686 SI opval
= ORSI (FLD (f_src2
), INVSI (FLD (f_src1
)));
1687 * FLD (i_dst
) = opval
;
1688 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1695 /* clrbit: clrbit $src1, $src2, $dst */
1698 SEM_FN_NAME (i960base
,clrbit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1700 #define FLD(f) abuf->fields.fmt_notbit.f
1701 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1702 int UNUSED written
= 0;
1703 IADDR UNUSED pc
= abuf
->addr
;
1704 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1707 SI opval
= ANDSI (INVSI (SLLSI (1, * FLD (i_src1
))), * FLD (i_src2
));
1708 * FLD (i_dst
) = opval
;
1709 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1716 /* clrbit1: clrbit $lit1, $src2, $dst */
1719 SEM_FN_NAME (i960base
,clrbit1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1721 #define FLD(f) abuf->fields.fmt_notbit1.f
1722 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1723 int UNUSED written
= 0;
1724 IADDR UNUSED pc
= abuf
->addr
;
1725 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1728 SI opval
= ANDSI (INVSI (SLLSI (1, FLD (f_src1
))), * FLD (i_src2
));
1729 * FLD (i_dst
) = opval
;
1730 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1737 /* clrbit2: clrbit $src1, $lit2, $dst */
1740 SEM_FN_NAME (i960base
,clrbit2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1742 #define FLD(f) abuf->fields.fmt_notbit2.f
1743 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1744 int UNUSED written
= 0;
1745 IADDR UNUSED pc
= abuf
->addr
;
1746 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1749 SI opval
= ANDSI (INVSI (SLLSI (1, * FLD (i_src1
))), FLD (f_src2
));
1750 * FLD (i_dst
) = opval
;
1751 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1758 /* clrbit3: clrbit $lit1, $lit2, $dst */
1761 SEM_FN_NAME (i960base
,clrbit3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1763 #define FLD(f) abuf->fields.fmt_notbit3.f
1764 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1765 int UNUSED written
= 0;
1766 IADDR UNUSED pc
= abuf
->addr
;
1767 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1770 SI opval
= ANDSI (INVSI (SLLSI (1, FLD (f_src1
))), FLD (f_src2
));
1771 * FLD (i_dst
) = opval
;
1772 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1779 /* shlo: shlo $src1, $src2, $dst */
1782 SEM_FN_NAME (i960base
,shlo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1784 #define FLD(f) abuf->fields.fmt_shlo.f
1785 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1786 int UNUSED written
= 0;
1787 IADDR UNUSED pc
= abuf
->addr
;
1788 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1791 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (0) : (SLLSI (* FLD (i_src2
), * FLD (i_src1
)));
1792 * FLD (i_dst
) = opval
;
1793 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1800 /* shlo1: shlo $lit1, $src2, $dst */
1803 SEM_FN_NAME (i960base
,shlo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1805 #define FLD(f) abuf->fields.fmt_shlo1.f
1806 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1807 int UNUSED written
= 0;
1808 IADDR UNUSED pc
= abuf
->addr
;
1809 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1812 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (0) : (SLLSI (* FLD (i_src2
), FLD (f_src1
)));
1813 * FLD (i_dst
) = opval
;
1814 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1821 /* shlo2: shlo $src1, $lit2, $dst */
1824 SEM_FN_NAME (i960base
,shlo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1826 #define FLD(f) abuf->fields.fmt_shlo2.f
1827 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1828 int UNUSED written
= 0;
1829 IADDR UNUSED pc
= abuf
->addr
;
1830 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1833 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (0) : (SLLSI (FLD (f_src2
), * FLD (i_src1
)));
1834 * FLD (i_dst
) = opval
;
1835 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1842 /* shlo3: shlo $lit1, $lit2, $dst */
1845 SEM_FN_NAME (i960base
,shlo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1847 #define FLD(f) abuf->fields.fmt_shlo3.f
1848 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1849 int UNUSED written
= 0;
1850 IADDR UNUSED pc
= abuf
->addr
;
1851 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1854 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (0) : (SLLSI (FLD (f_src2
), FLD (f_src1
)));
1855 * FLD (i_dst
) = opval
;
1856 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1863 /* shro: shro $src1, $src2, $dst */
1866 SEM_FN_NAME (i960base
,shro
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1868 #define FLD(f) abuf->fields.fmt_shlo.f
1869 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1870 int UNUSED written
= 0;
1871 IADDR UNUSED pc
= abuf
->addr
;
1872 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1875 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (0) : (SRLSI (* FLD (i_src2
), * FLD (i_src1
)));
1876 * FLD (i_dst
) = opval
;
1877 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1884 /* shro1: shro $lit1, $src2, $dst */
1887 SEM_FN_NAME (i960base
,shro1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1889 #define FLD(f) abuf->fields.fmt_shlo1.f
1890 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1891 int UNUSED written
= 0;
1892 IADDR UNUSED pc
= abuf
->addr
;
1893 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1896 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (0) : (SRLSI (* FLD (i_src2
), FLD (f_src1
)));
1897 * FLD (i_dst
) = opval
;
1898 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1905 /* shro2: shro $src1, $lit2, $dst */
1908 SEM_FN_NAME (i960base
,shro2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1910 #define FLD(f) abuf->fields.fmt_shlo2.f
1911 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1912 int UNUSED written
= 0;
1913 IADDR UNUSED pc
= abuf
->addr
;
1914 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1917 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (0) : (SRLSI (FLD (f_src2
), * FLD (i_src1
)));
1918 * FLD (i_dst
) = opval
;
1919 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1926 /* shro3: shro $lit1, $lit2, $dst */
1929 SEM_FN_NAME (i960base
,shro3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1931 #define FLD(f) abuf->fields.fmt_shlo3.f
1932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1933 int UNUSED written
= 0;
1934 IADDR UNUSED pc
= abuf
->addr
;
1935 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1938 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (0) : (SRLSI (FLD (f_src2
), FLD (f_src1
)));
1939 * FLD (i_dst
) = opval
;
1940 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1947 /* shli: shli $src1, $src2, $dst */
1950 SEM_FN_NAME (i960base
,shli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1952 #define FLD(f) abuf->fields.fmt_shlo.f
1953 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1954 int UNUSED written
= 0;
1955 IADDR UNUSED pc
= abuf
->addr
;
1956 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1959 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (0) : (SLLSI (* FLD (i_src2
), * FLD (i_src1
)));
1960 * FLD (i_dst
) = opval
;
1961 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1968 /* shli1: shli $lit1, $src2, $dst */
1971 SEM_FN_NAME (i960base
,shli1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1973 #define FLD(f) abuf->fields.fmt_shlo1.f
1974 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1975 int UNUSED written
= 0;
1976 IADDR UNUSED pc
= abuf
->addr
;
1977 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1980 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (0) : (SLLSI (* FLD (i_src2
), FLD (f_src1
)));
1981 * FLD (i_dst
) = opval
;
1982 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
1989 /* shli2: shli $src1, $lit2, $dst */
1992 SEM_FN_NAME (i960base
,shli2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1994 #define FLD(f) abuf->fields.fmt_shlo2.f
1995 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1996 int UNUSED written
= 0;
1997 IADDR UNUSED pc
= abuf
->addr
;
1998 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2001 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (0) : (SLLSI (FLD (f_src2
), * FLD (i_src1
)));
2002 * FLD (i_dst
) = opval
;
2003 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2010 /* shli3: shli $lit1, $lit2, $dst */
2013 SEM_FN_NAME (i960base
,shli3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2015 #define FLD(f) abuf->fields.fmt_shlo3.f
2016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2017 int UNUSED written
= 0;
2018 IADDR UNUSED pc
= abuf
->addr
;
2019 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2022 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (0) : (SLLSI (FLD (f_src2
), FLD (f_src1
)));
2023 * FLD (i_dst
) = opval
;
2024 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2031 /* shri: shri $src1, $src2, $dst */
2034 SEM_FN_NAME (i960base
,shri
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2036 #define FLD(f) abuf->fields.fmt_shlo.f
2037 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2038 int UNUSED written
= 0;
2039 IADDR UNUSED pc
= abuf
->addr
;
2040 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2043 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (SRASI (* FLD (i_src2
), 31)) : (SRASI (* FLD (i_src2
), * FLD (i_src1
)));
2044 * FLD (i_dst
) = opval
;
2045 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2052 /* shri1: shri $lit1, $src2, $dst */
2055 SEM_FN_NAME (i960base
,shri1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2057 #define FLD(f) abuf->fields.fmt_shlo1.f
2058 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2059 int UNUSED written
= 0;
2060 IADDR UNUSED pc
= abuf
->addr
;
2061 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2064 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (SRASI (* FLD (i_src2
), 31)) : (SRASI (* FLD (i_src2
), FLD (f_src1
)));
2065 * FLD (i_dst
) = opval
;
2066 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2073 /* shri2: shri $src1, $lit2, $dst */
2076 SEM_FN_NAME (i960base
,shri2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2078 #define FLD(f) abuf->fields.fmt_shlo2.f
2079 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2080 int UNUSED written
= 0;
2081 IADDR UNUSED pc
= abuf
->addr
;
2082 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2085 SI opval
= (GEUSI (* FLD (i_src1
), 32)) ? (SRASI (FLD (f_src2
), 31)) : (SRASI (FLD (f_src2
), * FLD (i_src1
)));
2086 * FLD (i_dst
) = opval
;
2087 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2094 /* shri3: shri $lit1, $lit2, $dst */
2097 SEM_FN_NAME (i960base
,shri3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2099 #define FLD(f) abuf->fields.fmt_shlo3.f
2100 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2101 int UNUSED written
= 0;
2102 IADDR UNUSED pc
= abuf
->addr
;
2103 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2106 SI opval
= (GEUSI (FLD (f_src1
), 32)) ? (SRASI (FLD (f_src2
), 31)) : (SRASI (FLD (f_src2
), FLD (f_src1
)));
2107 * FLD (i_dst
) = opval
;
2108 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2115 /* emul: emul $src1, $src2, $dst */
2118 SEM_FN_NAME (i960base
,emul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2120 #define FLD(f) abuf->fields.fmt_emul.f
2121 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2122 int UNUSED written
= 0;
2123 IADDR UNUSED pc
= abuf
->addr
;
2124 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2129 tmp_temp
= MULDI (ZEXTSIDI (* FLD (i_src1
)), ZEXTSIDI (* FLD (i_src2
)));
2130 tmp_dregno
= FLD (f_srcdst
);
2132 SI opval
= TRUNCDISI (tmp_temp
);
2133 * FLD (i_dst
) = opval
;
2134 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2137 SI opval
= TRUNCDISI (SRLDI (tmp_temp
, 32));
2138 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2139 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2147 /* emul1: emul $lit1, $src2, $dst */
2150 SEM_FN_NAME (i960base
,emul1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2152 #define FLD(f) abuf->fields.fmt_emul1.f
2153 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2154 int UNUSED written
= 0;
2155 IADDR UNUSED pc
= abuf
->addr
;
2156 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2161 tmp_temp
= MULDI (ZEXTSIDI (FLD (f_src1
)), ZEXTSIDI (* FLD (i_src2
)));
2162 tmp_dregno
= FLD (f_srcdst
);
2164 SI opval
= TRUNCDISI (tmp_temp
);
2165 * FLD (i_dst
) = opval
;
2166 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2169 SI opval
= TRUNCDISI (SRLDI (tmp_temp
, 32));
2170 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2171 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2179 /* emul2: emul $src1, $lit2, $dst */
2182 SEM_FN_NAME (i960base
,emul2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2184 #define FLD(f) abuf->fields.fmt_emul2.f
2185 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2186 int UNUSED written
= 0;
2187 IADDR UNUSED pc
= abuf
->addr
;
2188 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2193 tmp_temp
= MULDI (ZEXTSIDI (* FLD (i_src1
)), ZEXTSIDI (FLD (f_src2
)));
2194 tmp_dregno
= FLD (f_srcdst
);
2196 SI opval
= TRUNCDISI (tmp_temp
);
2197 * FLD (i_dst
) = opval
;
2198 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2201 SI opval
= TRUNCDISI (SRLDI (tmp_temp
, 32));
2202 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2203 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2211 /* emul3: emul $lit1, $lit2, $dst */
2214 SEM_FN_NAME (i960base
,emul3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2216 #define FLD(f) abuf->fields.fmt_emul3.f
2217 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2218 int UNUSED written
= 0;
2219 IADDR UNUSED pc
= abuf
->addr
;
2220 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2225 tmp_temp
= MULDI (ZEXTSIDI (FLD (f_src1
)), ZEXTSIDI (FLD (f_src2
)));
2226 tmp_dregno
= FLD (f_srcdst
);
2228 SI opval
= TRUNCDISI (tmp_temp
);
2229 * FLD (i_dst
) = opval
;
2230 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2233 SI opval
= TRUNCDISI (SRLDI (tmp_temp
, 32));
2234 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2235 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2243 /* mov: mov $src1, $dst */
2246 SEM_FN_NAME (i960base
,mov
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2248 #define FLD(f) abuf->fields.fmt_not2.f
2249 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2250 int UNUSED written
= 0;
2251 IADDR UNUSED pc
= abuf
->addr
;
2252 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2255 SI opval
= * FLD (i_src1
);
2256 * FLD (i_dst
) = opval
;
2257 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2264 /* mov1: mov $lit1, $dst */
2267 SEM_FN_NAME (i960base
,mov1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2269 #define FLD(f) abuf->fields.fmt_not3.f
2270 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2271 int UNUSED written
= 0;
2272 IADDR UNUSED pc
= abuf
->addr
;
2273 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2276 SI opval
= FLD (f_src1
);
2277 * FLD (i_dst
) = opval
;
2278 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2285 /* movl: movl $src1, $dst */
2288 SEM_FN_NAME (i960base
,movl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2290 #define FLD(f) abuf->fields.fmt_movl.f
2291 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2292 int UNUSED written
= 0;
2293 IADDR UNUSED pc
= abuf
->addr
;
2294 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2299 tmp_dregno
= FLD (f_srcdst
);
2300 tmp_sregno
= FLD (f_src1
);
2302 SI opval
= * FLD (i_src1
);
2303 * FLD (i_dst
) = opval
;
2304 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2307 SI opval
= CPU (h_gr
[((FLD (f_src1
)) + (1))]);
2308 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2309 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2317 /* movl1: movl $lit1, $dst */
2320 SEM_FN_NAME (i960base
,movl1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2322 #define FLD(f) abuf->fields.fmt_movl1.f
2323 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2324 int UNUSED written
= 0;
2325 IADDR UNUSED pc
= abuf
->addr
;
2326 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2330 tmp_dregno
= FLD (f_srcdst
);
2332 SI opval
= FLD (f_src1
);
2333 * FLD (i_dst
) = opval
;
2334 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2338 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2339 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2347 /* movt: movt $src1, $dst */
2350 SEM_FN_NAME (i960base
,movt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2352 #define FLD(f) abuf->fields.fmt_movt.f
2353 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2354 int UNUSED written
= 0;
2355 IADDR UNUSED pc
= abuf
->addr
;
2356 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2361 tmp_dregno
= FLD (f_srcdst
);
2362 tmp_sregno
= FLD (f_src1
);
2364 SI opval
= * FLD (i_src1
);
2365 * FLD (i_dst
) = opval
;
2366 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2369 SI opval
= CPU (h_gr
[((FLD (f_src1
)) + (1))]);
2370 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2371 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2374 SI opval
= CPU (h_gr
[((FLD (f_src1
)) + (2))]);
2375 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
2376 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
2384 /* movt1: movt $lit1, $dst */
2387 SEM_FN_NAME (i960base
,movt1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2389 #define FLD(f) abuf->fields.fmt_movt1.f
2390 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2391 int UNUSED written
= 0;
2392 IADDR UNUSED pc
= abuf
->addr
;
2393 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2397 tmp_dregno
= FLD (f_srcdst
);
2399 SI opval
= FLD (f_src1
);
2400 * FLD (i_dst
) = opval
;
2401 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2405 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2406 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2410 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
2411 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
2419 /* movq: movq $src1, $dst */
2422 SEM_FN_NAME (i960base
,movq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2424 #define FLD(f) abuf->fields.fmt_movq.f
2425 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2426 int UNUSED written
= 0;
2427 IADDR UNUSED pc
= abuf
->addr
;
2428 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2433 tmp_dregno
= FLD (f_srcdst
);
2434 tmp_sregno
= FLD (f_src1
);
2436 SI opval
= * FLD (i_src1
);
2437 * FLD (i_dst
) = opval
;
2438 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2441 SI opval
= CPU (h_gr
[((FLD (f_src1
)) + (1))]);
2442 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2443 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2446 SI opval
= CPU (h_gr
[((FLD (f_src1
)) + (2))]);
2447 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
2448 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
2451 SI opval
= CPU (h_gr
[((FLD (f_src1
)) + (3))]);
2452 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
2453 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
2461 /* movq1: movq $lit1, $dst */
2464 SEM_FN_NAME (i960base
,movq1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2466 #define FLD(f) abuf->fields.fmt_movq1.f
2467 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2468 int UNUSED written
= 0;
2469 IADDR UNUSED pc
= abuf
->addr
;
2470 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2474 tmp_dregno
= FLD (f_srcdst
);
2476 SI opval
= FLD (f_src1
);
2477 * FLD (i_dst
) = opval
;
2478 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2482 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
2483 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
2487 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
2488 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
2492 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
2493 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
2501 /* modpc: modpc $src1, $src2, $dst */
2504 SEM_FN_NAME (i960base
,modpc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2506 #define FLD(f) abuf->fields.fmt_modpc.f
2507 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2508 int UNUSED written
= 0;
2509 IADDR UNUSED pc
= abuf
->addr
;
2510 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2513 SI opval
= * FLD (i_src2
);
2514 * FLD (i_dst
) = opval
;
2515 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2522 /* modac: modac $src1, $src2, $dst */
2525 SEM_FN_NAME (i960base
,modac
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2527 #define FLD(f) abuf->fields.fmt_modpc.f
2528 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2529 int UNUSED written
= 0;
2530 IADDR UNUSED pc
= abuf
->addr
;
2531 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2534 SI opval
= * FLD (i_src2
);
2535 * FLD (i_dst
) = opval
;
2536 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2543 /* lda-offset: lda $offset, $dst */
2546 SEM_FN_NAME (i960base
,lda_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2548 #define FLD(f) abuf->fields.fmt_lda_offset.f
2549 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2550 int UNUSED written
= 0;
2551 IADDR UNUSED pc
= abuf
->addr
;
2552 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2555 SI opval
= FLD (f_offset
);
2556 * FLD (i_dst
) = opval
;
2557 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2564 /* lda-indirect-offset: lda $offset($abase), $dst */
2567 SEM_FN_NAME (i960base
,lda_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2569 #define FLD(f) abuf->fields.fmt_lda_indirect_offset.f
2570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2571 int UNUSED written
= 0;
2572 IADDR UNUSED pc
= abuf
->addr
;
2573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2576 SI opval
= ADDSI (FLD (f_offset
), * FLD (i_abase
));
2577 * FLD (i_dst
) = opval
;
2578 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2585 /* lda-indirect: lda ($abase), $dst */
2588 SEM_FN_NAME (i960base
,lda_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2590 #define FLD(f) abuf->fields.fmt_lda_indirect.f
2591 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2592 int UNUSED written
= 0;
2593 IADDR UNUSED pc
= abuf
->addr
;
2594 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2597 SI opval
= * FLD (i_abase
);
2598 * FLD (i_dst
) = opval
;
2599 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2606 /* lda-indirect-index: lda ($abase)[$index*S$scale], $dst */
2609 SEM_FN_NAME (i960base
,lda_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2611 #define FLD(f) abuf->fields.fmt_lda_indirect_index.f
2612 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2613 int UNUSED written
= 0;
2614 IADDR UNUSED pc
= abuf
->addr
;
2615 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2618 SI opval
= ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
2619 * FLD (i_dst
) = opval
;
2620 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2627 /* lda-disp: lda $optdisp, $dst */
2630 SEM_FN_NAME (i960base
,lda_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2632 #define FLD(f) abuf->fields.fmt_lda_disp.f
2633 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2634 int UNUSED written
= 0;
2635 IADDR UNUSED pc
= abuf
->addr
;
2636 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2639 SI opval
= FLD (f_optdisp
);
2640 * FLD (i_dst
) = opval
;
2641 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2648 /* lda-indirect-disp: lda $optdisp($abase), $dst */
2651 SEM_FN_NAME (i960base
,lda_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2653 #define FLD(f) abuf->fields.fmt_lda_indirect_disp.f
2654 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2655 int UNUSED written
= 0;
2656 IADDR UNUSED pc
= abuf
->addr
;
2657 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2660 SI opval
= ADDSI (FLD (f_optdisp
), * FLD (i_abase
));
2661 * FLD (i_dst
) = opval
;
2662 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2669 /* lda-index-disp: lda $optdisp[$index*S$scale], $dst */
2672 SEM_FN_NAME (i960base
,lda_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2674 #define FLD(f) abuf->fields.fmt_lda_index_disp.f
2675 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2676 int UNUSED written
= 0;
2677 IADDR UNUSED pc
= abuf
->addr
;
2678 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2681 SI opval
= ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
2682 * FLD (i_dst
) = opval
;
2683 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2690 /* lda-indirect-index-disp: lda $optdisp($abase)[$index*S$scale], $dst */
2693 SEM_FN_NAME (i960base
,lda_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2695 #define FLD(f) abuf->fields.fmt_lda_indirect_index_disp.f
2696 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2697 int UNUSED written
= 0;
2698 IADDR UNUSED pc
= abuf
->addr
;
2699 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2702 SI opval
= ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
2703 * FLD (i_dst
) = opval
;
2704 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2711 /* ld-offset: ld $offset, $dst */
2714 SEM_FN_NAME (i960base
,ld_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2716 #define FLD(f) abuf->fields.fmt_ld_offset.f
2717 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2718 int UNUSED written
= 0;
2719 IADDR UNUSED pc
= abuf
->addr
;
2720 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2723 SI opval
= GETMEMSI (current_cpu
, pc
, FLD (f_offset
));
2724 * FLD (i_dst
) = opval
;
2725 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2732 /* ld-indirect-offset: ld $offset($abase), $dst */
2735 SEM_FN_NAME (i960base
,ld_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2737 #define FLD(f) abuf->fields.fmt_ld_indirect_offset.f
2738 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2739 int UNUSED written
= 0;
2740 IADDR UNUSED pc
= abuf
->addr
;
2741 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2744 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)));
2745 * FLD (i_dst
) = opval
;
2746 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2753 /* ld-indirect: ld ($abase), $dst */
2756 SEM_FN_NAME (i960base
,ld_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2758 #define FLD(f) abuf->fields.fmt_ld_indirect.f
2759 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2760 int UNUSED written
= 0;
2761 IADDR UNUSED pc
= abuf
->addr
;
2762 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2765 SI opval
= GETMEMSI (current_cpu
, pc
, * FLD (i_abase
));
2766 * FLD (i_dst
) = opval
;
2767 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2774 /* ld-indirect-index: ld ($abase)[$index*S$scale], $dst */
2777 SEM_FN_NAME (i960base
,ld_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2779 #define FLD(f) abuf->fields.fmt_ld_indirect_index.f
2780 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2781 int UNUSED written
= 0;
2782 IADDR UNUSED pc
= abuf
->addr
;
2783 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2786 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
2787 * FLD (i_dst
) = opval
;
2788 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2795 /* ld-disp: ld $optdisp, $dst */
2798 SEM_FN_NAME (i960base
,ld_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2800 #define FLD(f) abuf->fields.fmt_ld_disp.f
2801 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2802 int UNUSED written
= 0;
2803 IADDR UNUSED pc
= abuf
->addr
;
2804 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2807 SI opval
= GETMEMSI (current_cpu
, pc
, FLD (f_optdisp
));
2808 * FLD (i_dst
) = opval
;
2809 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2816 /* ld-indirect-disp: ld $optdisp($abase), $dst */
2819 SEM_FN_NAME (i960base
,ld_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2821 #define FLD(f) abuf->fields.fmt_ld_indirect_disp.f
2822 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2823 int UNUSED written
= 0;
2824 IADDR UNUSED pc
= abuf
->addr
;
2825 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2828 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)));
2829 * FLD (i_dst
) = opval
;
2830 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2837 /* ld-index-disp: ld $optdisp[$index*S$scale], $dst */
2840 SEM_FN_NAME (i960base
,ld_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2842 #define FLD(f) abuf->fields.fmt_ld_index_disp.f
2843 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2844 int UNUSED written
= 0;
2845 IADDR UNUSED pc
= abuf
->addr
;
2846 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2849 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
2850 * FLD (i_dst
) = opval
;
2851 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2858 /* ld-indirect-index-disp: ld $optdisp($abase)[$index*S$scale], $dst */
2861 SEM_FN_NAME (i960base
,ld_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2863 #define FLD(f) abuf->fields.fmt_ld_indirect_index_disp.f
2864 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2865 int UNUSED written
= 0;
2866 IADDR UNUSED pc
= abuf
->addr
;
2867 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2870 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))));
2871 * FLD (i_dst
) = opval
;
2872 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2879 /* ldob-offset: ldob $offset, $dst */
2882 SEM_FN_NAME (i960base
,ldob_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2884 #define FLD(f) abuf->fields.fmt_ldob_offset.f
2885 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2886 int UNUSED written
= 0;
2887 IADDR UNUSED pc
= abuf
->addr
;
2888 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2891 SI opval
= GETMEMUQI (current_cpu
, pc
, FLD (f_offset
));
2892 * FLD (i_dst
) = opval
;
2893 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2900 /* ldob-indirect-offset: ldob $offset($abase), $dst */
2903 SEM_FN_NAME (i960base
,ldob_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2905 #define FLD(f) abuf->fields.fmt_ldob_indirect_offset.f
2906 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2907 int UNUSED written
= 0;
2908 IADDR UNUSED pc
= abuf
->addr
;
2909 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2912 SI opval
= GETMEMUQI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)));
2913 * FLD (i_dst
) = opval
;
2914 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2921 /* ldob-indirect: ldob ($abase), $dst */
2924 SEM_FN_NAME (i960base
,ldob_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2926 #define FLD(f) abuf->fields.fmt_ldob_indirect.f
2927 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2928 int UNUSED written
= 0;
2929 IADDR UNUSED pc
= abuf
->addr
;
2930 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2933 SI opval
= GETMEMUQI (current_cpu
, pc
, * FLD (i_abase
));
2934 * FLD (i_dst
) = opval
;
2935 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2942 /* ldob-indirect-index: ldob ($abase)[$index*S$scale], $dst */
2945 SEM_FN_NAME (i960base
,ldob_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2947 #define FLD(f) abuf->fields.fmt_ldob_indirect_index.f
2948 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2949 int UNUSED written
= 0;
2950 IADDR UNUSED pc
= abuf
->addr
;
2951 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2954 SI opval
= GETMEMUQI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
2955 * FLD (i_dst
) = opval
;
2956 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2963 /* ldob-disp: ldob $optdisp, $dst */
2966 SEM_FN_NAME (i960base
,ldob_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2968 #define FLD(f) abuf->fields.fmt_ldob_disp.f
2969 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2970 int UNUSED written
= 0;
2971 IADDR UNUSED pc
= abuf
->addr
;
2972 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2975 SI opval
= GETMEMUQI (current_cpu
, pc
, FLD (f_optdisp
));
2976 * FLD (i_dst
) = opval
;
2977 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
2984 /* ldob-indirect-disp: ldob $optdisp($abase), $dst */
2987 SEM_FN_NAME (i960base
,ldob_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2989 #define FLD(f) abuf->fields.fmt_ldob_indirect_disp.f
2990 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2991 int UNUSED written
= 0;
2992 IADDR UNUSED pc
= abuf
->addr
;
2993 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
2996 SI opval
= GETMEMUQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)));
2997 * FLD (i_dst
) = opval
;
2998 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3005 /* ldob-index-disp: ldob $optdisp[$index*S$scale], $dst */
3008 SEM_FN_NAME (i960base
,ldob_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3010 #define FLD(f) abuf->fields.fmt_ldob_index_disp.f
3011 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3012 int UNUSED written
= 0;
3013 IADDR UNUSED pc
= abuf
->addr
;
3014 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3017 SI opval
= GETMEMUQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3018 * FLD (i_dst
) = opval
;
3019 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3026 /* ldob-indirect-index-disp: ldob $optdisp($abase)[$index*S$scale], $dst */
3029 SEM_FN_NAME (i960base
,ldob_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3031 #define FLD(f) abuf->fields.fmt_ldob_indirect_index_disp.f
3032 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3033 int UNUSED written
= 0;
3034 IADDR UNUSED pc
= abuf
->addr
;
3035 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3038 SI opval
= GETMEMUQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))));
3039 * FLD (i_dst
) = opval
;
3040 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3047 /* ldos-offset: ldos $offset, $dst */
3050 SEM_FN_NAME (i960base
,ldos_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3052 #define FLD(f) abuf->fields.fmt_ldos_offset.f
3053 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3054 int UNUSED written
= 0;
3055 IADDR UNUSED pc
= abuf
->addr
;
3056 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3059 SI opval
= GETMEMUHI (current_cpu
, pc
, FLD (f_offset
));
3060 * FLD (i_dst
) = opval
;
3061 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3068 /* ldos-indirect-offset: ldos $offset($abase), $dst */
3071 SEM_FN_NAME (i960base
,ldos_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3073 #define FLD(f) abuf->fields.fmt_ldos_indirect_offset.f
3074 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3075 int UNUSED written
= 0;
3076 IADDR UNUSED pc
= abuf
->addr
;
3077 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3080 SI opval
= GETMEMUHI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)));
3081 * FLD (i_dst
) = opval
;
3082 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3089 /* ldos-indirect: ldos ($abase), $dst */
3092 SEM_FN_NAME (i960base
,ldos_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3094 #define FLD(f) abuf->fields.fmt_ldos_indirect.f
3095 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3096 int UNUSED written
= 0;
3097 IADDR UNUSED pc
= abuf
->addr
;
3098 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3101 SI opval
= GETMEMUHI (current_cpu
, pc
, * FLD (i_abase
));
3102 * FLD (i_dst
) = opval
;
3103 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3110 /* ldos-indirect-index: ldos ($abase)[$index*S$scale], $dst */
3113 SEM_FN_NAME (i960base
,ldos_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3115 #define FLD(f) abuf->fields.fmt_ldos_indirect_index.f
3116 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3117 int UNUSED written
= 0;
3118 IADDR UNUSED pc
= abuf
->addr
;
3119 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3122 SI opval
= GETMEMUHI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3123 * FLD (i_dst
) = opval
;
3124 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3131 /* ldos-disp: ldos $optdisp, $dst */
3134 SEM_FN_NAME (i960base
,ldos_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3136 #define FLD(f) abuf->fields.fmt_ldos_disp.f
3137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3138 int UNUSED written
= 0;
3139 IADDR UNUSED pc
= abuf
->addr
;
3140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3143 SI opval
= GETMEMUHI (current_cpu
, pc
, FLD (f_optdisp
));
3144 * FLD (i_dst
) = opval
;
3145 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3152 /* ldos-indirect-disp: ldos $optdisp($abase), $dst */
3155 SEM_FN_NAME (i960base
,ldos_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3157 #define FLD(f) abuf->fields.fmt_ldos_indirect_disp.f
3158 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3159 int UNUSED written
= 0;
3160 IADDR UNUSED pc
= abuf
->addr
;
3161 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3164 SI opval
= GETMEMUHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)));
3165 * FLD (i_dst
) = opval
;
3166 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3173 /* ldos-index-disp: ldos $optdisp[$index*S$scale], $dst */
3176 SEM_FN_NAME (i960base
,ldos_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3178 #define FLD(f) abuf->fields.fmt_ldos_index_disp.f
3179 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3180 int UNUSED written
= 0;
3181 IADDR UNUSED pc
= abuf
->addr
;
3182 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3185 SI opval
= GETMEMUHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3186 * FLD (i_dst
) = opval
;
3187 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3194 /* ldos-indirect-index-disp: ldos $optdisp($abase)[$index*S$scale], $dst */
3197 SEM_FN_NAME (i960base
,ldos_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3199 #define FLD(f) abuf->fields.fmt_ldos_indirect_index_disp.f
3200 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3201 int UNUSED written
= 0;
3202 IADDR UNUSED pc
= abuf
->addr
;
3203 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3206 SI opval
= GETMEMUHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))));
3207 * FLD (i_dst
) = opval
;
3208 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3215 /* ldib-offset: ldib $offset, $dst */
3218 SEM_FN_NAME (i960base
,ldib_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3220 #define FLD(f) abuf->fields.fmt_ldib_offset.f
3221 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3222 int UNUSED written
= 0;
3223 IADDR UNUSED pc
= abuf
->addr
;
3224 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3227 SI opval
= GETMEMQI (current_cpu
, pc
, FLD (f_offset
));
3228 * FLD (i_dst
) = opval
;
3229 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3236 /* ldib-indirect-offset: ldib $offset($abase), $dst */
3239 SEM_FN_NAME (i960base
,ldib_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3241 #define FLD(f) abuf->fields.fmt_ldib_indirect_offset.f
3242 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3243 int UNUSED written
= 0;
3244 IADDR UNUSED pc
= abuf
->addr
;
3245 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3248 SI opval
= GETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)));
3249 * FLD (i_dst
) = opval
;
3250 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3257 /* ldib-indirect: ldib ($abase), $dst */
3260 SEM_FN_NAME (i960base
,ldib_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3262 #define FLD(f) abuf->fields.fmt_ldib_indirect.f
3263 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3264 int UNUSED written
= 0;
3265 IADDR UNUSED pc
= abuf
->addr
;
3266 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3269 SI opval
= GETMEMQI (current_cpu
, pc
, * FLD (i_abase
));
3270 * FLD (i_dst
) = opval
;
3271 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3278 /* ldib-indirect-index: ldib ($abase)[$index*S$scale], $dst */
3281 SEM_FN_NAME (i960base
,ldib_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3283 #define FLD(f) abuf->fields.fmt_ldib_indirect_index.f
3284 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3285 int UNUSED written
= 0;
3286 IADDR UNUSED pc
= abuf
->addr
;
3287 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3290 SI opval
= GETMEMQI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3291 * FLD (i_dst
) = opval
;
3292 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3299 /* ldib-disp: ldib $optdisp, $dst */
3302 SEM_FN_NAME (i960base
,ldib_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3304 #define FLD(f) abuf->fields.fmt_ldib_disp.f
3305 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3306 int UNUSED written
= 0;
3307 IADDR UNUSED pc
= abuf
->addr
;
3308 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3311 SI opval
= GETMEMQI (current_cpu
, pc
, FLD (f_optdisp
));
3312 * FLD (i_dst
) = opval
;
3313 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3320 /* ldib-indirect-disp: ldib $optdisp($abase), $dst */
3323 SEM_FN_NAME (i960base
,ldib_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3325 #define FLD(f) abuf->fields.fmt_ldib_indirect_disp.f
3326 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3327 int UNUSED written
= 0;
3328 IADDR UNUSED pc
= abuf
->addr
;
3329 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3332 SI opval
= GETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)));
3333 * FLD (i_dst
) = opval
;
3334 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3341 /* ldib-index-disp: ldib $optdisp[$index*S$scale], $dst */
3344 SEM_FN_NAME (i960base
,ldib_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3346 #define FLD(f) abuf->fields.fmt_ldib_index_disp.f
3347 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3348 int UNUSED written
= 0;
3349 IADDR UNUSED pc
= abuf
->addr
;
3350 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3353 SI opval
= GETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3354 * FLD (i_dst
) = opval
;
3355 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3362 /* ldib-indirect-index-disp: ldib $optdisp($abase)[$index*S$scale], $dst */
3365 SEM_FN_NAME (i960base
,ldib_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3367 #define FLD(f) abuf->fields.fmt_ldib_indirect_index_disp.f
3368 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3369 int UNUSED written
= 0;
3370 IADDR UNUSED pc
= abuf
->addr
;
3371 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3374 SI opval
= GETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))));
3375 * FLD (i_dst
) = opval
;
3376 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3383 /* ldis-offset: ldis $offset, $dst */
3386 SEM_FN_NAME (i960base
,ldis_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3388 #define FLD(f) abuf->fields.fmt_ldis_offset.f
3389 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3390 int UNUSED written
= 0;
3391 IADDR UNUSED pc
= abuf
->addr
;
3392 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3395 SI opval
= GETMEMHI (current_cpu
, pc
, FLD (f_offset
));
3396 * FLD (i_dst
) = opval
;
3397 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3404 /* ldis-indirect-offset: ldis $offset($abase), $dst */
3407 SEM_FN_NAME (i960base
,ldis_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3409 #define FLD(f) abuf->fields.fmt_ldis_indirect_offset.f
3410 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3411 int UNUSED written
= 0;
3412 IADDR UNUSED pc
= abuf
->addr
;
3413 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3416 SI opval
= GETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)));
3417 * FLD (i_dst
) = opval
;
3418 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3425 /* ldis-indirect: ldis ($abase), $dst */
3428 SEM_FN_NAME (i960base
,ldis_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3430 #define FLD(f) abuf->fields.fmt_ldis_indirect.f
3431 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3432 int UNUSED written
= 0;
3433 IADDR UNUSED pc
= abuf
->addr
;
3434 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3437 SI opval
= GETMEMHI (current_cpu
, pc
, * FLD (i_abase
));
3438 * FLD (i_dst
) = opval
;
3439 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3446 /* ldis-indirect-index: ldis ($abase)[$index*S$scale], $dst */
3449 SEM_FN_NAME (i960base
,ldis_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3451 #define FLD(f) abuf->fields.fmt_ldis_indirect_index.f
3452 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3453 int UNUSED written
= 0;
3454 IADDR UNUSED pc
= abuf
->addr
;
3455 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3458 SI opval
= GETMEMHI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3459 * FLD (i_dst
) = opval
;
3460 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3467 /* ldis-disp: ldis $optdisp, $dst */
3470 SEM_FN_NAME (i960base
,ldis_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3472 #define FLD(f) abuf->fields.fmt_ldis_disp.f
3473 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3474 int UNUSED written
= 0;
3475 IADDR UNUSED pc
= abuf
->addr
;
3476 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3479 SI opval
= GETMEMHI (current_cpu
, pc
, FLD (f_optdisp
));
3480 * FLD (i_dst
) = opval
;
3481 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3488 /* ldis-indirect-disp: ldis $optdisp($abase), $dst */
3491 SEM_FN_NAME (i960base
,ldis_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3493 #define FLD(f) abuf->fields.fmt_ldis_indirect_disp.f
3494 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3495 int UNUSED written
= 0;
3496 IADDR UNUSED pc
= abuf
->addr
;
3497 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3500 SI opval
= GETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)));
3501 * FLD (i_dst
) = opval
;
3502 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3509 /* ldis-index-disp: ldis $optdisp[$index*S$scale], $dst */
3512 SEM_FN_NAME (i960base
,ldis_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3514 #define FLD(f) abuf->fields.fmt_ldis_index_disp.f
3515 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3516 int UNUSED written
= 0;
3517 IADDR UNUSED pc
= abuf
->addr
;
3518 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3521 SI opval
= GETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3522 * FLD (i_dst
) = opval
;
3523 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3530 /* ldis-indirect-index-disp: ldis $optdisp($abase)[$index*S$scale], $dst */
3533 SEM_FN_NAME (i960base
,ldis_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3535 #define FLD(f) abuf->fields.fmt_ldis_indirect_index_disp.f
3536 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3537 int UNUSED written
= 0;
3538 IADDR UNUSED pc
= abuf
->addr
;
3539 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3542 SI opval
= GETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))));
3543 * FLD (i_dst
) = opval
;
3544 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3551 /* ldl-offset: ldl $offset, $dst */
3554 SEM_FN_NAME (i960base
,ldl_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3556 #define FLD(f) abuf->fields.fmt_ldl_offset.f
3557 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3558 int UNUSED written
= 0;
3559 IADDR UNUSED pc
= abuf
->addr
;
3560 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3565 tmp_dregno
= FLD (f_srcdst
);
3566 tmp_temp
= FLD (f_offset
);
3568 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3569 * FLD (i_dst
) = opval
;
3570 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3573 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3574 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3575 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3583 /* ldl-indirect-offset: ldl $offset($abase), $dst */
3586 SEM_FN_NAME (i960base
,ldl_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3588 #define FLD(f) abuf->fields.fmt_ldl_indirect_offset.f
3589 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3590 int UNUSED written
= 0;
3591 IADDR UNUSED pc
= abuf
->addr
;
3592 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3597 tmp_dregno
= FLD (f_srcdst
);
3598 tmp_temp
= ADDSI (FLD (f_offset
), * FLD (i_abase
));
3600 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3601 * FLD (i_dst
) = opval
;
3602 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3605 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3606 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3607 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3615 /* ldl-indirect: ldl ($abase), $dst */
3618 SEM_FN_NAME (i960base
,ldl_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3620 #define FLD(f) abuf->fields.fmt_ldl_indirect.f
3621 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3622 int UNUSED written
= 0;
3623 IADDR UNUSED pc
= abuf
->addr
;
3624 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3629 tmp_dregno
= FLD (f_srcdst
);
3630 tmp_temp
= * FLD (i_abase
);
3632 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3633 * FLD (i_dst
) = opval
;
3634 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3637 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3638 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3639 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3647 /* ldl-indirect-index: ldl ($abase)[$index*S$scale], $dst */
3650 SEM_FN_NAME (i960base
,ldl_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3652 #define FLD(f) abuf->fields.fmt_ldl_indirect_index.f
3653 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3654 int UNUSED written
= 0;
3655 IADDR UNUSED pc
= abuf
->addr
;
3656 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3661 tmp_dregno
= FLD (f_srcdst
);
3662 tmp_temp
= ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
3664 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3665 * FLD (i_dst
) = opval
;
3666 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3669 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3670 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3671 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3679 /* ldl-disp: ldl $optdisp, $dst */
3682 SEM_FN_NAME (i960base
,ldl_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3684 #define FLD(f) abuf->fields.fmt_ldl_disp.f
3685 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3686 int UNUSED written
= 0;
3687 IADDR UNUSED pc
= abuf
->addr
;
3688 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3693 tmp_dregno
= FLD (f_srcdst
);
3694 tmp_temp
= FLD (f_optdisp
);
3696 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3697 * FLD (i_dst
) = opval
;
3698 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3701 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3702 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3703 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3711 /* ldl-indirect-disp: ldl $optdisp($abase), $dst */
3714 SEM_FN_NAME (i960base
,ldl_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3716 #define FLD(f) abuf->fields.fmt_ldl_indirect_disp.f
3717 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3718 int UNUSED written
= 0;
3719 IADDR UNUSED pc
= abuf
->addr
;
3720 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3725 tmp_dregno
= FLD (f_srcdst
);
3726 tmp_temp
= ADDSI (FLD (f_optdisp
), * FLD (i_abase
));
3728 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3729 * FLD (i_dst
) = opval
;
3730 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3733 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3734 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3735 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3743 /* ldl-index-disp: ldl $optdisp[$index*S$scale], $dst */
3746 SEM_FN_NAME (i960base
,ldl_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3748 #define FLD(f) abuf->fields.fmt_ldl_index_disp.f
3749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3750 int UNUSED written
= 0;
3751 IADDR UNUSED pc
= abuf
->addr
;
3752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3757 tmp_dregno
= FLD (f_srcdst
);
3758 tmp_temp
= ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
3760 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3761 * FLD (i_dst
) = opval
;
3762 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3765 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3766 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3767 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3775 /* ldl-indirect-index-disp: ldl $optdisp($abase)[$index*S$scale], $dst */
3778 SEM_FN_NAME (i960base
,ldl_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3780 #define FLD(f) abuf->fields.fmt_ldl_indirect_index_disp.f
3781 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3782 int UNUSED written
= 0;
3783 IADDR UNUSED pc
= abuf
->addr
;
3784 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3789 tmp_dregno
= FLD (f_srcdst
);
3790 tmp_temp
= ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
3792 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3793 * FLD (i_dst
) = opval
;
3794 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3797 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3798 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3799 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3807 /* ldt-offset: ldt $offset, $dst */
3810 SEM_FN_NAME (i960base
,ldt_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3812 #define FLD(f) abuf->fields.fmt_ldt_offset.f
3813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3814 int UNUSED written
= 0;
3815 IADDR UNUSED pc
= abuf
->addr
;
3816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3821 tmp_dregno
= FLD (f_srcdst
);
3822 tmp_temp
= FLD (f_offset
);
3824 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3825 * FLD (i_dst
) = opval
;
3826 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3829 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3830 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3831 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3834 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
3835 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
3836 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
3844 /* ldt-indirect-offset: ldt $offset($abase), $dst */
3847 SEM_FN_NAME (i960base
,ldt_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3849 #define FLD(f) abuf->fields.fmt_ldt_indirect_offset.f
3850 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3851 int UNUSED written
= 0;
3852 IADDR UNUSED pc
= abuf
->addr
;
3853 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3858 tmp_dregno
= FLD (f_srcdst
);
3859 tmp_temp
= ADDSI (FLD (f_offset
), * FLD (i_abase
));
3861 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3862 * FLD (i_dst
) = opval
;
3863 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3866 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3867 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3868 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3871 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
3872 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
3873 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
3881 /* ldt-indirect: ldt ($abase), $dst */
3884 SEM_FN_NAME (i960base
,ldt_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3886 #define FLD(f) abuf->fields.fmt_ldt_indirect.f
3887 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3888 int UNUSED written
= 0;
3889 IADDR UNUSED pc
= abuf
->addr
;
3890 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3895 tmp_dregno
= FLD (f_srcdst
);
3896 tmp_temp
= * FLD (i_abase
);
3898 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3899 * FLD (i_dst
) = opval
;
3900 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3903 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3904 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3905 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3908 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
3909 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
3910 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
3918 /* ldt-indirect-index: ldt ($abase)[$index*S$scale], $dst */
3921 SEM_FN_NAME (i960base
,ldt_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3923 #define FLD(f) abuf->fields.fmt_ldt_indirect_index.f
3924 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3925 int UNUSED written
= 0;
3926 IADDR UNUSED pc
= abuf
->addr
;
3927 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3932 tmp_dregno
= FLD (f_srcdst
);
3933 tmp_temp
= ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
3935 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3936 * FLD (i_dst
) = opval
;
3937 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3940 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3941 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3942 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3945 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
3946 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
3947 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
3955 /* ldt-disp: ldt $optdisp, $dst */
3958 SEM_FN_NAME (i960base
,ldt_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3960 #define FLD(f) abuf->fields.fmt_ldt_disp.f
3961 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3962 int UNUSED written
= 0;
3963 IADDR UNUSED pc
= abuf
->addr
;
3964 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
3969 tmp_dregno
= FLD (f_srcdst
);
3970 tmp_temp
= FLD (f_optdisp
);
3972 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
3973 * FLD (i_dst
) = opval
;
3974 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
3977 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
3978 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
3979 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
3982 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
3983 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
3984 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
3992 /* ldt-indirect-disp: ldt $optdisp($abase), $dst */
3995 SEM_FN_NAME (i960base
,ldt_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3997 #define FLD(f) abuf->fields.fmt_ldt_indirect_disp.f
3998 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3999 int UNUSED written
= 0;
4000 IADDR UNUSED pc
= abuf
->addr
;
4001 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4006 tmp_dregno
= FLD (f_srcdst
);
4007 tmp_temp
= ADDSI (FLD (f_optdisp
), * FLD (i_abase
));
4009 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4010 * FLD (i_dst
) = opval
;
4011 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4014 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4015 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4016 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4019 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4020 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4021 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4029 /* ldt-index-disp: ldt $optdisp[$index*S$scale], $dst */
4032 SEM_FN_NAME (i960base
,ldt_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4034 #define FLD(f) abuf->fields.fmt_ldt_index_disp.f
4035 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4036 int UNUSED written
= 0;
4037 IADDR UNUSED pc
= abuf
->addr
;
4038 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4043 tmp_dregno
= FLD (f_srcdst
);
4044 tmp_temp
= ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
4046 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4047 * FLD (i_dst
) = opval
;
4048 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4051 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4052 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4053 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4056 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4057 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4058 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4066 /* ldt-indirect-index-disp: ldt $optdisp($abase)[$index*S$scale], $dst */
4069 SEM_FN_NAME (i960base
,ldt_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4071 #define FLD(f) abuf->fields.fmt_ldt_indirect_index_disp.f
4072 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4073 int UNUSED written
= 0;
4074 IADDR UNUSED pc
= abuf
->addr
;
4075 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4080 tmp_dregno
= FLD (f_srcdst
);
4081 tmp_temp
= ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
4083 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4084 * FLD (i_dst
) = opval
;
4085 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4088 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4089 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4090 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4093 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4094 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4095 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4103 /* ldq-offset: ldq $offset, $dst */
4106 SEM_FN_NAME (i960base
,ldq_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4108 #define FLD(f) abuf->fields.fmt_ldq_offset.f
4109 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4110 int UNUSED written
= 0;
4111 IADDR UNUSED pc
= abuf
->addr
;
4112 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4117 tmp_dregno
= FLD (f_srcdst
);
4118 tmp_temp
= FLD (f_offset
);
4120 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4121 * FLD (i_dst
) = opval
;
4122 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4125 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4126 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4127 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4130 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4131 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4132 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4135 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4136 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4137 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4145 /* ldq-indirect-offset: ldq $offset($abase), $dst */
4148 SEM_FN_NAME (i960base
,ldq_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4150 #define FLD(f) abuf->fields.fmt_ldq_indirect_offset.f
4151 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4152 int UNUSED written
= 0;
4153 IADDR UNUSED pc
= abuf
->addr
;
4154 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4159 tmp_dregno
= FLD (f_srcdst
);
4160 tmp_temp
= ADDSI (FLD (f_offset
), * FLD (i_abase
));
4162 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4163 * FLD (i_dst
) = opval
;
4164 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4167 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4168 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4169 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4172 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4173 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4174 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4177 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4178 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4179 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4187 /* ldq-indirect: ldq ($abase), $dst */
4190 SEM_FN_NAME (i960base
,ldq_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4192 #define FLD(f) abuf->fields.fmt_ldq_indirect.f
4193 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4194 int UNUSED written
= 0;
4195 IADDR UNUSED pc
= abuf
->addr
;
4196 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4201 tmp_dregno
= FLD (f_srcdst
);
4202 tmp_temp
= * FLD (i_abase
);
4204 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4205 * FLD (i_dst
) = opval
;
4206 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4209 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4210 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4211 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4214 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4215 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4216 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4219 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4220 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4221 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4229 /* ldq-indirect-index: ldq ($abase)[$index*S$scale], $dst */
4232 SEM_FN_NAME (i960base
,ldq_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4234 #define FLD(f) abuf->fields.fmt_ldq_indirect_index.f
4235 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4236 int UNUSED written
= 0;
4237 IADDR UNUSED pc
= abuf
->addr
;
4238 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4243 tmp_dregno
= FLD (f_srcdst
);
4244 tmp_temp
= ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
4246 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4247 * FLD (i_dst
) = opval
;
4248 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4251 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4252 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4253 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4256 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4257 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4258 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4261 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4262 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4263 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4271 /* ldq-disp: ldq $optdisp, $dst */
4274 SEM_FN_NAME (i960base
,ldq_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4276 #define FLD(f) abuf->fields.fmt_ldq_disp.f
4277 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4278 int UNUSED written
= 0;
4279 IADDR UNUSED pc
= abuf
->addr
;
4280 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4285 tmp_dregno
= FLD (f_srcdst
);
4286 tmp_temp
= FLD (f_optdisp
);
4288 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4289 * FLD (i_dst
) = opval
;
4290 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4293 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4294 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4295 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4298 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4299 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4300 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4303 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4304 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4305 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4313 /* ldq-indirect-disp: ldq $optdisp($abase), $dst */
4316 SEM_FN_NAME (i960base
,ldq_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4318 #define FLD(f) abuf->fields.fmt_ldq_indirect_disp.f
4319 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4320 int UNUSED written
= 0;
4321 IADDR UNUSED pc
= abuf
->addr
;
4322 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4327 tmp_dregno
= FLD (f_srcdst
);
4328 tmp_temp
= ADDSI (FLD (f_optdisp
), * FLD (i_abase
));
4330 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4331 * FLD (i_dst
) = opval
;
4332 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4335 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4336 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4337 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4340 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4341 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4342 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4345 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4346 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4347 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4355 /* ldq-index-disp: ldq $optdisp[$index*S$scale], $dst */
4358 SEM_FN_NAME (i960base
,ldq_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4360 #define FLD(f) abuf->fields.fmt_ldq_index_disp.f
4361 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4362 int UNUSED written
= 0;
4363 IADDR UNUSED pc
= abuf
->addr
;
4364 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4369 tmp_dregno
= FLD (f_srcdst
);
4370 tmp_temp
= ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
4372 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4373 * FLD (i_dst
) = opval
;
4374 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4377 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4378 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4379 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4382 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4383 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4384 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4387 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4388 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4389 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4397 /* ldq-indirect-index-disp: ldq $optdisp($abase)[$index*S$scale], $dst */
4400 SEM_FN_NAME (i960base
,ldq_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4402 #define FLD(f) abuf->fields.fmt_ldq_indirect_index_disp.f
4403 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4404 int UNUSED written
= 0;
4405 IADDR UNUSED pc
= abuf
->addr
;
4406 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4411 tmp_dregno
= FLD (f_srcdst
);
4412 tmp_temp
= ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))));
4414 SI opval
= GETMEMSI (current_cpu
, pc
, tmp_temp
);
4415 * FLD (i_dst
) = opval
;
4416 TRACE_RESULT (current_cpu
, abuf
, "dst", 'x', opval
);
4419 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 4));
4420 CPU (h_gr
[((FLD (f_srcdst
)) + (1))]) = opval
;
4421 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-1", 'x', opval
);
4424 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 8));
4425 CPU (h_gr
[((FLD (f_srcdst
)) + (2))]) = opval
;
4426 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-2", 'x', opval
);
4429 SI opval
= GETMEMSI (current_cpu
, pc
, ADDSI (tmp_temp
, 12));
4430 CPU (h_gr
[((FLD (f_srcdst
)) + (3))]) = opval
;
4431 TRACE_RESULT (current_cpu
, abuf
, "gr-add:-VM-index-of-dst-3", 'x', opval
);
4439 /* st-offset: st $st_src, $offset */
4442 SEM_FN_NAME (i960base
,st_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4444 #define FLD(f) abuf->fields.fmt_st_offset.f
4445 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4446 int UNUSED written
= 0;
4447 IADDR UNUSED pc
= abuf
->addr
;
4448 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4451 SI opval
= * FLD (i_st_src
);
4452 SETMEMSI (current_cpu
, pc
, FLD (f_offset
), opval
);
4453 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4460 /* st-indirect-offset: st $st_src, $offset($abase) */
4463 SEM_FN_NAME (i960base
,st_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4465 #define FLD(f) abuf->fields.fmt_st_indirect_offset.f
4466 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4467 int UNUSED written
= 0;
4468 IADDR UNUSED pc
= abuf
->addr
;
4469 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4472 SI opval
= * FLD (i_st_src
);
4473 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)), opval
);
4474 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4481 /* st-indirect: st $st_src, ($abase) */
4484 SEM_FN_NAME (i960base
,st_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4486 #define FLD(f) abuf->fields.fmt_st_indirect.f
4487 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4488 int UNUSED written
= 0;
4489 IADDR UNUSED pc
= abuf
->addr
;
4490 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4493 SI opval
= * FLD (i_st_src
);
4494 SETMEMSI (current_cpu
, pc
, * FLD (i_abase
), opval
);
4495 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4502 /* st-indirect-index: st $st_src, ($abase)[$index*S$scale] */
4505 SEM_FN_NAME (i960base
,st_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4507 #define FLD(f) abuf->fields.fmt_st_indirect_index.f
4508 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4509 int UNUSED written
= 0;
4510 IADDR UNUSED pc
= abuf
->addr
;
4511 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4514 SI opval
= * FLD (i_st_src
);
4515 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
4516 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4523 /* st-disp: st $st_src, $optdisp */
4526 SEM_FN_NAME (i960base
,st_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4528 #define FLD(f) abuf->fields.fmt_st_disp.f
4529 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4530 int UNUSED written
= 0;
4531 IADDR UNUSED pc
= abuf
->addr
;
4532 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4535 SI opval
= * FLD (i_st_src
);
4536 SETMEMSI (current_cpu
, pc
, FLD (f_optdisp
), opval
);
4537 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4544 /* st-indirect-disp: st $st_src, $optdisp($abase) */
4547 SEM_FN_NAME (i960base
,st_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4549 #define FLD(f) abuf->fields.fmt_st_indirect_disp.f
4550 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4551 int UNUSED written
= 0;
4552 IADDR UNUSED pc
= abuf
->addr
;
4553 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4556 SI opval
= * FLD (i_st_src
);
4557 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), opval
);
4558 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4565 /* st-index-disp: st $st_src, $optdisp[$index*S$scale */
4568 SEM_FN_NAME (i960base
,st_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4570 #define FLD(f) abuf->fields.fmt_st_index_disp.f
4571 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4572 int UNUSED written
= 0;
4573 IADDR UNUSED pc
= abuf
->addr
;
4574 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4577 SI opval
= * FLD (i_st_src
);
4578 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
4579 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4586 /* st-indirect-index-disp: st $st_src, $optdisp($abase)[$index*S$scale] */
4589 SEM_FN_NAME (i960base
,st_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4591 #define FLD(f) abuf->fields.fmt_st_indirect_index_disp.f
4592 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4593 int UNUSED written
= 0;
4594 IADDR UNUSED pc
= abuf
->addr
;
4595 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4598 SI opval
= * FLD (i_st_src
);
4599 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), opval
);
4600 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4607 /* stob-offset: stob $st_src, $offset */
4610 SEM_FN_NAME (i960base
,stob_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4612 #define FLD(f) abuf->fields.fmt_stob_offset.f
4613 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4614 int UNUSED written
= 0;
4615 IADDR UNUSED pc
= abuf
->addr
;
4616 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4619 QI opval
= * FLD (i_st_src
);
4620 SETMEMQI (current_cpu
, pc
, FLD (f_offset
), opval
);
4621 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4628 /* stob-indirect-offset: stob $st_src, $offset($abase) */
4631 SEM_FN_NAME (i960base
,stob_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4633 #define FLD(f) abuf->fields.fmt_stob_indirect_offset.f
4634 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4635 int UNUSED written
= 0;
4636 IADDR UNUSED pc
= abuf
->addr
;
4637 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4640 QI opval
= * FLD (i_st_src
);
4641 SETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)), opval
);
4642 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4649 /* stob-indirect: stob $st_src, ($abase) */
4652 SEM_FN_NAME (i960base
,stob_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4654 #define FLD(f) abuf->fields.fmt_stob_indirect.f
4655 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4656 int UNUSED written
= 0;
4657 IADDR UNUSED pc
= abuf
->addr
;
4658 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4661 QI opval
= * FLD (i_st_src
);
4662 SETMEMQI (current_cpu
, pc
, * FLD (i_abase
), opval
);
4663 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4670 /* stob-indirect-index: stob $st_src, ($abase)[$index*S$scale] */
4673 SEM_FN_NAME (i960base
,stob_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4675 #define FLD(f) abuf->fields.fmt_stob_indirect_index.f
4676 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4677 int UNUSED written
= 0;
4678 IADDR UNUSED pc
= abuf
->addr
;
4679 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4682 QI opval
= * FLD (i_st_src
);
4683 SETMEMQI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
4684 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4691 /* stob-disp: stob $st_src, $optdisp */
4694 SEM_FN_NAME (i960base
,stob_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4696 #define FLD(f) abuf->fields.fmt_stob_disp.f
4697 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4698 int UNUSED written
= 0;
4699 IADDR UNUSED pc
= abuf
->addr
;
4700 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4703 QI opval
= * FLD (i_st_src
);
4704 SETMEMQI (current_cpu
, pc
, FLD (f_optdisp
), opval
);
4705 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4712 /* stob-indirect-disp: stob $st_src, $optdisp($abase) */
4715 SEM_FN_NAME (i960base
,stob_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4717 #define FLD(f) abuf->fields.fmt_stob_indirect_disp.f
4718 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4719 int UNUSED written
= 0;
4720 IADDR UNUSED pc
= abuf
->addr
;
4721 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4724 QI opval
= * FLD (i_st_src
);
4725 SETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), opval
);
4726 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4733 /* stob-index-disp: stob $st_src, $optdisp[$index*S$scale */
4736 SEM_FN_NAME (i960base
,stob_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4738 #define FLD(f) abuf->fields.fmt_stob_index_disp.f
4739 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4740 int UNUSED written
= 0;
4741 IADDR UNUSED pc
= abuf
->addr
;
4742 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4745 QI opval
= * FLD (i_st_src
);
4746 SETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
4747 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4754 /* stob-indirect-index-disp: stob $st_src, $optdisp($abase)[$index*S$scale] */
4757 SEM_FN_NAME (i960base
,stob_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4759 #define FLD(f) abuf->fields.fmt_stob_indirect_index_disp.f
4760 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4761 int UNUSED written
= 0;
4762 IADDR UNUSED pc
= abuf
->addr
;
4763 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4766 QI opval
= * FLD (i_st_src
);
4767 SETMEMQI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), opval
);
4768 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4775 /* stos-offset: stos $st_src, $offset */
4778 SEM_FN_NAME (i960base
,stos_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4780 #define FLD(f) abuf->fields.fmt_stos_offset.f
4781 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4782 int UNUSED written
= 0;
4783 IADDR UNUSED pc
= abuf
->addr
;
4784 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4787 HI opval
= * FLD (i_st_src
);
4788 SETMEMHI (current_cpu
, pc
, FLD (f_offset
), opval
);
4789 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4796 /* stos-indirect-offset: stos $st_src, $offset($abase) */
4799 SEM_FN_NAME (i960base
,stos_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4801 #define FLD(f) abuf->fields.fmt_stos_indirect_offset.f
4802 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4803 int UNUSED written
= 0;
4804 IADDR UNUSED pc
= abuf
->addr
;
4805 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4808 HI opval
= * FLD (i_st_src
);
4809 SETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)), opval
);
4810 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4817 /* stos-indirect: stos $st_src, ($abase) */
4820 SEM_FN_NAME (i960base
,stos_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4822 #define FLD(f) abuf->fields.fmt_stos_indirect.f
4823 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4824 int UNUSED written
= 0;
4825 IADDR UNUSED pc
= abuf
->addr
;
4826 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4829 HI opval
= * FLD (i_st_src
);
4830 SETMEMHI (current_cpu
, pc
, * FLD (i_abase
), opval
);
4831 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4838 /* stos-indirect-index: stos $st_src, ($abase)[$index*S$scale] */
4841 SEM_FN_NAME (i960base
,stos_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4843 #define FLD(f) abuf->fields.fmt_stos_indirect_index.f
4844 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4845 int UNUSED written
= 0;
4846 IADDR UNUSED pc
= abuf
->addr
;
4847 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4850 HI opval
= * FLD (i_st_src
);
4851 SETMEMHI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
4852 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4859 /* stos-disp: stos $st_src, $optdisp */
4862 SEM_FN_NAME (i960base
,stos_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4864 #define FLD(f) abuf->fields.fmt_stos_disp.f
4865 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4866 int UNUSED written
= 0;
4867 IADDR UNUSED pc
= abuf
->addr
;
4868 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4871 HI opval
= * FLD (i_st_src
);
4872 SETMEMHI (current_cpu
, pc
, FLD (f_optdisp
), opval
);
4873 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4880 /* stos-indirect-disp: stos $st_src, $optdisp($abase) */
4883 SEM_FN_NAME (i960base
,stos_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4885 #define FLD(f) abuf->fields.fmt_stos_indirect_disp.f
4886 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4887 int UNUSED written
= 0;
4888 IADDR UNUSED pc
= abuf
->addr
;
4889 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4892 HI opval
= * FLD (i_st_src
);
4893 SETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), opval
);
4894 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4901 /* stos-index-disp: stos $st_src, $optdisp[$index*S$scale */
4904 SEM_FN_NAME (i960base
,stos_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4906 #define FLD(f) abuf->fields.fmt_stos_index_disp.f
4907 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4908 int UNUSED written
= 0;
4909 IADDR UNUSED pc
= abuf
->addr
;
4910 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4913 HI opval
= * FLD (i_st_src
);
4914 SETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
4915 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4922 /* stos-indirect-index-disp: stos $st_src, $optdisp($abase)[$index*S$scale] */
4925 SEM_FN_NAME (i960base
,stos_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4927 #define FLD(f) abuf->fields.fmt_stos_indirect_index_disp.f
4928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4929 int UNUSED written
= 0;
4930 IADDR UNUSED pc
= abuf
->addr
;
4931 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
4934 HI opval
= * FLD (i_st_src
);
4935 SETMEMHI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), opval
);
4936 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4943 /* stl-offset: stl $st_src, $offset */
4946 SEM_FN_NAME (i960base
,stl_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4948 #define FLD(f) abuf->fields.fmt_stl_offset.f
4949 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4950 int UNUSED written
= 0;
4951 IADDR UNUSED pc
= abuf
->addr
;
4952 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4956 tmp_sregno
= FLD (f_srcdst
);
4958 SI opval
= * FLD (i_st_src
);
4959 SETMEMSI (current_cpu
, pc
, FLD (f_offset
), opval
);
4960 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4963 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
4964 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), 4), opval
);
4965 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4973 /* stl-indirect-offset: stl $st_src, $offset($abase) */
4976 SEM_FN_NAME (i960base
,stl_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4978 #define FLD(f) abuf->fields.fmt_stl_indirect_offset.f
4979 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4980 int UNUSED written
= 0;
4981 IADDR UNUSED pc
= abuf
->addr
;
4982 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4986 tmp_sregno
= FLD (f_srcdst
);
4988 SI opval
= * FLD (i_st_src
);
4989 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)), opval
);
4990 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
4993 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
4994 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_offset
), * FLD (i_abase
)), 4), opval
);
4995 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5003 /* stl-indirect: stl $st_src, ($abase) */
5006 SEM_FN_NAME (i960base
,stl_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5008 #define FLD(f) abuf->fields.fmt_stl_indirect.f
5009 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5010 int UNUSED written
= 0;
5011 IADDR UNUSED pc
= abuf
->addr
;
5012 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5016 tmp_sregno
= FLD (f_srcdst
);
5018 SI opval
= * FLD (i_st_src
);
5019 SETMEMSI (current_cpu
, pc
, * FLD (i_abase
), opval
);
5020 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5023 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5024 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), 4), opval
);
5025 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5033 /* stl-indirect-index: stl $st_src, ($abase)[$index*S$scale] */
5036 SEM_FN_NAME (i960base
,stl_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5038 #define FLD(f) abuf->fields.fmt_stl_indirect_index.f
5039 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5040 int UNUSED written
= 0;
5041 IADDR UNUSED pc
= abuf
->addr
;
5042 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5046 tmp_sregno
= FLD (f_srcdst
);
5048 SI opval
= * FLD (i_st_src
);
5049 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
5050 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5053 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5054 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 4), opval
);
5055 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5063 /* stl-disp: stl $st_src, $optdisp */
5066 SEM_FN_NAME (i960base
,stl_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5068 #define FLD(f) abuf->fields.fmt_stl_disp.f
5069 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5070 int UNUSED written
= 0;
5071 IADDR UNUSED pc
= abuf
->addr
;
5072 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5076 tmp_sregno
= FLD (f_srcdst
);
5078 SI opval
= * FLD (i_st_src
);
5079 SETMEMSI (current_cpu
, pc
, FLD (f_optdisp
), opval
);
5080 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5083 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5084 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), 4), opval
);
5085 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5093 /* stl-indirect-disp: stl $st_src, $optdisp($abase) */
5096 SEM_FN_NAME (i960base
,stl_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5098 #define FLD(f) abuf->fields.fmt_stl_indirect_disp.f
5099 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5100 int UNUSED written
= 0;
5101 IADDR UNUSED pc
= abuf
->addr
;
5102 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5106 tmp_sregno
= FLD (f_srcdst
);
5108 SI opval
= * FLD (i_st_src
);
5109 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), opval
);
5110 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5113 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5114 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), 4), opval
);
5115 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5123 /* stl-index-disp: stl $st_src, $optdisp[$index*S$scale */
5126 SEM_FN_NAME (i960base
,stl_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5128 #define FLD(f) abuf->fields.fmt_stl_index_disp.f
5129 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5130 int UNUSED written
= 0;
5131 IADDR UNUSED pc
= abuf
->addr
;
5132 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5136 tmp_sregno
= FLD (f_srcdst
);
5138 SI opval
= * FLD (i_st_src
);
5139 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
5140 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5143 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5144 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 4), opval
);
5145 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5153 /* stl-indirect-index-disp: stl $st_src, $optdisp($abase)[$index*S$scale] */
5156 SEM_FN_NAME (i960base
,stl_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5158 #define FLD(f) abuf->fields.fmt_stl_indirect_index_disp.f
5159 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5160 int UNUSED written
= 0;
5161 IADDR UNUSED pc
= abuf
->addr
;
5162 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5166 tmp_sregno
= FLD (f_srcdst
);
5168 SI opval
= * FLD (i_st_src
);
5169 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), opval
);
5170 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5173 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5174 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), 4), opval
);
5175 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5183 /* stt-offset: stt $st_src, $offset */
5186 SEM_FN_NAME (i960base
,stt_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5188 #define FLD(f) abuf->fields.fmt_stt_offset.f
5189 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5190 int UNUSED written
= 0;
5191 IADDR UNUSED pc
= abuf
->addr
;
5192 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5196 tmp_sregno
= FLD (f_srcdst
);
5198 SI opval
= * FLD (i_st_src
);
5199 SETMEMSI (current_cpu
, pc
, FLD (f_offset
), opval
);
5200 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5203 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5204 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), 4), opval
);
5205 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5208 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5209 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), 8), opval
);
5210 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5218 /* stt-indirect-offset: stt $st_src, $offset($abase) */
5221 SEM_FN_NAME (i960base
,stt_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5223 #define FLD(f) abuf->fields.fmt_stt_indirect_offset.f
5224 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5225 int UNUSED written
= 0;
5226 IADDR UNUSED pc
= abuf
->addr
;
5227 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5231 tmp_sregno
= FLD (f_srcdst
);
5233 SI opval
= * FLD (i_st_src
);
5234 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)), opval
);
5235 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5238 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5239 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_offset
), * FLD (i_abase
)), 4), opval
);
5240 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5243 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5244 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_offset
), * FLD (i_abase
)), 8), opval
);
5245 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5253 /* stt-indirect: stt $st_src, ($abase) */
5256 SEM_FN_NAME (i960base
,stt_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5258 #define FLD(f) abuf->fields.fmt_stt_indirect.f
5259 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5260 int UNUSED written
= 0;
5261 IADDR UNUSED pc
= abuf
->addr
;
5262 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5266 tmp_sregno
= FLD (f_srcdst
);
5268 SI opval
= * FLD (i_st_src
);
5269 SETMEMSI (current_cpu
, pc
, * FLD (i_abase
), opval
);
5270 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5273 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5274 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), 4), opval
);
5275 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5278 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5279 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), 8), opval
);
5280 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5288 /* stt-indirect-index: stt $st_src, ($abase)[$index*S$scale] */
5291 SEM_FN_NAME (i960base
,stt_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5293 #define FLD(f) abuf->fields.fmt_stt_indirect_index.f
5294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5295 int UNUSED written
= 0;
5296 IADDR UNUSED pc
= abuf
->addr
;
5297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5301 tmp_sregno
= FLD (f_srcdst
);
5303 SI opval
= * FLD (i_st_src
);
5304 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
5305 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5308 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5309 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 4), opval
);
5310 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5313 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5314 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 8), opval
);
5315 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5323 /* stt-disp: stt $st_src, $optdisp */
5326 SEM_FN_NAME (i960base
,stt_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5328 #define FLD(f) abuf->fields.fmt_stt_disp.f
5329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5330 int UNUSED written
= 0;
5331 IADDR UNUSED pc
= abuf
->addr
;
5332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5336 tmp_sregno
= FLD (f_srcdst
);
5338 SI opval
= * FLD (i_st_src
);
5339 SETMEMSI (current_cpu
, pc
, FLD (f_optdisp
), opval
);
5340 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5343 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5344 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), 4), opval
);
5345 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5348 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5349 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), 8), opval
);
5350 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5358 /* stt-indirect-disp: stt $st_src, $optdisp($abase) */
5361 SEM_FN_NAME (i960base
,stt_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5363 #define FLD(f) abuf->fields.fmt_stt_indirect_disp.f
5364 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5365 int UNUSED written
= 0;
5366 IADDR UNUSED pc
= abuf
->addr
;
5367 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5371 tmp_sregno
= FLD (f_srcdst
);
5373 SI opval
= * FLD (i_st_src
);
5374 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), opval
);
5375 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5378 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5379 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), 4), opval
);
5380 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5383 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5384 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), 8), opval
);
5385 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5393 /* stt-index-disp: stt $st_src, $optdisp[$index*S$scale */
5396 SEM_FN_NAME (i960base
,stt_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5398 #define FLD(f) abuf->fields.fmt_stt_index_disp.f
5399 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5400 int UNUSED written
= 0;
5401 IADDR UNUSED pc
= abuf
->addr
;
5402 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5406 tmp_sregno
= FLD (f_srcdst
);
5408 SI opval
= * FLD (i_st_src
);
5409 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
5410 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5413 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5414 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 4), opval
);
5415 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5418 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5419 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 8), opval
);
5420 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5428 /* stt-indirect-index-disp: stt $st_src, $optdisp($abase)[$index*S$scale] */
5431 SEM_FN_NAME (i960base
,stt_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5433 #define FLD(f) abuf->fields.fmt_stt_indirect_index_disp.f
5434 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5435 int UNUSED written
= 0;
5436 IADDR UNUSED pc
= abuf
->addr
;
5437 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5441 tmp_sregno
= FLD (f_srcdst
);
5443 SI opval
= * FLD (i_st_src
);
5444 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), opval
);
5445 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5448 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5449 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), 4), opval
);
5450 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5453 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5454 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), 8), opval
);
5455 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5463 /* stq-offset: stq $st_src, $offset */
5466 SEM_FN_NAME (i960base
,stq_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5468 #define FLD(f) abuf->fields.fmt_stq_offset.f
5469 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5470 int UNUSED written
= 0;
5471 IADDR UNUSED pc
= abuf
->addr
;
5472 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5476 tmp_sregno
= FLD (f_srcdst
);
5478 SI opval
= * FLD (i_st_src
);
5479 SETMEMSI (current_cpu
, pc
, FLD (f_offset
), opval
);
5480 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5483 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5484 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), 4), opval
);
5485 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5488 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5489 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), 8), opval
);
5490 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5493 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5494 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), 12), opval
);
5495 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5503 /* stq-indirect-offset: stq $st_src, $offset($abase) */
5506 SEM_FN_NAME (i960base
,stq_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5508 #define FLD(f) abuf->fields.fmt_stq_indirect_offset.f
5509 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5510 int UNUSED written
= 0;
5511 IADDR UNUSED pc
= abuf
->addr
;
5512 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5516 tmp_sregno
= FLD (f_srcdst
);
5518 SI opval
= * FLD (i_st_src
);
5519 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_offset
), * FLD (i_abase
)), opval
);
5520 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5523 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5524 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_offset
), * FLD (i_abase
)), 4), opval
);
5525 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5528 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5529 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_offset
), * FLD (i_abase
)), 8), opval
);
5530 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5533 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5534 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_offset
), * FLD (i_abase
)), 12), opval
);
5535 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5543 /* stq-indirect: stq $st_src, ($abase) */
5546 SEM_FN_NAME (i960base
,stq_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5548 #define FLD(f) abuf->fields.fmt_stq_indirect.f
5549 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5550 int UNUSED written
= 0;
5551 IADDR UNUSED pc
= abuf
->addr
;
5552 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5556 tmp_sregno
= FLD (f_srcdst
);
5558 SI opval
= * FLD (i_st_src
);
5559 SETMEMSI (current_cpu
, pc
, * FLD (i_abase
), opval
);
5560 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5563 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5564 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), 4), opval
);
5565 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5568 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5569 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), 8), opval
);
5570 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5573 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5574 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), 12), opval
);
5575 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5583 /* stq-indirect-index: stq $st_src, ($abase)[$index*S$scale] */
5586 SEM_FN_NAME (i960base
,stq_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5588 #define FLD(f) abuf->fields.fmt_stq_indirect_index.f
5589 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5590 int UNUSED written
= 0;
5591 IADDR UNUSED pc
= abuf
->addr
;
5592 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5596 tmp_sregno
= FLD (f_srcdst
);
5598 SI opval
= * FLD (i_st_src
);
5599 SETMEMSI (current_cpu
, pc
, ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
5600 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5603 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5604 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 4), opval
);
5605 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5608 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5609 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 8), opval
);
5610 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5613 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5614 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 12), opval
);
5615 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5623 /* stq-disp: stq $st_src, $optdisp */
5626 SEM_FN_NAME (i960base
,stq_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5628 #define FLD(f) abuf->fields.fmt_stq_disp.f
5629 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5630 int UNUSED written
= 0;
5631 IADDR UNUSED pc
= abuf
->addr
;
5632 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5636 tmp_sregno
= FLD (f_srcdst
);
5638 SI opval
= * FLD (i_st_src
);
5639 SETMEMSI (current_cpu
, pc
, FLD (f_optdisp
), opval
);
5640 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5643 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5644 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), 4), opval
);
5645 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5648 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5649 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), 8), opval
);
5650 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5653 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5654 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), 12), opval
);
5655 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5663 /* stq-indirect-disp: stq $st_src, $optdisp($abase) */
5666 SEM_FN_NAME (i960base
,stq_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5668 #define FLD(f) abuf->fields.fmt_stq_indirect_disp.f
5669 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5670 int UNUSED written
= 0;
5671 IADDR UNUSED pc
= abuf
->addr
;
5672 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5676 tmp_sregno
= FLD (f_srcdst
);
5678 SI opval
= * FLD (i_st_src
);
5679 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), opval
);
5680 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5683 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5684 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), 4), opval
);
5685 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5688 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5689 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), 8), opval
);
5690 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5693 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5694 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), * FLD (i_abase
)), 12), opval
);
5695 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5703 /* stq-index-disp: stq $st_src, $optdisp[$index*S$scale */
5706 SEM_FN_NAME (i960base
,stq_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5708 #define FLD(f) abuf->fields.fmt_stq_index_disp.f
5709 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5710 int UNUSED written
= 0;
5711 IADDR UNUSED pc
= abuf
->addr
;
5712 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5716 tmp_sregno
= FLD (f_srcdst
);
5718 SI opval
= * FLD (i_st_src
);
5719 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), opval
);
5720 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5723 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5724 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 4), opval
);
5725 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5728 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5729 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 8), opval
);
5730 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5733 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5734 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
)))), 12), opval
);
5735 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5743 /* stq-indirect-index-disp: stq $st_src, $optdisp($abase)[$index*S$scale] */
5746 SEM_FN_NAME (i960base
,stq_indirect_index_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5748 #define FLD(f) abuf->fields.fmt_stq_indirect_index_disp.f
5749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5750 int UNUSED written
= 0;
5751 IADDR UNUSED pc
= abuf
->addr
;
5752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
5756 tmp_sregno
= FLD (f_srcdst
);
5758 SI opval
= * FLD (i_st_src
);
5759 SETMEMSI (current_cpu
, pc
, ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), opval
);
5760 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5763 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (1))]);
5764 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), 4), opval
);
5765 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5768 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (2))]);
5769 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), 8), opval
);
5770 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5773 SI opval
= CPU (h_gr
[((FLD (f_srcdst
)) + (3))]);
5774 SETMEMSI (current_cpu
, pc
, ADDSI (ADDSI (FLD (f_optdisp
), ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))))), 12), opval
);
5775 TRACE_RESULT (current_cpu
, abuf
, "memory", 'x', opval
);
5783 /* cmpobe-reg: cmpobe $br_src1, $br_src2, $br_disp */
5786 SEM_FN_NAME (i960base
,cmpobe_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5788 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
5789 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5790 int UNUSED written
= 0;
5791 IADDR UNUSED pc
= abuf
->addr
;
5793 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5795 if (EQSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
5797 USI opval
= FLD (i_br_disp
);
5798 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5799 written
|= (1 << 3);
5800 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5804 abuf
->written
= written
;
5805 SEM_BRANCH_FINI (vpc
);
5810 /* cmpobe-lit: cmpobe $br_lit1, $br_src2, $br_disp */
5813 SEM_FN_NAME (i960base
,cmpobe_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5815 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
5816 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5817 int UNUSED written
= 0;
5818 IADDR UNUSED pc
= abuf
->addr
;
5820 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5822 if (EQSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
5824 USI opval
= FLD (i_br_disp
);
5825 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5826 written
|= (1 << 3);
5827 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5831 abuf
->written
= written
;
5832 SEM_BRANCH_FINI (vpc
);
5837 /* cmpobne-reg: cmpobne $br_src1, $br_src2, $br_disp */
5840 SEM_FN_NAME (i960base
,cmpobne_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5842 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
5843 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5844 int UNUSED written
= 0;
5845 IADDR UNUSED pc
= abuf
->addr
;
5847 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5849 if (NESI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
5851 USI opval
= FLD (i_br_disp
);
5852 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5853 written
|= (1 << 3);
5854 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5858 abuf
->written
= written
;
5859 SEM_BRANCH_FINI (vpc
);
5864 /* cmpobne-lit: cmpobne $br_lit1, $br_src2, $br_disp */
5867 SEM_FN_NAME (i960base
,cmpobne_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5869 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
5870 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5871 int UNUSED written
= 0;
5872 IADDR UNUSED pc
= abuf
->addr
;
5874 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5876 if (NESI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
5878 USI opval
= FLD (i_br_disp
);
5879 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5880 written
|= (1 << 3);
5881 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5885 abuf
->written
= written
;
5886 SEM_BRANCH_FINI (vpc
);
5891 /* cmpobl-reg: cmpobl $br_src1, $br_src2, $br_disp */
5894 SEM_FN_NAME (i960base
,cmpobl_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5896 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_reg.f
5897 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5898 int UNUSED written
= 0;
5899 IADDR UNUSED pc
= abuf
->addr
;
5901 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5903 if (LTUSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
5905 USI opval
= FLD (i_br_disp
);
5906 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5907 written
|= (1 << 3);
5908 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5912 abuf
->written
= written
;
5913 SEM_BRANCH_FINI (vpc
);
5918 /* cmpobl-lit: cmpobl $br_lit1, $br_src2, $br_disp */
5921 SEM_FN_NAME (i960base
,cmpobl_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5923 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_lit.f
5924 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5925 int UNUSED written
= 0;
5926 IADDR UNUSED pc
= abuf
->addr
;
5928 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5930 if (LTUSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
5932 USI opval
= FLD (i_br_disp
);
5933 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5934 written
|= (1 << 3);
5935 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5939 abuf
->written
= written
;
5940 SEM_BRANCH_FINI (vpc
);
5945 /* cmpoble-reg: cmpoble $br_src1, $br_src2, $br_disp */
5948 SEM_FN_NAME (i960base
,cmpoble_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5950 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_reg.f
5951 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5952 int UNUSED written
= 0;
5953 IADDR UNUSED pc
= abuf
->addr
;
5955 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5957 if (LEUSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
5959 USI opval
= FLD (i_br_disp
);
5960 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5961 written
|= (1 << 3);
5962 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5966 abuf
->written
= written
;
5967 SEM_BRANCH_FINI (vpc
);
5972 /* cmpoble-lit: cmpoble $br_lit1, $br_src2, $br_disp */
5975 SEM_FN_NAME (i960base
,cmpoble_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5977 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_lit.f
5978 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5979 int UNUSED written
= 0;
5980 IADDR UNUSED pc
= abuf
->addr
;
5982 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5984 if (LEUSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
5986 USI opval
= FLD (i_br_disp
);
5987 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
5988 written
|= (1 << 3);
5989 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
5993 abuf
->written
= written
;
5994 SEM_BRANCH_FINI (vpc
);
5999 /* cmpobg-reg: cmpobg $br_src1, $br_src2, $br_disp */
6002 SEM_FN_NAME (i960base
,cmpobg_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6004 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_reg.f
6005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6006 int UNUSED written
= 0;
6007 IADDR UNUSED pc
= abuf
->addr
;
6009 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6011 if (GTUSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6013 USI opval
= FLD (i_br_disp
);
6014 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6015 written
|= (1 << 3);
6016 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6020 abuf
->written
= written
;
6021 SEM_BRANCH_FINI (vpc
);
6026 /* cmpobg-lit: cmpobg $br_lit1, $br_src2, $br_disp */
6029 SEM_FN_NAME (i960base
,cmpobg_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6031 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_lit.f
6032 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6033 int UNUSED written
= 0;
6034 IADDR UNUSED pc
= abuf
->addr
;
6036 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6038 if (GTUSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6040 USI opval
= FLD (i_br_disp
);
6041 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6042 written
|= (1 << 3);
6043 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6047 abuf
->written
= written
;
6048 SEM_BRANCH_FINI (vpc
);
6053 /* cmpobge-reg: cmpobge $br_src1, $br_src2, $br_disp */
6056 SEM_FN_NAME (i960base
,cmpobge_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6058 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_reg.f
6059 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6060 int UNUSED written
= 0;
6061 IADDR UNUSED pc
= abuf
->addr
;
6063 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6065 if (GEUSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6067 USI opval
= FLD (i_br_disp
);
6068 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6069 written
|= (1 << 3);
6070 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6074 abuf
->written
= written
;
6075 SEM_BRANCH_FINI (vpc
);
6080 /* cmpobge-lit: cmpobge $br_lit1, $br_src2, $br_disp */
6083 SEM_FN_NAME (i960base
,cmpobge_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6085 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_lit.f
6086 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6087 int UNUSED written
= 0;
6088 IADDR UNUSED pc
= abuf
->addr
;
6090 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6092 if (GEUSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6094 USI opval
= FLD (i_br_disp
);
6095 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6096 written
|= (1 << 3);
6097 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6101 abuf
->written
= written
;
6102 SEM_BRANCH_FINI (vpc
);
6107 /* cmpibe-reg: cmpibe $br_src1, $br_src2, $br_disp */
6110 SEM_FN_NAME (i960base
,cmpibe_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6112 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
6113 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6114 int UNUSED written
= 0;
6115 IADDR UNUSED pc
= abuf
->addr
;
6117 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6119 if (EQSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6121 USI opval
= FLD (i_br_disp
);
6122 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6123 written
|= (1 << 3);
6124 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6128 abuf
->written
= written
;
6129 SEM_BRANCH_FINI (vpc
);
6134 /* cmpibe-lit: cmpibe $br_lit1, $br_src2, $br_disp */
6137 SEM_FN_NAME (i960base
,cmpibe_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6139 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
6140 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6141 int UNUSED written
= 0;
6142 IADDR UNUSED pc
= abuf
->addr
;
6144 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6146 if (EQSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6148 USI opval
= FLD (i_br_disp
);
6149 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6150 written
|= (1 << 3);
6151 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6155 abuf
->written
= written
;
6156 SEM_BRANCH_FINI (vpc
);
6161 /* cmpibne-reg: cmpibne $br_src1, $br_src2, $br_disp */
6164 SEM_FN_NAME (i960base
,cmpibne_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6166 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
6167 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6168 int UNUSED written
= 0;
6169 IADDR UNUSED pc
= abuf
->addr
;
6171 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6173 if (NESI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6175 USI opval
= FLD (i_br_disp
);
6176 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6177 written
|= (1 << 3);
6178 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6182 abuf
->written
= written
;
6183 SEM_BRANCH_FINI (vpc
);
6188 /* cmpibne-lit: cmpibne $br_lit1, $br_src2, $br_disp */
6191 SEM_FN_NAME (i960base
,cmpibne_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6193 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
6194 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6195 int UNUSED written
= 0;
6196 IADDR UNUSED pc
= abuf
->addr
;
6198 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6200 if (NESI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6202 USI opval
= FLD (i_br_disp
);
6203 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6204 written
|= (1 << 3);
6205 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6209 abuf
->written
= written
;
6210 SEM_BRANCH_FINI (vpc
);
6215 /* cmpibl-reg: cmpibl $br_src1, $br_src2, $br_disp */
6218 SEM_FN_NAME (i960base
,cmpibl_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6220 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
6221 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6222 int UNUSED written
= 0;
6223 IADDR UNUSED pc
= abuf
->addr
;
6225 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6227 if (LTSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6229 USI opval
= FLD (i_br_disp
);
6230 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6231 written
|= (1 << 3);
6232 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6236 abuf
->written
= written
;
6237 SEM_BRANCH_FINI (vpc
);
6242 /* cmpibl-lit: cmpibl $br_lit1, $br_src2, $br_disp */
6245 SEM_FN_NAME (i960base
,cmpibl_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6247 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
6248 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6249 int UNUSED written
= 0;
6250 IADDR UNUSED pc
= abuf
->addr
;
6252 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6254 if (LTSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6256 USI opval
= FLD (i_br_disp
);
6257 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6258 written
|= (1 << 3);
6259 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6263 abuf
->written
= written
;
6264 SEM_BRANCH_FINI (vpc
);
6269 /* cmpible-reg: cmpible $br_src1, $br_src2, $br_disp */
6272 SEM_FN_NAME (i960base
,cmpible_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6274 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
6275 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6276 int UNUSED written
= 0;
6277 IADDR UNUSED pc
= abuf
->addr
;
6279 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6281 if (LESI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6283 USI opval
= FLD (i_br_disp
);
6284 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6285 written
|= (1 << 3);
6286 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6290 abuf
->written
= written
;
6291 SEM_BRANCH_FINI (vpc
);
6296 /* cmpible-lit: cmpible $br_lit1, $br_src2, $br_disp */
6299 SEM_FN_NAME (i960base
,cmpible_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6301 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
6302 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6303 int UNUSED written
= 0;
6304 IADDR UNUSED pc
= abuf
->addr
;
6306 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6308 if (LESI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6310 USI opval
= FLD (i_br_disp
);
6311 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6312 written
|= (1 << 3);
6313 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6317 abuf
->written
= written
;
6318 SEM_BRANCH_FINI (vpc
);
6323 /* cmpibg-reg: cmpibg $br_src1, $br_src2, $br_disp */
6326 SEM_FN_NAME (i960base
,cmpibg_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6328 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
6329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6330 int UNUSED written
= 0;
6331 IADDR UNUSED pc
= abuf
->addr
;
6333 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6335 if (GTSI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6337 USI opval
= FLD (i_br_disp
);
6338 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6339 written
|= (1 << 3);
6340 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6344 abuf
->written
= written
;
6345 SEM_BRANCH_FINI (vpc
);
6350 /* cmpibg-lit: cmpibg $br_lit1, $br_src2, $br_disp */
6353 SEM_FN_NAME (i960base
,cmpibg_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6355 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
6356 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6357 int UNUSED written
= 0;
6358 IADDR UNUSED pc
= abuf
->addr
;
6360 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6362 if (GTSI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6364 USI opval
= FLD (i_br_disp
);
6365 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6366 written
|= (1 << 3);
6367 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6371 abuf
->written
= written
;
6372 SEM_BRANCH_FINI (vpc
);
6377 /* cmpibge-reg: cmpibge $br_src1, $br_src2, $br_disp */
6380 SEM_FN_NAME (i960base
,cmpibge_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6382 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
6383 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6384 int UNUSED written
= 0;
6385 IADDR UNUSED pc
= abuf
->addr
;
6387 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6389 if (GESI (* FLD (i_br_src1
), * FLD (i_br_src2
))) {
6391 USI opval
= FLD (i_br_disp
);
6392 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6393 written
|= (1 << 3);
6394 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6398 abuf
->written
= written
;
6399 SEM_BRANCH_FINI (vpc
);
6404 /* cmpibge-lit: cmpibge $br_lit1, $br_src2, $br_disp */
6407 SEM_FN_NAME (i960base
,cmpibge_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6409 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
6410 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6411 int UNUSED written
= 0;
6412 IADDR UNUSED pc
= abuf
->addr
;
6414 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6416 if (GESI (FLD (f_br_src1
), * FLD (i_br_src2
))) {
6418 USI opval
= FLD (i_br_disp
);
6419 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6420 written
|= (1 << 3);
6421 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6425 abuf
->written
= written
;
6426 SEM_BRANCH_FINI (vpc
);
6431 /* bbc-reg: bbc $br_src1, $br_src2, $br_disp */
6434 SEM_FN_NAME (i960base
,bbc_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6436 #define FLD(f) abuf->fields.cti.fields.fmt_bbc_reg.f
6437 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6438 int UNUSED written
= 0;
6439 IADDR UNUSED pc
= abuf
->addr
;
6441 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6443 if (EQSI (ANDSI (SLLSI (1, * FLD (i_br_src1
)), * FLD (i_br_src2
)), 0)) {
6445 USI opval
= FLD (i_br_disp
);
6446 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6447 written
|= (1 << 3);
6448 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6452 abuf
->written
= written
;
6453 SEM_BRANCH_FINI (vpc
);
6458 /* bbc-lit: bbc $br_lit1, $br_src2, $br_disp */
6461 SEM_FN_NAME (i960base
,bbc_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6463 #define FLD(f) abuf->fields.cti.fields.fmt_bbc_lit.f
6464 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6465 int UNUSED written
= 0;
6466 IADDR UNUSED pc
= abuf
->addr
;
6468 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6470 if (EQSI (ANDSI (SLLSI (1, FLD (f_br_src1
)), * FLD (i_br_src2
)), 0)) {
6472 USI opval
= FLD (i_br_disp
);
6473 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6474 written
|= (1 << 3);
6475 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6479 abuf
->written
= written
;
6480 SEM_BRANCH_FINI (vpc
);
6485 /* bbs-reg: bbs $br_src1, $br_src2, $br_disp */
6488 SEM_FN_NAME (i960base
,bbs_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6490 #define FLD(f) abuf->fields.cti.fields.fmt_bbc_reg.f
6491 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6492 int UNUSED written
= 0;
6493 IADDR UNUSED pc
= abuf
->addr
;
6495 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6497 if (NESI (ANDSI (SLLSI (1, * FLD (i_br_src1
)), * FLD (i_br_src2
)), 0)) {
6499 USI opval
= FLD (i_br_disp
);
6500 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6501 written
|= (1 << 3);
6502 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6506 abuf
->written
= written
;
6507 SEM_BRANCH_FINI (vpc
);
6512 /* bbs-lit: bbs $br_lit1, $br_src2, $br_disp */
6515 SEM_FN_NAME (i960base
,bbs_lit
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6517 #define FLD(f) abuf->fields.cti.fields.fmt_bbc_lit.f
6518 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6519 int UNUSED written
= 0;
6520 IADDR UNUSED pc
= abuf
->addr
;
6522 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6524 if (NESI (ANDSI (SLLSI (1, FLD (f_br_src1
)), * FLD (i_br_src2
)), 0)) {
6526 USI opval
= FLD (i_br_disp
);
6527 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6528 written
|= (1 << 3);
6529 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6533 abuf
->written
= written
;
6534 SEM_BRANCH_FINI (vpc
);
6539 /* cmpi: cmpi $src1, $src2 */
6542 SEM_FN_NAME (i960base
,cmpi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6544 #define FLD(f) abuf->fields.fmt_cmpi.f
6545 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6546 int UNUSED written
= 0;
6547 IADDR UNUSED pc
= abuf
->addr
;
6548 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6551 SI opval
= (LTSI (* FLD (i_src1
), * FLD (i_src2
))) ? (4) : (EQSI (* FLD (i_src1
), * FLD (i_src2
))) ? (2) : (1);
6553 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6560 /* cmpi1: cmpi $lit1, $src2 */
6563 SEM_FN_NAME (i960base
,cmpi1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6565 #define FLD(f) abuf->fields.fmt_cmpi1.f
6566 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6567 int UNUSED written
= 0;
6568 IADDR UNUSED pc
= abuf
->addr
;
6569 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6572 SI opval
= (LTSI (FLD (f_src1
), * FLD (i_src2
))) ? (4) : (EQSI (FLD (f_src1
), * FLD (i_src2
))) ? (2) : (1);
6574 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6581 /* cmpi2: cmpi $src1, $lit2 */
6584 SEM_FN_NAME (i960base
,cmpi2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6586 #define FLD(f) abuf->fields.fmt_cmpi2.f
6587 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6588 int UNUSED written
= 0;
6589 IADDR UNUSED pc
= abuf
->addr
;
6590 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6593 SI opval
= (LTSI (* FLD (i_src1
), FLD (f_src2
))) ? (4) : (EQSI (* FLD (i_src1
), FLD (f_src2
))) ? (2) : (1);
6595 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6602 /* cmpi3: cmpi $lit1, $lit2 */
6605 SEM_FN_NAME (i960base
,cmpi3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6607 #define FLD(f) abuf->fields.fmt_cmpi3.f
6608 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6609 int UNUSED written
= 0;
6610 IADDR UNUSED pc
= abuf
->addr
;
6611 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6614 SI opval
= (LTSI (FLD (f_src1
), FLD (f_src2
))) ? (4) : (EQSI (FLD (f_src1
), FLD (f_src2
))) ? (2) : (1);
6616 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6623 /* cmpo: cmpo $src1, $src2 */
6626 SEM_FN_NAME (i960base
,cmpo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6628 #define FLD(f) abuf->fields.fmt_cmpo.f
6629 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6630 int UNUSED written
= 0;
6631 IADDR UNUSED pc
= abuf
->addr
;
6632 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6635 SI opval
= (LTUSI (* FLD (i_src1
), * FLD (i_src2
))) ? (4) : (EQSI (* FLD (i_src1
), * FLD (i_src2
))) ? (2) : (1);
6637 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6644 /* cmpo1: cmpo $lit1, $src2 */
6647 SEM_FN_NAME (i960base
,cmpo1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6649 #define FLD(f) abuf->fields.fmt_cmpo1.f
6650 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6651 int UNUSED written
= 0;
6652 IADDR UNUSED pc
= abuf
->addr
;
6653 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6656 SI opval
= (LTUSI (FLD (f_src1
), * FLD (i_src2
))) ? (4) : (EQSI (FLD (f_src1
), * FLD (i_src2
))) ? (2) : (1);
6658 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6665 /* cmpo2: cmpo $src1, $lit2 */
6668 SEM_FN_NAME (i960base
,cmpo2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6670 #define FLD(f) abuf->fields.fmt_cmpo2.f
6671 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6672 int UNUSED written
= 0;
6673 IADDR UNUSED pc
= abuf
->addr
;
6674 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6677 SI opval
= (LTUSI (* FLD (i_src1
), FLD (f_src2
))) ? (4) : (EQSI (* FLD (i_src1
), FLD (f_src2
))) ? (2) : (1);
6679 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6686 /* cmpo3: cmpo $lit1, $lit2 */
6689 SEM_FN_NAME (i960base
,cmpo3
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6691 #define FLD(f) abuf->fields.fmt_cmpo3.f
6692 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6693 int UNUSED written
= 0;
6694 IADDR UNUSED pc
= abuf
->addr
;
6695 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6698 SI opval
= (LTUSI (FLD (f_src1
), FLD (f_src2
))) ? (4) : (EQSI (FLD (f_src1
), FLD (f_src2
))) ? (2) : (1);
6700 TRACE_RESULT (current_cpu
, abuf
, "cc", 'x', opval
);
6707 /* testno-reg: testno $br_src1 */
6710 SEM_FN_NAME (i960base
,testno_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6712 #define FLD(f) abuf->fields.fmt_testno_reg.f
6713 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6714 int UNUSED written
= 0;
6715 IADDR UNUSED pc
= abuf
->addr
;
6716 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6719 SI opval
= EQSI (CPU (h_cc
), 0);
6720 * FLD (i_br_src1
) = opval
;
6721 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6728 /* testg-reg: testg $br_src1 */
6731 SEM_FN_NAME (i960base
,testg_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6733 #define FLD(f) abuf->fields.fmt_testno_reg.f
6734 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6735 int UNUSED written
= 0;
6736 IADDR UNUSED pc
= abuf
->addr
;
6737 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6740 SI opval
= NESI (ANDSI (CPU (h_cc
), 1), 0);
6741 * FLD (i_br_src1
) = opval
;
6742 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6749 /* teste-reg: teste $br_src1 */
6752 SEM_FN_NAME (i960base
,teste_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6754 #define FLD(f) abuf->fields.fmt_testno_reg.f
6755 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6756 int UNUSED written
= 0;
6757 IADDR UNUSED pc
= abuf
->addr
;
6758 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6761 SI opval
= NESI (ANDSI (CPU (h_cc
), 2), 0);
6762 * FLD (i_br_src1
) = opval
;
6763 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6770 /* testge-reg: testge $br_src1 */
6773 SEM_FN_NAME (i960base
,testge_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6775 #define FLD(f) abuf->fields.fmt_testno_reg.f
6776 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6777 int UNUSED written
= 0;
6778 IADDR UNUSED pc
= abuf
->addr
;
6779 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6782 SI opval
= NESI (ANDSI (CPU (h_cc
), 3), 0);
6783 * FLD (i_br_src1
) = opval
;
6784 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6791 /* testl-reg: testl $br_src1 */
6794 SEM_FN_NAME (i960base
,testl_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6796 #define FLD(f) abuf->fields.fmt_testno_reg.f
6797 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6798 int UNUSED written
= 0;
6799 IADDR UNUSED pc
= abuf
->addr
;
6800 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6803 SI opval
= NESI (ANDSI (CPU (h_cc
), 4), 0);
6804 * FLD (i_br_src1
) = opval
;
6805 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6812 /* testne-reg: testne $br_src1 */
6815 SEM_FN_NAME (i960base
,testne_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6817 #define FLD(f) abuf->fields.fmt_testno_reg.f
6818 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6819 int UNUSED written
= 0;
6820 IADDR UNUSED pc
= abuf
->addr
;
6821 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6824 SI opval
= NESI (ANDSI (CPU (h_cc
), 5), 0);
6825 * FLD (i_br_src1
) = opval
;
6826 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6833 /* testle-reg: testle $br_src1 */
6836 SEM_FN_NAME (i960base
,testle_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6838 #define FLD(f) abuf->fields.fmt_testno_reg.f
6839 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6840 int UNUSED written
= 0;
6841 IADDR UNUSED pc
= abuf
->addr
;
6842 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6845 SI opval
= NESI (ANDSI (CPU (h_cc
), 6), 0);
6846 * FLD (i_br_src1
) = opval
;
6847 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6854 /* testo-reg: testo $br_src1 */
6857 SEM_FN_NAME (i960base
,testo_reg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6859 #define FLD(f) abuf->fields.fmt_testno_reg.f
6860 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6861 int UNUSED written
= 0;
6862 IADDR UNUSED pc
= abuf
->addr
;
6863 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6866 SI opval
= NESI (ANDSI (CPU (h_cc
), 7), 0);
6867 * FLD (i_br_src1
) = opval
;
6868 TRACE_RESULT (current_cpu
, abuf
, "br_src1", 'x', opval
);
6875 /* bno: bno $ctrl_disp */
6878 SEM_FN_NAME (i960base
,bno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6880 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
6881 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6882 int UNUSED written
= 0;
6883 IADDR UNUSED pc
= abuf
->addr
;
6885 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6887 if (EQSI (CPU (h_cc
), 0)) {
6889 USI opval
= FLD (i_ctrl_disp
);
6890 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6891 written
|= (1 << 2);
6892 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6896 abuf
->written
= written
;
6897 SEM_BRANCH_FINI (vpc
);
6902 /* bg: bg $ctrl_disp */
6905 SEM_FN_NAME (i960base
,bg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6907 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
6908 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6909 int UNUSED written
= 0;
6910 IADDR UNUSED pc
= abuf
->addr
;
6912 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6914 if (NESI (ANDSI (CPU (h_cc
), 1), 0)) {
6916 USI opval
= FLD (i_ctrl_disp
);
6917 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6918 written
|= (1 << 2);
6919 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6923 abuf
->written
= written
;
6924 SEM_BRANCH_FINI (vpc
);
6929 /* be: be $ctrl_disp */
6932 SEM_FN_NAME (i960base
,be
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6934 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
6935 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6936 int UNUSED written
= 0;
6937 IADDR UNUSED pc
= abuf
->addr
;
6939 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6941 if (NESI (ANDSI (CPU (h_cc
), 2), 0)) {
6943 USI opval
= FLD (i_ctrl_disp
);
6944 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6945 written
|= (1 << 2);
6946 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6950 abuf
->written
= written
;
6951 SEM_BRANCH_FINI (vpc
);
6956 /* bge: bge $ctrl_disp */
6959 SEM_FN_NAME (i960base
,bge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6961 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
6962 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6963 int UNUSED written
= 0;
6964 IADDR UNUSED pc
= abuf
->addr
;
6966 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6968 if (NESI (ANDSI (CPU (h_cc
), 3), 0)) {
6970 USI opval
= FLD (i_ctrl_disp
);
6971 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6972 written
|= (1 << 2);
6973 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
6977 abuf
->written
= written
;
6978 SEM_BRANCH_FINI (vpc
);
6983 /* bl: bl $ctrl_disp */
6986 SEM_FN_NAME (i960base
,bl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6988 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
6989 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6990 int UNUSED written
= 0;
6991 IADDR UNUSED pc
= abuf
->addr
;
6993 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6995 if (NESI (ANDSI (CPU (h_cc
), 4), 0)) {
6997 USI opval
= FLD (i_ctrl_disp
);
6998 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
6999 written
|= (1 << 2);
7000 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7004 abuf
->written
= written
;
7005 SEM_BRANCH_FINI (vpc
);
7010 /* bne: bne $ctrl_disp */
7013 SEM_FN_NAME (i960base
,bne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7015 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
7016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7017 int UNUSED written
= 0;
7018 IADDR UNUSED pc
= abuf
->addr
;
7020 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7022 if (NESI (ANDSI (CPU (h_cc
), 5), 0)) {
7024 USI opval
= FLD (i_ctrl_disp
);
7025 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
7026 written
|= (1 << 2);
7027 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7031 abuf
->written
= written
;
7032 SEM_BRANCH_FINI (vpc
);
7037 /* ble: ble $ctrl_disp */
7040 SEM_FN_NAME (i960base
,ble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7042 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
7043 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7044 int UNUSED written
= 0;
7045 IADDR UNUSED pc
= abuf
->addr
;
7047 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7049 if (NESI (ANDSI (CPU (h_cc
), 6), 0)) {
7051 USI opval
= FLD (i_ctrl_disp
);
7052 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
7053 written
|= (1 << 2);
7054 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7058 abuf
->written
= written
;
7059 SEM_BRANCH_FINI (vpc
);
7064 /* bo: bo $ctrl_disp */
7067 SEM_FN_NAME (i960base
,bo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7069 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
7070 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7071 int UNUSED written
= 0;
7072 IADDR UNUSED pc
= abuf
->addr
;
7074 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7076 if (NESI (ANDSI (CPU (h_cc
), 7), 0)) {
7078 USI opval
= FLD (i_ctrl_disp
);
7079 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
7080 written
|= (1 << 2);
7081 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7085 abuf
->written
= written
;
7086 SEM_BRANCH_FINI (vpc
);
7091 /* b: b $ctrl_disp */
7094 SEM_FN_NAME (i960base
,b
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7096 #define FLD(f) abuf->fields.cti.fields.fmt_b.f
7097 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7098 int UNUSED written
= 0;
7099 IADDR UNUSED pc
= abuf
->addr
;
7101 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7104 USI opval
= FLD (i_ctrl_disp
);
7105 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
7106 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7109 SEM_BRANCH_FINI (vpc
);
7114 /* bx-indirect-offset: bx $offset($abase) */
7117 SEM_FN_NAME (i960base
,bx_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7119 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect_offset.f
7120 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7121 int UNUSED written
= 0;
7122 IADDR UNUSED pc
= abuf
->addr
;
7124 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7127 USI opval
= ADDSI (FLD (f_offset
), * FLD (i_abase
));
7128 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7129 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7132 SEM_BRANCH_FINI (vpc
);
7137 /* bx-indirect: bx ($abase) */
7140 SEM_FN_NAME (i960base
,bx_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7142 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect.f
7143 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7144 int UNUSED written
= 0;
7145 IADDR UNUSED pc
= abuf
->addr
;
7147 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7150 USI opval
= * FLD (i_abase
);
7151 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7152 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7155 SEM_BRANCH_FINI (vpc
);
7160 /* bx-indirect-index: bx ($abase)[$index*S$scale] */
7163 SEM_FN_NAME (i960base
,bx_indirect_index
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7165 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect_index.f
7166 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7167 int UNUSED written
= 0;
7168 IADDR UNUSED pc
= abuf
->addr
;
7170 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7173 USI opval
= ADDSI (* FLD (i_abase
), MULSI (* FLD (i_index
), SLLSI (1, FLD (f_scale
))));
7174 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7175 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7178 SEM_BRANCH_FINI (vpc
);
7183 /* bx-disp: bx $optdisp */
7186 SEM_FN_NAME (i960base
,bx_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7188 #define FLD(f) abuf->fields.cti.fields.fmt_bx_disp.f
7189 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7190 int UNUSED written
= 0;
7191 IADDR UNUSED pc
= abuf
->addr
;
7193 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
7196 USI opval
= FLD (f_optdisp
);
7197 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
7198 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7201 SEM_BRANCH_FINI (vpc
);
7206 /* bx-indirect-disp: bx $optdisp($abase) */
7209 SEM_FN_NAME (i960base
,bx_indirect_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7211 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect_disp.f
7212 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7213 int UNUSED written
= 0;
7214 IADDR UNUSED pc
= abuf
->addr
;
7216 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
7219 USI opval
= ADDSI (FLD (f_optdisp
), * FLD (i_abase
));
7220 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7221 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7224 SEM_BRANCH_FINI (vpc
);
7229 /* callx-disp: callx $optdisp */
7232 SEM_FN_NAME (i960base
,callx_disp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7234 #define FLD(f) abuf->fields.cti.fields.fmt_callx_disp.f
7235 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7236 int UNUSED written
= 0;
7237 IADDR UNUSED pc
= abuf
->addr
;
7239 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 8);
7243 tmp_temp
= ANDSI (ADDSI (CPU (h_gr
[((UINT
) 1)]), 63), INVSI (63));
7245 SI opval
= ADDSI (pc
, 8);
7246 CPU (h_gr
[((UINT
) 2)]) = opval
;
7247 TRACE_RESULT (current_cpu
, abuf
, "gr-2", 'x', opval
);
7249 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 0), CPU (h_gr
[((UINT
) 0)]));
7250 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 4), CPU (h_gr
[((UINT
) 1)]));
7251 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 8), CPU (h_gr
[((UINT
) 2)]));
7252 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 12), CPU (h_gr
[((UINT
) 3)]));
7253 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 16), CPU (h_gr
[((UINT
) 4)]));
7254 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 20), CPU (h_gr
[((UINT
) 5)]));
7255 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 24), CPU (h_gr
[((UINT
) 6)]));
7256 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 28), CPU (h_gr
[((UINT
) 7)]));
7257 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 32), CPU (h_gr
[((UINT
) 8)]));
7258 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 36), CPU (h_gr
[((UINT
) 9)]));
7259 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 40), CPU (h_gr
[((UINT
) 10)]));
7260 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 44), CPU (h_gr
[((UINT
) 11)]));
7261 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 48), CPU (h_gr
[((UINT
) 12)]));
7262 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 52), CPU (h_gr
[((UINT
) 13)]));
7263 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 56), CPU (h_gr
[((UINT
) 14)]));
7264 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 60), CPU (h_gr
[((UINT
) 15)]));
7266 USI opval
= FLD (f_optdisp
);
7267 SEM_BRANCH_VIA_CACHE (current_cpu
, sem_arg
, opval
, vpc
, SEM_BRANCH_ADDR_CACHE (sem_arg
));
7268 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7270 CPU (h_gr
[((UINT
) 0)]) = 0xdeadbeef;
7271 CPU (h_gr
[((UINT
) 1)]) = 0xdeadbeef;
7272 CPU (h_gr
[((UINT
) 2)]) = 0xdeadbeef;
7273 CPU (h_gr
[((UINT
) 3)]) = 0xdeadbeef;
7274 CPU (h_gr
[((UINT
) 4)]) = 0xdeadbeef;
7275 CPU (h_gr
[((UINT
) 5)]) = 0xdeadbeef;
7276 CPU (h_gr
[((UINT
) 6)]) = 0xdeadbeef;
7277 CPU (h_gr
[((UINT
) 7)]) = 0xdeadbeef;
7278 CPU (h_gr
[((UINT
) 8)]) = 0xdeadbeef;
7279 CPU (h_gr
[((UINT
) 9)]) = 0xdeadbeef;
7280 CPU (h_gr
[((UINT
) 10)]) = 0xdeadbeef;
7281 CPU (h_gr
[((UINT
) 11)]) = 0xdeadbeef;
7282 CPU (h_gr
[((UINT
) 12)]) = 0xdeadbeef;
7283 CPU (h_gr
[((UINT
) 13)]) = 0xdeadbeef;
7284 CPU (h_gr
[((UINT
) 14)]) = 0xdeadbeef;
7285 CPU (h_gr
[((UINT
) 15)]) = 0xdeadbeef;
7287 SI opval
= CPU (h_gr
[((UINT
) 31)]);
7288 CPU (h_gr
[((UINT
) 0)]) = opval
;
7289 TRACE_RESULT (current_cpu
, abuf
, "gr-0", 'x', opval
);
7292 SI opval
= tmp_temp
;
7293 CPU (h_gr
[((UINT
) 31)]) = opval
;
7294 TRACE_RESULT (current_cpu
, abuf
, "gr-31", 'x', opval
);
7297 SI opval
= ADDSI (tmp_temp
, 64);
7298 CPU (h_gr
[((UINT
) 1)]) = opval
;
7299 TRACE_RESULT (current_cpu
, abuf
, "gr-1", 'x', opval
);
7303 SEM_BRANCH_FINI (vpc
);
7308 /* callx-indirect: callx ($abase) */
7311 SEM_FN_NAME (i960base
,callx_indirect
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7313 #define FLD(f) abuf->fields.cti.fields.fmt_callx_indirect.f
7314 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7315 int UNUSED written
= 0;
7316 IADDR UNUSED pc
= abuf
->addr
;
7318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7322 tmp_temp
= ANDSI (ADDSI (CPU (h_gr
[((UINT
) 1)]), 63), INVSI (63));
7324 SI opval
= ADDSI (pc
, 4);
7325 CPU (h_gr
[((UINT
) 2)]) = opval
;
7326 TRACE_RESULT (current_cpu
, abuf
, "gr-2", 'x', opval
);
7328 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 0), CPU (h_gr
[((UINT
) 0)]));
7329 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 4), CPU (h_gr
[((UINT
) 1)]));
7330 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 8), CPU (h_gr
[((UINT
) 2)]));
7331 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 12), CPU (h_gr
[((UINT
) 3)]));
7332 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 16), CPU (h_gr
[((UINT
) 4)]));
7333 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 20), CPU (h_gr
[((UINT
) 5)]));
7334 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 24), CPU (h_gr
[((UINT
) 6)]));
7335 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 28), CPU (h_gr
[((UINT
) 7)]));
7336 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 32), CPU (h_gr
[((UINT
) 8)]));
7337 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 36), CPU (h_gr
[((UINT
) 9)]));
7338 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 40), CPU (h_gr
[((UINT
) 10)]));
7339 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 44), CPU (h_gr
[((UINT
) 11)]));
7340 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 48), CPU (h_gr
[((UINT
) 12)]));
7341 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 52), CPU (h_gr
[((UINT
) 13)]));
7342 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 56), CPU (h_gr
[((UINT
) 14)]));
7343 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 60), CPU (h_gr
[((UINT
) 15)]));
7345 USI opval
= * FLD (i_abase
);
7346 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7347 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7349 CPU (h_gr
[((UINT
) 0)]) = 0xdeadbeef;
7350 CPU (h_gr
[((UINT
) 1)]) = 0xdeadbeef;
7351 CPU (h_gr
[((UINT
) 2)]) = 0xdeadbeef;
7352 CPU (h_gr
[((UINT
) 3)]) = 0xdeadbeef;
7353 CPU (h_gr
[((UINT
) 4)]) = 0xdeadbeef;
7354 CPU (h_gr
[((UINT
) 5)]) = 0xdeadbeef;
7355 CPU (h_gr
[((UINT
) 6)]) = 0xdeadbeef;
7356 CPU (h_gr
[((UINT
) 7)]) = 0xdeadbeef;
7357 CPU (h_gr
[((UINT
) 8)]) = 0xdeadbeef;
7358 CPU (h_gr
[((UINT
) 9)]) = 0xdeadbeef;
7359 CPU (h_gr
[((UINT
) 10)]) = 0xdeadbeef;
7360 CPU (h_gr
[((UINT
) 11)]) = 0xdeadbeef;
7361 CPU (h_gr
[((UINT
) 12)]) = 0xdeadbeef;
7362 CPU (h_gr
[((UINT
) 13)]) = 0xdeadbeef;
7363 CPU (h_gr
[((UINT
) 14)]) = 0xdeadbeef;
7364 CPU (h_gr
[((UINT
) 15)]) = 0xdeadbeef;
7366 SI opval
= CPU (h_gr
[((UINT
) 31)]);
7367 CPU (h_gr
[((UINT
) 0)]) = opval
;
7368 TRACE_RESULT (current_cpu
, abuf
, "gr-0", 'x', opval
);
7371 SI opval
= tmp_temp
;
7372 CPU (h_gr
[((UINT
) 31)]) = opval
;
7373 TRACE_RESULT (current_cpu
, abuf
, "gr-31", 'x', opval
);
7376 SI opval
= ADDSI (tmp_temp
, 64);
7377 CPU (h_gr
[((UINT
) 1)]) = opval
;
7378 TRACE_RESULT (current_cpu
, abuf
, "gr-1", 'x', opval
);
7382 SEM_BRANCH_FINI (vpc
);
7387 /* callx-indirect-offset: callx $offset($abase) */
7390 SEM_FN_NAME (i960base
,callx_indirect_offset
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7392 #define FLD(f) abuf->fields.cti.fields.fmt_callx_indirect_offset.f
7393 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7394 int UNUSED written
= 0;
7395 IADDR UNUSED pc
= abuf
->addr
;
7397 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7401 tmp_temp
= ANDSI (ADDSI (CPU (h_gr
[((UINT
) 1)]), 63), INVSI (63));
7403 SI opval
= ADDSI (pc
, 4);
7404 CPU (h_gr
[((UINT
) 2)]) = opval
;
7405 TRACE_RESULT (current_cpu
, abuf
, "gr-2", 'x', opval
);
7407 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 0), CPU (h_gr
[((UINT
) 0)]));
7408 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 4), CPU (h_gr
[((UINT
) 1)]));
7409 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 8), CPU (h_gr
[((UINT
) 2)]));
7410 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 12), CPU (h_gr
[((UINT
) 3)]));
7411 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 16), CPU (h_gr
[((UINT
) 4)]));
7412 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 20), CPU (h_gr
[((UINT
) 5)]));
7413 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 24), CPU (h_gr
[((UINT
) 6)]));
7414 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 28), CPU (h_gr
[((UINT
) 7)]));
7415 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 32), CPU (h_gr
[((UINT
) 8)]));
7416 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 36), CPU (h_gr
[((UINT
) 9)]));
7417 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 40), CPU (h_gr
[((UINT
) 10)]));
7418 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 44), CPU (h_gr
[((UINT
) 11)]));
7419 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 48), CPU (h_gr
[((UINT
) 12)]));
7420 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 52), CPU (h_gr
[((UINT
) 13)]));
7421 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 56), CPU (h_gr
[((UINT
) 14)]));
7422 SETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 60), CPU (h_gr
[((UINT
) 15)]));
7424 USI opval
= ADDSI (FLD (f_offset
), * FLD (i_abase
));
7425 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7426 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7428 CPU (h_gr
[((UINT
) 0)]) = 0xdeadbeef;
7429 CPU (h_gr
[((UINT
) 1)]) = 0xdeadbeef;
7430 CPU (h_gr
[((UINT
) 2)]) = 0xdeadbeef;
7431 CPU (h_gr
[((UINT
) 3)]) = 0xdeadbeef;
7432 CPU (h_gr
[((UINT
) 4)]) = 0xdeadbeef;
7433 CPU (h_gr
[((UINT
) 5)]) = 0xdeadbeef;
7434 CPU (h_gr
[((UINT
) 6)]) = 0xdeadbeef;
7435 CPU (h_gr
[((UINT
) 7)]) = 0xdeadbeef;
7436 CPU (h_gr
[((UINT
) 8)]) = 0xdeadbeef;
7437 CPU (h_gr
[((UINT
) 9)]) = 0xdeadbeef;
7438 CPU (h_gr
[((UINT
) 10)]) = 0xdeadbeef;
7439 CPU (h_gr
[((UINT
) 11)]) = 0xdeadbeef;
7440 CPU (h_gr
[((UINT
) 12)]) = 0xdeadbeef;
7441 CPU (h_gr
[((UINT
) 13)]) = 0xdeadbeef;
7442 CPU (h_gr
[((UINT
) 14)]) = 0xdeadbeef;
7443 CPU (h_gr
[((UINT
) 15)]) = 0xdeadbeef;
7445 SI opval
= CPU (h_gr
[((UINT
) 31)]);
7446 CPU (h_gr
[((UINT
) 0)]) = opval
;
7447 TRACE_RESULT (current_cpu
, abuf
, "gr-0", 'x', opval
);
7450 SI opval
= tmp_temp
;
7451 CPU (h_gr
[((UINT
) 31)]) = opval
;
7452 TRACE_RESULT (current_cpu
, abuf
, "gr-31", 'x', opval
);
7455 SI opval
= ADDSI (tmp_temp
, 64);
7456 CPU (h_gr
[((UINT
) 1)]) = opval
;
7457 TRACE_RESULT (current_cpu
, abuf
, "gr-1", 'x', opval
);
7461 SEM_BRANCH_FINI (vpc
);
7469 SEM_FN_NAME (i960base
,ret
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7471 #define FLD(f) abuf->fields.cti.fields.fmt_ret.f
7472 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7473 int UNUSED written
= 0;
7474 IADDR UNUSED pc
= abuf
->addr
;
7476 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7480 SI opval
= CPU (h_gr
[((UINT
) 0)]);
7481 CPU (h_gr
[((UINT
) 31)]) = opval
;
7482 TRACE_RESULT (current_cpu
, abuf
, "gr-31", 'x', opval
);
7484 CPU (h_gr
[((UINT
) 0)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 0));
7485 CPU (h_gr
[((UINT
) 1)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 4));
7486 CPU (h_gr
[((UINT
) 2)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 8));
7487 CPU (h_gr
[((UINT
) 3)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 12));
7488 CPU (h_gr
[((UINT
) 4)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 16));
7489 CPU (h_gr
[((UINT
) 5)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 20));
7490 CPU (h_gr
[((UINT
) 6)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 24));
7491 CPU (h_gr
[((UINT
) 7)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 28));
7492 CPU (h_gr
[((UINT
) 8)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 32));
7493 CPU (h_gr
[((UINT
) 9)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 36));
7494 CPU (h_gr
[((UINT
) 10)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 40));
7495 CPU (h_gr
[((UINT
) 11)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 44));
7496 CPU (h_gr
[((UINT
) 12)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 48));
7497 CPU (h_gr
[((UINT
) 13)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 52));
7498 CPU (h_gr
[((UINT
) 14)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 56));
7499 CPU (h_gr
[((UINT
) 15)]) = GETMEMSI (current_cpu
, pc
, ADDSI (CPU (h_gr
[((UINT
) 31)]), 60));
7501 USI opval
= CPU (h_gr
[((UINT
) 2)]);
7502 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7503 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7507 SEM_BRANCH_FINI (vpc
);
7512 /* calls: calls $src1 */
7515 SEM_FN_NAME (i960base
,calls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7517 #define FLD(f) abuf->fields.cti.fields.fmt_calls.f
7518 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7519 int UNUSED written
= 0;
7520 IADDR UNUSED pc
= abuf
->addr
;
7522 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7525 SI opval
= i960_trap (current_cpu
, pc
, * FLD (i_src1
));
7526 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7527 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7530 SEM_BRANCH_FINI (vpc
);
7538 SEM_FN_NAME (i960base
,fmark
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7540 #define FLD(f) abuf->fields.cti.fields.fmt_fmark.f
7541 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7542 int UNUSED written
= 0;
7543 IADDR UNUSED pc
= abuf
->addr
;
7545 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7548 SI opval
= i960_breakpoint (current_cpu
, pc
);
7549 SEM_BRANCH_VIA_ADDR (current_cpu
, sem_arg
, opval
, vpc
);
7550 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
7553 SEM_BRANCH_FINI (vpc
);
7558 /* flushreg: flushreg */
7561 SEM_FN_NAME (i960base
,flushreg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7563 #define FLD(f) abuf->fields.fmt_flushreg.f
7564 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7565 int UNUSED written
= 0;
7566 IADDR UNUSED pc
= abuf
->addr
;
7567 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7569 do { } while (0); /*nop*/
This page took 0.202994 seconds and 4 git commands to generate.