@@ -1581,8 +1581,8 @@ void HELPER(fcmp_FP0_FP1)(CPUState *env)
/* +/-inf compares equal against itself, but sub returns nan. */
if (!floatx80_is_any_nan(FP0_to_floatx80(env))
&& !floatx80_is_any_nan(FP1_to_floatx80(env))) {
- if (floatx80_lt_quiet(FP1_to_floatx80(env), floatx80_zero,
- &env->fp_status))
+ res = floatx80_zero;
+ if (floatx80_lt_quiet(FP1_to_floatx80(env), res, &env->fp_status))
res = floatx80_chs(res);
}
}
@@ -1,5 +1,5 @@
TESTS=fmovecr fmove fmovem fsub fdiv fmul fabs fgetexp fscale flogn fetox \
- bfins
+ bfins inf
all: $(TESTS)
new file mode 100644
@@ -0,0 +1,17 @@
+ .include "trap.i"
+
+ .data
+X: .long 0x7ffe0000, 0x80000000, 0x00000000
+
+ .text
+ .globl _start
+_start:
+ fmove.x X, %fp0
+ fmove.x X, %fp1
+ fadd.x %fp0, %fp1
+ fmul.l #2,%fp0
+ fcmp.x %fp0, %fp1
+ fbeq a
+ nop
+a:
+ exit 0