openwrt-owl/toolchain/gcc/patches/4.3.5/944-avr32_fix_f64_div.patch

21 lines
771 B
Diff

--- a/gcc/config/avr32/lib1funcs.S
+++ b/gcc/config/avr32/lib1funcs.S
@@ -1733,7 +1733,7 @@ __avr32_f64_div_round_subnormal:
brne 16f /* Return NaN if op1 is NaN */
/* Op1 is inf check op2 */
lsr r6, r9, 20 /* Extract exponent */
- cbr r6, 8 /* Clear sign bit */
+ cbr r6, 11 /* Clear sign bit */
cp r6, 0x7ff
brne 17f /* Inf/number gives inf, return inf */
rjmp 16f /* The rest gives NaN*/
@@ -1849,7 +1849,7 @@ __avr32_f64_div_res_subnormal:/* Divide
16: /* Return NaN. */
mov r11, -1
- mov r10, -1
+ mov r10, 0
ldm sp++, r0, r1, r2, r3, r4, r5, r6, r7,pc
17: /* Return INF. */