diff options
Diffstat (limited to 'src/dynarec/rv64/dynarec_rv64_66.c')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_66.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_66.c b/src/dynarec/rv64/dynarec_rv64_66.c index 0e13192b..d7183e1b 100644 --- a/src/dynarec/rv64/dynarec_rv64_66.c +++ b/src/dynarec/rv64/dynarec_rv64_66.c @@ -1012,7 +1012,7 @@ uintptr_t dynarec64_66(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni MOV32w(x2, 1); } else { INST_NAME("ROL Ew, CL"); - ANDI(x2, xRCX, 15); + ANDI(x2, xRCX, 0x1f); } MESSAGE(LOG_DUMP, "Need Optimization\n"); SETFLAGS(X_OF|X_CF, SF_SET_DF); @@ -1026,7 +1026,7 @@ uintptr_t dynarec64_66(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni MOV32w(x2, 1); } else { INST_NAME("ROR Ew, CL"); - ANDI(x2, xRCX, 15); + ANDI(x2, xRCX, 0x1f); } MESSAGE(LOG_DUMP, "Need Optimization\n"); SETFLAGS(X_OF|X_CF, SF_SET_DF); @@ -1040,7 +1040,7 @@ uintptr_t dynarec64_66(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni MOV32w(x2, 1); } else { INST_NAME("RCL Ew, CL"); - ANDI(x2, xRCX, 15); + ANDI(x2, xRCX, 0x1f); } MESSAGE("LOG_DUMP", "Need optimization\n"); READFLAGS(X_CF); @@ -1048,13 +1048,14 @@ uintptr_t dynarec64_66(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni GETEW(x1, 1); CALL_(rcl16, x1, x3); EWBACK; + break; case 3: if(opcode==0xD1) { INST_NAME("RCR Ew, 1"); MOV32w(x2, 1); } else { INST_NAME("RCR Ew, CL"); - ANDI(x2, xRCX, 15); + ANDI(x2, xRCX, 0x1f); } MESSAGE("LOG_DUMP", "Need optimization\n"); READFLAGS(X_CF); @@ -1062,6 +1063,7 @@ uintptr_t dynarec64_66(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni GETEW(x1, 1); CALL_(rcr16, x1, x3); EWBACK; + break; case 5: if(opcode==0xD1) { INST_NAME("SHR Ew, 1"); |