Fixed bug with movk overwriting wrong bits w/ S

This commit is contained in:
Themis Demetriades 2024-06-05 23:43:36 +01:00
parent a3dd809437
commit 40c5fac9f6

View File

@ -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)) | wideMovImm; result = (result & ~(((1 << DPI_WIDEMOV_SHIFT) - 1) << shiftScalar * DPI_WIDEMOV_SHIFT)) | wideMovImm;
writeRegister(state, dest, regType, result); writeRegister(state, dest, regType, result);
break; break;