From 8a732e4bd2e59de5111d97bcc672e8afaebabbe3 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 21 Dec 2015 16:21:15 +0200 Subject: [PATCH] x64 JIT FLDCW R12 register crash workaround. --- jit/codegen_x86.cpp | 3 ++- jit/compemu_raw_x86.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/jit/codegen_x86.cpp b/jit/codegen_x86.cpp index b89f267c..64d9f21d 100644 --- a/jit/codegen_x86.cpp +++ b/jit/codegen_x86.cpp @@ -105,11 +105,12 @@ only target, and it's easier this way... */ #define STACK_SHADOW_SPACE 0 #endif -uae_s8 always_used[]={4,-1}; #if defined(CPU_x86_64) +uae_s8 always_used[] = { 4, 12, -1 }; uae_s8 can_byte[]={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,-1}; uae_s8 can_word[]={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,-1}; #else +uae_s8 always_used[] = { 4, -1 }; uae_s8 can_byte[]={0,1,2,3,-1}; uae_s8 can_word[]={0,1,2,3,5,6,7,-1}; #endif diff --git a/jit/compemu_raw_x86.cpp b/jit/compemu_raw_x86.cpp index 41835f7b..9d44571b 100644 --- a/jit/compemu_raw_x86.cpp +++ b/jit/compemu_raw_x86.cpp @@ -61,11 +61,12 @@ only target, and it's easier this way... */ #define STACK_ALIGN 16 #define STACK_OFFSET sizeof(void *) -uae_u8 always_used[]={4,0xff}; #if defined(__x86_64__) +uae_u8 always_used[] = { 4, 12, 0xff }; uae_s8 can_byte[]={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,-1}; uae_s8 can_word[]={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,-1}; #else +uae_u8 always_used[] = { 4, 0xff }; uae_u8 can_byte[]={0,1,2,3,0xff}; uae_u8 can_word[]={0,1,2,3,5,6,7,0xff}; #endif -- 2.47.3