avr-libc-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-commit] [2473] Fix for bug #33698: Replaced the use of rjmp/rc


From: Pitchumani
Subject: [avr-libc-commit] [2473] Fix for bug #33698: Replaced the use of rjmp/rcall ( to external function) instructions with XJMP/ XCALL macros that will expand to jmp/call if the architecture has it.
Date: Thu, 09 Apr 2015 08:10:24 +0000

Revision: 2473
          http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2473
Author:   pitchumani
Date:     2015-04-09 08:10:22 +0000 (Thu, 09 Apr 2015)
Log Message:
-----------
Fix for bug #33698: Replaced the use of rjmp/rcall (to external function) 
instructions with XJMP/XCALL macros that will expand to jmp/call if the 
architecture has it. When optimizations/ relaxation enabled compiler can 
optimize them to rjmp/rcall if possible.

Ticket Links:
------------
    http://savannah.gnu.org/bugs/?33698

Modified Paths:
--------------
    trunk/avr-libc/ChangeLog
    trunk/avr-libc/NEWS
    trunk/avr-libc/common/macros.inc
    trunk/avr-libc/libc/stdlib/ctype.S
    trunk/avr-libc/libm/fplib/acos.S
    trunk/avr-libc/libm/fplib/addsf3.S
    trunk/avr-libc/libm/fplib/addsf3x.S
    trunk/avr-libc/libm/fplib/asin.S
    trunk/avr-libc/libm/fplib/asmdef.h
    trunk/avr-libc/libm/fplib/atan.S
    trunk/avr-libc/libm/fplib/atan2.S
    trunk/avr-libc/libm/fplib/cbrt.S
    trunk/avr-libc/libm/fplib/ceil.S
    trunk/avr-libc/libm/fplib/cmpsf2.S
    trunk/avr-libc/libm/fplib/cos.S
    trunk/avr-libc/libm/fplib/cosh.S
    trunk/avr-libc/libm/fplib/divsf3.S
    trunk/avr-libc/libm/fplib/divsf3x.S
    trunk/avr-libc/libm/fplib/exp.S
    trunk/avr-libc/libm/fplib/fdim.S
    trunk/avr-libc/libm/fplib/fixsfdi.S
    trunk/avr-libc/libm/fplib/fixsfsi.S
    trunk/avr-libc/libm/fplib/fixunssfsi.S
    trunk/avr-libc/libm/fplib/floatdisf.S
    trunk/avr-libc/libm/fplib/floor.S
    trunk/avr-libc/libm/fplib/fma.S
    trunk/avr-libc/libm/fplib/fmod.S
    trunk/avr-libc/libm/fplib/fp_arccos.S
    trunk/avr-libc/libm/fplib/fp_powser.S
    trunk/avr-libc/libm/fplib/fp_powsodd.S
    trunk/avr-libc/libm/fplib/fp_rempio2.S
    trunk/avr-libc/libm/fplib/fp_sinus.S
    trunk/avr-libc/libm/fplib/fp_trunc.S
    trunk/avr-libc/libm/fplib/frexp.S
    trunk/avr-libc/libm/fplib/gesf2.S
    trunk/avr-libc/libm/fplib/hypot.S
    trunk/avr-libc/libm/fplib/inverse.S
    trunk/avr-libc/libm/fplib/isinf.S
    trunk/avr-libc/libm/fplib/isnan.S
    trunk/avr-libc/libm/fplib/ldexp.S
    trunk/avr-libc/libm/fplib/log.S
    trunk/avr-libc/libm/fplib/log10.S
    trunk/avr-libc/libm/fplib/lrint.S
    trunk/avr-libc/libm/fplib/lround.S
    trunk/avr-libc/libm/fplib/modf.S
    trunk/avr-libc/libm/fplib/mulsf3.S
    trunk/avr-libc/libm/fplib/mulsf3x.S
    trunk/avr-libc/libm/fplib/pow.S
    trunk/avr-libc/libm/fplib/round.S
    trunk/avr-libc/libm/fplib/sin.S
    trunk/avr-libc/libm/fplib/sinh.S
    trunk/avr-libc/libm/fplib/sqrt.S
    trunk/avr-libc/libm/fplib/square.S
    trunk/avr-libc/libm/fplib/tan.S
    trunk/avr-libc/libm/fplib/tanh.S
    trunk/avr-libc/libm/fplib/trunc.S
    trunk/avr-libc/libm/fplib/unordsf2.S

Modified: trunk/avr-libc/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/ChangeLog    2015-04-09 08:10:22 UTC (rev 2473)
@@ -1,3 +1,67 @@
+2015-04-08  Martin Nowak <address@hidden>
+            Pitchumani Sivanupandi <address@hidden>
+
+       bug #33698: Explicit use of RJMP/RCALL can cause "relocation truncated
+       to fit: R_AVR_13_PCREL" linker error
+       * common/macros.inc: Use __AVR_HAVE_JMP_CALL__ instead of __AVR_MEGA__
+       to define XJMP/XCALL macros.
+       * libm/fplib/asmdef.h: Define XJMP and XCALL with rjmp/rcall or jmp/call
+       based on jmp/call instruction availability.
+       * libc/stdlib/ctype.S: Use XJMP/XCALL instead of explicit rjmp/rcall for
+       external functions.
+       * libm/fplib/acos.S: Ditto.
+       * libm/fplib/addsf3.S: Ditto.
+       * libm/fplib/addsf3x.S: Ditto.
+       * libm/fplib/asin.S: Ditto.
+       * libm/fplib/atan.S: Ditto.
+       * libm/fplib/atan2.S: Ditto.
+       * libm/fplib/cbrt.S: Ditto.
+       * libm/fplib/ceil.S: Ditto.
+       * libm/fplib/cmpsf2.S: Ditto.
+       * libm/fplib/cos.S: Ditto.
+       * libm/fplib/cosh.S: Ditto.
+       * libm/fplib/divsf3.S: Ditto.
+       * libm/fplib/divsf3x.S: Ditto.
+       * libm/fplib/exp.S: Ditto.
+       * libm/fplib/fdim.S: Ditto.
+       * libm/fplib/fixsfdi.S: Ditto.
+       * libm/fplib/fixsfsi.S: Ditto.
+       * libm/fplib/fixunssfsi.S: Ditto.
+       * libm/fplib/floatdisf.S: Ditto.
+       * libm/fplib/floor.S: Ditto.
+       * libm/fplib/fma.S: Ditto.
+       * libm/fplib/fmod.S: Ditto.
+       * libm/fplib/fp_arccos.S: Ditto.
+       * libm/fplib/fp_powser.S: Ditto.
+       * libm/fplib/fp_powsodd.S: Ditto.
+       * libm/fplib/fp_rempio2.S: Ditto.
+       * libm/fplib/fp_sinus.S: Ditto.
+       * libm/fplib/fp_trunc.S: Ditto.
+       * libm/fplib/frexp.S: Ditto.
+       * libm/fplib/gesf2.S: Ditto.
+       * libm/fplib/hypot.S: Ditto.
+       * libm/fplib/inverse.S: Ditto.
+       * libm/fplib/isinf.S: Ditto.
+       * libm/fplib/isnan.S: Ditto.
+       * libm/fplib/ldexp.S: Ditto.
+       * libm/fplib/log.S: Ditto.
+       * libm/fplib/log10.S: Ditto.
+       * libm/fplib/lrint.S: Ditto.
+       * libm/fplib/lround.S: Ditto.
+       * libm/fplib/modf.S: Ditto.
+       * libm/fplib/mulsf3.S: Ditto.
+       * libm/fplib/mulsf3x.S: Ditto.
+       * libm/fplib/pow.S: Ditto.
+       * libm/fplib/round.S: Ditto.
+       * libm/fplib/sin.S: Ditto.
+       * libm/fplib/sinh.S: Ditto.
+       * libm/fplib/sqrt.S: Ditto.
+       * libm/fplib/square.S: Ditto.
+       * libm/fplib/tan.S: Ditto.
+       * libm/fplib/tanh.S: Ditto.
+       * libm/fplib/trunc.S: Ditto.
+       * libm/fplib/unordsf2.S: Ditto.
+        
 2015-03-18  Senthil Kumar Selvaraj <address@hidden>
 
        bug #44514: Wrong build option '-mtiny-stack' instead of '-msp8'

