about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-08 18:45:29 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-08 18:45:29 +0100
commit0bb2043f975a84d17a3dd8ef0e63181f6668fba7 (patch)
tree0518e972ea3c723e7254bb0e1eae6e6dd94c5939 /src
parent62c22e55e704edd4cd5fdb0b95eb9f9f79bc37fe (diff)
downloadbox64-0bb2043f975a84d17a3dd8ef0e63181f6668fba7.tar.gz
box64-0bb2043f975a84d17a3dd8ef0e63181f6668fba7.zip
Fixed va_list conversion for aarch64
Diffstat (limited to 'src')
-rwxr-xr-xsrc/include/myalign.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/include/myalign.h b/src/include/myalign.h
index 29de8c4f..c2c7214f 100755
--- a/src/include/myalign.h
+++ b/src/include/myalign.h
@@ -56,11 +56,11 @@ typedef struct  va_list {
 
 #define CONVERT_VALIST(A) \
   va_list sysv_varargs; \
-  sysv_varargs.__gr_offs=(2+A->gp_offset)*8;  \
-  sysv_varargs.__vr_offs=A->fp_offset;        \
-  sysv_varargs.stack=A->overflow_arg_area;    \
-  sysv_varargs.gr_top=A->reg_save_area + X64_VA_MAX_REG;  \
-  sysv_varargs.vr_top=A->reg_save_area + X64_VA_MAX_XMM;
+  sysv_varargs.__gr_offs=-(6*8)+A->gp_offset;  \
+  sysv_varargs.__vr_offs=-(8*16)+(A->fp_offset-X64_VA_MAX_REG);        \
+  sysv_varargs.__stack=A->overflow_arg_area;    \
+  sysv_varargs.__gr_top=A->reg_save_area + X64_VA_MAX_REG;  \
+  sysv_varargs.__vr_top=A->reg_save_area + X64_VA_MAX_XMM;
 
 #elif defined(__powerpc64__)
 // TODO, is this correct?