mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-19 10:10:23 +02:00
Correct test cases to work with x87 in ix86.
* lib/jit_x86-x87.c, lib/jit_x86.c: Correct test cases in ix86 when using the x87 coprocessor instead of sse2+.
This commit is contained in:
parent
03559bb8cc
commit
0e83b52d49
3 changed files with 10 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2012-12-14 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
|
* lib/jit_x86-x87.c, lib/jit_x86.c: Correct test cases in ix86
|
||||||
|
when using the x87 coprocessor instead of sse2+.
|
||||||
|
|
||||||
2012-12-14 Paulo Andrade <pcpa@gnu.org>
|
2012-12-14 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
* include/lightning.h, include/lightning/jit_private.h,
|
* include/lightning.h, include/lightning/jit_private.h,
|
||||||
|
|
|
@ -442,7 +442,7 @@ _x87_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2)
|
||||||
faddr(_ST0_REGNO, r2);
|
faddr(_ST0_REGNO, r2);
|
||||||
else {
|
else {
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
faddr(_ST0_REGNO, r2);
|
faddr(_ST0_REGNO, r0 == r2 ? _ST0_REGNO : r2);
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -476,7 +476,7 @@ _x87_subr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2)
|
||||||
fsubr(_ST0_REGNO, r2);
|
fsubr(_ST0_REGNO, r2);
|
||||||
else {
|
else {
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
fsubr(_ST0_REGNO, r0);
|
fsubr(_ST0_REGNO, r0 == r2 ? _ST0_REGNO : r2);
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -510,7 +510,7 @@ _x87_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2)
|
||||||
fmulr(_ST0_REGNO, r2);
|
fmulr(_ST0_REGNO, r2);
|
||||||
else {
|
else {
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
fmulr(_ST0_REGNO, r2);
|
fmulr(_ST0_REGNO, r0 == r2 ? _ST0_REGNO : r2);
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -544,7 +544,7 @@ _x87_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2)
|
||||||
fdivr(_ST0_REGNO, r2);
|
fdivr(_ST0_REGNO, r2);
|
||||||
else {
|
else {
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
fdivr(_ST0_REGNO, r0);
|
fdivr(_ST0_REGNO, r0 == r2 ? _ST0_REGNO : r2);
|
||||||
fxchr(r0);
|
fxchr(r0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -953,7 +953,7 @@ _jit_emit(jit_state_t *_jit)
|
||||||
break
|
break
|
||||||
#define case_rrf(name, type) \
|
#define case_rrf(name, type) \
|
||||||
case jit_code_##name##r##type: \
|
case jit_code_##name##r##type: \
|
||||||
if (jit_x87_reg_p(node->u.w)) \
|
if (jit_x87_reg_p(node->w.w)) \
|
||||||
x87_##name##r##type(rn(node->u.w), \
|
x87_##name##r##type(rn(node->u.w), \
|
||||||
rn(node->v.w), rn(node->w.w)); \
|
rn(node->v.w), rn(node->w.w)); \
|
||||||
else \
|
else \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue