about summary refs log tree commit diff stats
path: root/src/main.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-02-05 20:35:31 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-02-05 20:35:31 +0100
commit399478d635c352a986aaa891ac824d840ae19e56 (patch)
treed254f8f669bee5132e03de0e3d2572d2bfc40302 /src/main.c
parent608c13ebbac542a0b9a70c0c1e86192208715176 (diff)
downloadbox64-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.c11
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");
         }