This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH/RFA] SH: Add size and type directives to lib1funcs.asm


Hi,

This is just a revised patch for 3.4-BIB of Andrew Haley's patch
<URL:http://gcc.gnu.org/ml/gcc-patches/2001-08/msg01349.html>
which was once approved basically.
It makes binutils happy and avoids confusion in the dynamic linker.
It affects ELF case only. There are no new regressions on native
sh4-unknown-linux-gnu.

Regards,
	kaz
--
2002-11-26  Kaz Kojima  <kkojima@gcc.gnu.org>

        * config/sh/lib1funcs.asm (FUNC, ENDFUNC0, ENDFUNC): New macros.
	(all): Add .size and .type information.

--- ORIG/gccbib/gcc/config/sh/lib1funcs.asm	Fri Sep 20 10:29:21 2002
+++ LOCAL/gccbib/gcc/config/sh/lib1funcs.asm	Tue Nov 26 15:56:55 2002
@@ -38,9 +38,14 @@ Boston, MA 02111-1307, USA.  */
    amylaar@cygnus.com  */
 
 #ifdef __ELF__
-#define LOCAL(X) .L_##X
-#else
-#define LOCAL(X) L_##X
+#define LOCAL(X)	.L_##X
+#define FUNC(X)		.type X,@function
+#define ENDFUNC0(X)	.Lfe_##X: .size X,.Lfe_##X-X
+#define ENDFUNC(X)	ENDFUNC0(X)
+#else
+#define LOCAL(X)	L_##X
+#define FUNC(X)
+#define ENDFUNC(X)
 #endif
 
 #define	CONCAT(A,B)	A##B
@@ -87,6 +92,40 @@ Boston, MA 02111-1307, USA.  */
 	.global	GLOBAL(ashiftrt_r4_31)
 	.global	GLOBAL(ashiftrt_r4_32)
 
+	FUNC(GLOBAL(ashiftrt_r4_0))
+	FUNC(GLOBAL(ashiftrt_r4_1))
+	FUNC(GLOBAL(ashiftrt_r4_2))
+	FUNC(GLOBAL(ashiftrt_r4_3))
+	FUNC(GLOBAL(ashiftrt_r4_4))
+	FUNC(GLOBAL(ashiftrt_r4_5))
+	FUNC(GLOBAL(ashiftrt_r4_6))
+	FUNC(GLOBAL(ashiftrt_r4_7))
+	FUNC(GLOBAL(ashiftrt_r4_8))
+	FUNC(GLOBAL(ashiftrt_r4_9))
+	FUNC(GLOBAL(ashiftrt_r4_10))
+	FUNC(GLOBAL(ashiftrt_r4_11))
+	FUNC(GLOBAL(ashiftrt_r4_12))
+	FUNC(GLOBAL(ashiftrt_r4_13))
+	FUNC(GLOBAL(ashiftrt_r4_14))
+	FUNC(GLOBAL(ashiftrt_r4_15))
+	FUNC(GLOBAL(ashiftrt_r4_16))
+	FUNC(GLOBAL(ashiftrt_r4_17))
+	FUNC(GLOBAL(ashiftrt_r4_18))
+	FUNC(GLOBAL(ashiftrt_r4_19))
+	FUNC(GLOBAL(ashiftrt_r4_20))
+	FUNC(GLOBAL(ashiftrt_r4_21))
+	FUNC(GLOBAL(ashiftrt_r4_22))
+	FUNC(GLOBAL(ashiftrt_r4_23))
+	FUNC(GLOBAL(ashiftrt_r4_24))
+	FUNC(GLOBAL(ashiftrt_r4_25))
+	FUNC(GLOBAL(ashiftrt_r4_26))
+	FUNC(GLOBAL(ashiftrt_r4_27))
+	FUNC(GLOBAL(ashiftrt_r4_28))
+	FUNC(GLOBAL(ashiftrt_r4_29))
+	FUNC(GLOBAL(ashiftrt_r4_30))
+	FUNC(GLOBAL(ashiftrt_r4_31))
+	FUNC(GLOBAL(ashiftrt_r4_32))
+
 	.align	1
 GLOBAL(ashiftrt_r4_32):
 GLOBAL(ashiftrt_r4_31):
