+2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+ * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
+ object names as libgcc2.c.
+ * libgcc.S: Use newly defined names.
+
Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
* sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
function.
; r2 dividend, r3 divisor, r0 quotient
; clobbers r1, ar1
-#ifdef L_divqf3
+#ifdef L_divsf3
.text
.global ___divqf3
___divqf3:
;
; ar2 dividend, r2 divisor, r0 quotient
; clobbers r1, r3, ar0, ar1, ir0, ir1, rc, rs, re
-#ifdef L_divqi3
+#ifdef L_divsi3
.text
.global ___divqi3
.ref udivqi3n
;
; ar2 dividend, r2 divisor, r0 quotient,
; clobbers r1, r3, ar0, ar1, ir0, ir1, rc, rs, re
-#ifdef L_udivqi3
+#ifdef L_udivsi3
.text
.global ___udivqi3
.global udivqi3n
nop
#endif
-#ifdef L_umodqi3
+#ifdef L_umodsi3
.text
.global ___umodqi3
.global umodqi3n
nop
#endif
-#ifdef L_modqi3
+#ifdef L_modsi3
.text
.global ___modqi3
.ref umodqi3n
;
; ar2 multiplier, r2 multiplicand, r0 product
; clobbers r1, r2, r3
-#ifdef L_mulqi3
+#ifdef L_mulsi3
.text
.global ___mulqi3
___mulqi3:
; long1 and long2 on stack
; result in r0,r1
;
-#ifdef L_mulhi3
+#ifdef L_muldi3
.text
.global ___mulhi3
#ifdef _TMS320C4x
; src2 in r2
; result in r0
;
-#ifdef L_umulhi3_high
+#ifdef L_umuldi3_high
.text
.global ___umulhi3_high
___umulhi3_high:
; src2 in r2
; result in r0
;
-#ifdef L_smulhi3_high
+#ifdef L_smuldi3_high
.text
.global ___smulhi3_high
___smulhi3_high:
; long1 and long2 on stack
; divide in r0,r1
; modulo in r2,r3
-; routine takes a maximum of 64*9+21=597 cycles = 24 us @ 50Mhz
+; routine takes a maximum of 64*8+23=535 cycles = 21.4 us @ 50Mhz
;
-#ifdef L_udivhi3
+#ifdef L_udivdi3
.text
.global ___udivhi3
.global ___udivide
rolc r2
subi3 ar0,r2,r3
- xor 1,st
- ldic r3,r2
+ ldinc r3,r2
rolc r0
udivend0:
rolc r1
+ not r0
+ not r1
ldiu 0,r3
rets
udiv1:
rolc r3
subi3 ar0,r2,r4
subb3 ar1,r3,r5
- xor 1,st
- ldic r4,r2
- ldic r5,r3
+ ldinc r4,r2
+ ldinc r5,r3
rolc r0
udivend1:
rolc r1
+ not r0
+ not r1
pop r5
pop r4
rets
; long1 and long2 on stack
; result in r0,r1
;
-#ifdef L_umodhi3
+#ifdef L_umoddi3
.text
.global ___umodhi3
.ref ___modulo
; long1 and long2 on stack
; result in r0,r1
;
-#ifdef L_divhi3
+#ifdef L_divdi3
.text
.global ___divhi3
.ref ___udivide
; long1 and long2 on stack
; result in r0,r1
;
-#ifdef L_modhi3
+#ifdef L_moddi3
.text
.global ___modhi3
.ref ___umodulo
; input in r2
; result in r0,r1
;
-#ifdef L_fix_truncqfhi2
+#ifdef L_fix_truncsfdi2
.text
.global ___fix_truncqfhi2
.ref ufix_truncqfhi2n
; input in r2
; result in r0,r1
;
-#ifdef L_ufix_truncqfhi2
+#ifdef L_ufix_truncsfdi2
.text
.global ___ufix_truncqfhi2
.global ufix_truncqfhi2n
; input on stack
; result in r0
;
-#ifdef L_floathiqf2
+#ifdef L_floatdisf2
.text
.global ___floathiqf2
.ref ufloathiqf2n
; input on stack
; result in r0
;
-#ifdef L_ufloathiqf2
+#ifdef L_ufloatdisf2
.text
.global ___ufloathiqf2
.global ufloathiqf2n
; input in r2
; result in r0,r1
;
-#ifdef L_fix_trunchfhi2
+#ifdef L_fix_truncdfdi2
.text
.global ___fix_trunchfhi2
.ref ufix_trunchfhi2n
; input in r2
; result in r0,r1
;
-#ifdef L_ufix_trunchfhi2
+#ifdef L_ufix_truncdfdi2
.text
.global ___ufix_trunchfhi2
.global ufix_trunchfhi2n
; input on stack
; result in r0
;
-#ifdef L_floathihf2
+#ifdef L_floatdidf2
.text
.global ___floathihf2
.ref ufloathihf2n
; input on stack
; result in r0
;
-#ifdef L_ufloathihf2
+#ifdef L_ufloatdidf2
.text
.global ___ufloathihf2
.global ufloathihf2n
; input in r2, r3
; output in r0
;
-#ifdef L_mulhf3
+#ifdef L_muldf3
.global ___mulhf3
.text
___mulhf3:
; calculate long double / long double
; r2 dividend, r3 divisor, r0 quotient
;
-#ifdef L_divhf3
+#ifdef L_divdf3
.global ___divhf3
.text
___divhf3:
CROSS_LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = c4x/libgcc.S
-LIB1ASMFUNCS = _divqf3 _divqi3 _udivqi3 _umodqi3 _modqi3 _mulqi3 \
- _mulhf3 _divhf3 _unsfltconst _unsfltcompare \
- _mulhi3 _umulhi3_high _smulhi3_high _divhi3 _modhi3 _umodhi3 _udivhi3 \
- _fix_truncqfhi2 _ufix_truncqfhi2 _floathiqf2 _ufloathiqf2 \
- _floathihf2 _ufloathihf2 _fix_trunchfhi2 _ufix_trunchfhi2 _ffs
+LIB1ASMFUNCS = _divsf3 _divsi3 _udivsi3 _umodsi3 _modsi3 _mulsi3 \
+ _muldf3 _divdf3 _unsfltconst _unsfltcompare \
+ _muldi3 _umuldi3_high _smuldi3_high _divdi3 _moddi3 _umoddi3 _udivdi3 \
+ _fix_truncsfdi2 _ufix_truncsfdi2 _floatdisf2 _ufloatdisf2 \
+ _floatdidf2 _ufloatdidf2 _fix_truncdfdi2 _ufix_truncdfdi2 _ffs
TARGET_LIBGCC2_CFLAGS = -Dexit=unused_exit