mirror of
https://github.com/kanjitalk755/macemu.git
synced 2024-07-05 09:28:57 +00:00
fix inline asm for gcc4
This commit is contained in:
parent
57169c7923
commit
1853c38130
@ -340,17 +340,18 @@ void OPPROTO op_jmp_A0(void)
|
|||||||
|
|
||||||
// Register calling conventions based arches don't need a stack frame
|
// Register calling conventions based arches don't need a stack frame
|
||||||
#if defined(__powerpc__) || defined(__x86_64__)
|
#if defined(__powerpc__) || defined(__x86_64__)
|
||||||
#define DEFINE_OP(NAME, CODE) \
|
#define DEFINE_OP(NAME, CODE) \
|
||||||
static void OPPROTO impl_##NAME(void) __attribute__((used)); \
|
static void OPPROTO impl_##NAME(void) __attribute__((used)); \
|
||||||
void OPPROTO impl_##NAME(void) \
|
void OPPROTO impl_##NAME(void) \
|
||||||
{ \
|
{ \
|
||||||
asm volatile (#NAME ":"); \
|
asm volatile (#NAME ":"); \
|
||||||
CODE; \
|
CODE; \
|
||||||
FORCE_RET(); \
|
FORCE_RET(); \
|
||||||
asm volatile ("." #NAME ":"); \
|
asm volatile ("." #NAME ":"); \
|
||||||
asm volatile (ASM_SIZE(NAME)); \
|
asm volatile (ASM_SIZE(NAME)); \
|
||||||
} \
|
} \
|
||||||
void OPPROTO helper_##NAME(void) __attribute__((weak, alias(#NAME)));
|
asm(".weak " #NAME); \
|
||||||
|
asm(".set helper_" #NAME "," #NAME);
|
||||||
#else
|
#else
|
||||||
#define DEFINE_OP(NAME, CODE) \
|
#define DEFINE_OP(NAME, CODE) \
|
||||||
void OPPROTO NAME(void) \
|
void OPPROTO NAME(void) \
|
||||||
|
@ -601,7 +601,7 @@ void OPPROTO op_spcflags_clear(void)
|
|||||||
#ifdef DYNGEN_FAST_DISPATCH
|
#ifdef DYNGEN_FAST_DISPATCH
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
#define FAST_COMPARE_SPECFLAGS_DISPATCH(SPCFLAGS, TARGET) \
|
#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
|
#endif
|
||||||
#ifndef FAST_COMPARE_SPECFLAGS_DISPATCH
|
#ifndef FAST_COMPARE_SPECFLAGS_DISPATCH
|
||||||
#define FAST_COMPARE_SPECFLAGS_DISPATCH(SPCFLAGS, TARGET) \
|
#define FAST_COMPARE_SPECFLAGS_DISPATCH(SPCFLAGS, TARGET) \
|
||||||
|
Loading…
Reference in New Issue
Block a user