@@ -166,6 +205,40 @@ GLOBAL(ashiftrt_r4_1):
 GLOBAL(ashiftrt_r4_0):
 	rts
 	nop
+
+	ENDFUNC(GLOBAL(ashiftrt_r4_0))
+	ENDFUNC(GLOBAL(ashiftrt_r4_1))
+	ENDFUNC(GLOBAL(ashiftrt_r4_2))
+	ENDFUNC(GLOBAL(ashiftrt_r4_3))
+	ENDFUNC(GLOBAL(ashiftrt_r4_4))
+	ENDFUNC(GLOBAL(ashiftrt_r4_5))
+	ENDFUNC(GLOBAL(ashiftrt_r4_6))
+	ENDFUNC(GLOBAL(ashiftrt_r4_7))
+	ENDFUNC(GLOBAL(ashiftrt_r4_8))
+	ENDFUNC(GLOBAL(ashiftrt_r4_9))
+	ENDFUNC(GLOBAL(ashiftrt_r4_10))
+	ENDFUNC(GLOBAL(ashiftrt_r4_11))
+	ENDFUNC(GLOBAL(ashiftrt_r4_12))
+	ENDFUNC(GLOBAL(ashiftrt_r4_13))
+	ENDFUNC(GLOBAL(ashiftrt_r4_14))
+	ENDFUNC(GLOBAL(ashiftrt_r4_15))
+	ENDFUNC(GLOBAL(ashiftrt_r4_16))
+	ENDFUNC(GLOBAL(ashiftrt_r4_17))
+	ENDFUNC(GLOBAL(ashiftrt_r4_18))
+	ENDFUNC(GLOBAL(ashiftrt_r4_19))
+	ENDFUNC(GLOBAL(ashiftrt_r4_20))
+	ENDFUNC(GLOBAL(ashiftrt_r4_21))
+	ENDFUNC(GLOBAL(ashiftrt_r4_22))
+	ENDFUNC(GLOBAL(ashiftrt_r4_23))
+	ENDFUNC(GLOBAL(ashiftrt_r4_24))
+	ENDFUNC(GLOBAL(ashiftrt_r4_25))
+	ENDFUNC(GLOBAL(ashiftrt_r4_26))
+	ENDFUNC(GLOBAL(ashiftrt_r4_27))
+	ENDFUNC(GLOBAL(ashiftrt_r4_28))
+	ENDFUNC(GLOBAL(ashiftrt_r4_29))
+	ENDFUNC(GLOBAL(ashiftrt_r4_30))
+	ENDFUNC(GLOBAL(ashiftrt_r4_31))
+	ENDFUNC(GLOBAL(ashiftrt_r4_32))
 #endif
 
 #ifdef L_ashiftrt_n
@@ -188,6 +261,7 @@ GLOBAL(ashiftrt_r4_0):
 !
 
 	.global	GLOBAL(ashrsi3)
+	FUNC(GLOBAL(ashrsi3))
 	.align	2
 GLOBAL(ashrsi3):
 	mov	#31,r0
@@ -315,6 +389,7 @@ LOCAL(ashrsi3_0):
 	rts
 	nop
 
+	ENDFUNC(GLOBAL(ashrsi3))
 #endif
 
 #ifdef L_ashiftlt
@@ -336,6 +411,7 @@ LOCAL(ashrsi3_0):
 ! (none)
 !
 	.global	GLOBAL(ashlsi3)
+	FUNC(GLOBAL(ashlsi3))
 	.align	2
 GLOBAL(ashlsi3):
 	mov	#31,r0
