diff options
author | Alan Modra <amodra@gmail.com> | 2017-06-14 10:45:50 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-06-14 10:45:50 +0930 |
commit | d5b411854f0a3135c931921dfa8a33af395acfd3 (patch) | |
tree | 04684b753b01bf9a7aa79cd0fa51b3210d13b607 /sysdeps/powerpc/powerpc64/power5+ | |
parent | de7ee73d6f5000478173ac065ded4077fd6ddee2 (diff) | |
download | glibc-d5b411854f0a3135c931921dfa8a33af395acfd3.tar.gz glibc-d5b411854f0a3135c931921dfa8a33af395acfd3.tar.xz glibc-d5b411854f0a3135c931921dfa8a33af395acfd3.zip |
PowerPC64 ENTRY_TOCLESS
A number of functions in the sysdeps/powerpc/powerpc64/ tree don't use or change r2, yet declare a global entry that sets up r2. This patch fixes that problem, and consolidates the ENTRY and EALIGN macros. * sysdeps/powerpc/powerpc64/sysdep.h: Formatting. (NOPS, ENTRY_3): New macros. (ENTRY): Rewrite. (ENTRY_TOCLESS): Define. (EALIGN, EALIGN_W_0, EALIGN_W_1, EALIGN_W_2, EALIGN_W_4, EALIGN_W_5, EALIGN_W_6, EALIGN_W_7, EALIGN_W_8): Delete. * sysdeps/powerpc/powerpc64/a2/memcpy.S: Replace EALIGN with ENTRY. * sysdeps/powerpc/powerpc64/dl-trampoline.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_floor.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_round.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_trunc.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Likewise. * sysdeps/powerpc/powerpc64/memset.S: Likewise. * sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Likewise. * sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise. * sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strstr.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/e_expf.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_cosf.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_sinf.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strcasestr.S: Likewise. * sysdeps/powerpc/powerpc64/addmul_1.S: Use ENTRY_TOCLESS. * sysdeps/powerpc/powerpc64/cell/memcpy.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_copysignl.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_fabsl.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_llrintf.S: Likewise. * sysdeps/powerpc/powerpc64/lshift.S: Likewise. * sysdeps/powerpc/powerpc64/memcpy.S: Likewise. * sysdeps/powerpc/powerpc64/mul_1.S: Likewise. * sysdeps/powerpc/powerpc64/power4/memcmp.S: Likewise. * sysdeps/powerpc/powerpc64/power4/memcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power4/memset.S: Likewise. * sysdeps/powerpc/powerpc64/power4/strncmp.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S: Likewise. * sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S: Likewise. * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power6/memcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power6/memset.S: Likewise. * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Likewise. * sysdeps/powerpc/powerpc64/power6x/fpu/s_llround.S: Likewise. * sysdeps/powerpc/powerpc64/power7/add_n.S: Likewise. * sysdeps/powerpc/powerpc64/power7/memchr.S: Likewise. * sysdeps/powerpc/powerpc64/power7/memcmp.S: Likewise. * sysdeps/powerpc/powerpc64/power7/memcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power7/memmove.S: Likewise. * sysdeps/powerpc/powerpc64/power7/mempcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power7/memrchr.S: Likewise. * sysdeps/powerpc/powerpc64/power7/memset.S: Likewise. * sysdeps/powerpc/powerpc64/power7/rawmemchr.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strcasecmp.S (strcasecmp_l): Likewise. * sysdeps/powerpc/powerpc64/power7/strchr.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strchrnul.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strcmp.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strlen.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strncmp.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strncpy.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strnlen.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strrchr.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_llround.S: Likewise. * sysdeps/powerpc/powerpc64/power8/memcmp.S: Likewise. * sysdeps/powerpc/powerpc64/power8/memset.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strchr.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strcmp.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strlen.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strncmp.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strnlen.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strrchr.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strspn.S: Likewise. * sysdeps/powerpc/powerpc64/power9/strcmp.S: Likewise. * sysdeps/powerpc/powerpc64/power9/strncmp.S: Likewise. * sysdeps/powerpc/powerpc64/strchr.S: Likewise. * sysdeps/powerpc/powerpc64/strcmp.S: Likewise. * sysdeps/powerpc/powerpc64/strlen.S: Likewise. * sysdeps/powerpc/powerpc64/strncmp.S: Likewise. * sysdeps/powerpc/powerpc64/ppc-mcount.S: Store LR earlier. Don't add nop when SHARED. * sysdeps/powerpc/powerpc64/start.S: Fix comment. * sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S (ENTRY): Don't define. (ENTRY_TOCLESS): Define. * sysdeps/powerpc/powerpc32/sysdep.h (ENTRY_TOCLESS): Define. * sysdeps/powerpc/fpu/s_fma.S: Use ENTRY_TOCLESS. * sysdeps/powerpc/fpu/s_fmaf.S: Likewise.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power5+')
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S | 2 |
9 files changed, 9 insertions, 9 deletions
diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S index 39b7ee78e5..0d09e56e4e 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S @@ -20,7 +20,7 @@ #include <math_ldbl_opt.h> .machine "power5" -EALIGN (__ceil, 4, 0) +ENTRY_TOCLESS (__ceil, 4) CALL_MCOUNT 0 frip fp1, fp1 blr diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S index d1c6f26d6d..364966088c 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S @@ -19,7 +19,7 @@ #include <sysdep.h> .machine "power5" -EALIGN (__ceilf, 4, 0) +ENTRY_TOCLESS (__ceilf, 4) CALL_MCOUNT 0 frip fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S index 6411f15633..f8bfb2797e 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floor.S @@ -20,7 +20,7 @@ #include <math_ldbl_opt.h> .machine "power5" -EALIGN (__floor, 4, 0) +ENTRY_TOCLESS (__floor, 4) CALL_MCOUNT 0 frim fp1, fp1 blr diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S index 26c3b2594b..fa8a13d2a0 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_floorf.S @@ -19,7 +19,7 @@ #include <sysdep.h> .machine "power5" -EALIGN (__floorf, 4, 0) +ENTRY_TOCLESS (__floorf, 4) CALL_MCOUNT 0 frim fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S index 909714b449..4f9f850133 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_llround.S @@ -30,7 +30,7 @@ round to zero instruction. */ .machine "power5" -EALIGN (__llround, 4, 0) +ENTRY_TOCLESS (__llround, 4) CALL_MCOUNT 0 frin fp2, fp1 /* Round to nearest +-0.5. */ fctidz fp3, fp2 /* Convert To Integer DW round toward 0. */ diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S index dc46d20f4f..0a124c80a6 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_round.S @@ -20,7 +20,7 @@ #include <math_ldbl_opt.h> .machine "power5" -EALIGN (__round, 4, 0) +ENTRY_TOCLESS (__round, 4) CALL_MCOUNT 0 frin fp1, fp1 blr diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S index 0a587843ad..39e28b4e46 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_roundf.S @@ -19,7 +19,7 @@ #include <sysdep.h> .machine "power5" -EALIGN (__roundf, 4, 0) +ENTRY_TOCLESS (__roundf, 4) CALL_MCOUNT 0 frin fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S index 7f8290e408..5fca9f37fa 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_trunc.S @@ -20,7 +20,7 @@ #include <math_ldbl_opt.h> .machine "power5" -EALIGN (__trunc, 4, 0) +ENTRY_TOCLESS (__trunc, 4) CALL_MCOUNT 0 friz fp1, fp1 blr diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S b/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S index 07f5d33127..ced4b61d2c 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/s_truncf.S @@ -19,7 +19,7 @@ #include <sysdep.h> .machine "power5" -EALIGN (__truncf, 4, 0) +ENTRY_TOCLESS (__truncf, 4) CALL_MCOUNT 0 friz fp1, fp1 /* The rounding instructions are double. */ frsp fp1, fp1 /* But we need to set ooverflow for float. */ |