/[avr-libc]/avr-libc/libm/fplib/tanh.S
ViewVC logotype

Diff of /avr-libc/libm/fplib/tanh.S

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by joerg_wunsch, Tue Sep 13 13:29:54 2005 UTC revision 1.7 by aesok, Sun Nov 13 20:59:25 2005 UTC
# Line 56  Line 56 
56  #include "macros.inc"  #include "macros.inc"
57  #include "fplib.inc"  #include "fplib.inc"
58    
59            TEXT_SEG(fplib, tanh)          TEXT_SEG(fplib, tanh)
60            FUNCTION(tanh)          FUNCTION(tanh)
61    
62  GLOBAL(tanh)  GLOBAL(tanh)
63          /* check for x > 8.3177661895751953 [41051592]          /* check for x > 8.3177661895751953 [41051592]
# Line 82  GLOBAL(tanh) Line 82  GLOBAL(tanh)
82  1:  1:
83     BLD   rA3,7     BLD   rA3,7
84    
85     PUSH  rA0                    /* LDI    rB3,1                 */  /*   PUSH  rA0                  */ LDI    rB3,0                
86     PUSH  rA1                    /* RCALL  _ldexp    ; x -> 2x   */  /*                              */ LDI    rB2,1                
87     PUSH  rA2                    /*                              */  /*   PUSH  rA1                  */ RCALL  _U(ldexp)    ; x -> 2x  
88     PUSH  rA3                    /* RCALL  _exp                  */  /*   PUSH  rA2                  */                              
89     RCALL _U(cosh)               /* PUSH   rA0                   */  /*   PUSH  rA3                  */ RCALL  _U(exp)                  
90     POP   rB3                    /* PUSH   rA1                   */  /*   RCALL _U(cosh)             */ PUSH   rA0                  
91     POP   rB2                    /* PUSH   rA2                   */  /*   POP   rB3                  */ PUSH   rA1                  
92     POP   rB1                    /* PUSH   rA3                   */  /*   POP   rB2                  */ PUSH   rA2                  
93     POP   rB0                    /* CLR    rB0                   */  /*   POP   rB1                  */ PUSH   rA3                  
94     PUSH  rA3                    /* CLR    rB1                   */  /*   POP   rB0                  */ CLR    rB0                  
95     PUSH  rA2                    /* LDI    rB2,0x80              */  /*   PUSH  rA3                  */ CLR    rB1                  
96     PUSH  rA1                    /* LDI    rB3,0x3F ; B = 1.0    */  /*   PUSH  rA2                  */ LDI    rB2,0x80              
97     PUSH  rA0                    /* RCALL  ___addsf3              */  /*   PUSH  rA1                  */ LDI    rB3,0x3F ; B = 1.0    
98     MOV   rA3,rB3                /* POP    rB3                   */  /*   PUSH  rA0                  */ RCALL  _U(__addsf3)            
99     MOV   rA2,rB2                /* POP    rB2                   */  /*   MOV   rA3,rB3              */ POP    rB3                  
100     MOV   rA1,rB1                /* POP    rB1                   */  /*   MOV   rA2,rB2              */ POP    rB2                  
101     MOV   rA0,rB0                /* POP    rB0  ; B = exp(2x)    */  /*   MOV   rA1,rB1              */ POP    rB1                  
102     RCALL _U(sinh)               /* PUSH   rA0                   */  /*   MOV   rA0,rB0              */ POP    rB0  ; B = exp(2x)    
103     POP   rB0                    /* PUSH   rA1                   */  /*   RCALL _U(sinh)             */ PUSH   rA0                  
104     POP   rB1                    /* PUSH   rA2                   */  /*   POP   rB0                  */ PUSH   rA1                  
105     POP   rB2                    /* PUSH   rA3                   */  /*   POP   rB1                  */ PUSH   rA2                  
106     POP   rB3                    /* CLR    rA0                   */  /*   POP   rB2                  */ PUSH   rA3                  
107     RJMP  _U(__divsf3)           /* CLR    rA1                   */  /*   POP   rB3                  */ CLR    rA0                  
108                                  /* LDI    rA2,0x80              */  /*   RJMP  _U(__divsf3)         */ CLR    rA1                  
109                                  /* LDI    rA3,0xBF ; A = -1.0   */  /*                              */ LDI    rA2,0x80              
110                                  /* RCALL  ___addsf3              */  /*                              */ LDI    rA3,0xBF ; A = -1.0  
111                                  /* POP    rB3                   */  /*                              */ RCALL  _U(__addsf3)            
112                                  /* POP    rB2                   */  /*                              */ POP    rB3                  
113                                  /* POP    rB1                   */  /*                              */ POP    rB2                  
114                                  /* POP    rB0  ; B = exp(2x)+1  */  /*                              */ POP    rB1                  
115                                  /* RJMP  ___divsf3               */  /*                              */ POP    rB0  ; B = exp(2x)+1  
116    /*                              */ RJMP  _U(__divsf3)              
117    
118            ENDFUNC            ENDFUNC
119    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26