#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)
rm = ((T1 & 0xff00ff00) >> 8) | (T0 & 0xff00ff00);
T0 = rd;
T1 = rm;
- FORCE_RET();
}
void HELPER(neon_trn_u16)(void)
rm = (T1 >> 16) | (T0 & 0xffff0000);
T0 = rd;
T1 = rm;
- FORCE_RET();
}
/* Worker routines for zip and unzip. */
| ((T1 << 8) & 0xff0000) | (T1 & 0xff000000);
T0 = rd;
T1 = rm;
- FORCE_RET();
}
void HELPER(neon_zip_u8)(void)
| ((T0 >> 8) & 0xff0000) | (T1 & 0xff000000);
T0 = rd;
T1 = rm;
- FORCE_RET();
}
void HELPER(neon_zip_u16)(void)
tmp = (T0 & 0xffff) | (T1 << 16);
T1 = (T1 & 0xffff0000) | (T0 >> 16);
T0 = tmp;
- FORCE_RET();
}
#include "cpu.h"
#include "exec-all.h"
-#define RETURN() __asm__ __volatile__("" : : : "memory");
-
static inline void env_to_regs(void)
{
}
}
#endif
env->regs[reg] = env->sregs[srs][sreg];
- RETURN();
}
static void cris_ccs_rshift(CPUState *env)
}
EAX = (EAX & ~0xffff) | al | (ah << 8);
CC_SRC = eflags;
- FORCE_RET();
}
void helper_aas(void)
}
EAX = (EAX & ~0xffff) | al | (ah << 8);
CC_SRC = eflags;
- FORCE_RET();
}
void helper_daa(void)
eflags |= parity_table[al]; /* pf */
eflags |= (al & 0x80); /* sf */
CC_SRC = eflags;
- FORCE_RET();
}
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)
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)
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};
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)
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)
{
if (env->fpus & FPUS_SE)
fpu_raise_exception();
- FORCE_RET();
}
void helper_fninit(void)
if (v < low || v > high) {
raise_exception(EXCP05_BOUND);
}
- FORCE_RET();
}
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)
d->W(7) >>= shift;
#endif
}
- FORCE_RET();
}
void glue(helper_psraw, SUFFIX)(Reg *d, Reg *s)
d->W(7) <<= shift;
#endif
}
- FORCE_RET();
}
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)
d->L(3) <<= shift;
#endif
}
- FORCE_RET();
}
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)
d->Q(1) <<= shift;
#endif
}
- FORCE_RET();
}
#if SHIFT == 1
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)
d->B(i) = d->B(i - shift);
for(i = 0; i < shift; i++)
d->B(i) = 0;
- FORCE_RET();
}
#endif
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
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)
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)
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)
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)
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)
#include "softmmu_exec.h"
#endif
-#define RETURN() __asm__ __volatile__("")
-
static inline void regs_to_env(void)
{
/* XXXXX */