Lines Matching refs:a

196 static bool trans_MOV_rm(DisasContext *ctx, arg_MOV_rm *a)  in trans_MOV_rm()  argument
198 if (a->dsp > 0) { in trans_MOV_rm()
200 size[a->sz], a->rs, a->dsp << a->sz, a->rd); in trans_MOV_rm()
203 size[a->sz], a->rs, a->rd); in trans_MOV_rm()
209 static bool trans_MOV_mr(DisasContext *ctx, arg_MOV_mr *a) in trans_MOV_mr() argument
211 if (a->dsp > 0) { in trans_MOV_mr()
213 size[a->sz], a->dsp << a->sz, a->rs, a->rd); in trans_MOV_mr()
216 size[a->sz], a->rs, a->rd); in trans_MOV_mr()
224 static bool trans_MOV_ir(DisasContext *ctx, arg_MOV_ir *a) in trans_MOV_ir() argument
226 prt_ir(ctx, "mov.l", a->imm, a->rd); in trans_MOV_ir()
232 static bool trans_MOV_im(DisasContext *ctx, arg_MOV_im *a) in trans_MOV_im() argument
234 if (a->dsp > 0) { in trans_MOV_im()
236 size[a->sz], a->imm, a->dsp << a->sz, a->rd); in trans_MOV_im()
239 size[a->sz], a->imm, a->rd); in trans_MOV_im()
245 static bool trans_MOV_ar(DisasContext *ctx, arg_MOV_ar *a) in trans_MOV_ar() argument
247 prt("mov.%c\t[r%d,r%d], r%d", size[a->sz], a->ri, a->rb, a->rd); in trans_MOV_ar()
252 static bool trans_MOV_ra(DisasContext *ctx, arg_MOV_ra *a) in trans_MOV_ra() argument
254 prt("mov.%c\tr%d, [r%d, r%d]", size[a->sz], a->rs, a->ri, a->rb); in trans_MOV_ra()
263 static bool trans_MOV_mm(DisasContext *ctx, arg_MOV_mm *a) in trans_MOV_mm() argument
265 char dspd[8], dsps[8], szc = size[a->sz]; in trans_MOV_mm()
267 if (a->lds == 3 && a->ldd == 3) { in trans_MOV_mm()
269 prt("mov.%c\tr%d, r%d", szc, a->rs, a->rd); in trans_MOV_mm()
270 } else if (a->lds == 3) { in trans_MOV_mm()
271 rx_index_addr(ctx, dspd, a->ldd, a->sz); in trans_MOV_mm()
272 prt("mov.%c\tr%d, %s[r%d]", szc, a->rs, dspd, a->rd); in trans_MOV_mm()
273 } else if (a->ldd == 3) { in trans_MOV_mm()
274 rx_index_addr(ctx, dsps, a->lds, a->sz); in trans_MOV_mm()
275 prt("mov.%c\t%s[r%d], r%d", szc, dsps, a->rs, a->rd); in trans_MOV_mm()
277 rx_index_addr(ctx, dsps, a->lds, a->sz); in trans_MOV_mm()
278 rx_index_addr(ctx, dspd, a->ldd, a->sz); in trans_MOV_mm()
279 prt("mov.%c\t%s[r%d], %s[r%d]", szc, dsps, a->rs, dspd, a->rd); in trans_MOV_mm()
286 static bool trans_MOV_rp(DisasContext *ctx, arg_MOV_rp *a) in trans_MOV_rp() argument
288 if (a->ad) { in trans_MOV_rp()
289 prt("mov.%c\tr%d, [-r%d]", size[a->sz], a->rs, a->rd); in trans_MOV_rp()
291 prt("mov.%c\tr%d, [r%d+]", size[a->sz], a->rs, a->rd); in trans_MOV_rp()
298 static bool trans_MOV_pr(DisasContext *ctx, arg_MOV_pr *a) in trans_MOV_pr() argument
300 if (a->ad) { in trans_MOV_pr()
301 prt("mov.%c\t[-r%d], r%d", size[a->sz], a->rd, a->rs); in trans_MOV_pr()
303 prt("mov.%c\t[r%d+], r%d", size[a->sz], a->rd, a->rs); in trans_MOV_pr()
309 static bool trans_MOVU_mr(DisasContext *ctx, arg_MOVU_mr *a) in trans_MOVU_mr() argument
311 if (a->dsp > 0) { in trans_MOVU_mr()
312 prt("movu.%c\t%d[r%d], r%d", size[a->sz], in trans_MOVU_mr()
313 a->dsp << a->sz, a->rs, a->rd); in trans_MOVU_mr()
315 prt("movu.%c\t[r%d], r%d", size[a->sz], a->rs, a->rd); in trans_MOVU_mr()
321 static bool trans_MOVU_rr(DisasContext *ctx, arg_MOVU_rr *a) in trans_MOVU_rr() argument
323 prt("movu.%c\tr%d, r%d", size[a->sz], a->rs, a->rd); in trans_MOVU_rr()
328 static bool trans_MOVU_ar(DisasContext *ctx, arg_MOVU_ar *a) in trans_MOVU_ar() argument
330 prt("mov.%c\t[r%d,r%d], r%d", size[a->sz], a->ri, a->rb, a->rd); in trans_MOVU_ar()
336 static bool trans_MOVU_pr(DisasContext *ctx, arg_MOVU_pr *a) in trans_MOVU_pr() argument
338 if (a->ad) { in trans_MOVU_pr()
339 prt("movu.%c\t[-r%d], r%d", size[a->sz], a->rd, a->rs); in trans_MOVU_pr()
341 prt("movu.%c\t[r%d+], r%d", size[a->sz], a->rd, a->rs); in trans_MOVU_pr()
347 static bool trans_POP(DisasContext *ctx, arg_POP *a) in trans_POP() argument
349 prt("pop\tr%d", a->rd); in trans_POP()
354 static bool trans_POPC(DisasContext *ctx, arg_POPC *a) in trans_POPC() argument
356 prt("pop\tr%s", rx_crname(a->cr)); in trans_POPC()
361 static bool trans_POPM(DisasContext *ctx, arg_POPM *a) in trans_POPM() argument
363 prt("popm\tr%d-r%d", a->rd, a->rd2); in trans_POPM()
368 static bool trans_PUSH_r(DisasContext *ctx, arg_PUSH_r *a) in trans_PUSH_r() argument
370 prt("push\tr%d", a->rs); in trans_PUSH_r()
375 static bool trans_PUSH_m(DisasContext *ctx, arg_PUSH_m *a) in trans_PUSH_m() argument
379 rx_index_addr(ctx, dsp, a->ld, a->sz); in trans_PUSH_m()
380 prt("push\t%s[r%d]", dsp, a->rs); in trans_PUSH_m()
385 static bool trans_PUSHC(DisasContext *ctx, arg_PUSHC *a) in trans_PUSHC() argument
387 prt("push\t%s", rx_crname(a->cr)); in trans_PUSHC()
392 static bool trans_PUSHM(DisasContext *ctx, arg_PUSHM *a) in trans_PUSHM() argument
394 prt("pushm\tr%d-r%d", a->rs, a->rs2); in trans_PUSHM()
399 static bool trans_XCHG_rr(DisasContext *ctx, arg_XCHG_rr *a) in trans_XCHG_rr() argument
401 prt("xchg\tr%d, r%d", a->rs, a->rd); in trans_XCHG_rr()
405 static bool trans_XCHG_mr(DisasContext *ctx, arg_XCHG_mr *a) in trans_XCHG_mr() argument
407 prt_ldmi(ctx, "xchg", a->ld, a->mi, a->rs, a->rd); in trans_XCHG_mr()
412 static bool trans_STZ(DisasContext *ctx, arg_STZ *a) in trans_STZ() argument
414 prt_ir(ctx, "stz", a->imm, a->rd); in trans_STZ()
419 static bool trans_STNZ(DisasContext *ctx, arg_STNZ *a) in trans_STNZ() argument
421 prt_ir(ctx, "stnz", a->imm, a->rd); in trans_STNZ()
426 static bool trans_RTSD_i(DisasContext *ctx, arg_RTSD_i *a) in trans_RTSD_i() argument
428 prt("rtsd\t#%d", a->imm << 2); in trans_RTSD_i()
433 static bool trans_RTSD_irr(DisasContext *ctx, arg_RTSD_irr *a) in trans_RTSD_irr() argument
435 prt("rtsd\t#%d, r%d - r%d", a->imm << 2, a->rd, a->rd2); in trans_RTSD_irr()
441 static bool trans_AND_ir(DisasContext *ctx, arg_AND_ir *a) in trans_AND_ir() argument
443 prt_ir(ctx, "and", a->imm, a->rd); in trans_AND_ir()
449 static bool trans_AND_mr(DisasContext *ctx, arg_AND_mr *a) in trans_AND_mr() argument
451 prt_ldmi(ctx, "and", a->ld, a->mi, a->rs, a->rd); in trans_AND_mr()
456 static bool trans_AND_rrr(DisasContext *ctx, arg_AND_rrr *a) in trans_AND_rrr() argument
458 prt("and\tr%d,r%d, r%d", a->rs, a->rs2, a->rd); in trans_AND_rrr()
464 static bool trans_OR_ir(DisasContext *ctx, arg_OR_ir *a) in trans_OR_ir() argument
466 prt_ir(ctx, "or", a->imm, a->rd); in trans_OR_ir()
472 static bool trans_OR_mr(DisasContext *ctx, arg_OR_mr *a) in trans_OR_mr() argument
474 prt_ldmi(ctx, "or", a->ld, a->mi, a->rs, a->rd); in trans_OR_mr()
479 static bool trans_OR_rrr(DisasContext *ctx, arg_OR_rrr *a) in trans_OR_rrr() argument
481 prt("or\tr%d, r%d, r%d", a->rs, a->rs2, a->rd); in trans_OR_rrr()
486 static bool trans_XOR_ir(DisasContext *ctx, arg_XOR_ir *a) in trans_XOR_ir() argument
488 prt_ir(ctx, "xor", a->imm, a->rd); in trans_XOR_ir()
494 static bool trans_XOR_mr(DisasContext *ctx, arg_XOR_mr *a) in trans_XOR_mr() argument
496 prt_ldmi(ctx, "xor", a->ld, a->mi, a->rs, a->rd); in trans_XOR_mr()
501 static bool trans_TST_ir(DisasContext *ctx, arg_TST_ir *a) in trans_TST_ir() argument
503 prt_ir(ctx, "tst", a->imm, a->rd); in trans_TST_ir()
509 static bool trans_TST_mr(DisasContext *ctx, arg_TST_mr *a) in trans_TST_mr() argument
511 prt_ldmi(ctx, "tst", a->ld, a->mi, a->rs, a->rd); in trans_TST_mr()
517 static bool trans_NOT_rr(DisasContext *ctx, arg_NOT_rr *a) in trans_NOT_rr() argument
519 if (a->rs != a->rd) { in trans_NOT_rr()
520 prt("not\tr%d, r%d", a->rs, a->rd); in trans_NOT_rr()
522 prt("not\tr%d", a->rs); in trans_NOT_rr()
529 static bool trans_NEG_rr(DisasContext *ctx, arg_NEG_rr *a) in trans_NEG_rr() argument
531 if (a->rs != a->rd) { in trans_NEG_rr()
532 prt("neg\tr%d, r%d", a->rs, a->rd); in trans_NEG_rr()
534 prt("neg\tr%d", a->rs); in trans_NEG_rr()
540 static bool trans_ADC_ir(DisasContext *ctx, arg_ADC_ir *a) in trans_ADC_ir() argument
542 prt_ir(ctx, "adc", a->imm, a->rd); in trans_ADC_ir()
547 static bool trans_ADC_rr(DisasContext *ctx, arg_ADC_rr *a) in trans_ADC_rr() argument
549 prt("adc\tr%d, r%d", a->rs, a->rd); in trans_ADC_rr()
554 static bool trans_ADC_mr(DisasContext *ctx, arg_ADC_mr *a) in trans_ADC_mr() argument
558 rx_index_addr(ctx, dsp, a->ld, 2); in trans_ADC_mr()
559 prt("adc\t%s[r%d], r%d", dsp, a->rs, a->rd); in trans_ADC_mr()
565 static bool trans_ADD_irr(DisasContext *ctx, arg_ADD_irr *a) in trans_ADD_irr() argument
567 if (a->imm < 0x10 && a->rs2 == a->rd) { in trans_ADD_irr()
568 prt("add\t#%d, r%d", a->imm, a->rd); in trans_ADD_irr()
570 prt("add\t#0x%08x, r%d, r%d", a->imm, a->rs2, a->rd); in trans_ADD_irr()
577 static bool trans_ADD_mr(DisasContext *ctx, arg_ADD_mr *a) in trans_ADD_mr() argument
579 prt_ldmi(ctx, "add", a->ld, a->mi, a->rs, a->rd); in trans_ADD_mr()
584 static bool trans_ADD_rrr(DisasContext *ctx, arg_ADD_rrr *a) in trans_ADD_rrr() argument
586 prt("add\tr%d, r%d, r%d", a->rs, a->rs2, a->rd); in trans_ADD_rrr()
593 static bool trans_CMP_ir(DisasContext *ctx, arg_CMP_ir *a) in trans_CMP_ir() argument
595 prt_ir(ctx, "cmp", a->imm, a->rs2); in trans_CMP_ir()
601 static bool trans_CMP_mr(DisasContext *ctx, arg_CMP_mr *a) in trans_CMP_mr() argument
603 prt_ldmi(ctx, "cmp", a->ld, a->mi, a->rs, a->rd); in trans_CMP_mr()
608 static bool trans_SUB_ir(DisasContext *ctx, arg_SUB_ir *a) in trans_SUB_ir() argument
610 prt("sub\t#%d, r%d", a->imm, a->rd); in trans_SUB_ir()
616 static bool trans_SUB_mr(DisasContext *ctx, arg_SUB_mr *a) in trans_SUB_mr() argument
618 prt_ldmi(ctx, "sub", a->ld, a->mi, a->rs, a->rd); in trans_SUB_mr()
623 static bool trans_SUB_rrr(DisasContext *ctx, arg_SUB_rrr *a) in trans_SUB_rrr() argument
625 prt("sub\tr%d, r%d, r%d", a->rs, a->rs2, a->rd); in trans_SUB_rrr()
630 static bool trans_SBB_rr(DisasContext *ctx, arg_SBB_rr *a) in trans_SBB_rr() argument
632 prt("sbb\tr%d, r%d", a->rs, a->rd); in trans_SBB_rr()
637 static bool trans_SBB_mr(DisasContext *ctx, arg_SBB_mr *a) in trans_SBB_mr() argument
639 prt_ldmi(ctx, "sbb", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_SBB_mr()
645 static bool trans_ABS_rr(DisasContext *ctx, arg_ABS_rr *a) in trans_ABS_rr() argument
647 if (a->rs != a->rd) { in trans_ABS_rr()
648 prt("abs\tr%d, r%d", a->rs, a->rd); in trans_ABS_rr()
650 prt("abs\tr%d", a->rs); in trans_ABS_rr()
656 static bool trans_MAX_ir(DisasContext *ctx, arg_MAX_ir *a) in trans_MAX_ir() argument
658 prt_ir(ctx, "max", a->imm, a->rd); in trans_MAX_ir()
664 static bool trans_MAX_mr(DisasContext *ctx, arg_MAX_mr *a) in trans_MAX_mr() argument
666 prt_ldmi(ctx, "max", a->ld, a->mi, a->rs, a->rd); in trans_MAX_mr()
671 static bool trans_MIN_ir(DisasContext *ctx, arg_MIN_ir *a) in trans_MIN_ir() argument
673 prt_ir(ctx, "min", a->imm, a->rd); in trans_MIN_ir()
679 static bool trans_MIN_mr(DisasContext *ctx, arg_MIN_mr *a) in trans_MIN_mr() argument
681 prt_ldmi(ctx, "min", a->ld, a->mi, a->rs, a->rd); in trans_MIN_mr()
687 static bool trans_MUL_ir(DisasContext *ctx, arg_MUL_ir *a) in trans_MUL_ir() argument
689 prt_ir(ctx, "mul", a->imm, a->rd); in trans_MUL_ir()
695 static bool trans_MUL_mr(DisasContext *ctx, arg_MUL_mr *a) in trans_MUL_mr() argument
697 prt_ldmi(ctx, "mul", a->ld, a->mi, a->rs, a->rd); in trans_MUL_mr()
702 static bool trans_MUL_rrr(DisasContext *ctx, arg_MUL_rrr *a) in trans_MUL_rrr() argument
704 prt("mul\tr%d,r%d,r%d", a->rs, a->rs2, a->rd); in trans_MUL_rrr()
709 static bool trans_EMUL_ir(DisasContext *ctx, arg_EMUL_ir *a) in trans_EMUL_ir() argument
711 prt_ir(ctx, "emul", a->imm, a->rd); in trans_EMUL_ir()
717 static bool trans_EMUL_mr(DisasContext *ctx, arg_EMUL_mr *a) in trans_EMUL_mr() argument
719 prt_ldmi(ctx, "emul", a->ld, a->mi, a->rs, a->rd); in trans_EMUL_mr()
724 static bool trans_EMULU_ir(DisasContext *ctx, arg_EMULU_ir *a) in trans_EMULU_ir() argument
726 prt_ir(ctx, "emulu", a->imm, a->rd); in trans_EMULU_ir()
732 static bool trans_EMULU_mr(DisasContext *ctx, arg_EMULU_mr *a) in trans_EMULU_mr() argument
734 prt_ldmi(ctx, "emulu", a->ld, a->mi, a->rs, a->rd); in trans_EMULU_mr()
739 static bool trans_DIV_ir(DisasContext *ctx, arg_DIV_ir *a) in trans_DIV_ir() argument
741 prt_ir(ctx, "div", a->imm, a->rd); in trans_DIV_ir()
747 static bool trans_DIV_mr(DisasContext *ctx, arg_DIV_mr *a) in trans_DIV_mr() argument
749 prt_ldmi(ctx, "div", a->ld, a->mi, a->rs, a->rd); in trans_DIV_mr()
754 static bool trans_DIVU_ir(DisasContext *ctx, arg_DIVU_ir *a) in trans_DIVU_ir() argument
756 prt_ir(ctx, "divu", a->imm, a->rd); in trans_DIVU_ir()
762 static bool trans_DIVU_mr(DisasContext *ctx, arg_DIVU_mr *a) in trans_DIVU_mr() argument
764 prt_ldmi(ctx, "divu", a->ld, a->mi, a->rs, a->rd); in trans_DIVU_mr()
771 static bool trans_SHLL_irr(DisasContext *ctx, arg_SHLL_irr *a) in trans_SHLL_irr() argument
773 if (a->rs2 != a->rd) { in trans_SHLL_irr()
774 prt("shll\t#%d, r%d, r%d", a->imm, a->rs2, a->rd); in trans_SHLL_irr()
776 prt("shll\t#%d, r%d", a->imm, a->rd); in trans_SHLL_irr()
782 static bool trans_SHLL_rr(DisasContext *ctx, arg_SHLL_rr *a) in trans_SHLL_rr() argument
784 prt("shll\tr%d, r%d", a->rs, a->rd); in trans_SHLL_rr()
790 static bool trans_SHAR_irr(DisasContext *ctx, arg_SHAR_irr *a) in trans_SHAR_irr() argument
792 if (a->rs2 != a->rd) { in trans_SHAR_irr()
793 prt("shar\t#%d, r%d, r%d", a->imm, a->rs2, a->rd); in trans_SHAR_irr()
795 prt("shar\t#%d, r%d", a->imm, a->rd); in trans_SHAR_irr()
801 static bool trans_SHAR_rr(DisasContext *ctx, arg_SHAR_rr *a) in trans_SHAR_rr() argument
803 prt("shar\tr%d, r%d", a->rs, a->rd); in trans_SHAR_rr()
809 static bool trans_SHLR_irr(DisasContext *ctx, arg_SHLR_irr *a) in trans_SHLR_irr() argument
811 if (a->rs2 != a->rd) { in trans_SHLR_irr()
812 prt("shlr\t#%d, r%d, r%d", a->imm, a->rs2, a->rd); in trans_SHLR_irr()
814 prt("shlr\t#%d, r%d", a->imm, a->rd); in trans_SHLR_irr()
820 static bool trans_SHLR_rr(DisasContext *ctx, arg_SHLR_rr *a) in trans_SHLR_rr() argument
822 prt("shlr\tr%d, r%d", a->rs, a->rd); in trans_SHLR_rr()
827 static bool trans_ROLC(DisasContext *ctx, arg_ROLC *a) in trans_ROLC() argument
829 prt("rorc\tr%d", a->rd); in trans_ROLC()
834 static bool trans_RORC(DisasContext *ctx, arg_RORC *a) in trans_RORC() argument
836 prt("rorc\tr%d", a->rd); in trans_RORC()
841 static bool trans_ROTL_ir(DisasContext *ctx, arg_ROTL_ir *a) in trans_ROTL_ir() argument
843 prt("rotl\t#%d, r%d", a->imm, a->rd); in trans_ROTL_ir()
848 static bool trans_ROTL_rr(DisasContext *ctx, arg_ROTL_rr *a) in trans_ROTL_rr() argument
850 prt("rotl\tr%d, r%d", a->rs, a->rd); in trans_ROTL_rr()
855 static bool trans_ROTR_ir(DisasContext *ctx, arg_ROTR_ir *a) in trans_ROTR_ir() argument
857 prt("rotr\t#%d, r%d", a->imm, a->rd); in trans_ROTR_ir()
862 static bool trans_ROTR_rr(DisasContext *ctx, arg_ROTR_rr *a) in trans_ROTR_rr() argument
864 prt("rotr\tr%d, r%d", a->rs, a->rd); in trans_ROTR_rr()
869 static bool trans_REVL(DisasContext *ctx, arg_REVL *a) in trans_REVL() argument
871 prt("revl\tr%d, r%d", a->rs, a->rd); in trans_REVL()
876 static bool trans_REVW(DisasContext *ctx, arg_REVW *a) in trans_REVW() argument
878 prt("revw\tr%d, r%d", a->rs, a->rd); in trans_REVW()
898 static bool trans_BCnd(DisasContext *ctx, arg_BCnd *a) in trans_BCnd() argument
900 rx_bcnd_main(ctx, a->cd, a->sz, a->dsp); in trans_BCnd()
908 static bool trans_BRA(DisasContext *ctx, arg_BRA *a) in trans_BRA() argument
910 rx_bcnd_main(ctx, 14, a->sz, a->dsp); in trans_BRA()
915 static bool trans_BRA_l(DisasContext *ctx, arg_BRA_l *a) in trans_BRA_l() argument
917 prt("bra.l\tr%d", a->rd); in trans_BRA_l()
922 static bool trans_JMP(DisasContext *ctx, arg_JMP *a) in trans_JMP() argument
924 prt("jmp\tr%d", a->rs); in trans_JMP()
929 static bool trans_JSR(DisasContext *ctx, arg_JSR *a) in trans_JSR() argument
931 prt("jsr\tr%d", a->rs); in trans_JSR()
937 static bool trans_BSR(DisasContext *ctx, arg_BSR *a) in trans_BSR() argument
940 prt("bsr.%c\t%08x", sz[a->sz - 3], ctx->pc + a->dsp); in trans_BSR()
945 static bool trans_BSR_l(DisasContext *ctx, arg_BSR_l *a) in trans_BSR_l() argument
947 prt("bsr.l\tr%d", a->rd); in trans_BSR_l()
952 static bool trans_RTS(DisasContext *ctx, arg_RTS *a) in trans_RTS() argument
959 static bool trans_NOP(DisasContext *ctx, arg_NOP *a) in trans_NOP() argument
966 static bool trans_SCMPU(DisasContext *ctx, arg_SCMPU *a) in trans_SCMPU() argument
973 static bool trans_SMOVU(DisasContext *ctx, arg_SMOVU *a) in trans_SMOVU() argument
980 static bool trans_SMOVF(DisasContext *ctx, arg_SMOVF *a) in trans_SMOVF() argument
987 static bool trans_SMOVB(DisasContext *ctx, arg_SMOVB *a) in trans_SMOVB() argument
994 static bool trans_SUNTIL(DisasContext *ctx, arg_SUNTIL *a) in trans_SUNTIL() argument
996 prt("suntil.%c", size[a->sz]); in trans_SUNTIL()
1001 static bool trans_SWHILE(DisasContext *ctx, arg_SWHILE *a) in trans_SWHILE() argument
1003 prt("swhile.%c", size[a->sz]); in trans_SWHILE()
1007 static bool trans_SSTR(DisasContext *ctx, arg_SSTR *a) in trans_SSTR() argument
1009 prt("sstr.%c", size[a->sz]); in trans_SSTR()
1014 static bool trans_RMPA(DisasContext *ctx, arg_RMPA *a) in trans_RMPA() argument
1016 prt("rmpa.%c", size[a->sz]); in trans_RMPA()
1021 static bool trans_MULHI(DisasContext *ctx, arg_MULHI *a) in trans_MULHI() argument
1023 prt("mulhi\tr%d,r%d", a->rs, a->rs2); in trans_MULHI()
1028 static bool trans_MULLO(DisasContext *ctx, arg_MULLO *a) in trans_MULLO() argument
1030 prt("mullo\tr%d, r%d", a->rs, a->rs2); in trans_MULLO()
1035 static bool trans_MACHI(DisasContext *ctx, arg_MACHI *a) in trans_MACHI() argument
1037 prt("machi\tr%d, r%d", a->rs, a->rs2); in trans_MACHI()
1042 static bool trans_MACLO(DisasContext *ctx, arg_MACLO *a) in trans_MACLO() argument
1044 prt("maclo\tr%d, r%d", a->rs, a->rs2); in trans_MACLO()
1049 static bool trans_MVFACHI(DisasContext *ctx, arg_MVFACHI *a) in trans_MVFACHI() argument
1051 prt("mvfachi\tr%d", a->rd); in trans_MVFACHI()
1056 static bool trans_MVFACMI(DisasContext *ctx, arg_MVFACMI *a) in trans_MVFACMI() argument
1058 prt("mvfacmi\tr%d", a->rd); in trans_MVFACMI()
1063 static bool trans_MVTACHI(DisasContext *ctx, arg_MVTACHI *a) in trans_MVTACHI() argument
1065 prt("mvtachi\tr%d", a->rs); in trans_MVTACHI()
1070 static bool trans_MVTACLO(DisasContext *ctx, arg_MVTACLO *a) in trans_MVTACLO() argument
1072 prt("mvtaclo\tr%d", a->rs); in trans_MVTACLO()
1077 static bool trans_RACW(DisasContext *ctx, arg_RACW *a) in trans_RACW() argument
1079 prt("racw\t#%d", a->imm + 1); in trans_RACW()
1084 static bool trans_SAT(DisasContext *ctx, arg_SAT *a) in trans_SAT() argument
1086 prt("sat\tr%d", a->rd); in trans_SAT()
1091 static bool trans_SATR(DisasContext *ctx, arg_SATR *a) in trans_SATR() argument
1098 static bool trans_FADD_ir(DisasContext *ctx, arg_FADD_ir *a) in trans_FADD_ir() argument
1100 prt("fadd\t#%d,r%d", li(ctx, 0), a->rd); in trans_FADD_ir()
1106 static bool trans_FADD_mr(DisasContext *ctx, arg_FADD_mr *a) in trans_FADD_mr() argument
1108 prt_ldmi(ctx, "fadd", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_FADD_mr()
1113 static bool trans_FCMP_ir(DisasContext *ctx, arg_FCMP_ir *a) in trans_FCMP_ir() argument
1115 prt("fadd\t#%d,r%d", li(ctx, 0), a->rd); in trans_FCMP_ir()
1121 static bool trans_FCMP_mr(DisasContext *ctx, arg_FCMP_mr *a) in trans_FCMP_mr() argument
1123 prt_ldmi(ctx, "fcmp", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_FCMP_mr()
1128 static bool trans_FSUB_ir(DisasContext *ctx, arg_FSUB_ir *a) in trans_FSUB_ir() argument
1130 prt("fsub\t#%d,r%d", li(ctx, 0), a->rd); in trans_FSUB_ir()
1136 static bool trans_FSUB_mr(DisasContext *ctx, arg_FSUB_mr *a) in trans_FSUB_mr() argument
1138 prt_ldmi(ctx, "fsub", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_FSUB_mr()
1144 static bool trans_FTOI(DisasContext *ctx, arg_FTOI *a) in trans_FTOI() argument
1146 prt_ldmi(ctx, "ftoi", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_FTOI()
1151 static bool trans_FMUL_ir(DisasContext *ctx, arg_FMUL_ir *a) in trans_FMUL_ir() argument
1153 prt("fmul\t#%d,r%d", li(ctx, 0), a->rd); in trans_FMUL_ir()
1159 static bool trans_FMUL_mr(DisasContext *ctx, arg_FMUL_mr *a) in trans_FMUL_mr() argument
1161 prt_ldmi(ctx, "fmul", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_FMUL_mr()
1166 static bool trans_FDIV_ir(DisasContext *ctx, arg_FDIV_ir *a) in trans_FDIV_ir() argument
1168 prt("fdiv\t#%d,r%d", li(ctx, 0), a->rd); in trans_FDIV_ir()
1174 static bool trans_FDIV_mr(DisasContext *ctx, arg_FDIV_mr *a) in trans_FDIV_mr() argument
1176 prt_ldmi(ctx, "fdiv", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_FDIV_mr()
1182 static bool trans_ROUND(DisasContext *ctx, arg_ROUND *a) in trans_ROUND() argument
1184 prt_ldmi(ctx, "round", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_ROUND()
1190 static bool trans_ITOF(DisasContext *ctx, arg_ITOF *a) in trans_ITOF() argument
1192 prt_ldmi(ctx, "itof", a->ld, RX_IM_LONG, a->rs, a->rd); in trans_ITOF()
1199 rx_index_addr(ctx, dsp, a->ld, RX_MEMORY_BYTE); \
1200 prt("b%s\t#%d, %s[r%d]", #name, a->imm, dsp, reg); \
1207 rx_index_addr(ctx, dsp, a->ld, RX_MEMORY_BYTE); \
1208 prt("b%s\tr%d, %s[r%d]", #name, a->rd, dsp, a->rs); \
1213 static bool trans_BSET_im(DisasContext *ctx, arg_BSET_im *a) in trans_BSET_im() argument
1215 BOP_IM(bset, a->rs); in trans_BSET_im()
1219 static bool trans_BSET_rm(DisasContext *ctx, arg_BSET_rm *a) in trans_BSET_rm() argument
1225 static bool trans_BSET_rr(DisasContext *ctx, arg_BSET_rr *a) in trans_BSET_rr() argument
1227 prt("bset\tr%d,r%d", a->rs, a->rd); in trans_BSET_rr()
1232 static bool trans_BSET_ir(DisasContext *ctx, arg_BSET_ir *a) in trans_BSET_ir() argument
1234 prt("bset\t#%d, r%d", a->imm, a->rd); in trans_BSET_ir()
1239 static bool trans_BCLR_im(DisasContext *ctx, arg_BCLR_im *a) in trans_BCLR_im() argument
1241 BOP_IM(clr, a->rs); in trans_BCLR_im()
1245 static bool trans_BCLR_rm(DisasContext *ctx, arg_BCLR_rm *a) in trans_BCLR_rm() argument
1251 static bool trans_BCLR_rr(DisasContext *ctx, arg_BCLR_rr *a) in trans_BCLR_rr() argument
1253 prt("bclr\tr%d, r%d", a->rs, a->rd); in trans_BCLR_rr()
1258 static bool trans_BCLR_ir(DisasContext *ctx, arg_BCLR_ir *a) in trans_BCLR_ir() argument
1260 prt("bclr\t#%d,r%d", a->imm, a->rd); in trans_BCLR_ir()
1265 static bool trans_BTST_im(DisasContext *ctx, arg_BTST_im *a) in trans_BTST_im() argument
1267 BOP_IM(tst, a->rs); in trans_BTST_im()
1271 static bool trans_BTST_rm(DisasContext *ctx, arg_BTST_rm *a) in trans_BTST_rm() argument
1277 static bool trans_BTST_rr(DisasContext *ctx, arg_BTST_rr *a) in trans_BTST_rr() argument
1279 prt("btst\tr%d, r%d", a->rs, a->rd); in trans_BTST_rr()
1284 static bool trans_BTST_ir(DisasContext *ctx, arg_BTST_ir *a) in trans_BTST_ir() argument
1286 prt("btst\t#%d, r%d", a->imm, a->rd); in trans_BTST_ir()
1291 static bool trans_BNOT_rm(DisasContext *ctx, arg_BNOT_rm *a) in trans_BNOT_rm() argument
1297 static bool trans_BNOT_rr(DisasContext *ctx, arg_BNOT_rr *a) in trans_BNOT_rr() argument
1299 prt("bnot\tr%d, r%d", a->rs, a->rd); in trans_BNOT_rr()
1304 static bool trans_BNOT_im(DisasContext *ctx, arg_BNOT_im *a) in trans_BNOT_im() argument
1306 BOP_IM(not, a->rs); in trans_BNOT_im()
1310 static bool trans_BNOT_ir(DisasContext *ctx, arg_BNOT_ir *a) in trans_BNOT_ir() argument
1312 prt("bnot\t#%d, r%d", a->imm, a->rd); in trans_BNOT_ir()
1317 static bool trans_BMCnd_im(DisasContext *ctx, arg_BMCnd_im *a) in trans_BMCnd_im() argument
1321 rx_index_addr(ctx, dsp, a->ld, RX_MEMORY_BYTE); in trans_BMCnd_im()
1322 prt("bm%s\t#%d, %s[r%d]", cond[a->cd], a->imm, dsp, a->rd); in trans_BMCnd_im()
1327 static bool trans_BMCnd_ir(DisasContext *ctx, arg_BMCnd_ir *a) in trans_BMCnd_ir() argument
1329 prt("bm%s\t#%d, r%d", cond[a->cd], a->imm, a->rd); in trans_BMCnd_ir()
1334 static bool trans_CLRPSW(DisasContext *ctx, arg_CLRPSW *a) in trans_CLRPSW() argument
1336 prt("clrpsw\t%c", psw[a->cb]); in trans_CLRPSW()
1341 static bool trans_SETPSW(DisasContext *ctx, arg_SETPSW *a) in trans_SETPSW() argument
1343 prt("setpsw\t%c", psw[a->cb]); in trans_SETPSW()
1348 static bool trans_MVTIPL(DisasContext *ctx, arg_MVTIPL *a) in trans_MVTIPL() argument
1350 prt("movtipl\t#%d", a->imm); in trans_MVTIPL()
1355 static bool trans_MVTC_i(DisasContext *ctx, arg_MVTC_i *a) in trans_MVTC_i() argument
1357 prt("mvtc\t#0x%08x, %s", a->imm, rx_crname(a->cr)); in trans_MVTC_i()
1362 static bool trans_MVTC_r(DisasContext *ctx, arg_MVTC_r *a) in trans_MVTC_r() argument
1364 prt("mvtc\tr%d, %s", a->rs, rx_crname(a->cr)); in trans_MVTC_r()
1369 static bool trans_MVFC(DisasContext *ctx, arg_MVFC *a) in trans_MVFC() argument
1371 prt("mvfc\t%s, r%d", rx_crname(a->cr), a->rd); in trans_MVFC()
1376 static bool trans_RTFI(DisasContext *ctx, arg_RTFI *a) in trans_RTFI() argument
1383 static bool trans_RTE(DisasContext *ctx, arg_RTE *a) in trans_RTE() argument
1390 static bool trans_BRK(DisasContext *ctx, arg_BRK *a) in trans_BRK() argument
1397 static bool trans_INT(DisasContext *ctx, arg_INT *a) in trans_INT() argument
1399 prt("int\t#%d", a->imm); in trans_INT()
1404 static bool trans_WAIT(DisasContext *ctx, arg_WAIT *a) in trans_WAIT() argument
1412 static bool trans_SCCnd(DisasContext *ctx, arg_SCCnd *a) in trans_SCCnd() argument
1414 if (a->ld < 3) { in trans_SCCnd()
1416 rx_index_addr(ctx, dsp, a->sz, a->ld); in trans_SCCnd()
1417 prt("sc%s.%c\t%s[r%d]", cond[a->cd], size[a->sz], dsp, a->rd); in trans_SCCnd()
1419 prt("sc%s.%c\tr%d", cond[a->cd], size[a->sz], a->rd); in trans_SCCnd()