mirror of
https://github.com/xenia-project/xenia.git
synced 2026-03-17 02:35:00 +01:00
[a64] Fix OPCODE_VECTOR_SHA(constant)
Values should be modulo-element-size
This commit is contained in:
parent
41eeae16f5
commit
e2d141e505
|
|
@ -819,7 +819,7 @@ struct VECTOR_SHA_V128
|
|||
}
|
||||
if (all_same) {
|
||||
// Every count is the same, so we can use SSHR
|
||||
e.SSHR(i.dest.reg().B16(), i.src1.reg().B16(), shamt.u8[0]);
|
||||
e.SSHR(i.dest.reg().B16(), i.src1.reg().B16(), shamt.u8[0] & 0x7);
|
||||
return;
|
||||
}
|
||||
e.ADD(e.GetNativeParam(1), XSP, e.StashConstantV(1, i.src2.constant()));
|
||||
|
|
@ -843,7 +843,7 @@ struct VECTOR_SHA_V128
|
|||
}
|
||||
if (all_same) {
|
||||
// Every count is the same, so we can use SSHR
|
||||
e.SSHR(i.dest.reg().H8(), i.src1.reg().H8(), shamt.u16[0]);
|
||||
e.SSHR(i.dest.reg().H8(), i.src1.reg().H8(), shamt.u16[0] & 0xF);
|
||||
return;
|
||||
}
|
||||
e.ADD(e.GetNativeParam(1), XSP, e.StashConstantV(1, i.src2.constant()));
|
||||
|
|
@ -867,7 +867,7 @@ struct VECTOR_SHA_V128
|
|||
}
|
||||
if (all_same) {
|
||||
// Every count is the same, so we can use SSHR
|
||||
e.SSHR(i.dest.reg().S4(), i.src1.reg().S4(), shamt.u32[0]);
|
||||
e.SSHR(i.dest.reg().S4(), i.src1.reg().S4(), shamt.u32[0] & 0x1F);
|
||||
return;
|
||||
}
|
||||
e.ADD(e.GetNativeParam(1), XSP, e.StashConstantV(1, i.src2.constant()));
|
||||
|
|
|
|||
Loading…
Reference in a new issue