JIT: better code for floating-point constants on x86+SSE

This commit is contained in:
Matthew Flatt 2014-05-30 07:56:45 +01:00
parent 9b1a2e7b37
commit 71591a62a4

View File

@ -1202,7 +1202,8 @@ static void emit_indentation(mz_jit_state *jitter)
#define JIT_FPU_FPR_1(r) JIT_FPU_FPR1 #define JIT_FPU_FPR_1(r) JIT_FPU_FPR1
#endif #endif
#if defined(MZ_USE_JIT_I386) #if defined(MZ_USE_JIT_I386) && (!defined(JIT_X86_64) || !defined(JIT_X86_SSE))
/* This is better than lightning's x87 or 32-bit SSE jit_movi_d[_fppush](): */
# define mz_movi_d_fppush(rd,immd,tmp) { GC_CAN_IGNORE void *addr; \ # define mz_movi_d_fppush(rd,immd,tmp) { GC_CAN_IGNORE void *addr; \
addr = scheme_mz_retain_double(jitter, immd); \ addr = scheme_mz_retain_double(jitter, immd); \
(void)jit_patchable_movi_p(tmp, addr); \ (void)jit_patchable_movi_p(tmp, addr); \