diff --git a/dyngen-exec.h b/dyngen-exec.h index d028126973..cc2502e68e 100644 --- a/dyngen-exec.h +++ b/dyngen-exec.h @@ -198,9 +198,6 @@ extern int printf(const char *, ...); #error unsupported CPU #endif -/* force GCC to generate only one epilog at the end of the function */ -#define FORCE_RET() __asm__ __volatile__("" : : : "memory"); - #define xglue(x, y) x ## y #define glue(x, y) xglue(x, y) #define stringify(s) tostring(s) diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c index 84a3d157d4..04828d0288 100644 --- a/target-arm/op_helper.c +++ b/target-arm/op_helper.c @@ -509,7 +509,6 @@ void HELPER(neon_trn_u8)(void) rm = ((T1 & 0xff00ff00) >> 8) | (T0 & 0xff00ff00); T0 = rd; T1 = rm; - FORCE_RET(); } void HELPER(neon_trn_u16)(void) @@ -520,7 +519,6 @@ void HELPER(neon_trn_u16)(void) rm = (T1 >> 16) | (T0 & 0xffff0000); T0 = rd; T1 = rm; - FORCE_RET(); } /* Worker routines for zip and unzip. */ @@ -534,7 +532,6 @@ void HELPER(neon_unzip_u8)(void) | ((T1 << 8) & 0xff0000) | (T1 & 0xff000000); T0 = rd; T1 = rm; - FORCE_RET(); } void HELPER(neon_zip_u8)(void) @@ -547,7 +544,6 @@ void HELPER(neon_zip_u8)(void) | ((T0 >> 8) & 0xff0000) | (T1 & 0xff000000); T0 = rd; T1 = rm; - FORCE_RET(); } void HELPER(neon_zip_u16)(void) @@ -557,5 +553,4 @@ void HELPER(neon_zip_u16)(void) tmp = (T0 & 0xffff) | (T1 << 16); T1 = (T1 & 0xffff0000) | (T0 >> 16); T0 = tmp; - FORCE_RET(); } diff --git a/target-cris/exec.h b/target-cris/exec.h index ec7346acd9..e82c04a7f5 100644 --- a/target-cris/exec.h +++ b/target-cris/exec.h @@ -25,8 +25,6 @@ register struct CPUCRISState *env asm(AREG0); #include "cpu.h" #include "exec-all.h" -#define RETURN() __asm__ __volatile__("" : : : "memory"); - static inline void env_to_regs(void) { } diff --git a/target-cris/op_helper.c b/target-cris/op_helper.c index 49bcebc4b9..a681f84f35 100644 --- a/target-cris/op_helper.c +++ b/target-cris/op_helper.c @@ -189,7 +189,6 @@ void helper_movl_reg_sreg (uint32_t reg, uint32_t sreg) } #endif env->regs[reg] = env->sregs[srs][sreg]; - RETURN(); } static void cris_ccs_rshift(CPUState *env) diff --git a/target-i386/op_helper.c b/target-i386/op_helper.c index 6dc0802f69..d32a6a3d97 100644 --- a/target-i386/op_helper.c +++ b/target-i386/op_helper.c @@ -1745,7 +1745,6 @@ void helper_aaa(void) } EAX = (EAX & ~0xffff) | al | (ah << 8); CC_SRC = eflags; - FORCE_RET(); } void helper_aas(void) @@ -1770,7 +1769,6 @@ void helper_aas(void) } EAX = (EAX & ~0xffff) | al | (ah << 8); CC_SRC = eflags; - FORCE_RET(); } void helper_daa(void) @@ -1798,7 +1796,6 @@ void helper_daa(void) eflags |= parity_table[al]; /* pf */ eflags |= (al & 0x80); /* sf */ CC_SRC = eflags; - FORCE_RET(); } void helper_das(void) @@ -1829,7 +1826,6 @@ void helper_das(void) eflags |= parity_table[al]; /* pf */ eflags |= (al & 0x80); /* sf */ CC_SRC = eflags; - FORCE_RET(); } void helper_into(int next_eip_addend) @@ -3553,7 +3549,6 @@ void helper_fcom_ST0_FT0(void) ret = floatx_compare(ST0, FT0, &env->fp_status); env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret + 1]; - FORCE_RET(); } void helper_fucom_ST0_FT0(void) @@ -3562,7 +3557,6 @@ void helper_fucom_ST0_FT0(void) ret = floatx_compare_quiet(ST0, FT0, &env->fp_status); env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret+ 1]; - FORCE_RET(); } static const int fcomi_ccval[4] = {CC_C, CC_Z, 0, CC_Z | CC_P | CC_C}; @@ -3576,7 +3570,6 @@ void helper_fcomi_ST0_FT0(void) eflags = helper_cc_compute_all(CC_OP); eflags = (eflags & ~(CC_Z | CC_P | CC_C)) | fcomi_ccval[ret + 1]; CC_SRC = eflags; - FORCE_RET(); } void helper_fucomi_ST0_FT0(void) @@ -3588,7 +3581,6 @@ void helper_fucomi_ST0_FT0(void) eflags = helper_cc_compute_all(CC_OP); eflags = (eflags & ~(CC_Z | CC_P | CC_C)) | fcomi_ccval[ret + 1]; CC_SRC = eflags; - FORCE_RET(); } void helper_fadd_ST0_FT0(void) @@ -3773,7 +3765,6 @@ void helper_fwait(void) { if (env->fpus & FPUS_SE) fpu_raise_exception(); - FORCE_RET(); } void helper_fninit(void) @@ -4629,7 +4620,6 @@ void helper_boundw(target_ulong a0, int v) if (v < low || v > high) { raise_exception(EXCP05_BOUND); } - FORCE_RET(); } void helper_boundl(target_ulong a0, int v) @@ -4640,7 +4630,6 @@ void helper_boundl(target_ulong a0, int v) if (v < low || v > high) { raise_exception(EXCP05_BOUND); } - FORCE_RET(); } static float approx_rsqrt(float a) diff --git a/target-i386/ops_sse.h b/target-i386/ops_sse.h index 720d97c47e..03623058b7 100644 --- a/target-i386/ops_sse.h +++ b/target-i386/ops_sse.h @@ -58,7 +58,6 @@ void glue(helper_psrlw, SUFFIX)(Reg *d, Reg *s) d->W(7) >>= shift; #endif } - FORCE_RET(); } void glue(helper_psraw, SUFFIX)(Reg *d, Reg *s) @@ -104,7 +103,6 @@ void glue(helper_psllw, SUFFIX)(Reg *d, Reg *s) d->W(7) <<= shift; #endif } - FORCE_RET(); } void glue(helper_psrld, SUFFIX)(Reg *d, Reg *s) @@ -125,7 +123,6 @@ void glue(helper_psrld, SUFFIX)(Reg *d, Reg *s) d->L(3) >>= shift; #endif } - FORCE_RET(); } void glue(helper_psrad, SUFFIX)(Reg *d, Reg *s) @@ -163,7 +160,6 @@ void glue(helper_pslld, SUFFIX)(Reg *d, Reg *s) d->L(3) <<= shift; #endif } - FORCE_RET(); } void glue(helper_psrlq, SUFFIX)(Reg *d, Reg *s) @@ -182,7 +178,6 @@ void glue(helper_psrlq, SUFFIX)(Reg *d, Reg *s) d->Q(1) >>= shift; #endif } - FORCE_RET(); } void glue(helper_psllq, SUFFIX)(Reg *d, Reg *s) @@ -201,7 +196,6 @@ void glue(helper_psllq, SUFFIX)(Reg *d, Reg *s) d->Q(1) <<= shift; #endif } - FORCE_RET(); } #if SHIFT == 1 @@ -216,7 +210,6 @@ void glue(helper_psrldq, SUFFIX)(Reg *d, Reg *s) d->B(i) = d->B(i + shift); for(i = 16 - shift; i < 16; i++) d->B(i) = 0; - FORCE_RET(); } void glue(helper_pslldq, SUFFIX)(Reg *d, Reg *s) @@ -230,7 +223,6 @@ void glue(helper_pslldq, SUFFIX)(Reg *d, Reg *s) d->B(i) = d->B(i - shift); for(i = 0; i < shift; i++) d->B(i) = 0; - FORCE_RET(); } #endif @@ -432,7 +424,6 @@ void glue(helper_pmaddwd, SUFFIX) (Reg *d, Reg *s) d->L(i) = (int16_t)s->W(2*i) * (int16_t)d->W(2*i) + (int16_t)s->W(2*i+1) * (int16_t)d->W(2*i+1); } - FORCE_RET(); } #if SHIFT == 0 @@ -479,7 +470,6 @@ void glue(helper_maskmov, SUFFIX) (Reg *d, Reg *s, target_ulong a0) if (s->B(i) & 0x80) stb(a0 + i, d->B(i)); } - FORCE_RET(); } void glue(helper_movl_mm_T0, SUFFIX) (Reg *d, uint32_t val) @@ -917,7 +907,6 @@ void helper_ucomiss(Reg *d, Reg *s) s1 = s->XMM_S(0); ret = float32_compare_quiet(s0, s1, &env->sse_status); CC_SRC = comis_eflags[ret + 1]; - FORCE_RET(); } void helper_comiss(Reg *d, Reg *s) @@ -929,7 +918,6 @@ void helper_comiss(Reg *d, Reg *s) s1 = s->XMM_S(0); ret = float32_compare(s0, s1, &env->sse_status); CC_SRC = comis_eflags[ret + 1]; - FORCE_RET(); } void helper_ucomisd(Reg *d, Reg *s) @@ -941,7 +929,6 @@ void helper_ucomisd(Reg *d, Reg *s) d1 = s->XMM_D(0); ret = float64_compare_quiet(d0, d1, &env->sse_status); CC_SRC = comis_eflags[ret + 1]; - FORCE_RET(); } void helper_comisd(Reg *d, Reg *s) @@ -953,7 +940,6 @@ void helper_comisd(Reg *d, Reg *s) d1 = s->XMM_D(0); ret = float64_compare(d0, d1, &env->sse_status); CC_SRC = comis_eflags[ret + 1]; - FORCE_RET(); } uint32_t helper_movmskps(Reg *s) diff --git a/target-sh4/exec.h b/target-sh4/exec.h index 6122610844..1c51167e49 100644 --- a/target-sh4/exec.h +++ b/target-sh4/exec.h @@ -43,8 +43,6 @@ static inline int cpu_halted(CPUState *env) { #include "softmmu_exec.h" #endif -#define RETURN() __asm__ __volatile__("") - static inline void regs_to_env(void) { /* XXXXX */