static void dec10_reg_abs(DisasContext *dc) { TCGv t0; LOG_DIS("abs $r%u, $r%u\n", dc->src, dc->dst); assert(dc->dst != 15); t0 = tcg_temp_new(); tcg_gen_sari_tl(t0, cpu_R[dc->src], 31); tcg_gen_xor_tl(cpu_R[dc->dst], cpu_R[dc->src], t0); tcg_gen_sub_tl(t0, cpu_R[dc->dst], t0); cris_alu(dc, CC_OP_MOVE, cpu_R[dc->dst], cpu_R[dc->dst], t0, 4); tcg_temp_free(t0); }
static void dec_xor(DisasContext *dc) { if (dc->format == OP_FMT_RI) { LOG_DIS("xori r%d, r%d, %d\n", dc->r0, dc->r1, zero_extend(dc->imm16, 16)); } else { LOG_DIS("xor r%d, r%d, r%d\n", dc->r2, dc->r0, dc->r1); } if (dc->format == OP_FMT_RI) { tcg_gen_xori_tl(cpu_R[dc->r1], cpu_R[dc->r0], zero_extend(dc->imm16, 16)); } else { tcg_gen_xor_tl(cpu_R[dc->r2], cpu_R[dc->r0], cpu_R[dc->r1]); } }