Fix movk to not overwrite entire register for large scalars w/ S
This commit is contained in:
parent
7b1e6314a7
commit
95c74964b3
@ -169,7 +169,7 @@ static void executeDPImmediate(Machine *state, a64inst_instruction *inst) {
|
|||||||
|
|
||||||
case(a64inst_MOVK):;
|
case(a64inst_MOVK):;
|
||||||
dword result = readRegister(state, dest, regType);
|
dword result = readRegister(state, dest, regType);
|
||||||
result = (result & ~(((1 << DPI_WIDEMOV_SHIFT) - 1) << shiftScalar * DPI_WIDEMOV_SHIFT)) | wideMovImm;
|
result = (result & ~(((1lu << DPI_WIDEMOV_SHIFT) - 1) << shiftScalar * DPI_WIDEMOV_SHIFT)) | wideMovImm;
|
||||||
writeRegister(state, dest, regType, result);
|
writeRegister(state, dest, regType, result);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user