@@ -472,6 +548,7 @@ LOCAL(ashlsi3_0):
 	rts
 	nop
 
+	ENDFUNC(GLOBAL(ashlsi3))
 #endif
 
 #ifdef L_lshiftrt
@@ -493,6 +570,7 @@ LOCAL(ashlsi3_0):
 ! (none)
 !
 	.global	GLOBAL(lshrsi3)
+	FUNC(GLOBAL(lshrsi3))
 	.align	2
 GLOBAL(lshrsi3):
 	mov	#31,r0
@@ -629,6 +707,7 @@ LOCAL(lshrsi3_0):
 	rts
 	nop
 
+	ENDFUNC(GLOBAL(lshrsi3))
 #endif
 
 #ifdef L_movstr
@@ -645,76 +724,113 @@ done:
 	add	#64,r4
 	.align	4
 	.global	GLOBAL(movstrSI64)
+	FUNC(GLOBAL(movstrSI64))
 GLOBAL(movstrSI64):
 	mov.l	@(60,r5),r0
 	mov.l	r0,@(60,r4)
 	.global	GLOBAL(movstrSI60)
+	FUNC(GLOBAL(movstrSI60))
 GLOBAL(movstrSI60):
 	mov.l	@(56,r5),r0
 	mov.l	r0,@(56,r4)
 	.global	GLOBAL(movstrSI56)
+	FUNC(GLOBAL(movstrSI56))
 GLOBAL(movstrSI56):
 	mov.l	@(52,r5),r0
 	mov.l	r0,@(52,r4)
 	.global	GLOBAL(movstrSI52)
+	FUNC(GLOBAL(movstrSI52))
 GLOBAL(movstrSI52):
 	mov.l	@(48,r5),r0
 	mov.l	r0,@(48,r4)
 	.global	GLOBAL(movstrSI48)
+	FUNC(GLOBAL(movstrSI48))
 GLOBAL(movstrSI48):
 	mov.l	@(44,r5),r0
 	mov.l	r0,@(44,r4)
 	.global	GLOBAL(movstrSI44)
+	FUNC(GLOBAL(movstrSI44))
 GLOBAL(movstrSI44):
 	mov.l	@(40,r5),r0
 	mov.l	r0,@(40,r4)
 	.global	GLOBAL(movstrSI40)
+	FUNC(GLOBAL(movstrSI40))
 GLOBAL(movstrSI40):
 	mov.l	@(36,r5),r0
 	mov.l	r0,@(36,r4)
 	.global	GLOBAL(movstrSI36)
+	FUNC(GLOBAL(movstrSI36))
 GLOBAL(movstrSI36):
 	mov.l	@(32,r5),r0
 	mov.l	r0,@(32,r4)
 	.global	GLOBAL(movstrSI32)
+	FUNC(GLOBAL(movstrSI32))
 GLOBAL(movstrSI32):
 	mov.l	@(28,r5),r0
 	mov.l	r0,@(28,r4)
 	.global	GLOBAL(movstrSI28)
+	FUNC(GLOBAL(movstrSI28))
 GLOBAL(movstrSI28):
 	mov.l	@(24,r5),r0
 	mov.l	r0,@(24,r4)
 	.global	GLOBAL(movstrSI24)
+	FUNC(GLOBAL(movstrSI24))
 GLOBAL(movstrSI24):
 	mov.l	@(20,r5),r0
 	mov.l	r0,@(20,r4)
 	.global	GLOBAL(movstrSI20)
+	FUNC(GLOBAL(movstrSI20))
 GLOBAL(movstrSI20):
 	mov.l	@(16,r5),r0
 	mov.l	r0,@(16,r4)
 	.global	GLOBAL(movstrSI16)
+	FUNC(GLOBAL(movstrSI16))
 GLOBAL(movstrSI16):
 	mov.l	@(12,r5),r0
 	mov.l	r0,@(12,r4)
 	.global	GLOBAL(movstrSI12)
