summaryrefslogtreecommitdiff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-07-07 02:39:45 +0000
committerUlrich Drepper <drepper@redhat.com>2005-07-07 02:39:45 +0000
commit9f0d7b6df903729a56bc464ff3721e80906933da (patch)
treef472b38af9e806de00c3826373757829c9981227 /sysdeps/powerpc
parent016c70ea61aa2a896c7862b70e1cf4e705ba21af (diff)
* elf/dl-reloc.c [PROF] (_dl_relocate_object): Define
consider_profiling always to zero. Don't count of compiler to remove unreached if block. * sysdeps/x86_64/dl-trampoline.S [PROF] (_dl_runtime_profile): Don't compile. * sysdeps/i386/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise. * sysdeps/ia64/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise. * sysdeps/s390/s390-64/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise. * sysdeps/s390/s390-32/dl-trampoline.S [PROF] (_dl_runtime_profile): Likewise. * sysdeps/powerpc/powerpc64/dl-trampoline.S [PROF] (_dl_profile_resolve): Likewise. * sysdeps/powerpc/powerpc32/dl-trampoline.S [PROF] (_dl_profile_resolve): Likewise. * gmon/Makefile: Add rules to build and run tst-profile-static. * gmon/tst-profile-static.c: New file. * Makeconfig (+link-static): Allow passing program-specific flags.
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/powerpc32/dl-trampoline.S2
-rw-r--r--sysdeps/powerpc/powerpc64/dl-trampoline.S45
2 files changed, 25 insertions, 22 deletions
diff --git a/sysdeps/powerpc/powerpc32/dl-trampoline.S b/sysdeps/powerpc/powerpc32/dl-trampoline.S
index ea5ce7b45a..506e8022b9 100644
--- a/sysdeps/powerpc/powerpc32/dl-trampoline.S
+++ b/sysdeps/powerpc/powerpc32/dl-trampoline.S
@@ -66,6 +66,7 @@ _dl_runtime_resolve:
bctr
.size _dl_runtime_resolve,.-_dl_runtime_resolve
+#ifndef PROF
.align 2
.globl _dl_prof_resolve
.type _dl_prof_resolve,@function
@@ -172,3 +173,4 @@ _dl_prof_resolve:
addi r1,r1,320
bctr
.size _dl_prof_resolve,.-_dl_prof_resolve
+#endif
diff --git a/sysdeps/powerpc/powerpc64/dl-trampoline.S b/sysdeps/powerpc/powerpc64/dl-trampoline.S
index 0c617063c9..c90f961615 100644
--- a/sysdeps/powerpc/powerpc64/dl-trampoline.S
+++ b/sysdeps/powerpc/powerpc64/dl-trampoline.S
@@ -26,7 +26,7 @@
and r11 contains the link_map (from PLT0+16). The link_map becomes
parm1 (r3) and the index (r0) need to be converted to an offset
(index * 24) in parm2 (r4). */
-
+
EALIGN(_dl_runtime_resolve, 4, 0)
/* We need to save the registers used to pass parameters, ie. r3 thru
r10; the registers are saved in a stack frame. */
@@ -139,8 +139,8 @@ END(_dl_runtime_resolve)
* Parameter save area, Allocated by the call, at least 8 double words
+40 TOC save area
+32 Reserved for linker
- +24 Reserved for compiler
- +16 LR save area
+ +24 Reserved for compiler
+ +16 LR save area
+8 CR save area
r1+0 stack back chain
*/
@@ -169,7 +169,7 @@ END(_dl_runtime_resolve)
and r11 contains the link_map (from PLT0+16). The link_map becomes
parm1 (r3) and the index (r0) needs to be converted to an offset
(index * 24) in parm2 (r4). */
-
+#ifndef PROF
EALIGN(_dl_profile_resolve, 4, 0)
/* Spill r30, r31 to preserve the link_map* and reloc_addr, in case we
need to call _dl_call_pltexit. */
@@ -215,23 +215,23 @@ EALIGN(_dl_profile_resolve, 4, 0)
li r12,64
stvx v2,0,r10
stvx v3,0,r9
-
+
stvx v4,r11,r10
stvx v5,r11,r9
addi r11,r11,64
-
+
stvx v6,r12,r10
stvx v7,r12,r9
addi r12,r12,64
-
+
stvx v8,r11,r10
stvx v9,r11,r9
addi r11,r11,64
-
+
stvx v10,r12,r10
stvx v11,r12,r9
mfspr r0,VRSAVE
-
+
stvx v12,r11,r10
stvx v13,r11,r9
L(saveFP):
@@ -262,7 +262,7 @@ L(saveFP):
nop
/* Test *framesizep > 0 to see if need to do pltexit processing. */
ld r0,STACK_FRAME(r1)
-/* Put the registers back. */
+/* Put the registers back. */
lwz r12,VR_VRSAVE(r1)
cmpdi cr1,r0,0
cmpdi cr0,r12,0
@@ -275,22 +275,22 @@ L(saveFP):
li r12,64
lvx v2,0,r10
lvx v3,0,r9
-
+
lvx v4,r11,r10
lvx v5,r11,r9
addi r11,r11,64
-
+
lvx v6,r12,r10
lvx v7,r12,r9
addi r12,r12,64
-
+
lvx v8,r11,r10
lvx v9,r11,r9
addi r11,r11,64
-
+
lvx v10,r12,r10
lvx v11,r12,r9
-
+
lvx v12,r11,r10
lvx v13,r11,r9
L(restoreFXR):
@@ -339,22 +339,22 @@ L(do_pltexit):
li r12,64
lvx v2,0,r10
lvx v3,0,r9
-
+
lvx v4,r11,r10
lvx v5,r11,r9
addi r11,r11,64
-
+
lvx v6,r12,r10
lvx v7,r12,r9
addi r12,r12,64
-
+
lvx v8,r11,r10
lvx v9,r11,r9
addi r11,r11,64
-
+
lvx v10,r12,r10
lvx v11,r12,r9
-
+
lvx v12,r11,r10
lvx v13,r11,r9
L(restoreFXR2):
@@ -393,7 +393,7 @@ L(restoreFXR2):
lfd fp13,FPR_PARMS+96(r1)
/* Call the target function. */
bctrl
- ld r2,40(r1)
+ ld r2,40(r1)
lwz r12,VR_VRSAVE(r1)
/* But return here and store the return values. */
std r3,INT_RTN(r1)
@@ -413,7 +413,7 @@ L(callpltexit):
addi r6,r1,INT_RTN
bl JUMPTARGET(_dl_call_pltexit)
nop
-/* Restore the return values from target function. */
+/* Restore the return values from target function. */
lwz r12,VR_VRSAVE(r1)
ld r3,INT_RTN(r1)
ld r4,INT_RTN+8(r1)
@@ -433,3 +433,4 @@ L(pltexitreturn):
ld r1,0(r1)
blr
END(_dl_profile_resolve)
+#endif