1.1 --- a/patches/gcc/3.3.2/sh-lib1funcs_sizeAndType.patch Tue Aug 14 19:32:22 2007 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,610 +0,0 @@
1.4 -Fixes the problem
1.5 - [ libdemo.so and main.o both use assignment on structures ]
1.6 - $ sh4-unknown-linux-gnu-gcc libdemo.so main.o
1.7 - sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
1.8 - [ resulting app links, but crashes at runtime ]
1.9 -See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
1.10 -
1.11 -Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
1.12 -and is in cvs as http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/lib1funcs.asm.diff?r1=1.29.4.1&r2=1.29.4.2
1.13 -
1.14 -but see also sh-libgcc-hidden.patch
1.15 -
1.16 -===================================================================
1.17 -
1.18 ---- gcc/gcc/config/sh/lib1funcs.asm 2002/09/20 01:29:21 1.29.4.1
1.19 -+++ gcc/gcc/config/sh/lib1funcs.asm 2003/11/18 12:27:31
1.20 -@@ -38,9 +38,14 @@
1.21 - amylaar@cygnus.com */
1.22 -
1.23 - #ifdef __ELF__
1.24 --#define LOCAL(X) .L_##X
1.25 --#else
1.26 --#define LOCAL(X) L_##X
1.27 -+#define LOCAL(X) .L_##X
1.28 -+#define FUNC(X) .type X,@function
1.29 -+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
1.30 -+#define ENDFUNC(X) ENDFUNC0(X)
1.31 -+#else
1.32 -+#define LOCAL(X) L_##X
1.33 -+#define FUNC(X)
1.34 -+#define ENDFUNC(X)
1.35 - #endif
1.36 -
1.37 - #define CONCAT(A,B) A##B
1.38 -@@ -87,6 +92,40 @@
1.39 - .global GLOBAL(ashiftrt_r4_31)
1.40 - .global GLOBAL(ashiftrt_r4_32)
1.41 -
1.42 -+ FUNC(GLOBAL(ashiftrt_r4_0))
1.43 -+ FUNC(GLOBAL(ashiftrt_r4_1))
1.44 -+ FUNC(GLOBAL(ashiftrt_r4_2))
1.45 -+ FUNC(GLOBAL(ashiftrt_r4_3))
1.46 -+ FUNC(GLOBAL(ashiftrt_r4_4))
1.47 -+ FUNC(GLOBAL(ashiftrt_r4_5))
1.48 -+ FUNC(GLOBAL(ashiftrt_r4_6))
1.49 -+ FUNC(GLOBAL(ashiftrt_r4_7))
1.50 -+ FUNC(GLOBAL(ashiftrt_r4_8))
1.51 -+ FUNC(GLOBAL(ashiftrt_r4_9))
1.52 -+ FUNC(GLOBAL(ashiftrt_r4_10))
1.53 -+ FUNC(GLOBAL(ashiftrt_r4_11))
1.54 -+ FUNC(GLOBAL(ashiftrt_r4_12))
1.55 -+ FUNC(GLOBAL(ashiftrt_r4_13))
1.56 -+ FUNC(GLOBAL(ashiftrt_r4_14))
1.57 -+ FUNC(GLOBAL(ashiftrt_r4_15))
1.58 -+ FUNC(GLOBAL(ashiftrt_r4_16))
1.59 -+ FUNC(GLOBAL(ashiftrt_r4_17))
1.60 -+ FUNC(GLOBAL(ashiftrt_r4_18))
1.61 -+ FUNC(GLOBAL(ashiftrt_r4_19))
1.62 -+ FUNC(GLOBAL(ashiftrt_r4_20))
1.63 -+ FUNC(GLOBAL(ashiftrt_r4_21))
1.64 -+ FUNC(GLOBAL(ashiftrt_r4_22))
1.65 -+ FUNC(GLOBAL(ashiftrt_r4_23))
1.66 -+ FUNC(GLOBAL(ashiftrt_r4_24))
1.67 -+ FUNC(GLOBAL(ashiftrt_r4_25))
1.68 -+ FUNC(GLOBAL(ashiftrt_r4_26))
1.69 -+ FUNC(GLOBAL(ashiftrt_r4_27))
1.70 -+ FUNC(GLOBAL(ashiftrt_r4_28))
1.71 -+ FUNC(GLOBAL(ashiftrt_r4_29))
1.72 -+ FUNC(GLOBAL(ashiftrt_r4_30))
1.73 -+ FUNC(GLOBAL(ashiftrt_r4_31))
1.74 -+ FUNC(GLOBAL(ashiftrt_r4_32))
1.75 -+
1.76 - .align 1
1.77 - GLOBAL(ashiftrt_r4_32):
1.78 - GLOBAL(ashiftrt_r4_31):
1.79 -@@ -166,6 +205,40 @@
1.80 - GLOBAL(ashiftrt_r4_0):
1.81 - rts
1.82 - nop
1.83 -+
1.84 -+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
1.85 -+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
1.86 -+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
1.87 -+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
1.88 -+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
1.89 -+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
1.90 -+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
1.91 -+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
1.92 -+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
1.93 -+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
1.94 -+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
1.95 -+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
1.96 -+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
1.97 -+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
1.98 -+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
1.99 -+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
1.100 -+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
1.101 -+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
1.102 -+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
1.103 -+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
1.104 -+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
1.105 -+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
1.106 -+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
1.107 -+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
1.108 -+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
1.109 -+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
1.110 -+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
1.111 -+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
1.112 -+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
1.113 -+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
1.114 -+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
1.115 -+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
1.116 -+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
1.117 - #endif
1.118 -
1.119 - #ifdef L_ashiftrt_n
1.120 -@@ -188,6 +261,7 @@
1.121 - !
1.122 -
1.123 - .global GLOBAL(ashrsi3)
1.124 -+ FUNC(GLOBAL(ashrsi3))
1.125 - .align 2
1.126 - GLOBAL(ashrsi3):
1.127 - mov #31,r0
1.128 -@@ -315,6 +389,7 @@
1.129 - rts
1.130 - nop
1.131 -
1.132 -+ ENDFUNC(GLOBAL(ashrsi3))
1.133 - #endif
1.134 -
1.135 - #ifdef L_ashiftlt
1.136 -@@ -336,6 +411,7 @@
1.137 - ! (none)
1.138 - !
1.139 - .global GLOBAL(ashlsi3)
1.140 -+ FUNC(GLOBAL(ashlsi3))
1.141 - .align 2
1.142 - GLOBAL(ashlsi3):
1.143 - mov #31,r0
1.144 -@@ -472,6 +548,7 @@
1.145 - rts
1.146 - nop
1.147 -
1.148 -+ ENDFUNC(GLOBAL(ashlsi3))
1.149 - #endif
1.150 -
1.151 - #ifdef L_lshiftrt
1.152 -@@ -493,6 +570,7 @@
1.153 - ! (none)
1.154 - !
1.155 - .global GLOBAL(lshrsi3)
1.156 -+ FUNC(GLOBAL(lshrsi3))
1.157 - .align 2
1.158 - GLOBAL(lshrsi3):
1.159 - mov #31,r0
1.160 -@@ -629,6 +707,7 @@
1.161 - rts
1.162 - nop
1.163 -
1.164 -+ ENDFUNC(GLOBAL(lshrsi3))
1.165 - #endif
1.166 -
1.167 - #ifdef L_movstr
1.168 -@@ -645,76 +724,113 @@
1.169 - add #64,r4
1.170 - .align 4
1.171 - .global GLOBAL(movstrSI64)
1.172 -+ FUNC(GLOBAL(movstrSI64))
1.173 - GLOBAL(movstrSI64):
1.174 - mov.l @(60,r5),r0
1.175 - mov.l r0,@(60,r4)
1.176 - .global GLOBAL(movstrSI60)
1.177 -+ FUNC(GLOBAL(movstrSI60))
1.178 - GLOBAL(movstrSI60):
1.179 - mov.l @(56,r5),r0
1.180 - mov.l r0,@(56,r4)
1.181 - .global GLOBAL(movstrSI56)
1.182 -+ FUNC(GLOBAL(movstrSI56))
1.183 - GLOBAL(movstrSI56):
1.184 - mov.l @(52,r5),r0
1.185 - mov.l r0,@(52,r4)
1.186 - .global GLOBAL(movstrSI52)
1.187 -+ FUNC(GLOBAL(movstrSI52))
1.188 - GLOBAL(movstrSI52):
1.189 - mov.l @(48,r5),r0
1.190 - mov.l r0,@(48,r4)
1.191 - .global GLOBAL(movstrSI48)
1.192 -+ FUNC(GLOBAL(movstrSI48))
1.193 - GLOBAL(movstrSI48):
1.194 - mov.l @(44,r5),r0
1.195 - mov.l r0,@(44,r4)
1.196 - .global GLOBAL(movstrSI44)
1.197 -+ FUNC(GLOBAL(movstrSI44))
1.198 - GLOBAL(movstrSI44):
1.199 - mov.l @(40,r5),r0
1.200 - mov.l r0,@(40,r4)
1.201 - .global GLOBAL(movstrSI40)
1.202 -+ FUNC(GLOBAL(movstrSI40))
1.203 - GLOBAL(movstrSI40):
1.204 - mov.l @(36,r5),r0
1.205 - mov.l r0,@(36,r4)
1.206 - .global GLOBAL(movstrSI36)
1.207 -+ FUNC(GLOBAL(movstrSI36))
1.208 - GLOBAL(movstrSI36):
1.209 - mov.l @(32,r5),r0
1.210 - mov.l r0,@(32,r4)
1.211 - .global GLOBAL(movstrSI32)
1.212 -+ FUNC(GLOBAL(movstrSI32))
1.213 - GLOBAL(movstrSI32):
1.214 - mov.l @(28,r5),r0
1.215 - mov.l r0,@(28,r4)
1.216 - .global GLOBAL(movstrSI28)
1.217 -+ FUNC(GLOBAL(movstrSI28))
1.218 - GLOBAL(movstrSI28):
1.219 - mov.l @(24,r5),r0
1.220 - mov.l r0,@(24,r4)
1.221 - .global GLOBAL(movstrSI24)
1.222 -+ FUNC(GLOBAL(movstrSI24))
1.223 - GLOBAL(movstrSI24):
1.224 - mov.l @(20,r5),r0
1.225 - mov.l r0,@(20,r4)
1.226 - .global GLOBAL(movstrSI20)
1.227 -+ FUNC(GLOBAL(movstrSI20))
1.228 - GLOBAL(movstrSI20):
1.229 - mov.l @(16,r5),r0
1.230 - mov.l r0,@(16,r4)
1.231 - .global GLOBAL(movstrSI16)
1.232 -+ FUNC(GLOBAL(movstrSI16))
1.233 - GLOBAL(movstrSI16):
1.234 - mov.l @(12,r5),r0
1.235 - mov.l r0,@(12,r4)
1.236 - .global GLOBAL(movstrSI12)
1.237 -+ FUNC(GLOBAL(movstrSI12))
1.238 - GLOBAL(movstrSI12):
1.239 - mov.l @(8,r5),r0
1.240 - mov.l r0,@(8,r4)
1.241 - .global GLOBAL(movstrSI8)
1.242 -+ FUNC(GLOBAL(movstrSI8))
1.243 - GLOBAL(movstrSI8):
1.244 - mov.l @(4,r5),r0
1.245 - mov.l r0,@(4,r4)
1.246 - .global GLOBAL(movstrSI4)
1.247 -+ FUNC(GLOBAL(movstrSI4))
1.248 - GLOBAL(movstrSI4):
1.249 - mov.l @(0,r5),r0
1.250 - mov.l r0,@(0,r4)
1.251 -+ .global GLOBAL(movstrSI0)
1.252 -+ FUNC(GLOBAL(movstrSI0))
1.253 - GLOBAL(movstrSI0):
1.254 - rts
1.255 - nop
1.256 -
1.257 -+ ENDFUNC(GLOBAL(movstrSI64))
1.258 -+ ENDFUNC(GLOBAL(movstrSI60))
1.259 -+ ENDFUNC(GLOBAL(movstrSI56))
1.260 -+ ENDFUNC(GLOBAL(movstrSI52))
1.261 -+ ENDFUNC(GLOBAL(movstrSI48))
1.262 -+ ENDFUNC(GLOBAL(movstrSI44))
1.263 -+ ENDFUNC(GLOBAL(movstrSI40))
1.264 -+ ENDFUNC(GLOBAL(movstrSI36))
1.265 -+ ENDFUNC(GLOBAL(movstrSI32))
1.266 -+ ENDFUNC(GLOBAL(movstrSI28))
1.267 -+ ENDFUNC(GLOBAL(movstrSI24))
1.268 -+ ENDFUNC(GLOBAL(movstrSI20))
1.269 -+ ENDFUNC(GLOBAL(movstrSI16))
1.270 -+ ENDFUNC(GLOBAL(movstrSI12))
1.271 -+ ENDFUNC(GLOBAL(movstrSI8))
1.272 -+ ENDFUNC(GLOBAL(movstrSI4))
1.273 -+ ENDFUNC(GLOBAL(movstrSI0))
1.274 -+
1.275 - .align 4
1.276 -
1.277 - .global GLOBAL(movstr)
1.278 -+ FUNC(GLOBAL(movstr))
1.279 - GLOBAL(movstr):
1.280 - mov.l @(60,r5),r0
1.281 - mov.l r0,@(60,r4)
1.282 -@@ -771,6 +887,8 @@
1.283 - add #64,r5
1.284 - bra GLOBAL(movstr)
1.285 - add #64,r4
1.286 -+
1.287 -+ FUNC(GLOBAL(movstr))
1.288 - #endif
1.289 -
1.290 - #ifdef L_movstr_i4
1.291 -@@ -779,6 +897,10 @@
1.292 - .global GLOBAL(movstr_i4_odd)
1.293 - .global GLOBAL(movstrSI12_i4)
1.294 -
1.295 -+ FUNC(GLOBAL(movstr_i4_even))
1.296 -+ FUNC(GLOBAL(movstr_i4_odd))
1.297 -+ FUNC(GLOBAL(movstrSI12_i4))
1.298 -+
1.299 - .p2align 5
1.300 - L_movstr_2mod4_end:
1.301 - mov.l r0,@(16,r4)
1.302 -@@ -787,6 +909,11 @@
1.303 -
1.304 - .p2align 2
1.305 -
1.306 -+GLOBAL(movstr_i4_even):
1.307 -+ mov.l @r5+,r0
1.308 -+ bra L_movstr_start_even
1.309 -+ mov.l @r5+,r1
1.310 -+
1.311 - GLOBAL(movstr_i4_odd):
1.312 - mov.l @r5+,r1
1.313 - add #-4,r4
1.314 -@@ -813,10 +940,8 @@
1.315 - rts
1.316 - mov.l r3,@(12,r4)
1.317 -
1.318 --GLOBAL(movstr_i4_even):
1.319 -- mov.l @r5+,r0
1.320 -- bra L_movstr_start_even
1.321 -- mov.l @r5+,r1
1.322 -+ ENDFUNC(GLOBAL(movstr_i4_even))
1.323 -+ ENDFUNC(GLOBAL(movstr_i4_odd))
1.324 -
1.325 - .p2align 4
1.326 - GLOBAL(movstrSI12_i4):
1.327 -@@ -827,12 +952,15 @@
1.328 - mov.l r1,@(4,r4)
1.329 - rts
1.330 - mov.l r2,@(8,r4)
1.331 -+
1.332 -+ ENDFUNC(GLOBAL(movstrSI12_i4))
1.333 - #endif
1.334 -
1.335 - #ifdef L_mulsi3
1.336 -
1.337 -
1.338 - .global GLOBAL(mulsi3)
1.339 -+ FUNC(GLOBAL(mulsi3))
1.340 -
1.341 - ! r4 = aabb
1.342 - ! r5 = ccdd
1.343 -@@ -865,7 +993,7 @@
1.344 - rts
1.345 - add r2,r0
1.346 -
1.347 --
1.348 -+ FUNC(GLOBAL(mulsi3))
1.349 - #endif
1.350 - #endif /* ! __SH5__ */
1.351 - #ifdef L_sdivsi3_i4
1.352 -@@ -875,6 +1003,7 @@
1.353 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
1.354 -
1.355 - .global GLOBAL(sdivsi3_i4)
1.356 -+ FUNC(GLOBAL(sdivsi3_i4))
1.357 - GLOBAL(sdivsi3_i4):
1.358 - lds r4,fpul
1.359 - float fpul,dr0
1.360 -@@ -884,6 +1013,7 @@
1.361 - rts
1.362 - ftrc dr0,fpul
1.363 -
1.364 -+ ENDFUNC(GLOBAL(sdivsi3_i4))
1.365 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
1.366 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
1.367 -
1.368 -@@ -892,6 +1022,7 @@
1.369 - .mode SHcompact
1.370 - #endif
1.371 - .global GLOBAL(sdivsi3_i4)
1.372 -+ FUNC(GLOBAL(sdivsi3_i4))
1.373 - GLOBAL(sdivsi3_i4):
1.374 - sts.l fpscr,@-r15
1.375 - mov #8,r2
1.376 -@@ -906,6 +1037,7 @@
1.377 - rts
1.378 - lds.l @r15+,fpscr
1.379 -
1.380 -+ ENDFUNC(GLOBAL(sdivsi3_i4))
1.381 - #endif /* ! __SH5__ || __SH5__ == 32 */
1.382 - #endif /* ! __SH4__ */
1.383 - #endif
1.384 -@@ -920,9 +1052,10 @@
1.385 - !!
1.386 - !!
1.387 -
1.388 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
1.389 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
1.390 -
1.391 - .global GLOBAL(sdivsi3)
1.392 -+ FUNC(GLOBAL(sdivsi3))
1.393 - #if __SHMEDIA__
1.394 - #if __SH5__ == 32
1.395 - .section .text..SHmedia32,"ax"
1.396 -@@ -1166,6 +1299,7 @@
1.397 - div0: rts
1.398 - mov #0,r0
1.399 -
1.400 -+ ENDFUNC(GLOBAL(sdivsi3))
1.401 - #endif /* ! __SHMEDIA__ */
1.402 - #endif /* ! __SH4__ */
1.403 - #endif
1.404 -@@ -1174,9 +1308,11 @@
1.405 - .title "SH DIVIDE"
1.406 - !! 4 byte integer Divide code for the Hitachi SH
1.407 - #ifdef __SH4__
1.408 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
1.409 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
1.410 -+!! and t bit
1.411 -
1.412 - .global GLOBAL(udivsi3_i4)
1.413 -+ FUNC(GLOBAL(udivsi3_i4))
1.414 - GLOBAL(udivsi3_i4):
1.415 - mov #1,r1
1.416 - cmp/hi r1,r5
1.417 -@@ -1217,11 +1353,13 @@
1.418 - L1:
1.419 - .double 2147483648
1.420 -
1.421 -+ ENDFUNC(GLOBAL(udivsi3_i4))
1.422 - #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
1.423 - #if ! __SH5__ || __SH5__ == 32
1.424 - !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
1.425 - .mode SHmedia
1.426 - .global GLOBAL(udivsi3_i4)
1.427 -+ FUNC(GLOBAL(udivsi3_i4))
1.428 - GLOBAL(udivsi3_i4):
1.429 - addz.l r4,r63,r20
1.430 - addz.l r5,r63,r21
1.431 -@@ -1234,6 +1372,8 @@
1.432 - ftrc.dq dr0,dr32
1.433 - fmov.s fr33,fr32
1.434 - blink tr0,r63
1.435 -+
1.436 -+ ENDFUNC(GLOBAL(udivsi3_i4))
1.437 - #endif /* ! __SH5__ || __SH5__ == 32 */
1.438 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
1.439 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
1.440 -@@ -1287,6 +1427,7 @@
1.441 - #endif
1.442 - .double 2147483648
1.443 -
1.444 -+ ENDFUNC(GLOBAL(udivsi3_i4))
1.445 - #endif /* ! __SH4__ */
1.446 - #endif
1.447 -
1.448 -@@ -1297,6 +1438,7 @@
1.449 -
1.450 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
1.451 - .global GLOBAL(udivsi3)
1.452 -+ FUNC(GLOBAL(udivsi3))
1.453 -
1.454 - #if __SHMEDIA__
1.455 - #if __SH5__ == 32
1.456 -@@ -1485,6 +1627,7 @@
1.457 - rts
1.458 - rotcl r0
1.459 -
1.460 -+ ENDFUNC(GLOBAL(udivsi3))
1.461 - #endif /* ! __SHMEDIA__ */
1.462 - #endif /* __SH4__ */
1.463 - #endif /* L_udivsi3 */
1.464 -@@ -1790,6 +1933,7 @@
1.465 - .mode SHcompact
1.466 - #endif
1.467 - .global GLOBAL(set_fpscr)
1.468 -+ FUNC(GLOBAL(set_fpscr))
1.469 - GLOBAL(set_fpscr):
1.470 - lds r4,fpscr
1.471 - mov.l LOCAL(set_fpscr_L1),r1
1.472 -@@ -1822,6 +1966,8 @@
1.473 - .align 2
1.474 - LOCAL(set_fpscr_L1):
1.475 - .long GLOBAL(fpscr_values)
1.476 -+
1.477 -+ ENDFUNC(GLOBAL(set_fpscr))
1.478 - #ifdef __ELF__
1.479 - .comm GLOBAL(fpscr_values),8,4
1.480 - #else
1.481 -@@ -1860,6 +2006,7 @@
1.482 - blink tr0, r63
1.483 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
1.484 - .global GLOBAL(ic_invalidate)
1.485 -+ FUNC(GLOBAL(ic_invalidate))
1.486 - GLOBAL(ic_invalidate):
1.487 - ocbwb @r4
1.488 - mova 0f,r0
1.489 -@@ -1882,6 +2029,8 @@
1.490 - nop
1.491 - .endr
1.492 - .endr
1.493 -+
1.494 -+ ENDFUNC(GLOBAL(ic_invalidate))
1.495 - #endif /* SH4 */
1.496 - #endif /* L_ic_invalidate */
1.497 -
1.498 -@@ -1940,6 +2089,7 @@
1.499 - will be expanded into r2/r3 upon return. */
1.500 -
1.501 - .global GLOBAL(GCC_shcompact_call_trampoline)
1.502 -+ FUNC(GLOBAL(GCC_shcompact_call_trampoline))
1.503 - GLOBAL(GCC_shcompact_call_trampoline):
1.504 - ptabs/l r0, tr0 /* Prepare to call the actual function. */
1.505 - movi ((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
1.506 -@@ -2290,6 +2440,8 @@
1.507 - shari r2, 32, r2
1.508 - #endif
1.509 - blink tr0, r63
1.510 -+
1.511 -+ ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
1.512 - #endif /* L_shcompact_call_trampoline */
1.513 -
1.514 - #ifdef L_shcompact_return_trampoline
1.515 -@@ -2302,6 +2454,7 @@
1.516 - .section .text..SHmedia32, "ax"
1.517 - .align 2
1.518 - .global GLOBAL(GCC_shcompact_return_trampoline)
1.519 -+ FUNC(GLOBAL(GCC_shcompact_return_trampoline))
1.520 - GLOBAL(GCC_shcompact_return_trampoline):
1.521 - ptabs/l r18, tr0
1.522 - #if __LITTLE_ENDIAN__
1.523 -@@ -2313,6 +2466,8 @@
1.524 - #endif
1.525 - or r3, r2, r2
1.526 - blink tr0, r63
1.527 -+
1.528 -+ ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
1.529 - #endif /* L_shcompact_return_trampoline */
1.530 -
1.531 - #ifdef L_shcompact_incoming_args
1.532 -@@ -2367,6 +2522,7 @@
1.533 - actual bit pattern. */
1.534 -
1.535 - .global GLOBAL(GCC_shcompact_incoming_args)
1.536 -+ FUNC(GLOBAL(GCC_shcompact_incoming_args))
1.537 - GLOBAL(GCC_shcompact_incoming_args):
1.538 - ptabs/l r18, tr0 /* Prepare to return. */
1.539 - shlri r17, 32, r0 /* Load the cookie. */
1.540 -@@ -2519,6 +2675,7 @@
1.541 - LOCAL(ia_return): /* Return. */
1.542 - blink tr0, r63
1.543 - LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction. */
1.544 -+ ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
1.545 - #endif /* L_shcompact_incoming_args */
1.546 - #endif
1.547 - #if __SH5__
1.548 -@@ -2530,6 +2687,7 @@
1.549 - #endif
1.550 - .align 3 /* It is copied in units of 8 bytes in SHmedia mode. */
1.551 - .global GLOBAL(GCC_nested_trampoline)
1.552 -+ FUNC(GLOBAL(GCC_nested_trampoline))
1.553 - GLOBAL(GCC_nested_trampoline):
1.554 - .mode SHmedia
1.555 - ptrel/u r63, tr0
1.556 -@@ -2546,6 +2704,8 @@
1.557 - ld.l r0, 28, r1
1.558 - #endif
1.559 - blink tr1, r63
1.560 -+
1.561 -+ ENDFUNC(GLOBAL(GCC_nested_trampoline))
1.562 - #endif /* L_nested_trampoline */
1.563 - #endif /* __SH5__ */
1.564 - #if __SH5__ == 32
1.565 -@@ -2555,6 +2715,7 @@
1.566 - .align 2
1.567 - #ifndef __SH4_NOFPU__
1.568 - .global GLOBAL(GCC_push_shmedia_regs)
1.569 -+ FUNC(GLOBAL(GCC_push_shmedia_regs))
1.570 - GLOBAL(GCC_push_shmedia_regs):
1.571 - addi.l r15, -14*8, r15
1.572 - fst.d r15, 13*8, dr62
1.573 -@@ -2573,6 +2734,7 @@
1.574 - fst.d r15, 0*8, dr36
1.575 - #endif
1.576 - .global GLOBAL(GCC_push_shmedia_regs_nofpu)
1.577 -+ FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
1.578 - GLOBAL(GCC_push_shmedia_regs_nofpu):
1.579 - ptabs/l r18, tr0
1.580 - addi.l r15, -27*8, r15
1.581 -@@ -2608,8 +2770,13 @@
1.582 - st.q r15, 0*8, r28
1.583 - blink tr0, r63
1.584 -
1.585 -+#ifndef __SH4_NOFPU__
1.586 -+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
1.587 -+#endif
1.588 -+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
1.589 - #ifndef __SH4_NOFPU__
1.590 - .global GLOBAL(GCC_pop_shmedia_regs)
1.591 -+ FUNC(GLOBAL(GCC_pop_shmedia_regs))
1.592 - GLOBAL(GCC_pop_shmedia_regs):
1.593 - pt .L0, tr1
1.594 - movi 41*8, r0
1.595 -@@ -2630,6 +2797,7 @@
1.596 - blink tr1, r63
1.597 - #endif
1.598 - .global GLOBAL(GCC_pop_shmedia_regs_nofpu)
1.599 -+ FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
1.600 - GLOBAL(GCC_pop_shmedia_regs_nofpu):
1.601 - movi 27*8, r0
1.602 - .L0:
1.603 -@@ -2666,5 +2834,10 @@
1.604 - ld.q r15, 0*8, r28
1.605 - add.l r15, r0, r15
1.606 - blink tr0, r63
1.607 -+
1.608 -+#ifndef __SH4_NOFPU__
1.609 -+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
1.610 -+#endif
1.611 -+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
1.612 - #endif /* __SH5__ == 32 */
1.613 - #endif /* L_push_pop_shmedia_regs */