From 0f73133debd70f02a2447038c60378c2049b2486 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 5 Mar 2021 19:17:59 +0100 Subject: Fixed myalign handling for long double on ARM64 --- src/libtools/myalign.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libtools') diff --git a/src/libtools/myalign.c b/src/libtools/myalign.c index be5773f8..0d5190f4 100755 --- a/src/libtools/myalign.c +++ b/src/libtools/myalign.c @@ -103,7 +103,9 @@ void myStackAlign(x64emu_t* emu, const char* fmt, uint64_t* st, uint64_t* mystac memcpy(mystack, st, 16); st+=2; mystack+=2; #else - // there is 128bits long double on ARM64 + // there is 128bits long double on ARM64, but they need 128bit alignment + if((((uintptr_t)mystack)&0xf)!=0) + mystack++; LD2D((void*)st, &d); ld = d ; memcpy(mystack, &ld, 16); -- cgit 1.4.1