about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-02-25 01:57:49 +0000
committerRoland McGrath <roland@gnu.org>2006-02-25 01:57:49 +0000
commit2e636c3db77bbbbbd95f7756d860f51ef1588645 (patch)
tree80419fe90241bef9aea927137b25b9a3ed513783
parent464dce57cc94ec32cb3b02462e99866750f6cefb (diff)
downloadglibc-2e636c3db77bbbbbd95f7756d860f51ef1588645.tar.gz
glibc-2e636c3db77bbbbbd95f7756d860f51ef1588645.tar.xz
glibc-2e636c3db77bbbbbd95f7756d860f51ef1588645.zip
* elf/elf.h (HWCAP_SPARC_BLKINIT): New macro.
	* sysdeps/sparc/dl-procinfo.h (HWCAP_IMPORTANT): Add it.
	(_DL_HWCAP_COUNT): Increase to 7.
	* sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add "v9v".
	From David S. Miller <davem@sunset.davemloft.net>.
-rw-r--r--ChangeLog6
-rw-r--r--elf/elf.h9
-rw-r--r--sysdeps/sparc/dl-procinfo.c6
-rw-r--r--sysdeps/sparc/dl-procinfo.h7
4 files changed, 17 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index ab2d56e955..825f76c8da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2006-02-24  Roland McGrath  <roland@redhat.com>
 
+	* elf/elf.h (HWCAP_SPARC_BLKINIT): New macro.
+	* sysdeps/sparc/dl-procinfo.h (HWCAP_IMPORTANT): Add it.
+	(_DL_HWCAP_COUNT): Increase to 7.
+	* sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add "v9v".
+	From David S. Miller <davem@sunset.davemloft.net>.
+
 	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: Moved to ...
 	* sysdeps/sparc/dl-procinfo.c: ... here, new file.
 	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Moved to ...
diff --git a/elf/elf.h b/elf/elf.h
index c98bb5233d..344f252c0c 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -1,5 +1,5 @@
 /* This file defines standard ELF types, structures, and macros.
-   Copyright (C) 1995-2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003,2004,2005,2006 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
@@ -1250,14 +1250,15 @@ typedef struct
 #define DT_SPARC_REGISTER 0x70000001
 #define DT_SPARC_NUM	2
 
-/* Bits present in AT_HWCAP, primarily for Sparc32.  */
+/* Bits present in AT_HWCAP on SPARC.  */
 
-#define HWCAP_SPARC_FLUSH	1	/* The cpu supports flush insn.  */
+#define HWCAP_SPARC_FLUSH	1	/* The CPU supports flush insn.  */
 #define HWCAP_SPARC_STBAR	2
 #define HWCAP_SPARC_SWAP	4
 #define HWCAP_SPARC_MULDIV	8
-#define HWCAP_SPARC_V9		16	/* The cpu is v9, so v8plus is ok.  */
+#define HWCAP_SPARC_V9		16	/* The CPU is v9, so v8plus is ok.  */
 #define HWCAP_SPARC_ULTRA3	32
+#define HWCAP_SPARC_BLKINIT	64	/* Sun4v with block-init/load-twin.  */
 
 /* MIPS R3000 specific definitions.  */
 
diff --git a/sysdeps/sparc/dl-procinfo.c b/sysdeps/sparc/dl-procinfo.c
index c8bb614936..71f76aae44 100644
--- a/sysdeps/sparc/dl-procinfo.c
+++ b/sysdeps/sparc/dl-procinfo.c
@@ -47,12 +47,10 @@
 #if !defined PROCINFO_DECL && defined SHARED
   ._dl_sparc_cap_flags
 #else
-PROCINFO_CLASS const char _dl_sparc_cap_flags[6][7]
+PROCINFO_CLASS const char _dl_sparc_cap_flags[7][7]
 #endif
 #ifndef PROCINFO_DECL
-= {
-    "flush", "stbar", "swap", "muldiv", "v9", "ultra3"
-  }
+  = { "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v" };
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
 ;
diff --git a/sysdeps/sparc/dl-procinfo.h b/sysdeps/sparc/dl-procinfo.h
index 004e5a905a..dde02b556c 100644
--- a/sysdeps/sparc/dl-procinfo.h
+++ b/sysdeps/sparc/dl-procinfo.h
@@ -24,7 +24,7 @@
 
 #include <ldsodefs.h>
 
-#define _DL_HWCAP_COUNT 6
+#define _DL_HWCAP_COUNT 7
 
 static inline int
 __attribute__ ((unused))
@@ -64,8 +64,9 @@ _dl_string_hwcap (const char *str)
 };
 
 #include <bits/wordsize.h>
-#define HWCAP_IMPORTANT_V9 (__WORDSIZE == 64 ? 0 : HWCAP_SPARC_V9)
-#define HWCAP_IMPORTANT (HWCAP_IMPORTANT_V9|HWCAP_SPARC_ULTRA3)
+#define HWCAP_IMPORTANT_V9	(__WORDSIZE == 64 ? 0 : HWCAP_SPARC_V9)
+#define HWCAP_IMPORTANT		(HWCAP_IMPORTANT_V9 | HWCAP_SPARC_ULTRA3 \
+				 | HWCAP_SPARC_BLKINIT)
 
 /* There are no different platforms defined.  */
 #define _dl_platform_string(idx) ""