Modified: trunk/avr-libc/NEWS
===================================================================
--- trunk/avr-libc/NEWS 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/NEWS 2015-04-09 08:10:22 UTC (rev 2473)
@@ -2,10 +2,12 @@
 
 * Bugs fixed:
 
-  [#44515] Wrong build option '-mtiny-stack' instead of '-msp8'
+  [#33698] Explicit use of RJMP/RCALL can cause "relocation truncated to fit:
+           R_AVR_13_PCREL" linker error
+  [#34719] Check for right build compiler
   [#43044] memory sections require __attribute__ ((used))
-  [#34719] Check for right build compiler
   [#44140] wdt_disable() macro clobbers prescaller bits 
+  [#44515] Wrong build option '-mtiny-stack' instead of '-msp8'
   [no-id] TC_EVACT_FRQ_gc was misspelled as TC_EVACT_FRW_gc in some Xmega
           header files
 

Modified: trunk/avr-libc/common/macros.inc
===================================================================
--- trunk/avr-libc/common/macros.inc    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/common/macros.inc    2015-04-09 08:10:22 UTC (rev 2473)
@@ -110,7 +110,7 @@
     #endif
 #endif
 
-#if __AVR_MEGA__
+#if (__AVR_HAVE_JMP_CALL__)
   #define XJMP jmp
   #define XCALL call
 #else

Modified: trunk/avr-libc/libc/stdlib/ctype.S
===================================================================
--- trunk/avr-libc/libc/stdlib/ctype.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libc/stdlib/ctype.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -77,7 +77,7 @@
 
 GLOBAL(isascii)
           CPSE    rHigh,__zero_reg__
-          RJMP    _U(__ctype_isfalse)
+          XJMP    _U(__ctype_isfalse)
           COM     rLow
           ANDI    rLow, 0x80
           RET
@@ -103,12 +103,12 @@
 
 GLOBAL(isalnum)
        cpse    rHigh, __zero_reg__
-       rjmp    _U(__ctype_isfalse)
+       XJMP    _U(__ctype_isfalse)
        subi    rLow, '0'
        subi    rLow, '9'-'0'+1
        brlo    2f                      ; rLow is digit, return negative val.
        subi    rLow, lo8(-'9'-1)       ; restore rLow
-       rjmp    _U(isalpha)
+       XJMP    _U(isalpha)
 2:     ret
 
           ENDFUNC
@@ -135,15 +135,15 @@
 
 GLOBAL(isupper)
           ;CPSE  rHigh,__zero_reg__
-          ;RJMP  _U(__ctype_isfalse)    ; checked by _islower later on
+          ;XJMP  _U(__ctype_isfalse)    ; checked by _islower later on
           SBRC  rLow,5       ; if bit 5 is set it is no upper
-          RJMP  _U(__ctype_isfalse)     ; bit 5 is clear, so if isalpha is 
true it is an upper
+          XJMP  _U(__ctype_isfalse)     ; bit 5 is clear, so if isalpha is 
true it is an upper
 GLOBAL(isalpha)
           ORI     rLow,0x20        ; make a lower out of an upper (all others 
are changed but do not get alpha)
 GLOBAL(islower)
           CPSE  rHigh,__zero_reg__
 1:
-          RJMP  _U(__ctype_isfalse)
+          XJMP  _U(__ctype_isfalse)
           SUBI rLow, 'a'
           SUBI rLow, 'z'-'a'+1
           BRSH 1b
@@ -161,7 +161,7 @@
 GLOBAL(isdigit)
           CPSE  rHigh,__zero_reg__
 1:        
-          RJMP  _U(__ctype_isfalse)
+          XJMP  _U(__ctype_isfalse)
           SUBI  rLow,'0'
           SUBI  rLow,10
           BRSH  1b
@@ -183,7 +183,7 @@
 
 GLOBAL(isxdigit)
        cpse    rHigh, __zero_reg__
-1:     rjmp    _U(__ctype_isfalse)
+1:     XJMP    _U(__ctype_isfalse)
        subi    rLow, '0'
        subi    rLow, '9'-'0'+1
        brlo    2f                      ; decimal digit
@@ -206,7 +206,7 @@
 GLOBAL(iscntrl)
           CPSE  rHigh,__zero_reg__
 1:
-          RJMP  _U(__ctype_isfalse)
+          XJMP  _U(__ctype_isfalse)
           CPI   rLow,0x7F
           BREQ  2f
           SUBI  rLow, ' '
@@ -228,7 +228,7 @@
           BREQ  1f
 GLOBAL(isprint)
          CPSE  rHigh, __zero_reg__
-1:       RJMP  _U(__ctype_isfalse)
+1:       XJMP  _U(__ctype_isfalse)
          SUBI  rLow, ' '
          SUBI  rLow, 0x7E - ' ' + 1
          BRSH  1b
@@ -251,7 +251,7 @@
 GLOBAL(isspace)
           CPSE  rHigh,__zero_reg__
 1:
-          RJMP  _U(__ctype_isfalse)
+          XJMP  _U(__ctype_isfalse)
           CPI   rLow,' '           ; blank
           BREQ  2f
          SUBI  rLow, '\t'
@@ -270,12 +270,12 @@
 
 GLOBAL(ispunct)
        cpse    rHigh, __zero_reg__
-1:     rjmp    _U(__ctype_isfalse)
+1:     XJMP    _U(__ctype_isfalse)
        subi    rLow, ' ' + 1
        subi    rLow, 0x7e - ' '
        brsh    1b                      ; if (!isgraph(c)) return 0
        subi    rLow, lo8(-0x7e - 1)    ; restore rLow
-       rcall   _U(isalnum)
+       XCALL   _U(isalnum)
        tst     rLow
        brne    1b                      ; if (isalnum(c)) return 0
        ldi     rLow, 1
@@ -293,7 +293,7 @@
 GLOBAL(isblank)
           CPSE  rHigh,__zero_reg__
 1:
-          RJMP  _U(__ctype_isfalse)
+          XJMP  _U(__ctype_isfalse)
           CPI   rLow,' '           ; blank
           BREQ  2f
           CPI   rLow,0x09    ;'\t' ; tab

Modified: trunk/avr-libc/libm/fplib/acos.S
===================================================================
--- trunk/avr-libc/libm/fplib/acos.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/acos.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -48,7 +48,7 @@
        push    rA3
   ; A = arccos(fabs(A))
        andi    rA3, 0x7f
-       rcall   _U(__fp_arccos)
+       XCALL   _U(__fp_arccos)
   ; check sign
        pop     r0
        tst     r0
@@ -60,9 +60,9 @@
        ldi     rB1,  hi8(HI40_PI)
        ldi     rB2, hlo8(HI40_PI)
        ldi     rB3, hhi8(HI40_PI)
-       rcall   _U(__addsf3x)
+       XCALL   _U(__addsf3x)
   ; round
-1:     rjmp    _U(__fp_round)
+1:     XJMP    _U(__fp_round)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/addsf3.S
===================================================================
--- trunk/avr-libc/libm/fplib/addsf3.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/addsf3.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -41,6 +41,6 @@
 ENTRY  __addsf3
        clr     rAE
        clr     rBE
-       rcall   _U(__addsf3x)
-       rjmp    _U(__fp_round)
+       XCALL   _U(__addsf3x)
+       XJMP    _U(__fp_round)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/addsf3x.S
===================================================================
--- trunk/avr-libc/libm/fplib/addsf3x.S 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/addsf3x.S 2015-04-09 08:10:22 UTC (rev 2473)
@@ -48,26 +48,26 @@
 
 FUNCTION __addsf3x
 
-0:     rcall   _U(__fp_pscA)
+0:     XCALL   _U(__fp_pscA)
        brcs    .L_nan
-       rcall   _U(__fp_pscB)
+       XCALL   _U(__fp_pscB)
        brcs    .L_nan
        brne    .L_inf          ; B is finite --> return A
        cpi     rA3, 255
        brne    .L_infB         ; A is finite --> return B
        brtc    .L_inf          ; Inf + Inf with the same sign
 .L_nan:
-       rjmp    _U(__fp_nan)
+       XJMP    _U(__fp_nan)
 .L_infB:
        brtc    .L_inf
        com     ZL
 .L_inf:
        bst     ZL, 7
-       rjmp    _U(__fp_inf)
+       XJMP    _U(__fp_inf)
 
 ENTRY  __addsf3x
        mov     ZL, rA3         ; save sign of A
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    0b
   ; compare A and B
        cp      rAE, rBE
@@ -78,7 +78,7 @@
        brlo    2f              ; fabs(A) < fabs(B)
        brne    4f              ; fabs(A) > fabs(B)
        brtc    .L_add
-       rjmp    _U(__fp_zero)   ; A + (-A) = +0.0
+       XJMP    _U(__fp_zero)   ; A + (-A) = +0.0
   ; swap A and B
 2:     brtc    3f
        com     ZL              ; update sign

Modified: trunk/avr-libc/libm/fplib/asin.S
===================================================================
--- trunk/avr-libc/libm/fplib/asin.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/asin.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -57,18 +57,18 @@
   ; for small x
        ldi     ZL, lo8 (.L_table)
        ldi     ZH, hi8 (.L_table)
-       rcall   _U(__fp_powsodd)
+       XCALL   _U(__fp_powsodd)
        rjmp    2f
   ; arcsin(x) = Pi/2 - arccos(x)
-1:     rcall   _U(__fp_arccos)
+1:     XCALL   _U(__fp_arccos)
        subi    rA3, 0x80
        ldi     rBE, LO40_PI_2
        ldi     rB0,  lo8(HI40_PI_2)
        ldi     rB1,  hi8(HI40_PI_2)
        ldi     rB2, hlo8(HI40_PI_2)
        ldi     rB3, hhi8(HI40_PI_2)
-       rcall   _U(__addsf3x)
-       rcall   _U(__fp_round)
+       XCALL   _U(__addsf3x)
+       XCALL   _U(__fp_round)
   ; restore sign
 2:     pop     r0
        sbrc    r0, 7

Modified: trunk/avr-libc/libm/fplib/asmdef.h
===================================================================
--- trunk/avr-libc/libm/fplib/asmdef.h  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/asmdef.h  2015-04-09 08:10:22 UTC (rev 2473)
@@ -43,6 +43,16 @@
 # endif
 #endif
 
+/* Define XJMP/XCALL with rjmp/rcall if the arch do not have
+   jmp/call instructions. */
+#if (__AVR_HAVE_JMP_CALL__)
+# define XJMP jmp
+# define XCALL call
+#else
+# define XJMP rjmp
+# define XCALL rcall
+#endif
+
 /* Historicaly, the _U() was intended to concatinate '_' prefix.
    Let us save it, as one is usefull to find externals quickly.        */
 #define        _U(name)        name

Modified: trunk/avr-libc/libm/fplib/atan.S
===================================================================
--- trunk/avr-libc/libm/fplib/atan.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/atan.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -68,22 +68,22 @@
        cpc     rB3, rAE
        brsh    1f
        mov     corr, rA3               ; rA3 != 0
-       rcall   _U(inverse)
+       XCALL   _U(inverse)
   ; calculate atan(A) for -1.0 <= A <= +1.0
 1:     push    rA3
        push    rA2
        push    rA1
        push    rA0
-       rcall   _U(square)
+       XCALL   _U(square)
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powser)
-       rcall   _U(__fp_round)
+       XCALL   _U(__fp_powser)
+       XCALL   _U(__fp_round)
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
-       rcall   _U(__mulsf3x)
+       XCALL   _U(__mulsf3x)
   ; is correction needed ?
        tst     corr
        breq    2f
@@ -96,10 +96,10 @@
        ldi     rB3, hhi8(HI40_PI_2)
        andi    corr, 0x80
        eor     rB3, corr
-       rcall   _U(__addsf3x)
+       XCALL   _U(__addsf3x)
   ; restore and round
 2:     pop     corr
-       rjmp    _U(__fp_round)
+       XJMP    _U(__fp_round)
 ENDFUNC
 
        PGM_SECTION

Modified: trunk/avr-libc/libm/fplib/atan2.S
===================================================================
--- trunk/avr-libc/libm/fplib/atan2.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/atan2.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -68,13 +68,13 @@
 
 FUNCTION atan2
 
-.L_nf: rcall   _U(__fp_pscA)
+.L_nf: XCALL   _U(__fp_pscA)
        brcs    .L_nan
        ldi     rA2, 0x80
        ldi     rA3, 0x01       ; replace finite to very small value
        brne    1f
        ldi     rA3, 0xfe       ; replace Inf to very big value
-1:     rcall   _U(__fp_pscB)
+1:     XCALL   _U(__fp_pscB)
        brcs    .L_nan
        ldi     rB2, 0x80
        ldi     rB3, 0x01       ; replace finite to very small value
@@ -82,15 +82,15 @@
        ldi     rB3, 0xfe       ; replace Inf to very big value
        rjmp    .L_cmp
 
-.L_nan:        rjmp    _U(__fp_nan)
-.L_zr: rjmp    _U(__fp_zero)
+.L_nan:        XJMP    _U(__fp_nan)
+.L_zr: XJMP    _U(__fp_zero)
 
 ENTRY   atan2
   ; save 'y' sign
        mov     disp, rA3
        andi    disp, 0x80
   ; split
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    .L_nf
   ; check the (0,0) case
        mov     r0, rA3
@@ -124,9 +124,9 @@
        X_movw  rB2, XL
   ; save displacement and calculate atan
 2:     push    disp
-       rcall   _U(__divsf3_pse)
-       rcall   _U(__fp_round)
-       rcall   _U(atan)
+       XCALL   _U(__divsf3_pse)
+       XCALL   _U(__fp_round)
+       XCALL   _U(atan)
   ; restore disp and analize
        pop     rB3             ; hhi8()
        tst     rB3
@@ -137,7 +137,7 @@
        ldi     rB2, hlo8(PI)
        sbrc    rB3, 0          ; hhi8(PI) == 0x40,  hhi8(PI_2) == 0x3f
        ldi     rB2, hlo8(PI_2)
-       rjmp    _U(__addsf3)
+       XJMP    _U(__addsf3)
 
 9:     ret
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/cbrt.S
===================================================================
--- trunk/avr-libc/libm/fplib/cbrt.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/cbrt.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -110,11 +110,11 @@
        ret
 #endif
 
-0:     rjmp    _U(__fp_mpack)
+0:     XJMP    _U(__fp_mpack)
 
 ENTRY cbrt
   ; split and check arg.
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    0b              ; !isfinite(A)
        tst     rA3
        breq    0b              ; return 0 with original sign

Modified: trunk/avr-libc/libm/fplib/ceil.S
===================================================================
--- trunk/avr-libc/libm/fplib/ceil.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/ceil.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -46,7 +46,7 @@
 #define FL_P1  0x3f800000      /* +1.0 */
 
 ENTRY   ceil
-       rcall   _U(__fp_trunc)
+       XCALL   _U(__fp_trunc)
        brcs    .L_nf
   ; A is finite
        cpi     rA3, 127
@@ -54,7 +54,7 @@
   ; fabs(A) < 1.0
        cpse    rA3, r1
        brtc    1f
-       rjmp    _U(__fp_szero)          ; ceil(-0.0) is -0.0
+       XJMP    _U(__fp_szero)          ; ceil(-0.0) is -0.0
   ; 0.0 < A < 1.0 --> +1.0
 1:     ldi     rA0,  lo8(FL_P1)
        ldi     rA1,  hi8(FL_P1)
@@ -67,9 +67,9 @@
        adc     rA0, r1
        adc     rA1, r1
        adc     rA2, r1         ; rA2 was < 0x80, overflow is impossible
-3:     rjmp    _U(__fp_mintl)
+3:     XJMP    _U(__fp_mintl)
 
-.L_nf: rjmp    _U(__fp_mpack)  ; pass nonfinite arg as is
+.L_nf: XJMP    _U(__fp_mpack)  ; pass nonfinite arg as is
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/cmpsf2.S
===================================================================
--- trunk/avr-libc/libm/fplib/cmpsf2.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/cmpsf2.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -55,7 +55,7 @@
 ENTRY   __nesf2
 ENTRY   __ltsf2
 ENTRY   __lesf2
-       rcall   _U(__fp_cmp)
+       XCALL   _U(__fp_cmp)
        brcc    1f
        ldi     ret_lo, 1
 1:     ret

Modified: trunk/avr-libc/libm/fplib/cos.S
===================================================================
--- trunk/avr-libc/libm/fplib/cos.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/cos.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -37,7 +37,7 @@
      radians.
  */
 ENTRY cos
-       rcall   _U(__fp_rempio2)
+       XCALL   _U(__fp_rempio2)
        inc     ZL
-       rjmp    _U(__fp_sinus)
+       XJMP    _U(__fp_sinus)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/cosh.S
===================================================================
--- trunk/avr-libc/libm/fplib/cosh.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/cosh.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -46,10 +46,10 @@
 ENTRY cosh
   ; A = exp(-fabs(x))/2        negative to exclude an extra inversion
        ori     rA3, 0x80
-       rcall   _U(exp)
+       XCALL   _U(exp)
        ldi     exp_lo, lo8(-1)
        ldi     exp_hi, hi8(-1)
-       rcall   _U(ldexp)
+       XCALL   _U(ldexp)
   ; save A and calculate exp(fabs(x))/2
        push    rA3
        push    rA2
@@ -57,12 +57,12 @@
        push    rA0
        ldi     exp_lo, lo8(2)
        ldi     exp_hi, hi8(2)
-       rcall   _U(ldexp)
-       rcall   _U(inverse)
+       XCALL   _U(ldexp)
+       XCALL   _U(inverse)
   ; exp(x)/2 + exp(-x)/2
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
-       rjmp    _U(__addsf3)
+       XJMP    _U(__addsf3)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/divsf3.S
===================================================================
--- trunk/avr-libc/libm/fplib/divsf3.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/divsf3.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -37,6 +37,6 @@
 #include "asmdef.h"
 
 ENTRY  __divsf3
-       rcall   _U(__divsf3x)
-       rjmp    _U(__fp_round)
+       XCALL   _U(__divsf3x)
+       XJMP    _U(__fp_round)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/divsf3x.S
===================================================================
--- trunk/avr-libc/libm/fplib/divsf3x.S 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/divsf3x.S 2015-04-09 08:10:22 UTC (rev 2473)
@@ -43,23 +43,23 @@
 
 FUNCTION __divsf3x
 
-0:     rcall   _U(__fp_pscB)
+0:     XCALL   _U(__fp_pscB)
        brcs    .L_nan
-       rcall   _U(__fp_pscA)
+       XCALL   _U(__fp_pscA)
        brcs    .L_nan
        brne    .L_zr           ; finite / Inf --> 0
 .L_infA:
        cpi     rB3, 255
        breq    .L_nan          ; Inf / Inf --> NaN
 .L_inf:
-       rjmp    _U(__fp_inf)
+       XJMP    _U(__fp_inf)
 1:
        cpse    rB3, r1         ; 0/finite --> 0,  0/0 --> NaN
-.L_zr: rjmp    _U(__fp_szero)
-.L_nan:        rjmp    _U(__fp_nan)
+.L_zr: XJMP    _U(__fp_szero)
+.L_nan:        XJMP    _U(__fp_nan)
 
 ENTRY  __divsf3x
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    0b
 
 ENTRY  __divsf3_pse            ; post split entry
@@ -130,9 +130,9 @@
 11:    cpi     rA3, 254
        cpc     rB3, r1
        brlo    15f
-       rjmp    _U(__fp_inf)
+       XJMP    _U(__fp_inf)
   ; check lowest value of exponent to avoid long operation
-12:    rjmp    _U(__fp_szero)
+12:    XJMP    _U(__fp_szero)
 13:    cpi     rB3, hi8(-24)           ; here rB3 < 0
        brlt    12b
        cpi     rA3, lo8(-24)

Modified: trunk/avr-libc/libm/fplib/exp.S
===================================================================
--- trunk/avr-libc/libm/fplib/exp.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/exp.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -50,13 +50,13 @@
 
 .L_nf: brne    .L_nan
 .L_tb: brts    .L_zr
-       rjmp    _U(__fp_inf)
-.L_zr: rjmp    _U(__fp_zero)
-.L_nan:        rjmp    _U(__fp_nan)
+       XJMP    _U(__fp_inf)
+.L_zr: XJMP    _U(__fp_zero)
+.L_nan:        XJMP    _U(__fp_nan)
 
 ENTRY exp
   ; split and analize A
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_nf           ; A is not a finite number
        cpi     rA3, hhi8(X2BIG << 1)
        brsh    .L_tb           ; A is too big (in absolute value)
@@ -69,7 +69,7 @@
        ldi     rB1,  hi8(FL_1_LN2)
        ldi     rB2, hlo8(FL_1_LN2 | 0x800000)          ; hidden '1'
        ldi     rB3, hhi8(FL_1_LN2 << 1)                ; exponent
-       rcall   _U(__mulsf3_pse)
+       XCALL   _U(__mulsf3_pse)
   ; split A into fraction and integral parts
        push    r0
        push    r0
@@ -77,11 +77,11 @@
        in      exp_lo, SPL_IO_ADDR
        in      exp_hi, SPH_IO_ADDR
        push    r0
-       rcall   _U(modf)
+       XCALL   _U(modf)
   ; calculate 2**(-x) for 0 <= x < 1
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powser)
+       XCALL   _U(__fp_powser)
   ; get integral part
        pop     exp_lo
        pop     exp_hi
@@ -102,11 +102,11 @@
   ; negate and scale
        neg     exp_lo
        sbc     exp_hi, exp_hi
-2:     rcall   _U(ldexp)
+2:     XCALL   _U(ldexp)
   ; inverse for positive arg.
        pop     r0
        sbrs    r0, 7
-       rjmp    _U(inverse)
+       XJMP    _U(inverse)
        ret
 ENDFUNC
        

Modified: trunk/avr-libc/libm/fplib/fdim.S
===================================================================
--- trunk/avr-libc/libm/fplib/fdim.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/fdim.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -55,7 +55,7 @@
        cpc     rA2, rB2
        cpc     rA3, rB3
        brcs    3f
-1:     rjmp    _U(__subsf3)
+1:     XJMP    _U(__subsf3)
   ; A < 0 or B < 0
 2:     cp      rB0, rA0
        cpc     rB1, rA1
@@ -79,9 +79,9 @@
        cpc     ZH, rB3
        brlo    .L_nan
   ; return 0
-       rjmp    _U(__fp_zero)
+       XJMP    _U(__fp_zero)
 
-.L_nan:        rjmp    _U(__fp_nan)
+.L_nan:        XJMP    _U(__fp_nan)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/fixsfdi.S
===================================================================
--- trunk/avr-libc/libm/fplib/fixsfdi.S 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/fixsfdi.S 2015-04-09 08:10:22 UTC (rev 2473)
@@ -90,7 +90,7 @@
        clr     rB1
        X_movw  rB2, rB0
   ; split
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_ovfl         ; is not finite
 
        subi    rA3, 127        ; 1.0 exponent field
@@ -147,7 +147,7 @@
        brne    6b
 .L_sign:
        brtc    7f
-       rcall   _U(__fp_negdi)
+       XCALL   _U(__fp_negdi)
 7:     clc
        ret
 

Modified: trunk/avr-libc/libm/fplib/fixsfsi.S
===================================================================
--- trunk/avr-libc/libm/fplib/fixsfsi.S 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/fixsfsi.S 2015-04-09 08:10:22 UTC (rev 2473)
@@ -49,10 +49,10 @@
  */
 
 ENTRY __fixsfsi
-       rcall   _U(__fixunssfsi)
+       XCALL   _U(__fixunssfsi)
        set
        cpse    rAE, r1                 ; error flag
-       rjmp    _U(__fp_szero)          ; return 0x80000000
+       XJMP    _U(__fp_szero)          ; return 0x80000000
        ret
 ENDFUNC
 

Modified: trunk/avr-libc/libm/fplib/fixunssfsi.S
===================================================================
--- trunk/avr-libc/libm/fplib/fixunssfsi.S      2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fixunssfsi.S      2015-04-09 08:10:22 UTC (rev 
2473)
@@ -66,7 +66,7 @@
  */
 
 ENTRY __fixunssfsi
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_err
   ; A is finite
        subi    rA3, 127        ; exponent field of 1.0
@@ -91,11 +91,11 @@
 2:     cpi     rAE, 1
        breq    .L_sign         ; rAE: overflow for 'signed long' usage
 
-.L_err:        rcall   _U(__fp_zero)
+.L_err:        XCALL   _U(__fp_zero)
        ldi     rAE, 1          ; error flag
        ret
 
-.L_zr: rjmp    _U(__fp_zero)   ; return 0x00000000, clear rAE
+.L_zr: XJMP    _U(__fp_zero)   ; return 0x00000000, clear rAE
 
   ; fabs(A) <= 0x0.ffffffp+23
   ; Shift A to right by 1 (rA3==-1) .. 23 (rA3==-23) positions.

Modified: trunk/avr-libc/libm/fplib/floatdisf.S
===================================================================
--- trunk/avr-libc/libm/fplib/floatdisf.S       2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/floatdisf.S       2015-04-09 08:10:22 UTC (rev 
2473)
@@ -42,6 +42,6 @@
 ENTRY   __floatdisf
        bst     rA3, 7          ; sign
        brtc    1f
-       rcall   _U(__fp_negdi)
-1:     rjmp    _U(__fp_di2sf)
+       XCALL   _U(__fp_negdi)
+1:     XJMP    _U(__fp_di2sf)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/floor.S
===================================================================
--- trunk/avr-libc/libm/fplib/floor.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/floor.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -45,7 +45,7 @@
 #define FL_M1  0xbf800000      /* -1.0 */
 
 ENTRY floor
-       rcall   _U(__fp_trunc)
+       XCALL   _U(__fp_trunc)
        brcs    .L_nf
   ; A is finite
        cpi     rA3, 127
@@ -53,7 +53,7 @@
   ; fabs(A) < 1.0
        cpse    rA3, r1         ; floor(-0.0) is -0.0
        brts    1f
-       rjmp    _U(__fp_szero)
+       XJMP    _U(__fp_szero)
   ; fabs (-1.0 < A < 0.0) --> -1.0
 1:     ldi     rA0,  lo8(FL_M1)
        ldi     rA1,  hi8(FL_M1)
@@ -66,9 +66,9 @@
        adc     rA0, r1
        adc     rA1, r1
        adc     rA2, r1         ; rA2 was < 0x80, overflow is impossible
-3:     rjmp    _U(__fp_mintl)
+3:     XJMP    _U(__fp_mintl)
 
-.L_nf: rjmp    _U(__fp_mpack)  ; pass nonfinite arg as is
+.L_nf: XJMP    _U(__fp_mpack)  ; pass nonfinite arg as is
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/fma.S
===================================================================
--- trunk/avr-libc/libm/fplib/fma.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/fma.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -45,12 +45,12 @@
 #define        rC2     r16
 
 ENTRY fma
-       rcall   _U(__mulsf3x)
+       XCALL   _U(__mulsf3x)
        X_movw  rB0, rC0
        X_movw  rB2, rC2
        clr     rBE
-       rcall   _U(__addsf3x)
-       rjmp    _U(__fp_round)
+       XCALL   _U(__addsf3x)
+       XJMP    _U(__fp_round)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/fmod.S
===================================================================
--- trunk/avr-libc/libm/fplib/fmod.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/fmod.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -42,19 +42,19 @@
 
 FUNCTION fmod
 
-0:     rcall   _U(__fp_pscA)
+0:     XCALL   _U(__fp_pscA)
        brcs    .L_nan          ; isnan(A)
        breq    .L_nan          ; isinf(A)
-       rcall   _U(__fp_pscB)
+       XCALL   _U(__fp_pscB)
        brcc    1f              ; isinf(B) -- legal arg: return A
 
-.L_nan:        rjmp    _U(__fp_nan)
-.L_sz: rjmp    _U(__fp_szero)
+.L_nan:        XJMP    _U(__fp_nan)
+.L_sz: XJMP    _U(__fp_szero)
 
 ENTRY fmod
   ; split and check exceptions
        mov     ZL, rA3         ; save
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    0b
        tst     rB3
        breq    .L_nan          ; B == 0
@@ -124,7 +124,7 @@
        brne    7b
 8:     inc     rA3
 .L_pk:
-       rjmp    _U(__fp_mpack)
+       XJMP    _U(__fp_mpack)
 9:     lsr     rA2
        ror     rA1
        ror     rA0

Modified: trunk/avr-libc/libm/fplib/fp_arccos.S
===================================================================
--- trunk/avr-libc/libm/fplib/fp_arccos.S       2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fp_arccos.S       2015-04-09 08:10:22 UTC (rev 
2473)
@@ -60,8 +60,8 @@
 
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powser)
-       rcall   _U(__fp_round)
+       XCALL   _U(__fp_powser)
+       XCALL   _U(__fp_round)
 
        movw    rB0, rC0
        movw    rB2, rC2
@@ -73,8 +73,8 @@
        ldi     rA1,  hi8(FL_1)
        ldi     rA2, hlo8(FL_1)
        ldi     rA3, hhi8(FL_1)
-       rcall   _U(__subsf3)
-       rcall   _U(sqrt)
+       XCALL   _U(__subsf3)
+       XCALL   _U(sqrt)
 
        movw    rB0, rC0
        movw    rB2, rC2
@@ -84,7 +84,7 @@
        pop     rC1
        pop     rC2
        pop     rC3
-       rjmp    _U(__mulsf3x)
+       XJMP    _U(__mulsf3x)
 
 #else  /* to __AVR_HAVE_MOVW__ */
 
@@ -96,8 +96,8 @@
   ; calculate: C0 + A*(C1 + ...)
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powser)
-       rcall   _U(__fp_round)
+       XCALL   _U(__fp_powser)
+       XCALL   _U(__fp_round)
   ; restore A
        pop     rB0
        pop     rB1
@@ -113,14 +113,14 @@
        ldi     rA1,  hi8(FL_1)
        ldi     rA2, hlo8(FL_1)
        ldi     rA3, hhi8(FL_1)
-       rcall   _U(__subsf3)
-       rcall   _U(sqrt)
+       XCALL   _U(__subsf3)
+       XCALL   _U(sqrt)
   ; multiply
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
-       rjmp    _U(__mulsf3x)
+       XJMP    _U(__mulsf3x)
 
 #endif
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/fp_powser.S
===================================================================
--- trunk/avr-libc/libm/fplib/fp_powser.S       2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fp_powser.S       2015-04-09 08:10:22 UTC (rev 
2473)
@@ -76,7 +76,7 @@
 1:     mov     rcntr, rBE
 
 .Loop: X_movw  YL, ZL
-       rcall   _U(__mulsf3x)
+       XCALL   _U(__mulsf3x)
        X_movw  ZL, YL
 
        clt
@@ -89,7 +89,7 @@
        brts    1b
 
        X_movw  YL, ZL
-       rcall   _U(__addsf3x)
+       XCALL   _U(__addsf3x)
        X_movw  ZL, YL
 
        X_movw  rB0, rC0

Modified: trunk/avr-libc/libm/fplib/fp_powsodd.S
===================================================================
--- trunk/avr-libc/libm/fplib/fp_powsodd.S      2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fp_powsodd.S      2015-04-09 08:10:22 UTC (rev 
2473)
@@ -56,15 +56,15 @@
 
        X_movw  rB0, rA0
        X_movw  rB2, rA2
-       rcall   _U(__mulsf3)
+       XCALL   _U(__mulsf3)
 
        pop     ZL
        pop     ZH
-       rcall   _U(__fp_powser)
+       XCALL   _U(__fp_powser)
 
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
-       rjmp    _U(__mulsf3)
+       XJMP    _U(__mulsf3)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/fp_rempio2.S
===================================================================
--- trunk/avr-libc/libm/fplib/fp_rempio2.S      2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fp_rempio2.S      2015-04-09 08:10:22 UTC (rev 
2473)
@@ -47,11 +47,11 @@
 
 FUNCTION __fp_rempio2
 
-0:     rjmp    _U(__fp_nan)
+0:     XJMP    _U(__fp_nan)
 
 ENTRY __fp_rempio2
   ; split and check finite
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    0b              ; only finite numbers are valid
        clt                     ; ignore a sign
   ; init division result
@@ -98,7 +98,7 @@
        brpl    4b
 
 5:     sbci    rA3, hhi8((HI40_PIO2<<1) + 0x01000000)  ; undo the subi 0x7f
-       rjmp    _U(__fp_mpack_finite)
+       XJMP    _U(__fp_mpack_finite)
 ENDFUNC
 
 #if 0

Modified: trunk/avr-libc/libm/fplib/fp_sinus.S
===================================================================
--- trunk/avr-libc/libm/fplib/fp_sinus.S        2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fp_sinus.S        2015-04-09 08:10:22 UTC (rev 
2473)
@@ -50,9 +50,9 @@
        ldi     rB1,  hi8(HI40_PIO2)
        ldi     rB2, hlo8(HI40_PIO2)
        ldi     rB3, hhi8(HI40_PIO2 | 0x80000000)
-       rcall   _U(__addsf3x)
+       XCALL   _U(__addsf3x)
 
-1:     rcall   _U(__fp_round)
+1:     XCALL   _U(__fp_round)
 
        pop     r0
        inc     r0
@@ -61,7 +61,7 @@
 
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rjmp    _U(__fp_powsodd)
+       XJMP    _U(__fp_powsodd)
 ENDFUNC
        
        PGM_SECTION

Modified: trunk/avr-libc/libm/fplib/fp_trunc.S
===================================================================
--- trunk/avr-libc/libm/fplib/fp_trunc.S        2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/fp_trunc.S        2015-04-09 08:10:22 UTC (rev 
2473)
@@ -57,7 +57,7 @@
  */
 
 ENTRY __fp_trunc
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    9f
   ; A is finite
        ldi     rAE, 126

Modified: trunk/avr-libc/libm/fplib/frexp.S
===================================================================
--- trunk/avr-libc/libm/fplib/frexp.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/frexp.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -64,7 +64,7 @@
        st      Z, r1
        std     Z+1, r1
 1:
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_nf                   ; return the same value
        tst     rA3
        breq    3f
@@ -72,7 +72,7 @@
        sbc     rB3, rB3
 
        sbrs    rA2, 7
-       rcall   _U(__fp_norm2)
+       XCALL   _U(__fp_norm2)
 
 #if  defined(__AVR_XMEGA__) && __AVR_XMEGA__
        adiw    ZL, 0
@@ -94,7 +94,7 @@
 3:     bld     rA3, 7          ; restore sign
        ret
 .L_nf:
-       rjmp    _U(__fp_mpack)
+       XJMP    _U(__fp_mpack)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/gesf2.S
===================================================================
--- trunk/avr-libc/libm/fplib/gesf2.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/gesf2.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -52,7 +52,7 @@
  */
 ENTRY   __gesf2
 ENTRY   __gtsf2
-       rcall   _U(__fp_cmp)
+       XCALL   _U(__fp_cmp)
        brcc    1f
        ldi     ret_lo, -1
 1:     ret

Modified: trunk/avr-libc/libm/fplib/hypot.S
===================================================================
--- trunk/avr-libc/libm/fplib/hypot.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/hypot.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -71,25 +71,25 @@
 
 FUNCTION hypot
 
-.L_nf: rcall   _U(__fp_pscA)
+.L_nf: XCALL   _U(__fp_pscA)
        breq    1f              ; hypot(Inf, *) --> Inf
-       rcall   _U(__fp_pscB)
+       XCALL   _U(__fp_pscB)
        breq    1f              ; hypot(*, Inf) --> Inf
-       rjmp    _U(__fp_nan)    ; NaN and finite, or both NaN
-1:     rjmp    _U(__fp_inf)    ; T is 0 after __fp_split3()
+       XJMP    _U(__fp_nan)    ; NaN and finite, or both NaN
+1:     XJMP    _U(__fp_inf)    ; T is 0 after __fp_split3()
 
 .L_retB:
        X_movw  rA0, rB0
        X_movw  rA2, rB2
 .L_retA:
-       rjmp    _U(__fp_mpack)
+       XJMP    _U(__fp_mpack)
 
 ENTRY hypot
   ; clear signs
        andi    rA3, 0x7f
        andi    rB3, 0x7f
   ; split and check args
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    .L_nf
        tst     rA3
        breq    .L_retB
@@ -170,7 +170,7 @@
        mov     rBE, rAE
        movw    rB0, rA0
        movw    rB2, rA2
-       rcall   _U(__mulsf3_pse)
+       XCALL   _U(__mulsf3_pse)
        
        movw    rB0, rC0
        movw    rB2, rC2
@@ -183,7 +183,7 @@
        mov     rAE, rBE
        movw    rA0, rB0
        movw    rA2, rB2
-       rcall   _U(__mulsf3_pse)
+       XCALL   _U(__mulsf3_pse)
 
        pop     rBE     
        movw    rB0, rC0
@@ -206,7 +206,7 @@
        mov     rB1, rA1
        mov     rB2, rA2
        mov     rB3, rA3
-       rcall   _U(__mulsf3_pse)
+       XCALL   _U(__mulsf3_pse)
        
        pop     rB0
        pop     rB1
@@ -225,7 +225,7 @@
        mov     rA1, rB1
        mov     rA2, rB2
        mov     rA3, rB3
-       rcall   _U(__mulsf3_pse)
+       XCALL   _U(__mulsf3_pse)
        
        pop     rBE
        pop     rB0
@@ -234,9 +234,9 @@
        pop     rB3
 #endif /* ! __AVR_HAVE_MOVW__  */
        
-       rcall   _U(__addsf3x)
-       rcall   _U(__fp_round)
-       rcall   _U(sqrt)
+       XCALL   _U(__addsf3x)
+       XCALL   _U(__fp_round)
+       XCALL   _U(sqrt)
 
   ; restore a scale
 #if (-SCALE_SMALL & SCALE_BIG) == 0
@@ -248,5 +248,5 @@
        clr     exp_hi
        sbrc    exp_lo, 7
        com     exp_hi
-       rjmp    _U(ldexp)
+       XJMP    _U(ldexp)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/inverse.S
===================================================================
--- trunk/avr-libc/libm/fplib/inverse.S 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/inverse.S 2015-04-09 08:10:22 UTC (rev 2473)
@@ -47,5 +47,5 @@
        ldi     rA2, hlo8(FL_1)
        ldi     rA3, hhi8(FL_1)
 
-       rjmp    _U(__divsf3)
+       XJMP    _U(__divsf3)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/isinf.S
===================================================================
--- trunk/avr-libc/libm/fplib/isinf.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/isinf.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -43,7 +43,7 @@
  */
 
 ENTRY isinf
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        ldi     r24, 0
        ldi     r25, 0
        brcc    2f                      ; normal value

Modified: trunk/avr-libc/libm/fplib/isnan.S
===================================================================
--- trunk/avr-libc/libm/fplib/isnan.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/isnan.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -41,7 +41,7 @@
  */
 
 ENTRY isnan
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        ldi     r24, 0
        ldi     r25, 0
        breq    1f              ; Z = 1 for Normal or Inf

Modified: trunk/avr-libc/libm/fplib/ldexp.S
===================================================================
--- trunk/avr-libc/libm/fplib/ldexp.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/ldexp.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -43,11 +43,11 @@
 
 FUNCTION ldexp
 
-.L_inf:        rjmp    _U(__fp_inf)
-.L_pk: rjmp    _U(__fp_mpack)
+.L_inf:        XJMP    _U(__fp_inf)
+.L_pk: XJMP    _U(__fp_mpack)
 
 ENTRY ldexp
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_pk                   ; as is
        tst     rA3
        breq    .L_pk                   ; ldexp(0,*) is always 0
@@ -110,7 +110,7 @@
        sbci    rA3, -1
        rjmp    .L_pack
 .L_zero:
-       rjmp    _U(__fp_szero)
+       XJMP    _U(__fp_szero)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/log.S
===================================================================
--- trunk/avr-libc/libm/fplib/log.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/log.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -50,13 +50,13 @@
 FUNCTION log
 
 .L_nf: brts    .L_nan          ; branch, if -Inf
-       rjmp    _U(__fp_mpack)  ; pass as is: NaN --> NaN, +Inf --> +Inf
-.L_nan:        rjmp    _U(__fp_nan)
+       XJMP    _U(__fp_mpack)  ; pass as is: NaN --> NaN, +Inf --> +Inf
+.L_nan:        XJMP    _U(__fp_nan)
 .L_min:        set
-       rjmp    _U(__fp_inf)
+       XJMP    _U(__fp_inf)
 
 ENTRY log
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_nf           ; !isfinite(A)
        tst     rA3
        breq    .L_min          ; -Inf
@@ -93,14 +93,14 @@
        brlo    4f
        adiw    rC2, 1
        andi    rA2, ~0x80
-3:     rcall   _U(__addsf3)
+3:     XCALL   _U(__addsf3)
        ldi     ZL, lo8(.L_tlow)
        ldi     ZH, hi8(.L_tlow)
        rjmp    5f
-4:     rcall   _U(__addsf3)
+4:     XCALL   _U(__addsf3)
        ldi     ZL, lo8(.L_thigh)
        ldi     ZH, hi8(.L_thigh)
-5:     rcall   _U(__fp_powser)
+5:     XCALL   _U(__fp_powser)
 
        X_movw  rC0, rA0
        X_movw  rA0, rC2        ; rA1.rA0 = exponent (possible negative)
@@ -113,12 +113,12 @@
        rol     rA1             ; C = rA1 sign bit
        sbc     rA2, rA2
        sbc     rA3, rA3
-       rcall   _U(__floatsisf)
+       XCALL   _U(__floatsisf)
        ldi     rB0,  lo8(LN_2)
        ldi     rB1,  hi8(LN_2)
        ldi     rB2, hlo8(LN_2)
        ldi     rB3, hhi8(LN_2)
-       rcall   _U(__mulsf3x)
+       XCALL   _U(__mulsf3x)
        
        mov     rBE, rCE
        X_movw  rB0, rC0
@@ -130,8 +130,8 @@
        pop     rC2
        pop     rC3
        
-       rcall   _U(__addsf3x)
-       rjmp    _U(__fp_round)
+       XCALL   _U(__addsf3x)
+       XJMP    _U(__fp_round)
 ENDFUNC
        
        PGM_SECTION

Modified: trunk/avr-libc/libm/fplib/log10.S
===================================================================
--- trunk/avr-libc/libm/fplib/log10.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/log10.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -39,10 +39,10 @@
 #define        INV_LN_10       0x3ede5bd9      /* 1.0/log(10.0)        */
 
 ENTRY log10
-       rcall   _U(log)
+       XCALL   _U(log)
        ldi     rB0,  lo8(INV_LN_10)
        ldi     rB1,  hi8(INV_LN_10)
        ldi     rB2, hlo8(INV_LN_10)
        ldi     rB3, hhi8(INV_LN_10)
-       rjmp    _U(__mulsf3)
+       XJMP    _U(__mulsf3)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/lrint.S
===================================================================
--- trunk/avr-libc/libm/fplib/lrint.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/lrint.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -51,7 +51,7 @@
  */
 
 ENTRY lrint
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_err
   ; A is finite
        subi    rA3, 126        ; exponent field of 0.5
@@ -128,9 +128,9 @@
 6:     ret
 
 .L_err:        set                     ; force return 0x80000000
-       rjmp    _U(__fp_szero)
+       XJMP    _U(__fp_szero)
 
-.L_zr: rjmp    _U(__fp_zero)   ; return 0x00000000
+.L_zr: XJMP    _U(__fp_zero)   ; return 0x00000000
 
 ENDFUNC
 

Modified: trunk/avr-libc/libm/fplib/lround.S
===================================================================
--- trunk/avr-libc/libm/fplib/lround.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/lround.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -53,7 +53,7 @@
  */
 
 ENTRY lround
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_err
   ; A is finite
        subi    rA3, 126        ; exponent field of 0.5
@@ -116,9 +116,9 @@
 6:     ret
 
 .L_err:        set                     ; force return 0x80000000
-       rjmp    _U(__fp_szero)
+       XJMP    _U(__fp_szero)
 
-.L_zr: rjmp    _U(__fp_zero)   ; return 0x00000000
+.L_zr: XJMP    _U(__fp_zero)   ; return 0x00000000
 
 ENDFUNC
 

Modified: trunk/avr-libc/libm/fplib/modf.S
===================================================================
--- trunk/avr-libc/libm/fplib/modf.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/modf.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -87,7 +87,7 @@
   ; write B
        rcall   .L_write
   ; return nonzero fraction:  A - B
-       rjmp    _U(__subsf3)
+       XJMP    _U(__subsf3)
   ; exponent too big:  compare with smallest NaN (0x7f800001)
 4:     cpi     rA0, 1
        cpc     rA1, r1

Modified: trunk/avr-libc/libm/fplib/mulsf3.S
===================================================================
--- trunk/avr-libc/libm/fplib/mulsf3.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/mulsf3.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -33,6 +33,6 @@
 #include "asmdef.h"
 
 ENTRY   __mulsf3
-       rcall   _U(__mulsf3x)
-       rjmp    _U(__fp_round)
+       XCALL   _U(__mulsf3x)
+       XJMP    _U(__fp_round)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/mulsf3x.S
===================================================================
--- trunk/avr-libc/libm/fplib/mulsf3x.S 2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/mulsf3x.S 2015-04-09 08:10:22 UTC (rev 2473)
@@ -41,19 +41,19 @@
 
 #if    defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
 
-0:     rcall   _U(__fp_pscA)
+0:     XCALL   _U(__fp_pscA)
        brcs    1f
-       rcall   _U(__fp_pscB)
+       XCALL   _U(__fp_pscB)
        brcs    1f
        and     rA3, rB3                ; one of args is 0xff
        breq    1f
-       rjmp    _U(__fp_inf)            ; nonzero * Inf --> Inf
-1:     rjmp    _U(__fp_nan)            ; 0 * Inf --> NaN
+       XJMP    _U(__fp_inf)            ; nonzero * Inf --> Inf
+1:     XJMP    _U(__fp_nan)            ; 0 * Inf --> NaN
 2:     clr     r1                      ; after 'mul rA3,rB3'
-       rjmp    _U(__fp_szero)
+       XJMP    _U(__fp_szero)
 
 ENTRY   __mulsf3x
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    0b
 
 ENTRY   __mulsf3_pse                   ; post split entry
@@ -122,18 +122,18 @@
 
 #else  /* to __AVR_ENHANCED__  */
 
-0:     rcall   _U(__fp_pscA)
+0:     XCALL   _U(__fp_pscA)
        brcs    1f
-       rcall   _U(__fp_pscB)
+       XCALL   _U(__fp_pscB)
        brcs    1f
        and     rA3, rB3                ; one of args is 0xff
        breq    1f
-       rjmp    _U(__fp_inf)            ; nonzero * Inf --> Inf
-1:     rjmp    _U(__fp_nan)            ; 0 * Inf --> NaN
-2:     rjmp    _U(__fp_szero)
+       XJMP    _U(__fp_inf)            ; nonzero * Inf --> Inf
+1:     XJMP    _U(__fp_nan)            ; 0 * Inf --> NaN
+2:     XJMP    _U(__fp_szero)
 
 ENTRY   __mulsf3x
-       rcall   _U(__fp_split3)
+       XCALL   _U(__fp_split3)
        brcs    0b
 
 ENTRY   __mulsf3_pse                   ; post split entry
@@ -228,9 +228,9 @@
 11:    cpi     rA3, 254
        cpc     rB3, r1
        brlo    15f
-       rjmp    _U(__fp_inf)
+       XJMP    _U(__fp_inf)
   ; check lowest value of exponent to avoid long operation
-12:    rjmp    _U(__fp_szero)
+12:    XJMP    _U(__fp_szero)
 13:    cpi     rB3, hi8(-24)           ; here rB3 < 0
        brlt    12b
        cpi     rA3, lo8(-24)

Modified: trunk/avr-libc/libm/fplib/pow.S
===================================================================
--- trunk/avr-libc/libm/fplib/pow.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/pow.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -190,7 +190,7 @@
 .L_noint:
        brts    .L_pow
 .L_nan:
-       rjmp    _U(__fp_nan)
+       XJMP    _U(__fp_nan)
 .L_one:
        ldi     rA0,  lo8(FL_1)
        ldi     rA1,  hi8(FL_1)
@@ -206,13 +206,13 @@
        push    rB2
        push    rB1
        push    rB0
-       rcall   _U(log)
+       XCALL   _U(log)
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
-       rcall   _U(__mulsf3)
-       rjmp    _U(exp)
+       XCALL   _U(__mulsf3)
+       XJMP    _U(exp)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/round.S
===================================================================
--- trunk/avr-libc/libm/fplib/round.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/round.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -49,7 +49,7 @@
    This is a balance between space and speed.
  */
 ENTRY round
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_nf
   ; A is finite
        cpi     rA3, 126        ; exponent field of 0.5
@@ -86,10 +86,10 @@
        ror     rA0
        inc     rA3
   ; merge
-4:     rjmp    _U(__fp_mintl)
+4:     XJMP    _U(__fp_mintl)
 
-.L_nf: rjmp    _U(__fp_mpack)  ; pass nonfinite arg "as is"
-.L_zr: rjmp    _U(__fp_szero)  ; return +0.0/-0.0
+.L_nf: XJMP    _U(__fp_mpack)  ; pass nonfinite arg "as is"
+.L_zr: XJMP    _U(__fp_szero)  ; return +0.0/-0.0
 
 ENDFUNC
 

Modified: trunk/avr-libc/libm/fplib/sin.S
===================================================================
--- trunk/avr-libc/libm/fplib/sin.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/sin.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -40,11 +40,11 @@
 
 ENTRY sin
        push    rA3
-       rcall   _U(__fp_rempio2)
+       XCALL   _U(__fp_rempio2)
        pop     r0
        sbrc    r0, 7
        subi    ZL, -2
-       rjmp    _U(__fp_sinus)
+       XJMP    _U(__fp_sinus)
 ENDFUNC
 
 #endif /* !defined(__AVR_TINY__) */

Modified: trunk/avr-libc/libm/fplib/sinh.S
===================================================================
--- trunk/avr-libc/libm/fplib/sinh.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/sinh.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -59,15 +59,15 @@
   ; for small x
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powsodd)
+       XCALL   _U(__fp_powsodd)
        rjmp    2f
   ; exp(-fabs(x))      // negative to exclude an extra inversion
 1:     ori     rA3, 0x80
-       rcall   _U(exp)
+       XCALL   _U(exp)
   ; exp(-fabs(x)) / 2
        ldi     exp_lo, lo8(-1)
        ldi     exp_hi, hi8(-1)
-       rcall   _U(ldexp)
+       XCALL   _U(ldexp)
   ; save
        push    rA3
        push    rA2
@@ -76,14 +76,14 @@
   ; exp(fabs(x)) / 2
        ldi     exp_lo, lo8(2)
        ldi     exp_hi, hi8(2)
-       rcall   _U(ldexp)
-       rcall   _U(inverse)
+       XCALL   _U(ldexp)
+       XCALL   _U(inverse)
   ; result (in absolute value)
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
-       rcall   _U(__subsf3)
+       XCALL   _U(__subsf3)
   ; set sign
 2:     pop     r0
        sbrc    r0, 7

Modified: trunk/avr-libc/libm/fplib/sqrt.S
===================================================================
--- trunk/avr-libc/libm/fplib/sqrt.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/sqrt.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -42,13 +42,13 @@
 
 .L_nf: brne    .L_pk           ; NaN, return as is
        brtc    .L_pk           ; sqrt(+Inf) --> +Inf
-.L_nan:        rjmp    _U(__fp_nan)
-.L_pk: rjmp    _U(__fp_mpack)
+.L_nan:        XJMP    _U(__fp_nan)
+.L_pk: XJMP    _U(__fp_mpack)
 
 ENTRY sqrt
 ALIAS_ENTRY sqrtf
   ; split and check arg.
-       rcall   _U(__fp_splitA)
+       XCALL   _U(__fp_splitA)
        brcs    .L_nf           ; !isfinite(A)
        tst     rA3
        breq    .L_pk           ; return 0 with original sign
@@ -58,7 +58,7 @@
        sbc     rB3, rB3        ; exponent high byte
   ; normalize, if A is subnormal
        sbrs    rA2, 7
-       rcall   _U(__fp_norm2)
+       XCALL   _U(__fp_norm2)
 
 #define        msk0    r0
 #define msk1   r1

Modified: trunk/avr-libc/libm/fplib/square.S
===================================================================
--- trunk/avr-libc/libm/fplib/square.S  2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/square.S  2015-04-09 08:10:22 UTC (rev 2473)
@@ -40,5 +40,5 @@
        X_movw  rB0, rA0
        X_movw  rB2, rA2        ; B = A
 
-       rjmp    _U(__mulsf3)    ; A * B
+       XJMP    _U(__mulsf3)    ; A * B
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/tan.S
===================================================================
--- trunk/avr-libc/libm/fplib/tan.S     2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/tan.S     2015-04-09 08:10:22 UTC (rev 2473)
@@ -55,7 +55,7 @@
        push    rsign
        mov     rsign, rA3
   ; fmod by Pi/2
-       rcall   _U(__fp_rempio2)
+       XCALL   _U(__fp_rempio2)
   ; save perion number
        lsr     ZL
        ror     rsign
@@ -81,16 +81,16 @@
        ldi     rBE, LO40_PIO2
        ldi     rB2, hlo8(HI40_PIO2)
        ori     rA3, 0x80
-       rcall   _U(__addsf3x)
-       rcall   _U(__fp_round)
+       XCALL   _U(__addsf3x)
+       XCALL   _U(__fp_round)
   ; calculate tan(A) for  0 <= A <= Pi/4
 1:     ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powsodd)
+       XCALL   _U(__fp_powsodd)
   ; correct result
        lsl     rsign
        brvs    2f
-       rcall   _U(inverse)
+       XCALL   _U(inverse)
 2:     lsl     rsign
        brvc    3f
        subi    rA3, 0x80

Modified: trunk/avr-libc/libm/fplib/tanh.S
===================================================================
--- trunk/avr-libc/libm/fplib/tanh.S    2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/tanh.S    2015-04-09 08:10:22 UTC (rev 2473)
@@ -63,14 +63,14 @@
   ; for small x
        ldi     ZL, lo8(.L_table)
        ldi     ZH, hi8(.L_table)
-       rcall   _U(__fp_powsodd)
+       XCALL   _U(__fp_powsodd)
        rjmp    2f
   ; exp(-2*fabs(x))
 1:     ori     rA3, 0x80
        ldi     exp_lo, lo8(1)
        ldi     exp_hi, hi8(1)
-       rcall   _U(ldexp)       ; possible overflow -- no matter
-       rcall   _U(exp)
+       XCALL   _U(ldexp)       ; possible overflow -- no matter
+       XCALL   _U(exp)
   ; save result and calculate 1 + exp(-2*fabs(x))
        push    rA3
        push    rA2
@@ -80,7 +80,7 @@
        ldi     rB1,  hi8(FL_P1)
        ldi     rB2, hlo8(FL_P1)
        ldi     rB3, hhi8(FL_P1)
-       rcall   _U(__addsf3)
+       XCALL   _U(__addsf3)
   ; save/restore and calculate 1 - exp(-2*fabs(x))
        pop     rB0
        pop     rB1
@@ -94,14 +94,14 @@
        ldi     rA1,  hi8(FL_P1)
        ldi     rA2, hlo8(FL_P1)
        ldi     rA3, hhi8(FL_P1)
-       rcall   _U(__subsf3)
+       XCALL   _U(__subsf3)
   ; restore
        pop     rB0
        pop     rB1
        pop     rB2
        pop     rB3
   ; divide
-       rcall   _U(__divsf3)
+       XCALL   _U(__divsf3)
   ; sign
 2:     pop     r0
        sbrc    r0, 7

Modified: trunk/avr-libc/libm/fplib/trunc.S
===================================================================
--- trunk/avr-libc/libm/fplib/trunc.S   2015-03-18 06:53:54 UTC (rev 2472)
+++ trunk/avr-libc/libm/fplib/trunc.S   2015-04-09 08:10:22 UTC (rev 2473)
@@ -42,11 +42,11 @@
  */
 
 ENTRY trunc
-       rcall   _U(__fp_trunc)
+       XCALL   _U(__fp_trunc)
        brcs    2f              ; pass nonfinite arg as is
        cpi     rA3, 127
        brsh    1f              ; fabs(A) >= 1.0
-       rjmp    _U(__fp_szero)
-1:     rjmp    _U(__fp_mintl)
-2:     rjmp    _U(__fp_mpack)
+       XJMP    _U(__fp_szero)
+1:     XJMP    _U(__fp_mintl)
+2:     XJMP    _U(__fp_mpack)
 ENDFUNC

Modified: trunk/avr-libc/libm/fplib/unordsf2.S
===================================================================
--- trunk/avr-libc/libm/fplib/unordsf2.S        2015-03-18 06:53:54 UTC (rev 
2472)
+++ trunk/avr-libc/libm/fplib/unordsf2.S        2015-04-09 08:10:22 UTC (rev 
2473)
@@ -39,7 +39,7 @@
 #include "asmdef.h"
 
 ENTRY   __unordsf2
-       rcall   _U(__fp_cmp)    ; return C=1, if any of args is NaN
+       XCALL   _U(__fp_cmp)    ; return C=1, if any of args is NaN
        sbc     r24, r24
        sbc     r25, r25
        ret




reply via email to

[Prev in Thread] Current Thread [Next in Thread]