+	FUNC(GLOBAL(movstrSI12))
 GLOBAL(movstrSI12):
 	mov.l	@(8,r5),r0
 	mov.l	r0,@(8,r4)
 	.global	GLOBAL(movstrSI8)
+	FUNC(GLOBAL(movstrSI8))
 GLOBAL(movstrSI8):
 	mov.l	@(4,r5),r0
 	mov.l	r0,@(4,r4)
 	.global	GLOBAL(movstrSI4)
+	FUNC(GLOBAL(movstrSI4))
 GLOBAL(movstrSI4):
 	mov.l	@(0,r5),r0
 	mov.l	r0,@(0,r4)
+	.global	GLOBAL(movstrSI0)
+	FUNC(GLOBAL(movstrSI0))
 GLOBAL(movstrSI0):
 	rts
 	nop
 
+	ENDFUNC(GLOBAL(movstrSI64))
+	ENDFUNC(GLOBAL(movstrSI60))
+	ENDFUNC(GLOBAL(movstrSI56))
+	ENDFUNC(GLOBAL(movstrSI52))
+	ENDFUNC(GLOBAL(movstrSI48))
+	ENDFUNC(GLOBAL(movstrSI44))
+	ENDFUNC(GLOBAL(movstrSI40))
+	ENDFUNC(GLOBAL(movstrSI36))
+	ENDFUNC(GLOBAL(movstrSI32))
+	ENDFUNC(GLOBAL(movstrSI28))
+	ENDFUNC(GLOBAL(movstrSI24))
+	ENDFUNC(GLOBAL(movstrSI20))
+	ENDFUNC(GLOBAL(movstrSI16))
+	ENDFUNC(GLOBAL(movstrSI12))
+	ENDFUNC(GLOBAL(movstrSI8))
+	ENDFUNC(GLOBAL(movstrSI4))
+	ENDFUNC(GLOBAL(movstrSI0))
+
 	.align	4
 
 	.global	GLOBAL(movstr)
+	FUNC(GLOBAL(movstr))
 GLOBAL(movstr):
 	mov.l	@(60,r5),r0
 	mov.l	r0,@(60,r4)
@@ -771,6 +887,8 @@ GLOBAL(movstr):
 	add	#64,r5
 	bra	GLOBAL(movstr)
 	add	#64,r4
+
+	FUNC(GLOBAL(movstr))
 #endif
 
 #ifdef L_movstr_i4
@@ -779,6 +897,10 @@ GLOBAL(movstr):
 	.global	GLOBAL(movstr_i4_odd)
 	.global	GLOBAL(movstrSI12_i4)
 
+	FUNC(GLOBAL(movstr_i4_even))
+	FUNC(GLOBAL(movstr_i4_odd))
+	FUNC(GLOBAL(movstrSI12_i4))
+
 	.p2align	5
 L_movstr_2mod4_end:
 	mov.l	r0,@(16,r4)
@@ -787,6 +909,11 @@ L_movstr_2mod4_end:
 
 	.p2align	2
 
+GLOBAL(movstr_i4_even):
+	mov.l	@r5+,r0
+	bra	L_movstr_start_even
+	mov.l	@r5+,r1
+
 GLOBAL(movstr_i4_odd):
 	mov.l	@r5+,r1
 	add	#-4,r4
@@ -813,10 +940,8 @@ L_movstr_start_even:
 	rts
 	mov.l	r3,@(12,r4)
 
-GLOBAL(movstr_i4_even):
-	mov.l	@r5+,r0
-	bra	L_movstr_start_even
-	mov.l	@r5+,r1
+	ENDFUNC(GLOBAL(movstr_i4_even))
+	ENDFUNC(GLOBAL(movstr_i4_odd))
 
 	.p2align	4
 GLOBAL(movstrSI12_i4):
