提交 db8d9902 编写于 作者: A aurel32

Remove FORCE_RET() and RETURN()

Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5923 c046a42c-6fe2-441c-8c8c-71466251a162
上级 49516bc0
...@@ -198,9 +198,6 @@ extern int printf(const char *, ...); ...@@ -198,9 +198,6 @@ extern int printf(const char *, ...);
#error unsupported CPU #error unsupported CPU
#endif #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 xglue(x, y) x ## y
#define glue(x, y) xglue(x, y) #define glue(x, y) xglue(x, y)
#define stringify(s) tostring(s) #define stringify(s) tostring(s)
......
...@@ -509,7 +509,6 @@ void HELPER(neon_trn_u8)(void) ...@@ -509,7 +509,6 @@ void HELPER(neon_trn_u8)(void)
rm = ((T1 & 0xff00ff00) >> 8) | (T0 & 0xff00ff00); rm = ((T1 & 0xff00ff00) >> 8) | (T0 & 0xff00ff00);
T0 = rd; T0 = rd;
T1 = rm; T1 = rm;
FORCE_RET();
} }
void HELPER(neon_trn_u16)(void) void HELPER(neon_trn_u16)(void)
...@@ -520,7 +519,6 @@ void HELPER(neon_trn_u16)(void) ...@@ -520,7 +519,6 @@ void HELPER(neon_trn_u16)(void)
rm = (T1 >> 16) | (T0 & 0xffff0000); rm = (T1 >> 16) | (T0 & 0xffff0000);
T0 = rd; T0 = rd;
T1 = rm; T1 = rm;
FORCE_RET();
} }
/* Worker routines for zip and unzip. */ /* Worker routines for zip and unzip. */
...@@ -534,7 +532,6 @@ void HELPER(neon_unzip_u8)(void) ...@@ -534,7 +532,6 @@ void HELPER(neon_unzip_u8)(void)
| ((T1 << 8) & 0xff0000) | (T1 & 0xff000000); | ((T1 << 8) & 0xff0000) | (T1 & 0xff000000);
T0 = rd; T0 = rd;
T1 = rm; T1 = rm;
FORCE_RET();
} }
void HELPER(neon_zip_u8)(void) void HELPER(neon_zip_u8)(void)
...@@ -547,7 +544,6 @@ void HELPER(neon_zip_u8)(void) ...@@ -547,7 +544,6 @@ void HELPER(neon_zip_u8)(void)
| ((T0 >> 8) & 0xff0000) | (T1 & 0xff000000); | ((T0 >> 8) & 0xff0000) | (T1 & 0xff000000);
T0 = rd; T0 = rd;
T1 = rm; T1 = rm;
FORCE_RET();
} }
void HELPER(neon_zip_u16)(void) void HELPER(neon_zip_u16)(void)
...@@ -557,5 +553,4 @@ void HELPER(neon_zip_u16)(void) ...@@ -557,5 +553,4 @@ void HELPER(neon_zip_u16)(void)
tmp = (T0 & 0xffff) | (T1 << 16); tmp = (T0 & 0xffff) | (T1 << 16);
T1 = (T1 & 0xffff0000) | (T0 >> 16); T1 = (T1 & 0xffff0000) | (T0 >> 16);
T0 = tmp; T0 = tmp;
FORCE_RET();
} }
...@@ -25,8 +25,6 @@ register struct CPUCRISState *env asm(AREG0); ...@@ -25,8 +25,6 @@ register struct CPUCRISState *env asm(AREG0);
#include "cpu.h" #include "cpu.h"
#include "exec-all.h" #include "exec-all.h"
#define RETURN() __asm__ __volatile__("" : : : "memory");
static inline void env_to_regs(void) static inline void env_to_regs(void)
{ {
} }
......
...@@ -189,7 +189,6 @@ void helper_movl_reg_sreg (uint32_t reg, uint32_t sreg) ...@@ -189,7 +189,6 @@ void helper_movl_reg_sreg (uint32_t reg, uint32_t sreg)
} }
#endif #endif
env->regs[reg] = env->sregs[srs][sreg]; env->regs[reg] = env->sregs[srs][sreg];
RETURN();
} }
static void cris_ccs_rshift(CPUState *env) static void cris_ccs_rshift(CPUState *env)
......
...@@ -1745,7 +1745,6 @@ void helper_aaa(void) ...@@ -1745,7 +1745,6 @@ void helper_aaa(void)
} }
EAX = (EAX & ~0xffff) | al | (ah << 8); EAX = (EAX & ~0xffff) | al | (ah << 8);
CC_SRC = eflags; CC_SRC = eflags;
FORCE_RET();
} }
void helper_aas(void) void helper_aas(void)
...@@ -1770,7 +1769,6 @@ void helper_aas(void) ...@@ -1770,7 +1769,6 @@ void helper_aas(void)
} }
EAX = (EAX & ~0xffff) | al | (ah << 8); EAX = (EAX & ~0xffff) | al | (ah << 8);
CC_SRC = eflags; CC_SRC = eflags;
FORCE_RET();
} }
void helper_daa(void) void helper_daa(void)
...@@ -1798,7 +1796,6 @@ void helper_daa(void) ...@@ -1798,7 +1796,6 @@ void helper_daa(void)
eflags |= parity_table[al]; /* pf */ eflags |= parity_table[al]; /* pf */
eflags |= (al & 0x80); /* sf */ eflags |= (al & 0x80); /* sf */
CC_SRC = eflags; CC_SRC = eflags;
FORCE_RET();
} }
void helper_das(void) void helper_das(void)
...@@ -1829,7 +1826,6 @@ void helper_das(void) ...@@ -1829,7 +1826,6 @@ void helper_das(void)
eflags |= parity_table[al]; /* pf */ eflags |= parity_table[al]; /* pf */
eflags |= (al & 0x80); /* sf */ eflags |= (al & 0x80); /* sf */
CC_SRC = eflags; CC_SRC = eflags;
FORCE_RET();
} }
void helper_into(int next_eip_addend) void helper_into(int next_eip_addend)
...@@ -3553,7 +3549,6 @@ void helper_fcom_ST0_FT0(void) ...@@ -3553,7 +3549,6 @@ void helper_fcom_ST0_FT0(void)
ret = floatx_compare(ST0, FT0, &env->fp_status); ret = floatx_compare(ST0, FT0, &env->fp_status);
env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret + 1]; env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret + 1];
FORCE_RET();
} }
void helper_fucom_ST0_FT0(void) void helper_fucom_ST0_FT0(void)
...@@ -3562,7 +3557,6 @@ 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); ret = floatx_compare_quiet(ST0, FT0, &env->fp_status);
env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret+ 1]; 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}; 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) ...@@ -3576,7 +3570,6 @@ void helper_fcomi_ST0_FT0(void)
eflags = helper_cc_compute_all(CC_OP); eflags = helper_cc_compute_all(CC_OP);
eflags = (eflags & ~(CC_Z | CC_P | CC_C)) | fcomi_ccval[ret + 1]; eflags = (eflags & ~(CC_Z | CC_P | CC_C)) | fcomi_ccval[ret + 1];
CC_SRC = eflags; CC_SRC = eflags;
FORCE_RET();
} }
void helper_fucomi_ST0_FT0(void) void helper_fucomi_ST0_FT0(void)
...@@ -3588,7 +3581,6 @@ void helper_fucomi_ST0_FT0(void) ...@@ -3588,7 +3581,6 @@ void helper_fucomi_ST0_FT0(void)
eflags = helper_cc_compute_all(CC_OP); eflags = helper_cc_compute_all(CC_OP);
eflags = (eflags & ~(CC_Z | CC_P | CC_C)) | fcomi_ccval[ret + 1]; eflags = (eflags & ~(CC_Z | CC_P | CC_C)) | fcomi_ccval[ret + 1];
CC_SRC = eflags; CC_SRC = eflags;
FORCE_RET();
} }
void helper_fadd_ST0_FT0(void) void helper_fadd_ST0_FT0(void)
...@@ -3773,7 +3765,6 @@ void helper_fwait(void) ...@@ -3773,7 +3765,6 @@ void helper_fwait(void)
{ {
if (env->fpus & FPUS_SE) if (env->fpus & FPUS_SE)
fpu_raise_exception(); fpu_raise_exception();
FORCE_RET();
} }
void helper_fninit(void) void helper_fninit(void)
...@@ -4629,7 +4620,6 @@ void helper_boundw(target_ulong a0, int v) ...@@ -4629,7 +4620,6 @@ void helper_boundw(target_ulong a0, int v)
if (v < low || v > high) { if (v < low || v > high) {
raise_exception(EXCP05_BOUND); raise_exception(EXCP05_BOUND);
} }
FORCE_RET();
} }
void helper_boundl(target_ulong a0, int v) void helper_boundl(target_ulong a0, int v)
...@@ -4640,7 +4630,6 @@ 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) { if (v < low || v > high) {
raise_exception(EXCP05_BOUND); raise_exception(EXCP05_BOUND);
} }
FORCE_RET();
} }
static float approx_rsqrt(float a) static float approx_rsqrt(float a)
......
...@@ -58,7 +58,6 @@ void glue(helper_psrlw, SUFFIX)(Reg *d, Reg *s) ...@@ -58,7 +58,6 @@ void glue(helper_psrlw, SUFFIX)(Reg *d, Reg *s)
d->W(7) >>= shift; d->W(7) >>= shift;
#endif #endif
} }
FORCE_RET();
} }
void glue(helper_psraw, SUFFIX)(Reg *d, Reg *s) void glue(helper_psraw, SUFFIX)(Reg *d, Reg *s)
...@@ -104,7 +103,6 @@ void glue(helper_psllw, SUFFIX)(Reg *d, Reg *s) ...@@ -104,7 +103,6 @@ void glue(helper_psllw, SUFFIX)(Reg *d, Reg *s)
d->W(7) <<= shift; d->W(7) <<= shift;
#endif #endif
} }
FORCE_RET();
} }
void glue(helper_psrld, SUFFIX)(Reg *d, Reg *s) void glue(helper_psrld, SUFFIX)(Reg *d, Reg *s)
...@@ -125,7 +123,6 @@ 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; d->L(3) >>= shift;
#endif #endif
} }
FORCE_RET();
} }
void glue(helper_psrad, SUFFIX)(Reg *d, Reg *s) void glue(helper_psrad, SUFFIX)(Reg *d, Reg *s)
...@@ -163,7 +160,6 @@ void glue(helper_pslld, SUFFIX)(Reg *d, Reg *s) ...@@ -163,7 +160,6 @@ void glue(helper_pslld, SUFFIX)(Reg *d, Reg *s)
d->L(3) <<= shift; d->L(3) <<= shift;
#endif #endif
} }
FORCE_RET();
} }
void glue(helper_psrlq, SUFFIX)(Reg *d, Reg *s) void glue(helper_psrlq, SUFFIX)(Reg *d, Reg *s)
...@@ -182,7 +178,6 @@ 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; d->Q(1) >>= shift;
#endif #endif
} }
FORCE_RET();
} }
void glue(helper_psllq, SUFFIX)(Reg *d, Reg *s) void glue(helper_psllq, SUFFIX)(Reg *d, Reg *s)
...@@ -201,7 +196,6 @@ 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; d->Q(1) <<= shift;
#endif #endif
} }
FORCE_RET();
} }
#if SHIFT == 1 #if SHIFT == 1
...@@ -216,7 +210,6 @@ void glue(helper_psrldq, SUFFIX)(Reg *d, Reg *s) ...@@ -216,7 +210,6 @@ void glue(helper_psrldq, SUFFIX)(Reg *d, Reg *s)
d->B(i) = d->B(i + shift); d->B(i) = d->B(i + shift);
for(i = 16 - shift; i < 16; i++) for(i = 16 - shift; i < 16; i++)
d->B(i) = 0; d->B(i) = 0;
FORCE_RET();
} }
void glue(helper_pslldq, SUFFIX)(Reg *d, Reg *s) void glue(helper_pslldq, SUFFIX)(Reg *d, Reg *s)
...@@ -230,7 +223,6 @@ 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); d->B(i) = d->B(i - shift);
for(i = 0; i < shift; i++) for(i = 0; i < shift; i++)
d->B(i) = 0; d->B(i) = 0;
FORCE_RET();
} }
#endif #endif
...@@ -432,7 +424,6 @@ void glue(helper_pmaddwd, SUFFIX) (Reg *d, Reg *s) ...@@ -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) + 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); (int16_t)s->W(2*i+1) * (int16_t)d->W(2*i+1);
} }
FORCE_RET();
} }
#if SHIFT == 0 #if SHIFT == 0
...@@ -479,7 +470,6 @@ void glue(helper_maskmov, SUFFIX) (Reg *d, Reg *s, target_ulong a0) ...@@ -479,7 +470,6 @@ void glue(helper_maskmov, SUFFIX) (Reg *d, Reg *s, target_ulong a0)
if (s->B(i) & 0x80) if (s->B(i) & 0x80)
stb(a0 + i, d->B(i)); stb(a0 + i, d->B(i));
} }
FORCE_RET();
} }
void glue(helper_movl_mm_T0, SUFFIX) (Reg *d, uint32_t val) void glue(helper_movl_mm_T0, SUFFIX) (Reg *d, uint32_t val)
...@@ -917,7 +907,6 @@ void helper_ucomiss(Reg *d, Reg *s) ...@@ -917,7 +907,6 @@ void helper_ucomiss(Reg *d, Reg *s)
s1 = s->XMM_S(0); s1 = s->XMM_S(0);
ret = float32_compare_quiet(s0, s1, &env->sse_status); ret = float32_compare_quiet(s0, s1, &env->sse_status);
CC_SRC = comis_eflags[ret + 1]; CC_SRC = comis_eflags[ret + 1];
FORCE_RET();
} }
void helper_comiss(Reg *d, Reg *s) void helper_comiss(Reg *d, Reg *s)
...@@ -929,7 +918,6 @@ void helper_comiss(Reg *d, Reg *s) ...@@ -929,7 +918,6 @@ void helper_comiss(Reg *d, Reg *s)
s1 = s->XMM_S(0); s1 = s->XMM_S(0);
ret = float32_compare(s0, s1, &env->sse_status); ret = float32_compare(s0, s1, &env->sse_status);
CC_SRC = comis_eflags[ret + 1]; CC_SRC = comis_eflags[ret + 1];
FORCE_RET();
} }
void helper_ucomisd(Reg *d, Reg *s) void helper_ucomisd(Reg *d, Reg *s)
...@@ -941,7 +929,6 @@ void helper_ucomisd(Reg *d, Reg *s) ...@@ -941,7 +929,6 @@ void helper_ucomisd(Reg *d, Reg *s)
d1 = s->XMM_D(0); d1 = s->XMM_D(0);
ret = float64_compare_quiet(d0, d1, &env->sse_status); ret = float64_compare_quiet(d0, d1, &env->sse_status);
CC_SRC = comis_eflags[ret + 1]; CC_SRC = comis_eflags[ret + 1];
FORCE_RET();
} }
void helper_comisd(Reg *d, Reg *s) void helper_comisd(Reg *d, Reg *s)
...@@ -953,7 +940,6 @@ void helper_comisd(Reg *d, Reg *s) ...@@ -953,7 +940,6 @@ void helper_comisd(Reg *d, Reg *s)
d1 = s->XMM_D(0); d1 = s->XMM_D(0);
ret = float64_compare(d0, d1, &env->sse_status); ret = float64_compare(d0, d1, &env->sse_status);
CC_SRC = comis_eflags[ret + 1]; CC_SRC = comis_eflags[ret + 1];
FORCE_RET();
} }
uint32_t helper_movmskps(Reg *s) uint32_t helper_movmskps(Reg *s)
......
...@@ -43,8 +43,6 @@ static inline int cpu_halted(CPUState *env) { ...@@ -43,8 +43,6 @@ static inline int cpu_halted(CPUState *env) {
#include "softmmu_exec.h" #include "softmmu_exec.h"
#endif #endif
#define RETURN() __asm__ __volatile__("")
static inline void regs_to_env(void) static inline void regs_to_env(void)
{ {
/* XXXXX */ /* XXXXX */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册