Lines Matching refs:dest

338 static void save_or_nullify(DisasContext *ctx, TCGv_i64 dest, TCGv_i64 t)  in save_or_nullify()  argument
341 tcg_gen_movcond_i64(ctx->null_cond.c, dest, ctx->null_cond.a0, in save_or_nullify()
342 ctx->null_cond.a1, dest, t); in save_or_nullify()
344 tcg_gen_mov_i64(dest, t); in save_or_nullify()
429 static void load_spr(DisasContext *ctx, TCGv_i64 dest, unsigned reg) in load_spr() argument
432 tcg_gen_movi_i64(dest, 0); in load_spr()
435 tcg_gen_mov_i64(dest, cpu_sr[reg]); in load_spr()
437 tcg_gen_mov_i64(dest, cpu_srH); in load_spr()
439 tcg_gen_ld_i64(dest, tcg_env, offsetof(CPUHPPAState, sr[reg])); in load_spr()
546 static void copy_iaoq_entry(DisasContext *ctx, TCGv_i64 dest, in copy_iaoq_entry() argument
552 tcg_gen_movi_i64(dest, ival & mask); in copy_iaoq_entry()
562 tcg_gen_mov_i64(dest, vval); in copy_iaoq_entry()
564 tcg_gen_andi_i64(dest, vval, mask); in copy_iaoq_entry()
613 static bool use_goto_tb(DisasContext *ctx, uint64_t dest) in use_goto_tb() argument
615 return translator_use_goto_tb(&ctx->base, dest); in use_goto_tb()
1017 TCGv_i64 dest, cb, cb_msb, cb_cond, sv, tmp; in do_add() local
1021 dest = tcg_temp_new_i64(); in do_add()
1036 tcg_gen_add2_i64(dest, cb_msb, in1, ctx->zero, in2, ctx->zero); in do_add()
1038 tcg_gen_add2_i64(dest, cb_msb, dest, cb_msb, in do_add()
1042 tcg_gen_xor_i64(cb, cb, dest); in do_add()
1047 tcg_gen_add_i64(dest, in1, in2); in do_add()
1049 tcg_gen_add_i64(dest, dest, get_psw_carry(ctx, d)); in do_add()
1056 sv = do_add_sv(ctx, dest, in1, in2); in do_add()
1064 cond = do_cond(ctx, cf, d, dest, cb_cond, sv); in do_add()
1076 save_gpr(ctx, rt, dest); in do_add()
1117 TCGv_i64 dest, sv, cb, cb_msb, tmp; in do_sub() local
1121 dest = tcg_temp_new_i64(); in do_sub()
1128 tcg_gen_add2_i64(dest, cb_msb, in1, ctx->zero, in do_sub()
1130 tcg_gen_add2_i64(dest, cb_msb, dest, cb_msb, cb, ctx->zero); in do_sub()
1132 tcg_gen_xor_i64(cb, cb, dest); in do_sub()
1139 tcg_gen_sub2_i64(dest, cb_msb, in1, one, in2, ctx->zero); in do_sub()
1141 tcg_gen_xor_i64(cb, cb, dest); in do_sub()
1147 sv = do_sub_sv(ctx, dest, in1, in2); in do_sub()
1155 cond = do_sub_cond(ctx, cf, d, dest, in1, in2, sv); in do_sub()
1157 cond = do_cond(ctx, cf, d, dest, get_carry(ctx, d, cb, cb_msb), sv); in do_sub()
1170 save_gpr(ctx, rt, dest); in do_sub()
1208 TCGv_i64 dest, sv; in do_cmpclr() local
1211 dest = tcg_temp_new_i64(); in do_cmpclr()
1212 tcg_gen_sub_i64(dest, in1, in2); in do_cmpclr()
1217 sv = do_sub_sv(ctx, dest, in1, in2); in do_cmpclr()
1221 cond = do_sub_cond(ctx, cf, d, dest, in1, in2, sv); in do_cmpclr()
1224 tcg_gen_movi_i64(dest, 0); in do_cmpclr()
1225 save_gpr(ctx, rt, dest); in do_cmpclr()
1236 TCGv_i64 dest = dest_gpr(ctx, rt); in do_log() local
1239 fn(dest, in1, in2); in do_log()
1240 save_gpr(ctx, rt, dest); in do_log()
1245 ctx->null_cond = do_log_cond(ctx, cf, d, dest); in do_log()
1267 TCGv_i64 dest; in do_unit() local
1271 dest = dest_gpr(ctx, rt); in do_unit()
1272 fn(dest, in1, in2); in do_unit()
1273 save_gpr(ctx, rt, dest); in do_unit()
1276 dest = tcg_temp_new_i64(); in do_unit()
1277 fn(dest, in1, in2); in do_unit()
1279 cond = do_unit_cond(cf, d, dest, in1, in2); in do_unit()
1286 save_gpr(ctx, rt, dest); in do_unit()
1369 static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb, in do_load_32() argument
1381 tcg_gen_qemu_ld_i32(dest, addr, ctx->mmu_idx, mop | UNALIGN(ctx)); in do_load_32()
1387 static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb, in do_load_64() argument
1399 tcg_gen_qemu_ld_i64(dest, addr, ctx->mmu_idx, mop | UNALIGN(ctx)); in do_load_64()
1445 TCGv_i64 dest; in do_load() local
1451 dest = dest_gpr(ctx, rt); in do_load()
1454 dest = tcg_temp_new_i64(); in do_load()
1456 do_load_64(ctx, dest, rb, rx, scale, disp, sp, modify, mop); in do_load()
1457 save_gpr(ctx, rt, dest); in do_load()
1655 static bool do_dbranch(DisasContext *ctx, uint64_t dest, in do_dbranch() argument
1662 ctx->iaoq_n = dest; in do_dbranch()
1675 gen_goto_tb(ctx, 0, dest, dest + 4); in do_dbranch()
1678 gen_goto_tb(ctx, 0, ctx->iaoq_b, dest); in do_dbranch()
1695 uint64_t dest = iaoq_dest(ctx, disp); in do_cbranch() local
1704 return do_dbranch(ctx, dest, 0, is_n && disp >= 0); in do_cbranch()
1739 gen_goto_tb(ctx, 1, dest, dest + 4); in do_cbranch()
1742 gen_goto_tb(ctx, 1, ctx->iaoq_b, dest); in do_cbranch()
1758 static bool do_ibranch(DisasContext *ctx, TCGv_i64 dest, in do_ibranch() argument
1771 tcg_gen_mov_i64(next, dest); in do_ibranch()
1798 copy_iaoq_entry(ctx, cpu_iaoq_f, -1, dest); in do_ibranch()
1800 tcg_gen_addi_i64(next, dest, 4); in do_ibranch()
1818 tcg_gen_movcond_i64(c, next, a0, a1, tmp, dest); in do_ibranch()
1850 TCGv_i64 dest; in do_ibranch_priv() local
1857 dest = tcg_temp_new_i64(); in do_ibranch_priv()
1858 tcg_gen_ori_i64(dest, offset, 3); in do_ibranch_priv()
1861 dest = tcg_temp_new_i64(); in do_ibranch_priv()
1862 tcg_gen_andi_i64(dest, offset, -4); in do_ibranch_priv()
1863 tcg_gen_ori_i64(dest, dest, ctx->privilege); in do_ibranch_priv()
1864 tcg_gen_movcond_i64(TCG_COND_GTU, dest, dest, offset, dest, offset); in do_ibranch_priv()
1867 return dest; in do_ibranch_priv()
2142 TCGv_i64 dest = dest_gpr(ctx, a->t); in trans_ldsid() local
2146 tcg_gen_movi_i64(dest, 0); in trans_ldsid()
2148 tcg_gen_mov_i64(dest, space_select(ctx, a->sp, load_gpr(ctx, a->b))); in trans_ldsid()
2149 tcg_gen_shri_i64(dest, dest, 32); in trans_ldsid()
2151 save_gpr(ctx, a->t, dest); in trans_ldsid()
2278 TCGv_i64 dest = dest_gpr(ctx, a->b); in trans_nop_addrx() local
2283 tcg_gen_add_i64(dest, src1, src2); in trans_nop_addrx()
2284 save_gpr(ctx, a->b, dest); in trans_nop_addrx()
2292 TCGv_i64 dest, ofs; in trans_probe() local
2298 dest = dest_gpr(ctx, a->t); in trans_probe()
2310 gen_helper_probe(dest, tcg_env, addr, level, want); in trans_probe()
2312 save_gpr(ctx, a->t, dest); in trans_probe()
2603 TCGv_i64 dest = dest_gpr(ctx, rt); in trans_or() local
2604 tcg_gen_movi_i64(dest, 0); in trans_or()
2605 save_gpr(ctx, rt, dest); in trans_or()
2728 TCGv_i64 dest, add1, add2, addc, in1, in2; in trans_ds() local
2739 dest = tcg_temp_new_i64(); in trans_ds()
2755 tcg_gen_add2_i64(dest, cpu_psw_cb_msb, add1, ctx->zero, add2, ctx->zero); in trans_ds()
2756 tcg_gen_add2_i64(dest, cpu_psw_cb_msb, dest, cpu_psw_cb_msb, in trans_ds()
2760 save_gpr(ctx, a->t, dest); in trans_ds()
2764 tcg_gen_xor_i64(cpu_psw_cb, cpu_psw_cb, dest); in trans_ds()
2776 sv = do_add_sv(ctx, dest, add1, add2); in trans_ds()
2778 ctx->null_cond = do_cond(ctx, a->cf, false, dest, cout, sv); in trans_ds()
2832 TCGv_i64 r1, r2, dest; in do_multimedia() local
2842 dest = dest_gpr(ctx, a->t); in do_multimedia()
2844 fn(dest, r1, r2); in do_multimedia()
2845 save_gpr(ctx, a->t, dest); in do_multimedia()
2853 TCGv_i64 r, dest; in do_multimedia_sh() local
2862 dest = dest_gpr(ctx, a->t); in do_multimedia_sh()
2864 fn(dest, r, a->i); in do_multimedia_sh()
2865 save_gpr(ctx, a->t, dest); in do_multimedia_sh()
2874 TCGv_i64 r1, r2, dest; in do_multimedia_shadd() local
2884 dest = dest_gpr(ctx, a->t); in do_multimedia_shadd()
2886 fn(dest, r1, r2, tcg_constant_i32(a->sh)); in do_multimedia_shadd()
2887 save_gpr(ctx, a->t, dest); in do_multimedia_shadd()
3065 TCGv_i64 dest, ofs; in trans_ldc() local
3077 dest = tcg_temp_new_i64(); in trans_ldc()
3079 dest = dest_gpr(ctx, a->t); in trans_ldc()
3095 tcg_gen_atomic_xchg_i64(dest, addr, ctx->zero, ctx->mmu_idx, mop); in trans_ldc()
3100 save_gpr(ctx, a->t, dest); in trans_ldc()
3232 TCGv_i64 dest, in2, sv; in do_cmpb() local
3236 dest = tcg_temp_new_i64(); in do_cmpb()
3238 tcg_gen_sub_i64(dest, in1, in2); in do_cmpb()
3242 sv = do_sub_sv(ctx, dest, in1, in2); in do_cmpb()
3245 cond = do_sub_cond(ctx, c * 2 + f, d, dest, in1, in2, sv); in do_cmpb()
3272 TCGv_i64 dest, in2, sv, cb_cond; in do_addb() local
3288 dest = tcg_temp_new_i64(); in do_addb()
3297 tcg_gen_add2_i64(dest, cb_msb, in1, cb_msb, in2, cb_msb); in do_addb()
3299 tcg_gen_xor_i64(cb, cb, dest); in do_addb()
3302 tcg_gen_add_i64(dest, in1, in2); in do_addb()
3305 sv = do_add_sv(ctx, dest, in1, in2); in do_addb()
3308 cond = do_cond(ctx, c * 2 + f, d, dest, cb_cond, sv); in do_addb()
3309 save_gpr(ctx, r, dest); in do_addb()
3365 TCGv_i64 dest; in trans_movb() local
3370 dest = dest_gpr(ctx, a->r2); in trans_movb()
3372 tcg_gen_movi_i64(dest, 0); in trans_movb()
3374 tcg_gen_mov_i64(dest, cpu_gr[a->r1]); in trans_movb()
3378 cond = do_sed_cond(ctx, a->c, false, dest); in trans_movb()
3384 TCGv_i64 dest; in trans_movbi() local
3389 dest = dest_gpr(ctx, a->r); in trans_movbi()
3390 tcg_gen_movi_i64(dest, a->i); in trans_movbi()
3393 cond = do_sed_cond(ctx, a->c, false, dest); in trans_movbi()
3399 TCGv_i64 dest, src2; in trans_shrp_sar() local
3408 dest = dest_gpr(ctx, a->t); in trans_shrp_sar()
3412 tcg_gen_shr_i64(dest, src2, cpu_sar); in trans_shrp_sar()
3416 tcg_gen_ext32u_i64(dest, src2); in trans_shrp_sar()
3418 tcg_gen_shr_i64(dest, dest, tmp); in trans_shrp_sar()
3422 tcg_gen_rotr_i64(dest, src2, cpu_sar); in trans_shrp_sar()
3431 tcg_gen_extu_i32_i64(dest, t32); in trans_shrp_sar()
3443 tcg_gen_shr_i64(dest, src2, cpu_sar); in trans_shrp_sar()
3444 tcg_gen_or_i64(dest, dest, t); in trans_shrp_sar()
3451 tcg_gen_shr_i64(dest, t, s); in trans_shrp_sar()
3454 save_gpr(ctx, a->t, dest); in trans_shrp_sar()
3459 ctx->null_cond = do_sed_cond(ctx, a->c, false, dest); in trans_shrp_sar()
3467 TCGv_i64 dest, t2; in trans_shrp_imm() local
3479 dest = dest_gpr(ctx, a->t); in trans_shrp_imm()
3482 tcg_gen_extract_i64(dest, t2, sa, width - sa); in trans_shrp_imm()
3484 tcg_gen_extract2_i64(dest, t2, cpu_gr[a->r1], sa); in trans_shrp_imm()
3491 tcg_gen_extu_i32_i64(dest, t32); in trans_shrp_imm()
3493 tcg_gen_concat32_i64(dest, t2, cpu_gr[a->r1]); in trans_shrp_imm()
3494 tcg_gen_extract_i64(dest, dest, sa, 32); in trans_shrp_imm()
3497 save_gpr(ctx, a->t, dest); in trans_shrp_imm()
3502 ctx->null_cond = do_sed_cond(ctx, a->c, false, dest); in trans_shrp_imm()
3510 TCGv_i64 dest, src, tmp; in trans_extr_sar() local
3519 dest = dest_gpr(ctx, a->t); in trans_extr_sar()
3529 tcg_gen_ext32s_i64(dest, src); in trans_extr_sar()
3530 src = dest; in trans_extr_sar()
3532 tcg_gen_sar_i64(dest, src, tmp); in trans_extr_sar()
3533 tcg_gen_sextract_i64(dest, dest, 0, a->len); in trans_extr_sar()
3536 tcg_gen_ext32u_i64(dest, src); in trans_extr_sar()
3537 src = dest; in trans_extr_sar()
3539 tcg_gen_shr_i64(dest, src, tmp); in trans_extr_sar()
3540 tcg_gen_extract_i64(dest, dest, 0, a->len); in trans_extr_sar()
3542 save_gpr(ctx, a->t, dest); in trans_extr_sar()
3547 ctx->null_cond = do_sed_cond(ctx, a->c, a->d, dest); in trans_extr_sar()
3555 TCGv_i64 dest, src; in trans_extr_imm() local
3571 dest = dest_gpr(ctx, a->t); in trans_extr_imm()
3574 tcg_gen_sextract_i64(dest, src, cpos, len); in trans_extr_imm()
3576 tcg_gen_extract_i64(dest, src, cpos, len); in trans_extr_imm()
3578 save_gpr(ctx, a->t, dest); in trans_extr_imm()
3583 ctx->null_cond = do_sed_cond(ctx, a->c, a->d, dest); in trans_extr_imm()
3592 TCGv_i64 dest; in trans_depi_imm() local
3607 dest = dest_gpr(ctx, a->t); in trans_depi_imm()
3613 tcg_gen_andi_i64(dest, src, mask1); in trans_depi_imm()
3614 tcg_gen_ori_i64(dest, dest, mask0); in trans_depi_imm()
3616 tcg_gen_movi_i64(dest, mask0); in trans_depi_imm()
3618 save_gpr(ctx, a->t, dest); in trans_depi_imm()
3623 ctx->null_cond = do_sed_cond(ctx, a->c, a->d, dest); in trans_depi_imm()
3632 TCGv_i64 dest, val; in trans_dep_imm() local
3647 dest = dest_gpr(ctx, a->t); in trans_dep_imm()
3650 tcg_gen_deposit_z_i64(dest, val, a->cpos, len); in trans_dep_imm()
3652 tcg_gen_deposit_i64(dest, cpu_gr[rs], val, a->cpos, len); in trans_dep_imm()
3654 save_gpr(ctx, a->t, dest); in trans_dep_imm()
3659 ctx->null_cond = do_sed_cond(ctx, a->c, a->d, dest); in trans_dep_imm()
3669 TCGv_i64 mask, tmp, shift, dest; in do_dep_sar() local
3672 dest = dest_gpr(ctx, rt); in do_dep_sar()
3686 tcg_gen_andc_i64(dest, cpu_gr[rs], mask); in do_dep_sar()
3687 tcg_gen_or_i64(dest, dest, tmp); in do_dep_sar()
3689 tcg_gen_shl_i64(dest, tmp, shift); in do_dep_sar()
3691 save_gpr(ctx, rt, dest); in do_dep_sar()
3696 ctx->null_cond = do_sed_cond(ctx, c, d, dest); in do_dep_sar()
3787 uint64_t dest = iaoq_dest(ctx, a->disp); in trans_b_gate() local
3821 dest = deposit32(dest, 0, 2, type - 4); in trans_b_gate()
3824 dest &= -4; /* priv = 0 */ in trans_b_gate()
3837 return do_dbranch(ctx, dest, 0, a->n); in trans_b_gate()
3856 TCGv_i64 dest; in trans_bv() local
3859 dest = load_gpr(ctx, a->b); in trans_bv()
3861 dest = tcg_temp_new_i64(); in trans_bv()
3862 tcg_gen_shli_i64(dest, load_gpr(ctx, a->x), 3); in trans_bv()
3863 tcg_gen_add_i64(dest, dest, load_gpr(ctx, a->b)); in trans_bv()
3865 dest = do_ibranch_priv(ctx, dest); in trans_bv()
3866 return do_ibranch(ctx, dest, 0, a->n); in trans_bv()
3871 TCGv_i64 dest; in trans_bve() local
3874 dest = do_ibranch_priv(ctx, load_gpr(ctx, a->b)); in trans_bve()
3875 return do_ibranch(ctx, dest, a->l, a->n); in trans_bve()
3878 dest = do_ibranch_priv(ctx, load_gpr(ctx, a->b)); in trans_bve()
3884 copy_iaoq_entry(ctx, cpu_iaoq_b, -1, dest); in trans_bve()
3885 tcg_gen_mov_i64(cpu_iasq_b, space_select(ctx, 0, dest)); in trans_bve()