@@ -827,12 +952,15 @@ GLOBAL(movstrSI12_i4):
 	mov.l	r1,@(4,r4)
 	rts
 	mov.l	r2,@(8,r4)
+
+	ENDFUNC(GLOBAL(movstrSI12_i4))
 #endif
 
 #ifdef L_mulsi3
 
 
 	.global	GLOBAL(mulsi3)
+	FUNC(GLOBAL(mulsi3))
 
 ! r4 =       aabb
 ! r5 =       ccdd
@@ -865,7 +993,7 @@ hiset:	sts	macl,r0		! r0 = bb*dd
 	rts
 	add	r2,r0
 
-
+	FUNC(GLOBAL(mulsi3))
 #endif
 #endif /* ! __SH5__ */
 #ifdef L_sdivsi3_i4
@@ -875,6 +1003,7 @@ hiset:	sts	macl,r0		! r0 = bb*dd
 !! args in r4 and r5, result in fpul, clobber dr0, dr2
 
 	.global	GLOBAL(sdivsi3_i4)
+	FUNC(GLOBAL(sdivsi3_i4))
 GLOBAL(sdivsi3_i4):
 	lds r4,fpul
 	float fpul,dr0
@@ -884,6 +1013,7 @@ GLOBAL(sdivsi3_i4):
 	rts
 	ftrc dr0,fpul
 
+	ENDFUNC(GLOBAL(sdivsi3_i4))
 #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
 !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
 
@@ -892,6 +1022,7 @@ GLOBAL(sdivsi3_i4):
 	.mode	SHcompact
 #endif
 	.global	GLOBAL(sdivsi3_i4)
+	FUNC(GLOBAL(sdivsi3_i4))
 GLOBAL(sdivsi3_i4):
 	sts.l fpscr,@-r15
 	mov #8,r2
@@ -906,6 +1037,7 @@ GLOBAL(sdivsi3_i4):
 	rts
 	lds.l @r15+,fpscr
 
+	ENDFUNC(GLOBAL(sdivsi3_i4))
 #endif /* ! __SH5__ || __SH5__ == 32 */
 #endif /* ! __SH4__ */
 #endif
@@ -920,9 +1052,10 @@ GLOBAL(sdivsi3_i4):
 !!
 !!
 
-!! args in r4 and r5, result in r0 clobber r1,r2,r3
+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
 
 	.global	GLOBAL(sdivsi3)
+	FUNC(GLOBAL(sdivsi3))
 #if __SHMEDIA__
 #if __SH5__ == 32
 	.section	.text..SHmedia32,"ax"
@@ -1166,6 +1299,7 @@ GLOBAL(sdivsi3):
 div0:	rts
 	mov	#0,r0
 
+	ENDFUNC(GLOBAL(sdivsi3))
 #endif /* ! __SHMEDIA__ */
 #endif /* ! __SH4__ */
 #endif
@@ -1174,9 +1308,11 @@ div0:	rts
 	.title "SH DIVIDE"
 !! 4 byte integer Divide code for the Hitachi SH
 #ifdef __SH4__
-!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
+!! and t bit
 
 	.global	GLOBAL(udivsi3_i4)
+	FUNC(GLOBAL(udivsi3_i4))
 GLOBAL(udivsi3_i4):
 	mov #1,r1
 	cmp/hi r1,r5
@@ -1217,11 +1353,13 @@ trivial:
 L1:
 	.double 2147483648
 
+	ENDFUNC(GLOBAL(udivsi3_i4))
 #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
 #if ! __SH5__ || __SH5__ == 32
 !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
 	.mode	SHmedia
 	.global	GLOBAL(udivsi3_i4)
+	FUNC(GLOBAL(udivsi3_i4))
 GLOBAL(udivsi3_i4):
 	addz.l	r4,r63,r20
 	addz.l	r5,r63,r21
