diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-02-05 20:35:31 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-02-05 20:35:31 +0100 |
| commit | 399478d635c352a986aaa891ac824d840ae19e56 (patch) | |
| tree | d254f8f669bee5132e03de0e3d2572d2bfc40302 /src/main.c | |
| parent | 608c13ebbac542a0b9a70c0c1e86192208715176 (diff) | |
| download | box64-399478d635c352a986aaa891ac824d840ae19e56.tar.gz box64-399478d635c352a986aaa891ac824d840ae19e56.zip | |
[ARM64_DYNAREC] Added BOX64_DYNAREC_DIV0 option to check/trigger Divide by 0 when needed
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c index ed3a1525..cdc91fe0 100644 --- a/src/main.c +++ b/src/main.c @@ -65,6 +65,7 @@ int box64_dynarec_bigblock = 1; int box64_dynarec_forward = 128; int box64_dynarec_strongmem = 0; int box64_dynarec_x87double = 0; +int box64_dynarec_div0 = 0; int box64_dynarec_fastnan = 1; int box64_dynarec_fastround = 1; int box64_dynarec_safeflags = 1; @@ -622,6 +623,15 @@ void LoadLogEnv() if(box64_dynarec_x87double) printf_log(LOG_INFO, "Dynarec will use only double for x87 emulation\n"); } + p = getenv("BOX64_DYNAREC_DIV0"); + if(p) { + if(strlen(p)==1) { + if(p[0]>='0' && p[0]<='1') + box64_dynarec_div0 = p[0]-'0'; + } + if(box64_dynarec_div0) + printf_log(LOG_INFO, "Dynarec will check for divide by 0\n"); + } p = getenv("BOX64_DYNAREC_FASTNAN"); if(p) { if(strlen(p)==1) { @@ -736,6 +746,7 @@ void LoadLogEnv() box64_dynarec_fastnan = 0; box64_dynarec_fastround = 0; box64_dynarec_x87double = 1; + box64_dynarec_div0 = 1; box64_dynarec_callret = 0; printf_log(LOG_INFO, "Dynarec will compare it's execution with the interpreter (super slow, only for testing)\n"); } |