From 1853c381304a6af79af5d70221d39978e0e97412 Mon Sep 17 00:00:00 2001 From: gbeauche <> Date: Sun, 24 Apr 2005 17:22:49 +0000 Subject: [PATCH] fix inline asm for gcc4 --- .../kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp | 23 ++++++++++--------- .../kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/SheepShaver/src/kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp b/SheepShaver/src/kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp index 3ed2ef76..43c55f47 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/jit/basic-dyngen-ops.cpp @@ -340,17 +340,18 @@ void OPPROTO op_jmp_A0(void) // Register calling conventions based arches don't need a stack frame #if defined(__powerpc__) || defined(__x86_64__) -#define DEFINE_OP(NAME, CODE) \ -static void OPPROTO impl_##NAME(void) __attribute__((used)); \ -void OPPROTO impl_##NAME(void) \ -{ \ - asm volatile (#NAME ":"); \ - CODE; \ - FORCE_RET(); \ - asm volatile ("." #NAME ":"); \ - asm volatile (ASM_SIZE(NAME)); \ -} \ -void OPPROTO helper_##NAME(void) __attribute__((weak, alias(#NAME))); +#define DEFINE_OP(NAME, CODE) \ +static void OPPROTO impl_##NAME(void) __attribute__((used)); \ +void OPPROTO impl_##NAME(void) \ +{ \ + asm volatile (#NAME ":"); \ + CODE; \ + FORCE_RET(); \ + asm volatile ("." #NAME ":"); \ + asm volatile (ASM_SIZE(NAME)); \ +} \ +asm(".weak " #NAME); \ +asm(".set helper_" #NAME "," #NAME); #else #define DEFINE_OP(NAME, CODE) \ void OPPROTO NAME(void) \ diff --git a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp index 81fd30da..a0170c68 100644 --- a/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp +++ b/SheepShaver/src/kpx_cpu/src/cpu/ppc/ppc-dyngen-ops.cpp @@ -601,7 +601,7 @@ void OPPROTO op_spcflags_clear(void) #ifdef DYNGEN_FAST_DISPATCH #if defined(__x86_64__) #define FAST_COMPARE_SPECFLAGS_DISPATCH(SPCFLAGS, TARGET) \ - asm volatile ("test %0,%0 ; jz " #TARGET : "+r" (SPCFLAGS)) + asm volatile ("test %0,%0 ; jz " #TARGET : : "r" (SPCFLAGS)) #endif #ifndef FAST_COMPARE_SPECFLAGS_DISPATCH #define FAST_COMPARE_SPECFLAGS_DISPATCH(SPCFLAGS, TARGET) \