@@ -1234,6 +1372,8 @@ GLOBAL(udivsi3_i4):
 	ftrc.dq dr0,dr32
 	fmov.s fr33,fr32
 	blink tr0,r63
+
+	ENDFUNC(GLOBAL(udivsi3_i4))
 #endif /* ! __SH5__ || __SH5__ == 32 */
 #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
 !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
@@ -1287,6 +1427,7 @@ L1:
 #endif
 	.double 2147483648
 
+	ENDFUNC(GLOBAL(udivsi3_i4))
 #endif /* ! __SH4__ */
 #endif
 
@@ -1297,6 +1438,7 @@ L1:
 
 !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
 	.global	GLOBAL(udivsi3)
+	FUNC(GLOBAL(udivsi3))
 
 #if __SHMEDIA__
 #if __SH5__ == 32
@@ -1485,6 +1627,7 @@ LOCAL(large_divisor):
  rts
  rotcl r0
 
+	ENDFUNC(GLOBAL(udivsi3))
 #endif /* ! __SHMEDIA__ */
 #endif /* __SH4__ */
 #endif /* L_udivsi3 */
@@ -1790,6 +1933,7 @@ GLOBAL(moddi3):
 	.mode	SHcompact
 #endif
 	.global GLOBAL(set_fpscr)
+	FUNC(GLOBAL(set_fpscr))
 GLOBAL(set_fpscr):
 	lds r4,fpscr
 	mov.l LOCAL(set_fpscr_L1),r1
@@ -1822,6 +1966,8 @@ GLOBAL(set_fpscr):
 	.align 2
 LOCAL(set_fpscr_L1):
 	.long GLOBAL(fpscr_values)
+
+	ENDFUNC(GLOBAL(set_fpscr))
 #ifdef __ELF__
         .comm   GLOBAL(fpscr_values),8,4
 #else
@@ -1860,6 +2006,7 @@ GLOBAL(ic_invalidate):
 	blink	tr0, r63
 #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
 	.global GLOBAL(ic_invalidate)
+	FUNC(GLOBAL(ic_invalidate))
 GLOBAL(ic_invalidate):
 	ocbwb	@r4
 	mova	0f,r0
@@ -1882,6 +2029,8 @@ GLOBAL(ic_invalidate):
 	nop
 	.endr
 	.endr
+
+	ENDFUNC(GLOBAL(ic_invalidate))
 #endif /* SH4 */
 #endif /* L_ic_invalidate */
 
@@ -1940,6 +2089,7 @@ LOCAL(ct_main_table):
 	will be expanded into r2/r3 upon return.  */
 	
 	.global	GLOBAL(GCC_shcompact_call_trampoline)
