Fix ROR shift logic

This commit is contained in:
Themis Demetriades 2024-06-06 13:19:36 +01:00
parent d73111515e
commit 460b19aaf4

View File

@ -225,7 +225,7 @@ static void executeDPRegister(Machine *state, a64inst_instruction *inst) {
if (arithmLogicData->type != a64inst_DPR_LOGIC) {
fprintf(stderr, "Attempting to perform ROR shift on non-logic register data processing instruction!\n");
}
src2Val = truncateValue(src2Val >> shiftAmount | src2Val << (getMSBPos(regType) - shiftAmount), regType);
src2Val = truncateValue(src2Val >> shiftAmount | src2Val << (getMSBPos(regType) - shiftAmount + 1), regType);
break;
default: