diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-05-07 15:54:37 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-05-07 15:54:37 +0200 |
| commit | 47ecde75ec19a58f458c1131ec1968d11d58e7e1 (patch) | |
| tree | acc6ba0ff0c80e3a5dda29087921fbd784134fe4 /src | |
| parent | 07948ff6a7356c61ee192b40b975db2792b53e1f (diff) | |
| download | box64-47ecde75ec19a58f458c1131ec1968d11d58e7e1.tar.gz box64-47ecde75ec19a58f458c1131ec1968d11d58e7e1.zip | |
[DYNAREC] Added BOX64_DYNAREC_MISSING to only print dynarec missing opcode
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_pass0.h | 2 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_pass0.h | 2 | ||||
| -rwxr-xr-x | src/include/debug.h | 1 | ||||
| -rwxr-xr-x | src/main.c | 10 | ||||
| -rw-r--r-- | src/tools/rcfile.c | 2 |
5 files changed, 15 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_pass0.h b/src/dynarec/arm64/dynarec_arm64_pass0.h index aabb3a9b..cd1cdc6a 100755 --- a/src/dynarec/arm64/dynarec_arm64_pass0.h +++ b/src/dynarec/arm64/dynarec_arm64_pass0.h @@ -40,7 +40,7 @@ #define DEFAULT \ --dyn->size; \ *ok = -1; \ - if(box64_dynarec_log>=LOG_INFO || box64_dynarec_dump) {\ + if(box64_dynarec_log>=LOG_INFO || box64_dynarec_dump || box64_dynarec_missing) {\ dynarec_log(LOG_NONE, "%p: Dynarec stopped because of Opcode %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X", \ (void*)ip, PKip(0), \ PKip(1), PKip(2), PKip(3), \ diff --git a/src/dynarec/rv64/dynarec_rv64_pass0.h b/src/dynarec/rv64/dynarec_rv64_pass0.h index e2975eaa..debb052f 100644 --- a/src/dynarec/rv64/dynarec_rv64_pass0.h +++ b/src/dynarec/rv64/dynarec_rv64_pass0.h @@ -40,7 +40,7 @@ #define DEFAULT \ --dyn->size; \ *ok = -1; \ - if(box64_dynarec_log>=LOG_INFO || box64_dynarec_dump) {\ + if(box64_dynarec_log>=LOG_INFO || box64_dynarec_dump || box64_dynarec_missing) {\ dynarec_log(LOG_NONE, "%p: Dynarec stopped because of Opcode %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X", \ (void*)ip, PKip(0), \ PKip(1), PKip(2), PKip(3), \ diff --git a/src/include/debug.h b/src/include/debug.h index 6f448fc7..2d899beb 100755 --- a/src/include/debug.h +++ b/src/include/debug.h @@ -27,6 +27,7 @@ extern int box64_dynarec_hotpage; extern int box64_dynarec_fastpage; extern int box64_dynarec_wait; extern int box64_dynarec_test; +extern int box64_dynarec_missing; #ifdef ARM64 extern int arm64_asimd; extern int arm64_aes; diff --git a/src/main.c b/src/main.c index df4bc65f..aebe557a 100755 --- a/src/main.c +++ b/src/main.c @@ -63,6 +63,7 @@ int box64_dynarec_fastpage = 0; int box64_dynarec_bleeding_edge = 1; int box64_dynarec_wait = 1; int box64_dynarec_test = 0; +int box64_dynarec_missing = 0; uintptr_t box64_nodynarec_start = 0; uintptr_t box64_nodynarec_end = 0; #ifdef ARM64 @@ -604,6 +605,15 @@ void LoadLogEnv() if(box64_dynarec_fastpage) printf_log(LOG_INFO, "Dynarec will use Fast HotPage\n"); } + p = getenv("BOX64_DYNAREC_MISSING"); + if(p) { + if(strlen(p)==1) { + if(p[0]>='0' && p[0]<='1') + box64_dynarec_missing = p[0]-'0'; + } + if(box64_dynarec_missing) + printf_log(LOG_INFO, "Dynarec will print missing opcodes\n"); + } p = getenv("BOX64_NODYNAREC"); if(p) { if (strchr(p,'-')) { diff --git a/src/tools/rcfile.c b/src/tools/rcfile.c index 16bbfefa..e0aae458 100644 --- a/src/tools/rcfile.c +++ b/src/tools/rcfile.c @@ -131,6 +131,7 @@ ENTRYBOOL(BOX64_DYNAREC_FASTPAGE, box64_dynarec_fastpage) \ ENTRYBOOL(BOX64_DYNAREC_WAIT, box64_dynarec_wait) \ ENTRYSTRING_(BOX64_NODYNAREC, box64_nodynarec) \ ENTRYBOOL(BOX64_DYNAREC_TEST, box64_dynarec_test) \ +ENTRYBOOL(BOX64_DYNAREC_MISSING, box64_dynarec_missing) \ #else #define SUPER3() \ @@ -151,6 +152,7 @@ IGNORE(BOX64_DYNAREC_FASTPAGE) \ IGNORE(BOX64_DYNAREC_WAIT) \ IGNORE(BOX64_NODYNAREC) \ IGNORE(BOX64_DYNAREC_TEST) \ +IGNORE(BOX64_DYNAREC_MISSING) \ #endif |