+	FUNC(GLOBAL(GCC_shcompact_call_trampoline))
 GLOBAL(GCC_shcompact_call_trampoline):
 	ptabs/l	r0, tr0	/* Prepare to call the actual function.  */
 	movi	((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
@@ -2290,6 +2440,8 @@ LOCAL(ct_ret_wide):	/* Call the function
 	shari	r2, 32, r2
 #endif
 	blink	tr0, r63
+
+	ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
 #endif /* L_shcompact_call_trampoline */
 
 #ifdef L_shcompact_return_trampoline
@@ -2302,6 +2454,7 @@ LOCAL(ct_ret_wide):	/* Call the function
 	.section	.text..SHmedia32, "ax"
 	.align	2
 	.global	GLOBAL(GCC_shcompact_return_trampoline)
+	FUNC(GLOBAL(GCC_shcompact_return_trampoline))
 GLOBAL(GCC_shcompact_return_trampoline):
 	ptabs/l	r18, tr0
 #if __LITTLE_ENDIAN__
@@ -2313,6 +2466,8 @@ GLOBAL(GCC_shcompact_return_trampoline):
 #endif
 	or	r3, r2, r2
 	blink	tr0, r63
+
+	ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
 #endif /* L_shcompact_return_trampoline */
 
 #ifdef L_shcompact_incoming_args
@@ -2367,6 +2522,7 @@ LOCAL(ia_main_table):
 	actual bit pattern.  */
 	
 	.global	GLOBAL(GCC_shcompact_incoming_args)
+	FUNC(GLOBAL(GCC_shcompact_incoming_args))
 GLOBAL(GCC_shcompact_incoming_args):
 	ptabs/l	r18, tr0	/* Prepare to return.  */
 	shlri	r17, 32, r0	/* Load the cookie.  */
@@ -2519,6 +2675,7 @@ LOCAL(ia_r9_push):	/* Push r9 onto the s
 LOCAL(ia_return):	/* Return.  */
 	blink	tr0, r63
 LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction.  */
+	ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
 #endif /* L_shcompact_incoming_args */
 #endif
 #if __SH5__
@@ -2530,6 +2687,7 @@ LOCAL(ia_end_of_push_seq): /* Label used
 #endif
 	.align	3 /* It is copied in units of 8 bytes in SHmedia mode.  */
 	.global	GLOBAL(GCC_nested_trampoline)
+	FUNC(GLOBAL(GCC_nested_trampoline))
 GLOBAL(GCC_nested_trampoline):
 	.mode	SHmedia
 	ptrel/u	r63, tr0
@@ -2546,6 +2704,8 @@ GLOBAL(GCC_nested_trampoline):
 	ld.l	r0, 28, r1
 #endif
 	blink	tr1, r63
+
+	ENDFUNC(GLOBAL(GCC_nested_trampoline))
 #endif /* L_nested_trampoline */
 #endif /* __SH5__ */
 #if __SH5__ == 32
@@ -2555,6 +2715,7 @@ GLOBAL(GCC_nested_trampoline):
 	.align	2
 #ifndef __SH4_NOFPU__	
 	.global	GLOBAL(GCC_push_shmedia_regs)
+	FUNC(GLOBAL(GCC_push_shmedia_regs))
 GLOBAL(GCC_push_shmedia_regs):
 	addi.l	r15, -14*8, r15
 	fst.d	r15, 13*8, dr62
@@ -2573,6 +2734,7 @@ GLOBAL(GCC_push_shmedia_regs):
 	fst.d	r15,  0*8, dr36
 #endif
 	.global	GLOBAL(GCC_push_shmedia_regs_nofpu)
+	FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
 GLOBAL(GCC_push_shmedia_regs_nofpu):
 	ptabs/l	r18, tr0
 	addi.l	r15, -27*8, r15
@@ -2608,8 +2770,13 @@ GLOBAL(GCC_push_shmedia_regs_nofpu):
 	st.q	r15,  0*8, r28
 	blink	tr0, r63
 
+#ifndef __SH4_NOFPU__	
+	ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
+#endif
+	ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
 #ifndef __SH4_NOFPU__
 	.global	GLOBAL(GCC_pop_shmedia_regs)
+	FUNC(GLOBAL(GCC_pop_shmedia_regs))
 GLOBAL(GCC_pop_shmedia_regs):
 	pt	.L0, tr1
 	movi	41*8, r0
@@ -2630,6 +2797,7 @@ GLOBAL(GCC_pop_shmedia_regs):
 	blink	tr1, r63
 #endif
 	.global	GLOBAL(GCC_pop_shmedia_regs_nofpu)
+	FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
 GLOBAL(GCC_pop_shmedia_regs_nofpu):
 	movi	27*8, r0
 .L0:
@@ -2666,5 +2834,10 @@ GLOBAL(GCC_pop_shmedia_regs_nofpu):
 	ld.q	r15,  0*8, r28
 	add.l	r15, r0, r15
 	blink	tr0, r63
+
+#ifndef __SH4_NOFPU__
+	ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
+#endif
+	ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
 #endif /* __SH5__ == 32 */
 #endif /* L_push_pop_shmedia_regs */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]