1 --- a/gcc/config/avr32/lib1funcs.S
2 +++ b/gcc/config/avr32/lib1funcs.S
3 @@ -1389,25 +1389,30 @@ __avr32_f64_cmp_lt:
6 /* compare magnitude of op1 and op2 */
9 lsl r11,1 /* Remove sign bit of op1 */
10 srcs r12 /* Sign op1 to lsb of r12*/
12 - breq 3f /* op1 zero */
13 lsl r9,1 /* Remove sign bit of op2 */
15 rol r12 /* Sign op2 to lsb of lr, sign bit op1 bit 1 of r12*/
20 - mov_imm lr, 0xffe00000
21 + mov_imm lr, 0xffe00000
24 brhi 0f /* We have NaN */
27 brhi 0f /* We have NaN */
33 + breq 3f /* op1 zero */
37 cp.w r12,3 /* both operands negative ?*/
40 @@ -1453,18 +1458,22 @@ __avr32_f64_cmp_lt:
49 - lsl r9,1 /* Remove sign bit of op1 */
50 + cp.w r7, 1 /* Check sign bit from r9 */
51 #ifdef L_avr32_f64_cmp_ge
52 - srcs r12 /* If op2 is negative then op1 >= op2. */
53 + sreq r12 /* If op2 is negative then op1 >= op2. */
55 #ifdef L_avr32_f64_cmp_lt
56 - srcc r12 /* If op2 is positve then op1 <= op2. */
57 + srne r12 /* If op2 is positve then op1 <= op2. */
64 #ifdef L_avr32_f64_cmp_ge
65 reteq 1 /* Both operands are zero. Return true. */