Skip to content

Commit 5ec8060

Browse files
committed
[ARM64_DYNAREC] Small change on CALLRET macro for later use
1 parent 2fdfc4a commit 5ec8060

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

src/dynarec/arm64/dynarec_arm64_00.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3826,7 +3826,7 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
38263826
else
38273827
j64 = addr+i32;
38283828
jump_to_next(dyn, j64, 0, ninst, rex.is32bits);
3829-
if(BOX64DRENV(dynarec_callret)>1) CALLRET_RET();
3829+
CALLRET_RET();
38303830
if (BOX64DRENV(dynarec_callret) && addr >= (dyn->start + dyn->isize)) {
38313831
// jumps out of current dynablock...
38323832
MARK;
@@ -4527,7 +4527,7 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
45274527
}
45284528
PUSH1z(xRIP);
45294529
jump_to_next(dyn, 0, ed, ninst, rex.is32bits);
4530-
if(BOX64DRENV(dynarec_callret)>1) CALLRET_RET();
4530+
CALLRET_RET();
45314531
if (BOX64DRENV(dynarec_callret) && addr >= (dyn->start + dyn->isize)) {
45324532
// jumps out of current dynablock...
45334533
MARK;

src/dynarec/arm64/dynarec_arm64_helper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,7 @@
875875
#endif
876876

877877
#ifndef CALLRET_RET
878-
#define CALLRET_RET() NOP
878+
#define CALLRET_RET() do {if(BOX64DRENV(dynarec_callret)>1) {NOP;}} while(0)
879879
#endif
880880
#ifndef CALLRET_GETRET
881881
#define CALLRET_GETRET() (dyn->callrets?(dyn->callrets[dyn->callret_size].offs-dyn->native_size):0)

src/dynarec/arm64/dynarec_arm64_pass2.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@
2929
AddRelocTable64Const(dyn, ninst, (V), 2); \
3030
Table64(dyn, getConst(V), 2); EMIT(0); \
3131
} while(0)
32-
#define FTABLE64(A, V) do {mmx87_regs_t v = {.d = V}; Table64(dyn, v.q, 2); EMIT(0);} while(0)
33-
#define CALLRET_RET() do {dyn->callrets[dyn->callret_size].type = 0; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP); } while(0)
34-
#define CALLRET_LOOP() do {dyn->callrets[dyn->callret_size].type = 1; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP); } while(0)
32+
#define FTABLE64(A, V) do { mmx87_regs_t v = {.d = V}; Table64(dyn, v.q, 2); EMIT(0); } while(0)
33+
#define CALLRET_RET() do { if(BOX64DRENV(dynarec_callret)>1) {dyn->callrets[dyn->callret_size].type = 0; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP);} } while(0)
34+
#define CALLRET_LOOP() do { dyn->callrets[dyn->callret_size].type = 1; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP); } while(0)

src/dynarec/arm64/dynarec_arm64_pass3.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,5 @@
4242
MESSAGE(LOG_DUMP, " Table64C: 0x%lx\n", (V)); LDRx_literal(A, val64offset);\
4343
} while(0)
4444
#define FTABLE64(A, V) do {mmx87_regs_t v = {.d = V}; int val64offset = Table64(dyn, v.q, 3); MESSAGE(LOG_DUMP, " FTable64: %g\n", v.d); VLDR64_literal(A, val64offset);} while(0)
45-
#define CALLRET_RET() do {dyn->callrets[dyn->callret_size].type = 0; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP); } while(0)
45+
#define CALLRET_RET() do { if(BOX64DRENV(dynarec_callret)>1) {dyn->callrets[dyn->callret_size].type = 0; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP);} } while(0)
4646
#define CALLRET_LOOP() do {dyn->callrets[dyn->callret_size].type = 1; dyn->callrets[dyn->callret_size++].offs = dyn->native_size; EMIT(ARCH_NOP); } while(0)

0 commit comments

Comments
 (0)