about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-05-20 00:39:33 +0200
committerGitHub <noreply@github.com>2025-05-20 00:39:33 +0200
commit58021bbf42c3e5a5b1eddba0e5d649b1d91a8189 (patch)
tree2eec59b50bdbf1d88b598213af6467c57ff9d567 /src
parent37eb5492ba5d58672620d77e01b1bd497cce00d9 (diff)
parent45d3cbd1b47bfe8182c14a42d552a1a13530b988 (diff)
downloadbox64-58021bbf42c3e5a5b1eddba0e5d649b1d91a8189.tar.gz
box64-58021bbf42c3e5a5b1eddba0e5d649b1d91a8189.zip
Merge pull request #2647 from AndreRH/wowbox64
wow64 part3 (dont squash)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/arm64_epilog.S3
-rw-r--r--src/dynarec/arm64/arm64_next.S3
-rw-r--r--src/emu/x64emu_private.h3
3 files changed, 9 insertions, 0 deletions
diff --git a/src/dynarec/arm64/arm64_epilog.S b/src/dynarec/arm64/arm64_epilog.S
index 57f23200..4a15895b 100644
--- a/src/dynarec/arm64/arm64_epilog.S
+++ b/src/dynarec/arm64/arm64_epilog.S
@@ -19,6 +19,9 @@ arm64_epilog:
     stp     x24, x25, [x0, (8 * 14)]
     stp     x26, x27, [x0, (8 * 16)] // put back reg value in emu, including EIP (so x27 must be EIP now)
     //restore all used register
+#ifdef _WIN32
+    ldr     x18, [x0, 3120]
+#endif
     add     sp, x28, 0
     //vpop     {d8-d15}
     ldp     x19, x20, [sp, (8 * 0)]
diff --git a/src/dynarec/arm64/arm64_next.S b/src/dynarec/arm64/arm64_next.S
index e900fbec..950b7dd3 100644
--- a/src/dynarec/arm64/arm64_next.S
+++ b/src/dynarec/arm64/arm64_next.S
@@ -22,6 +22,9 @@ arm64_next:
     stp     x16, x17, [sp, (8 *  8)]
     stp     x18, x27, [sp, (8 * 10)]    // also save x27(rip) to allow change in LinkNext
 
+#ifdef _WIN32
+    ldr     x18, [x0, 3120]
+#endif
     mov     x2, x30      // "from" is in lr, so put in x2
     add     x3, sp, 8*11    // x3 is address to change rip
     // call the function
diff --git a/src/emu/x64emu_private.h b/src/emu/x64emu_private.h
index 21f270f1..15e85fa4 100644
--- a/src/emu/x64emu_private.h
+++ b/src/emu/x64emu_private.h
@@ -124,6 +124,9 @@ typedef struct x64emu_s {
     uintptr_t   old_savedsp;
     #endif
 
+    #ifdef _WIN32
+    uint64_t    win64_teb;
+    #endif
     int         type;       // EMUTYPE_xxx define
     #ifdef BOX32
     int         libc_err;   // copy of errno from libc