Arm64Emitter: Fix Q bit of vector SHL/URSHR encoding
This doesn't affect any existing callers, because all existing callers use quad registers.
This commit is contained in:
1 parent
ff82ae3b5c
commit
84261cfc23
1 file changed
+2
-2
@@ -3664,7 +3664,7 @@ void ARM64FloatEmitter::SHL(u8 src_size, ARM64Reg Rd, ARM64Reg Rn, u32 shift)
|
|||||||
{
|
{
|
||||||
ASSERT_MSG(DYNA_REC, shift < src_size, "Shift amount must be less than the element size! {} {}",
|
ASSERT_MSG(DYNA_REC, shift < src_size, "Shift amount must be less than the element size! {} {}",
|
||||||
shift, src_size);
|
shift, src_size);
|
||||||
EmitShiftImm(1, 0, src_size | shift, 0b01010, Rd, Rn);
|
EmitShiftImm(IsQuad(Rd), 0, src_size | shift, 0b01010, Rd, Rn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARM64FloatEmitter::SSHLL(u8 src_size, ARM64Reg Rd, ARM64Reg Rn, u32 shift, bool upper)
|
void ARM64FloatEmitter::SSHLL(u8 src_size, ARM64Reg Rd, ARM64Reg Rn, u32 shift, bool upper)
|
||||||
@@ -3678,7 +3678,7 @@ void ARM64FloatEmitter::URSHR(u8 src_size, ARM64Reg Rd, ARM64Reg Rn, u32 shift)
|
|||||||
{
|
{
|
||||||
ASSERT_MSG(DYNA_REC, shift < src_size, "Shift amount must be less than the element size! {} {}",
|
ASSERT_MSG(DYNA_REC, shift < src_size, "Shift amount must be less than the element size! {} {}",
|
||||||
shift, src_size);
|
shift, src_size);
|
||||||
EmitShiftImm(1, 1, src_size * 2 - shift, 0b00100, Rd, Rn);
|
EmitShiftImm(IsQuad(Rd), 1, src_size * 2 - shift, 0b00100, Rd, Rn);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARM64FloatEmitter::USHLL(u8 src_size, ARM64Reg Rd, ARM64Reg Rn, u32 shift, bool upper)
|
void ARM64FloatEmitter::USHLL(u8 src_size, ARM64Reg Rd, ARM64Reg Rn, u32 shift, bool upper)
|
||||||
|
|||||||
Reference in new issue
Block a user