aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/powerpc64/sysdep.h')
-rw-r--r--sysdeps/powerpc/powerpc64/sysdep.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index 0af2b0a..203484c 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -34,11 +34,16 @@
.pushsection; \
.section ".data"; \
.align ALIGNARG(2); \
-0: .long 0; \
+__mcount: \
+ .long 0; \
+ .previous; \
+ .section ".toc","aw"; \
+.LC__mcount:; \
+ .tc __mcount[TC],__mcount; \
.previous; \
mflr r0; \
std r0,16(r1); \
- ld r0,0b@got(r2); \
+ ld r0,.LC__mcount@toc(r2); \
bl JUMPTARGET(_mcount);
#else /* SYSV_ELF_PROFILING */
#define CALL_MCOUNT \
@@ -52,11 +57,16 @@
.pushsection; \
.section ".data"; \
.align ALIGNARG(2); \
-0: .long 0; \
+__mcount: \
+ .long 0; \
+ .previous; \
+ .section ".toc","aw"; \
+.LC__mcount:; \
+ .tc __mcount[TC],__mcount; \
.previous; \
mflr r0; \
std r0,16(r1); \
- ld r0,0b@got(r2); \
+ ld r0,.LC__mcount@toc(r2); \
bl JUMPTARGET(_mcount);
#else /* SYSV_ELF_PROFILING */
#define CALL_MCOUNT \