@@ -4042,36 +4042,36 @@ void drcbe_arm64::op_and(a64::Assembler &a, const uml::instruction &inst)
4042
4042
}
4043
4043
else if (src1p.is_immediate () && is_valid_immediate_mask (src1p.immediate (), inst.size ()))
4044
4044
{
4045
- const a64::Gp src2 = src2p.select_register (TEMP_REG1 , inst.size ());
4045
+ const a64::Gp src2 = src2p.select_register (dst , inst.size ());
4046
4046
mov_reg_param (a, inst.size (), src2, src2p);
4047
4047
4048
4048
a.emit (opcode, dst, src2, src1p.immediate ());
4049
4049
}
4050
4050
else if (src2p.is_immediate () && is_valid_immediate_mask (src2p.immediate (), inst.size ()))
4051
4051
{
4052
- const a64::Gp src1 = src1p.select_register (TEMP_REG1 , inst.size ());
4052
+ const a64::Gp src1 = src1p.select_register (dst , inst.size ());
4053
4053
mov_reg_param (a, inst.size (), src1, src1p);
4054
4054
4055
4055
a.emit (opcode, dst, src1, src2p.immediate ());
4056
4056
}
4057
4057
else if ((inst.size () == 8 ) && src1p.is_immediate () && is_valid_immediate_mask (src1p.immediate (), 4 ) && (!inst.flags () || !BIT (src1p.immediate (), 31 )))
4058
4058
{
4059
- const a64::Gp src2 = src2p.select_register (TEMP_REG1 , inst.size ());
4059
+ const a64::Gp src2 = src2p.select_register (dst , inst.size ());
4060
4060
mov_reg_param (a, inst.size (), src2, src2p);
4061
4061
4062
4062
a.emit (opcode, dst.w (), src2.w (), src1p.immediate ());
4063
4063
}
4064
4064
else if ((inst.size () == 8 ) && src2p.is_immediate () && is_valid_immediate_mask (src2p.immediate (), 4 ) && (!inst.flags () || !BIT (src2p.immediate (), 31 )))
4065
4065
{
4066
- const a64::Gp src1 = src1p.select_register (TEMP_REG1 , inst.size ());
4066
+ const a64::Gp src1 = src1p.select_register (dst , inst.size ());
4067
4067
mov_reg_param (a, inst.size (), src1, src1p);
4068
4068
4069
4069
a.emit (opcode, dst.w (), src1.w (), src2p.immediate ());
4070
4070
}
4071
4071
else
4072
4072
{
4073
- const a64::Gp src1 = src1p.select_register (TEMP_REG1 , inst.size ());
4074
- const a64::Gp src2 = src2p.select_register (TEMP_REG2 , inst.size ());
4073
+ const a64::Gp src1 = src1p.select_register (dst , inst.size ());
4074
+ const a64::Gp src2 = src2p.select_register (TEMP_REG1 , inst.size ());
4075
4075
mov_reg_param (a, inst.size (), src1, src1p);
4076
4076
mov_reg_param (a, inst.size (), src2, src2p);
4077
4077
0 commit comments