diff options
author | Andy Wingo <wingo@igalia.com> | 2019-04-26 15:57:25 +0200 |
---|---|---|
committer | Andy Wingo <wingo@igalia.com> | 2019-04-26 15:57:25 +0200 |
commit | 19da79c8c1f38c09d1901cc3608b094b498c657c (patch) | |
tree | fa5e06ed22d8b1ec790c0eae3b1204a6f1a9069a | |
parent | b1163145915e652c4b82b66b1e921c811a90c46a (diff) | |
download | guile-19da79c8c1f38c09d1901cc3608b094b498c657c.tar.gz |
Fix 32-bit movi_d
* lightening/x86-sse.c (movi_d): Fix combining of low and high double
halves.
-rw-r--r-- | lightening/x86-sse.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lightening/x86-sse.c b/lightening/x86-sse.c index c304919d0..34a39e895 100644 --- a/lightening/x86-sse.c +++ b/lightening/x86-sse.c @@ -316,6 +316,11 @@ xorpdr(jit_state_t *_jit, int32_t r0, int32_t r1) ssexr(_jit, 0x66, X86_SSE_XOR, r0, r1); } static void +orpdr(jit_state_t *_jit, int32_t r0, int32_t r1) +{ + ssexr(_jit, 0x66, X86_SSE_OR, r0, r1); +} +static void pcmpeqlr(jit_state_t *_jit, int32_t r0, int32_t r1) { ssexr(_jit, 0x66, X86_SSE_EQD, r0, r1); @@ -410,7 +415,7 @@ movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0) pslq(_jit, jit_fpr_regno(freg), 32); movi(_jit, jit_gpr_regno(ireg), data.ii[0]); movdlxr(_jit, r0, jit_gpr_regno(ireg)); - xorpdr(_jit, r0, jit_fpr_regno(freg)); + orpdr(_jit, r0, jit_fpr_regno(freg)); unget_temp_xpr(_jit); unget_temp_gpr(_jit); #endif |