about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/sys/procfs.h')
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/procfs.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
index 577689f18d..8e694c2ad3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1999, 2002, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -35,14 +35,10 @@ __BEGIN_DECLS
 /* These definitions are normally provided by ucontext.h via 
    asm/sigcontext.h, asm/ptrace.h, and asm/elf.h.  Otherwise we define 
    them here.  */ 
-#if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H
+#ifndef __PPC64_ELF_H
 #define ELF_NGREG       48      /* includes nip, msr, lr, etc. */
 #define ELF_NFPREG      33      /* includes fpscr */
-#if __WORDSIZE == 32
-# define ELF_NVRREG      33      /* includes vscr */
-#else
-# define ELF_NVRREG      34      /* includes vscr */
-#endif
+#define ELF_NVRREG      33      /* includes vscr */
 
 typedef unsigned long elf_greg_t;
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
@@ -50,10 +46,15 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
 typedef double elf_fpreg_t;
 typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
 
-/* Altivec registers */
+/* gcc 3.1 and newer support __uint128_t.  */
+#if !__GNUC_PREREQ(3,1)
 typedef struct {
-  unsigned int u[4];
-} __attribute__ ((aligned (16))) elf_vrreg_t;
+  unsigned long u[4];
+} __attribute((aligned(16))) __uint128_t;
+#endif
+
+/* Altivec registers */
+typedef __uint128_t elf_vrreg_t;
 typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
 #endif