Index: fp_split.S =================================================================== RCS file: /sources/avr-libc/avr-libc/libm/fplib/fp_split.S,v retrieving revision 1.9 diff -U12 -r1.9 fp_split.S --- fp_split.S 5 Dec 2005 22:05:53 -0000 1.9 +++ fp_split.S 26 May 2006 17:19:59 -0000 @@ -80,24 +80,27 @@ ADD rA2,rA2 ; MSB of exponent to carry adc rA3,rA3 ; whole exponent in rA3, sign in C CPI rA3,0xFF ; if no jump then C as hidden one is set BREQ .L_fp_split_nan CLR rAE ; clear fraction extension cp rAE,rA3 ; set C if nonzero exponent. -MM 2000-11-25 brcs 1f ldi rA3,1 ; zero exponent really means 1 with hidden bit = 0 1: ROR rA2 ; sets hidden bit RET .L_fp_split_nan: +#ifdef __AVR_3_BYTE_PC__ + POP rA3 +#endif POP rA3 POP rA3 ; pop return adress #ifdef __ERRNO__ LDI rA3,EDOM ; NaN is argument domain error ! #endif clr r1 RJMP _U(__fp_nan) ENDFUNC /* *---------------------------------------------------------------------------------------------- @@ -119,24 +122,27 @@ adc rA3, rA3 ; whole exponent in rA3, sign in C CPI rA3, 0xFF ; if no jump then C as hidden one is set BREQ .L_fp_split_a_nan CLR rAE ; clear fraction extension CP rAE, rA3 ; set C if nonzero exponent. BRCS 1f LDI rA3, 1 ; zero exponent really means 1 with hidden bit = 0 1: ROR rA2 ; sets hidden bit RET .L_fp_split_a_nan: +#ifdef __AVR_3_BYTE_PC__ + POP rA3 +#endif POP rA3 POP rA3 ; pop return adress #ifdef __ERRNO__ LDI rA3, EDOM ; NaN is argument domain error ! #endif CLR r1 RJMP _U(__fp_nan) ENDFUNC #endif /* not __DOXYGEN__ */