about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2023-05-16 22:55:34 +0800
committerGitHub <noreply@github.com>2023-05-16 16:55:34 +0200
commitd61f3e79e23ed0c2139361091603fd4dc627bccb (patch)
tree35b806bbc3e5ad3182a234b07dad8d1a4797bdb5 /src
parent1d58879ae5fd508c140a03be842751419f264068 (diff)
downloadbox64-d61f3e79e23ed0c2139361091603fd4dc627bccb.tar.gz
box64-d61f3e79e23ed0c2139361091603fd4dc627bccb.zip
[WRAPPER] Fixed stack align on varargs (for #789) (#790)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/include/myalign.h2
-rwxr-xr-xsrc/libtools/myalign.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/src/include/myalign.h b/src/include/myalign.h
index 1a0f60bf..247ea1b9 100755
--- a/src/include/myalign.h
+++ b/src/include/myalign.h
@@ -214,4 +214,4 @@ void AlignSemidDs(void *dest, const void* source);
 
 uintptr_t getVArgs(x64emu_t* emu, int pos, uintptr_t* b, int N);
 
-#endif  //__MY_ALIGN__H_
\ No newline at end of file
+#endif  //__MY_ALIGN__H_
diff --git a/src/libtools/myalign.c b/src/libtools/myalign.c
index 3d2e49a0..36873cba 100755
--- a/src/libtools/myalign.c
+++ b/src/libtools/myalign.c
@@ -717,7 +717,7 @@ void myStackAlignValist(x64emu_t* emu, const char* fmt, uint64_t* mystack, x64_v
             case 15:    //%zg, meh.. double?
                 if(fprs<X64_VA_MAX_XMM) {
                     *mystack = area[fprs/8];
-                    fprs+=8;
+                    fprs+=16;
                     mystack++;
                 } else {
                     *mystack = *st;
@@ -862,7 +862,7 @@ void myStackAlignWValist(x64emu_t* emu, const char* fmt, uint64_t* mystack, x64_
             case 15:    //%zg, meh .. double
                 if(fprs<X64_VA_MAX_XMM) {
                     *mystack = area[fprs/8];
-                    fprs+=8;
+                    fprs+=16;
                     mystack++;
                 } else {
                     *mystack = *st;
@@ -1130,4 +1130,4 @@ void myStackAlignScanfWValist(x64emu_t* emu, const char* fmt, uint64_t* mystack,
     }
 }
 
-#endif
\ No newline at end of file
+#endif