remove the last of possible-textrels from i386 asm
authorRich Felker <dalias@aerifal.cx>
Sun, 19 Apr 2015 00:45:39 +0000 (20:45 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 19 Apr 2015 00:45:39 +0000 (20:45 -0400)
none of these are actual textrels because of ld-time binding performed
by -Bsymbolic-functions, but I'm changing them with the goal of making
ld-time binding purely an optimization rather than relying on it for
semantic purposes.

in the case of memmove's call to memcpy, making it explicit that the
memmove asm is assuming the forward-copying behavior of the memcpy asm
is desirable anyway; in case memcpy is ever changed, the semantic
mismatch would be apparent while editing memmcpy.s.

src/math/i386/exp.s
src/math/i386/expl.s
src/setjmp/i386/setjmp.s
src/signal/i386/sigsetjmp.s
src/string/i386/memcpy.s
src/string/i386/memmove.s

index abb9036957ad04bf9c4579ec5aa3251e69165e3f..c7aa5b6eaa37a8385ff3998cf5b690884295618d 100644 (file)
@@ -72,8 +72,11 @@ exp2f:
        jmp 1f
 
 .global exp2l
+.global __exp2l
+.hidden __exp2l
 .type exp2l,@function
 exp2l:
+__exp2l:
        fldt 4(%esp)
        jmp 1f
 
index 61ef1ddcf33c73e4b1bec4b7b4c3be3f5193ab43..b5124e8f1f5f4565de61d6221ff9652d9f60260b 100644 (file)
@@ -37,7 +37,8 @@ expl:
        fstpt (%esp)
        fstpt 16(%esp)
        fstpt 32(%esp)
-       call exp2l
+.hidden __exp2l
+       call __exp2l
                # if 2^hi == inf return 2^hi
        fld %st(0)
        fstpt (%esp)
index 586d439066084693ce7d7dec436d70c98ef732bc..4d19cf87cbe924cb7724045400039610950a77d2 100644 (file)
@@ -1,9 +1,12 @@
+.global ___setjmp
+.hidden ___setjmp
 .global __setjmp
 .global _setjmp
 .global setjmp
 .type __setjmp,@function
 .type _setjmp,@function
 .type setjmp,@function
+___setjmp:
 __setjmp:
 _setjmp:
 setjmp:
index 1d24b6f78f384d7cb2fab5698f7b8fb02c7142d3..690b251c4c9efea7e8bdb086415d803637514303 100644 (file)
@@ -12,7 +12,8 @@ __sigsetjmp:
        mov %ebx,28+8(%eax)
        mov %eax,%ebx
 
-       call setjmp
+.hidden ___setjmp
+       call ___setjmp
 
        pushl 24(%ebx)
        mov %ebx,4(%esp)
@@ -22,4 +23,4 @@ __sigsetjmp:
 .hidden __sigsetjmp_tail
        jmp __sigsetjmp_tail
 
-1:     jmp setjmp
+1:     jmp ___setjmp
index b2977c89286628ad51afc1733d79e6ae5bd0415d..0608dd83c761ef40e76fb1ad9b32afbf399b0c53 100644 (file)
@@ -1,6 +1,9 @@
 .global memcpy
+.global __memcpy_fwd
+.hidden __memcpy_fwd
 .type memcpy,@function
 memcpy:
+__memcpy_fwd:
        push %esi
        push %edi
        mov 12(%esp),%edi
index 6e6cc8e36da2779f30f2c6fbafd728989bb4d765..2a6a504b3295555349badaffe9886ac2529d1b68 100644 (file)
@@ -4,7 +4,8 @@ memmove:
        mov 4(%esp),%eax
        sub 8(%esp),%eax
        cmp 12(%esp),%eax
-       jae memcpy
+.hidden __memcpy_fwd
+       jae __memcpy_fwd
        push %esi
        push %edi
        mov 12(%esp),%edi