aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-01-07 23:14:21 +0000
committerUlrich Drepper <drepper@redhat.com>2005-01-07 23:14:21 +0000
commit2413fdba7a02ba8916f75d17199a6e9133a8f7b0 (patch)
treecf40b3f04dc99bbdb0559858b7c98298e69768db /sysdeps/powerpc/powerpc64
parentae7f5313dfb6c9df557d3904a22ac74d3347eed1 (diff)
downloadglibc-2413fdba7a02ba8916f75d17199a6e9133a8f7b0.tar
glibc-2413fdba7a02ba8916f75d17199a6e9133a8f7b0.tar.gz
glibc-2413fdba7a02ba8916f75d17199a6e9133a8f7b0.tar.bz2
glibc-2413fdba7a02ba8916f75d17199a6e9133a8f7b0.zip
Update.
* sysdeps/powerpc/powerpc64/dl-trampoline.S: Use register names. * sysdeps/powerpc/powerpc32/dl-trampoline.S: New file. * sysdeps/powerpc/powerpc32/dl-machine.h: Remove trampoline code here. Define ARCH_LA_PLTENTER and ARCH_LA_PLTEXIT. * sysdeps/generic/ldsodefs.h (struct audit_ifaces): Add ppc32 variants. * elf/tst-auditmod1.c: Add ppc32 support. * sysdeps/powerpc/powerpc32/bits/link.h: New file. * sysdeps/powerpc/powerpc64/bits/link.h: Add ppc32 definitions.
Diffstat (limited to 'sysdeps/powerpc/powerpc64')
-rw-r--r--sysdeps/powerpc/powerpc64/bits/link.h44
1 files changed, 41 insertions, 3 deletions
diff --git a/sysdeps/powerpc/powerpc64/bits/link.h b/sysdeps/powerpc/powerpc64/bits/link.h
index e4988fef53..227c7f9a4f 100644
--- a/sysdeps/powerpc/powerpc64/bits/link.h
+++ b/sysdeps/powerpc/powerpc64/bits/link.h
@@ -23,11 +23,49 @@
#if __ELF_NATIVE_CLASS == 32
-#error "fill in ppc32 data"
+/* Registers for entry into PLT on PPC32. */
+typedef struct La_ppc32_regs
+{
+ uint64_t lr_reg[8];
+ double lr_fp[8];
+ uint32_t lr_vreg[12][4];
+ uint64_t lr_r1;
+ uint64_t lr_lr;
+} La_ppc32_regs;
+
+/* Return values for calls from PLT on PPC32. */
+typedef struct La_ppc32_retval
+{
+ uint64_t lrv_r3;
+ uint64_t lrv_r4;
+ double lrv_fp[8];
+ uint32_t lrv_v2[4];
+} La_ppc32_retval;
+
+
+__BEGIN_DECLS
+
+extern Elf32_Addr la_ppc32_gnu_pltenter (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_ppc32_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_ppc32_gnu_pltexit (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_ppc32_regs *__inregs,
+ La_ppc32_retval *__outregs,
+ const char *symname);
+
+__END_DECLS
#else
-/* Registers for entry into PLT on x86-64. */
+/* Registers for entry into PLT on PPC64. */
typedef struct La_ppc64_regs
{
uint64_t lr_reg[8];
@@ -37,7 +75,7 @@ typedef struct La_ppc64_regs
uint64_t lr_lr;
} La_ppc64_regs;
-/* Return values for calls from PLT on x86-64. */
+/* Return values for calls from PLT on PPC64. */
typedef struct La_ppc64_retval
{
uint64_t lrv_r3;