diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-05 19:17:59 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-05 19:17:59 +0100 |
| commit | 0f73133debd70f02a2447038c60378c2049b2486 (patch) | |
| tree | 2a7e9a24dee5346d0a5e51258b87af3806d9fe39 /src | |
| parent | 90c81ecaa3c2974b105d951556104946e5317493 (diff) | |
| download | box64-0f73133debd70f02a2447038c60378c2049b2486.tar.gz box64-0f73133debd70f02a2447038c60378c2049b2486.zip | |
Fixed myalign handling for long double on ARM64
Diffstat (limited to 'src')
| -rwxr-xr-x | src/libtools/myalign.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |