summary refs log tree commit diff
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.gz
glibc-2413fdba7a02ba8916f75d17199a6e9133a8f7b0.tar.xz
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;