* [PATCH] ppc64: Add HTM SPRs support to readelf
@ 2017-07-20 21:49 Gustavo Romero
2017-07-21 19:55 ` Mark Wielaard
0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Romero @ 2017-07-20 21:49 UTC (permalink / raw)
To: elfutils-devel; +Cc: Gustavo Romero
Since POWER8, PowerPC 64 supports Hardware Transactional Memory, which has
three special purpose registers associated to it: tfhar, tfiar, and texasr.
This commit add HTM SPRs set as known note type so it's possible to use
'readelf --notes' to inspect the HTM SPRs in a coredump file generated in
such a machines.
Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.com>
---
backends/ChangeLog | 5 +++++
backends/ppc_corenote.c | 13 ++++++++++++-
backends/ppc_regs.c | 10 +++++++++-
libebl/ChangeLog | 4 ++++
libebl/eblcorenotetypename.c | 1 +
libelf/ChangeLog | 4 ++++
libelf/elf.h | 1 +
tests/ChangeLog | 5 +++++
tests/run-addrcfi.sh | 18 +++++++++---------
tests/run-allregs.sh | 12 ++++++------
10 files changed, 56 insertions(+), 17 deletions(-)
diff --git a/backends/ChangeLog b/backends/ChangeLog
index d628245..6cecdf9 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,8 @@
+2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
+
+ * ppc_corenote.c: Add offsets for ppc64 HTM SPRs: thfar, tfiar, and texasr.
+ * ppc_regs.c: Add names for ppc64 HTM SPRs mappings.
+
2017-06-17 Mark Wielaard <mark@klomp.org>
* s390_initreg.c: Swap sys/ptrace.h and asm/ptrace.h include order.
diff --git a/backends/ppc_corenote.c b/backends/ppc_corenote.c
index 9ac8871..2b4ada7 100644
--- a/backends/ppc_corenote.c
+++ b/backends/ppc_corenote.c
@@ -94,9 +94,20 @@ static const Ebl_Register_Location spe_regs[] =
{ .offset = 34 * 4, .regno = 612, .count = 1, .bits = 32 }
};
+static const Ebl_Register_Location tm_spr_regs[] =
+ {
+ /* tfhar */
+ { .offset = 0, .regno = 114, .count = 1, .bits = 64 },
+ /* texasr */
+ { .offset = 8, .regno = 116, .count = 1, .bits = 64 },
+ /* tfiar */
+ { .offset = 16, .regno = 115, .count = 1, .bits = 64 }
+ };
+
#define EXTRA_NOTES \
EXTRA_REGSET (NT_PPC_VMX, 34 * 16, altivec_regs) \
- EXTRA_REGSET (NT_PPC_SPE, 35 * 4, spe_regs)
+ EXTRA_REGSET (NT_PPC_SPE, 35 * 4, spe_regs) \
+ EXTRA_REGSET (NT_PPC_TM_SPR, 3 * 8, tm_spr_regs)
#if BITS == 32
# define ULONG uint32_t
diff --git a/backends/ppc_regs.c b/backends/ppc_regs.c
index bcf4f7a..c2d5011 100644
--- a/backends/ppc_regs.c
+++ b/backends/ppc_regs.c
@@ -149,7 +149,15 @@ ppc_register_info (Ebl *ebl __attribute__ ((unused)),
namelen = 4;
break;
- case 110 ... 117:
+ case 114:
+ return stpcpy (name, "tfhar") + 1 - name;
+ case 115:
+ return stpcpy (name, "tfiar") + 1 - name;
+ case 116:
+ return stpcpy (name, "texasr") + 1 - name;
+
+ case 110 ... 113:
+ case 117:
case 120 ... 121:
case 123 ... 199:
name[0] = 's';
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index 506915b..efeb7c3 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
+
+ * eblcorenotetypename.c: Add ppc64 HTM SPRs note as known type.
+
2017-04-20 Ulf Hermann <ulf.hermann@qt.io>
* libebl.h: Use __pure_attribute__.
diff --git a/libebl/eblcorenotetypename.c b/libebl/eblcorenotetypename.c
index fa81dbe..d3a56fa 100644
--- a/libebl/eblcorenotetypename.c
+++ b/libebl/eblcorenotetypename.c
@@ -75,6 +75,7 @@ ebl_core_note_type_name (Ebl *ebl, uint32_t type, char *buf, size_t len)
KNOWNSTYPE (PPC_VMX);
KNOWNSTYPE (PPC_SPE);
KNOWNSTYPE (PPC_VSX);
+ KNOWNSTYPE (PPC_TM_SPR);
KNOWNSTYPE (386_TLS);
KNOWNSTYPE (386_IOPERM);
KNOWNSTYPE (X86_XSTATE);
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index 594bec9..e5529e9 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,7 @@
+2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
+
+ * elf.h: Add known type in notes segment descriptor for HTM SPRs.
+
2017-04-20 Ulf Hermann <ulf.hermann@qt.io>
* libelfP.h: Don't include config.h.
diff --git a/libelf/elf.h b/libelf/elf.h
index b6112d9..fa35203 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -763,6 +763,7 @@ typedef struct
#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
+#define NT_PPC_TM_SPR 0x10c /* PowerPC HW Transactional Memory SPRs */
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 3dd6f2a..84742c6 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,8 @@
+2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
+
+ * run-addrcfi.sh: Update generic SPRs names to HTM SPRs names
+ * run-allregs.sh: Update generic SPRs names to HTM SPRs names
+
2017-07-14 Mark Wielaard <mark@klomp.org>
* run-strip-remove-keep.sh: New test.
diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh
index c864eea..376a6dc 100755
--- a/tests/run-addrcfi.sh
+++ b/tests/run-addrcfi.sh
@@ -397,9 +397,9 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range
privileged reg111 (spr11): undefined
privileged reg112 (spr12): undefined
privileged reg113 (spr13): undefined
- privileged reg114 (spr14): undefined
- privileged reg115 (spr15): undefined
- privileged reg116 (spr16): undefined
+ privileged reg114 (tfhar): undefined
+ privileged reg115 (tfiar): undefined
+ privileged reg116 (texasr): undefined
privileged reg117 (spr17): undefined
privileged reg118 (dsisr): undefined
privileged reg119 (dar): undefined
@@ -1419,9 +1419,9 @@ testrun_compare ${abs_builddir}/addrcfi -e testfileppc32 0x100004d2 <<\EOF
privileged reg111 (spr11): undefined
privileged reg112 (spr12): undefined
privileged reg113 (spr13): undefined
- privileged reg114 (spr14): undefined
- privileged reg115 (spr15): undefined
- privileged reg116 (spr16): undefined
+ privileged reg114 (tfhar): undefined
+ privileged reg115 (tfiar): undefined
+ privileged reg116 (texasr): undefined
privileged reg117 (spr17): undefined
privileged reg118 (dsisr): undefined
privileged reg119 (dar): undefined
@@ -2447,9 +2447,9 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range
privileged reg111 (spr11): undefined
privileged reg112 (spr12): undefined
privileged reg113 (spr13): undefined
- privileged reg114 (spr14): undefined
- privileged reg115 (spr15): undefined
- privileged reg116 (spr16): undefined
+ privileged reg114 (tfhar): undefined
+ privileged reg115 (tfiar): undefined
+ privileged reg116 (texasr): undefined
privileged reg117 (spr17): undefined
privileged reg118 (dsisr): undefined
privileged reg119 (dar): undefined
diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh
index d82f37e..7ddd452 100755
--- a/tests/run-allregs.sh
+++ b/tests/run-allregs.sh
@@ -253,9 +253,9 @@ privileged registers:
111: spr11 (spr11), unsigned 32 bits
112: spr12 (spr12), unsigned 32 bits
113: spr13 (spr13), unsigned 32 bits
- 114: spr14 (spr14), unsigned 32 bits
- 115: spr15 (spr15), unsigned 32 bits
- 116: spr16 (spr16), unsigned 32 bits
+ 114: tfhar (tfhar), unsigned 32 bits
+ 115: tfiar (tfiar), unsigned 32 bits
+ 116: texasr (texasr), unsigned 32 bits
117: spr17 (spr17), unsigned 32 bits
118: dsisr (dsisr), unsigned 32 bits
119: dar (dar), unsigned 32 bits
@@ -1276,9 +1276,9 @@ privileged registers:
111: spr11 (spr11), unsigned 64 bits
112: spr12 (spr12), unsigned 64 bits
113: spr13 (spr13), unsigned 64 bits
- 114: spr14 (spr14), unsigned 64 bits
- 115: spr15 (spr15), unsigned 64 bits
- 116: spr16 (spr16), unsigned 64 bits
+ 114: tfhar (tfhar), unsigned 64 bits
+ 115: tfiar (tfiar), unsigned 64 bits
+ 116: texasr (texasr), unsigned 64 bits
117: spr17 (spr17), unsigned 64 bits
118: dsisr (dsisr), unsigned 64 bits
119: dar (dar), unsigned 64 bits
--
2.7.4
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-20 21:49 [PATCH] ppc64: Add HTM SPRs support to readelf Gustavo Romero
@ 2017-07-21 19:55 ` Mark Wielaard
2017-07-24 14:54 ` Gustavo Romero
0 siblings, 1 reply; 9+ messages in thread
From: Mark Wielaard @ 2017-07-21 19:55 UTC (permalink / raw)
To: Gustavo Romero; +Cc: elfutils-devel
On Thu, 2017-07-20 at 17:49 -0400, Gustavo Romero wrote:
> Since POWER8, PowerPC 64 supports Hardware Transactional Memory, which has
> three special purpose registers associated to it: tfhar, tfiar, and texasr.
> This commit add HTM SPRs set as known note type so it's possible to use
> 'readelf --notes' to inspect the HTM SPRs in a coredump file generated in
> such a machines.
This patch looks perfect, thanks.
One nitpick.
> diff --git a/libelf/ChangeLog b/libelf/ChangeLog
> index 594bec9..e5529e9 100644
> --- a/libelf/ChangeLog
> +++ b/libelf/ChangeLog
> @@ -1,3 +1,7 @@
> +2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
> +
> + * elf.h: Add known type in notes segment descriptor for HTM SPRs.
> +
> 2017-04-20 Ulf Hermann <ulf.hermann@qt.io>
>
> * libelfP.h: Don't include config.h.
> diff --git a/libelf/elf.h b/libelf/elf.h
> index b6112d9..fa35203 100644
> --- a/libelf/elf.h
> +++ b/libelf/elf.h
> @@ -763,6 +763,7 @@ typedef struct
> #define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
> #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
> #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
> +#define NT_PPC_TM_SPR 0x10c /* PowerPC HW Transactional Memory SPRs */
> #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
> #define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
> #define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
We normally keep elf.h in sync with glibc.
Could you submit this elf.h change to libc-alpha@sourceware.org?
Then we resync elf.h from glibc to pull in the new constants.
Thanks,
Mark
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-21 19:55 ` Mark Wielaard
@ 2017-07-24 14:54 ` Gustavo Romero
2017-07-24 19:17 ` Mark Wielaard
0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Romero @ 2017-07-24 14:54 UTC (permalink / raw)
To: Mark Wielaard; +Cc: elfutils-devel
Hi Mark,
On 21-07-2017 16:55, Mark Wielaard wrote:
> On Thu, 2017-07-20 at 17:49 -0400, Gustavo Romero wrote:
>> Since POWER8, PowerPC 64 supports Hardware Transactional Memory, which has
>> three special purpose registers associated to it: tfhar, tfiar, and texasr.
>> This commit add HTM SPRs set as known note type so it's possible to use
>> 'readelf --notes' to inspect the HTM SPRs in a coredump file generated in
>> such a machines.
>
> This patch looks perfect, thanks.
Thanks for reviewing it!
>
> We normally keep elf.h in sync with glibc.
> Could you submit this elf.h change to libc-alpha@sourceware.org?
> Then we resync elf.h from glibc to pull in the new constants.
It looks like glibc community won't review / push that change as it is in
freeze for glibc 2.26 cut right now accordingly to [1].
If my understanding is correct, it's a blocker or my change can be pushed
to elfutils and once glibc is open again (in about a week) I can submit
this elf.h change to libc-alpha@sourceware.org?
Thank you and best regards,
Gustavo
[1] https://sourceware.org/ml/libc-alpha/2017-07/msg00018.htm
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-24 14:54 ` Gustavo Romero
@ 2017-07-24 19:17 ` Mark Wielaard
2017-07-24 20:47 ` Gustavo Romero
0 siblings, 1 reply; 9+ messages in thread
From: Mark Wielaard @ 2017-07-24 19:17 UTC (permalink / raw)
To: Gustavo Romero; +Cc: elfutils-devel
On Mon, Jul 24, 2017 at 11:54:34AM -0300, Gustavo Romero wrote:
> On 21-07-2017 16:55, Mark Wielaard wrote:
> > This patch looks perfect, thanks.
>
> Thanks for reviewing it!
>
> > We normally keep elf.h in sync with glibc.
> > Could you submit this elf.h change to libc-alpha@sourceware.org?
> > Then we resync elf.h from glibc to pull in the new constants.
>
> It looks like glibc community won't review / push that change as it is in
> freeze for glibc 2.26 cut right now accordingly to [1].
>
> If my understanding is correct, it's a blocker or my change can be pushed
> to elfutils and once glibc is open again (in about a week) I can submit
> this elf.h change to libc-alpha@sourceware.org?
Lets call it a soft-block :) It is just that I hate the files getting
out of sync. We risk using slightly differently named constants. It
looks like the 2.26 release will be next week, so hopefully the freeze
will be over end of this week.
Could you post the fix to libc-alpha already and then ping it next
week once the tree open up again? Then I'll push your patch to
elfutils.
Thanks,
Mark
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-24 19:17 ` Mark Wielaard
@ 2017-07-24 20:47 ` Gustavo Romero
2017-07-24 20:50 ` Gustavo Romero
0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Romero @ 2017-07-24 20:47 UTC (permalink / raw)
To: Mark Wielaard; +Cc: elfutils-devel
Hi Mark,
On 24-07-2017 16:17, Mark Wielaard wrote:
>>> We normally keep elf.h in sync with glibc.
>>> Could you submit this elf.h change to libc-alpha@sourceware.org?
>>> Then we resync elf.h from glibc to pull in the new constants.
>>
>> It looks like glibc community won't review / push that change as it is in
>> freeze for glibc 2.26 cut right now accordingly to [1].
>>
>> If my understanding is correct, it's a blocker or my change can be pushed
>> to elfutils and once glibc is open again (in about a week) I can submit
>> this elf.h change to libc-alpha@sourceware.org?
>
> Lets call it a soft-block :) It is just that I hate the files getting
> out of sync. We risk using slightly differently named constants. It
> looks like the 2.26 release will be next week, so hopefully the freeze
> will be over end of this week.
>
> Could you post the fix to libc-alpha already and then ping it next
> week once the tree open up again? Then I'll push your patch to
> elfutils.
Posted: https://sourceware.org/ml/libc-alpha/2017-07/msg00827.html
Thank you and best regards,
Gustavo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-24 20:47 ` Gustavo Romero
@ 2017-07-24 20:50 ` Gustavo Romero
2017-07-25 10:34 ` Mark Wielaard
0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Romero @ 2017-07-24 20:50 UTC (permalink / raw)
To: Mark Wielaard; +Cc: elfutils-devel
I'll ping it next week and follow-up. Thanks!
Regards,
Gustavo
On 24-07-2017 17:47, Gustavo Romero wrote:
> Hi Mark,
>
> On 24-07-2017 16:17, Mark Wielaard wrote:
>>>> We normally keep elf.h in sync with glibc.
>>>> Could you submit this elf.h change to libc-alpha@sourceware.org?
>>>> Then we resync elf.h from glibc to pull in the new constants.
>>>
>>> It looks like glibc community won't review / push that change as it is in
>>> freeze for glibc 2.26 cut right now accordingly to [1].
>>>
>>> If my understanding is correct, it's a blocker or my change can be pushed
>>> to elfutils and once glibc is open again (in about a week) I can submit
>>> this elf.h change to libc-alpha@sourceware.org?
>>
>> Lets call it a soft-block :) It is just that I hate the files getting
>> out of sync. We risk using slightly differently named constants. It
>> looks like the 2.26 release will be next week, so hopefully the freeze
>> will be over end of this week.
>>
>> Could you post the fix to libc-alpha already and then ping it next
>> week once the tree open up again? Then I'll push your patch to
>> elfutils.
>
> Posted: https://sourceware.org/ml/libc-alpha/2017-07/msg00827.html
>
> Thank you and best regards,
> Gustavo
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-24 20:50 ` Gustavo Romero
@ 2017-07-25 10:34 ` Mark Wielaard
2017-08-15 14:25 ` Gustavo Romero
0 siblings, 1 reply; 9+ messages in thread
From: Mark Wielaard @ 2017-07-25 10:34 UTC (permalink / raw)
To: Gustavo Romero; +Cc: elfutils-devel
On Mon, Jul 24, 2017 at 05:50:36PM -0300, Gustavo Romero wrote:
> I'll ping it next week and follow-up. Thanks!
Thanks. I pushed you commit to master already.
Lets make sure to resync glibc elf.h next week.
Cheers,
Mark
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-07-25 10:34 ` Mark Wielaard
@ 2017-08-15 14:25 ` Gustavo Romero
2017-08-15 20:51 ` Mark Wielaard
0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Romero @ 2017-08-15 14:25 UTC (permalink / raw)
To: Mark Wielaard; +Cc: elfutils-devel
Dear Mark,
On 25-07-2017 07:34, Mark Wielaard wrote:
> On Mon, Jul 24, 2017 at 05:50:36PM -0300, Gustavo Romero wrote:
>> I'll ping it next week and follow-up. Thanks!
>
> Thanks. I pushed you commit to master already.
> Lets make sure to resync glibc elf.h next week.
Thank you so much for waiting the elf.h update at glibc side :-)
For the records, it was pushed today: http://tinyurl.com/ydgl28f4
Regards,
Gustavo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ppc64: Add HTM SPRs support to readelf
2017-08-15 14:25 ` Gustavo Romero
@ 2017-08-15 20:51 ` Mark Wielaard
0 siblings, 0 replies; 9+ messages in thread
From: Mark Wielaard @ 2017-08-15 20:51 UTC (permalink / raw)
To: Gustavo Romero; +Cc: elfutils-devel
[-- Attachment #1: Type: text/plain, Size: 572 bytes --]
Hi Gustavo,
On Tue, Aug 15, 2017 at 11:23:37AM -0300, Gustavo Romero wrote:
> On 25-07-2017 07:34, Mark Wielaard wrote:
> > On Mon, Jul 24, 2017 at 05:50:36PM -0300, Gustavo Romero wrote:
> >> I'll ping it next week and follow-up. Thanks!
> >
> > Thanks. I pushed you commit to master already.
> > Lets make sure to resync glibc elf.h next week.
>
> Thank you so much for waiting the elf.h update at glibc side :-)
>
> For the records, it was pushed today: http://tinyurl.com/ydgl28f4
Thanks for following up.
I resynced our elf.h from glibc just now.
Cheers,
Mark
[-- Attachment #2: 0001-libelf-Sync-elf.h-from-glibc.patch --]
[-- Type: text/plain, Size: 5585 bytes --]
From 6d2e7e7100429df3d548251e9685a1eb7bb434cb Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Tue, 15 Aug 2017 22:43:01 +0200
Subject: [PATCH] libelf: Sync elf.h from glibc.
Add new powerpc note descriptors.
Signed-off-by: Mark Wielaard <mark@klomp.org>
---
libelf/ChangeLog | 4 +++
libelf/elf.h | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 97 insertions(+), 3 deletions(-)
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index b17e1c5e..436b8880 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,7 @@
+2017-08-15 Mark Wielaard <mark@klomp.org>
+
+ * elf.h: Update from glibc. Add new powerpc note descriptors.
+
2017-07-19 Gustavo Romero <gromero@linux.vnet.ibm.com>
* elf.h: Add known type in notes segment descriptor for HTM SPRs.
diff --git a/libelf/elf.h b/libelf/elf.h
index fa35203d..84a71260 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -1,5 +1,5 @@
/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2016 Free Software Foundation, Inc.
+ Copyright (C) 1995-2017 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
@@ -762,8 +762,23 @@ typedef struct
#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
+#define NT_PPC_TAR 0x103 /* Target Address Register */
+#define NT_PPC_PPR 0x104 /* Program Priority Register */
+#define NT_PPC_DSCR 0x105 /* Data Stream Control Register */
+#define NT_PPC_EBB 0x106 /* Event Based Branch Registers */
+#define NT_PPC_PMU 0x107 /* Performance Monitor Registers */
+#define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */
+#define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */
+#define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */
+#define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */
+#define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */
+#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address
+ Register */
+#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority
+ Register */
+#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control
+ Register */
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
-#define NT_PPC_TM_SPR 0x10c /* PowerPC HW Transactional Memory SPRs */
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
@@ -1171,6 +1186,18 @@ typedef struct
#define AT_L2_CACHESHAPE 36
#define AT_L3_CACHESHAPE 37
+/* Shapes of the caches, with more room to describe them.
+ *GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
+ and the cache associativity in the next 16 bits. */
+#define AT_L1I_CACHESIZE 40
+#define AT_L1I_CACHEGEOMETRY 41
+#define AT_L1D_CACHESIZE 42
+#define AT_L1D_CACHEGEOMETRY 43
+#define AT_L2_CACHESIZE 44
+#define AT_L2_CACHEGEOMETRY 45
+#define AT_L3_CACHESIZE 46
+#define AT_L3_CACHEGEOMETRY 47
+
/* Note section contents. Each entry in the note section begins with
a header of a fixed form. */
@@ -2533,9 +2560,10 @@ enum
#define DT_PPC64_OPT (DT_LOPROC + 3)
#define DT_PPC64_NUM 4
-/* PowerPC64 specific values for the DT_PPC64_OPT Dyn entry. */
+/* PowerPC64 specific bits in the DT_PPC64_OPT Dyn entry. */
#define PPC64_OPT_TLS 1
#define PPC64_OPT_MULTI_TOC 2
+#define PPC64_OPT_LOCALENTRY 4
/* PowerPC64 specific values for the Elf64_Sym st_other field. */
#define STO_PPC64_LOCAL_BIT 5
@@ -3683,6 +3711,68 @@ enum
#define R_BPF_NONE 0 /* No reloc */
#define R_BPF_MAP_FD 1 /* Map fd to pointer */
+/* Imagination Meta specific relocations. */
+
+#define R_METAG_HIADDR16 0
+#define R_METAG_LOADDR16 1
+#define R_METAG_ADDR32 2 /* 32bit absolute address */
+#define R_METAG_NONE 3 /* No reloc */
+#define R_METAG_RELBRANCH 4
+#define R_METAG_GETSETOFF 5
+
+/* Backward compatability */
+#define R_METAG_REG32OP1 6
+#define R_METAG_REG32OP2 7
+#define R_METAG_REG32OP3 8
+#define R_METAG_REG16OP1 9
+#define R_METAG_REG16OP2 10
+#define R_METAG_REG16OP3 11
+#define R_METAG_REG32OP4 12
+
+#define R_METAG_HIOG 13
+#define R_METAG_LOOG 14
+
+#define R_METAG_REL8 15
+#define R_METAG_REL16 16
+
+/* GNU */
+#define R_METAG_GNU_VTINHERIT 30
+#define R_METAG_GNU_VTENTRY 31
+
+/* PIC relocations */
+#define R_METAG_HI16_GOTOFF 32
+#define R_METAG_LO16_GOTOFF 33
+#define R_METAG_GETSET_GOTOFF 34
+#define R_METAG_GETSET_GOT 35
+#define R_METAG_HI16_GOTPC 36
+#define R_METAG_LO16_GOTPC 37
+#define R_METAG_HI16_PLT 38
+#define R_METAG_LO16_PLT 39
+#define R_METAG_RELBRANCH_PLT 40
+#define R_METAG_GOTOFF 41
+#define R_METAG_PLT 42
+#define R_METAG_COPY 43
+#define R_METAG_JMP_SLOT 44
+#define R_METAG_RELATIVE 45
+#define R_METAG_GLOB_DAT 46
+
+/* TLS relocations */
+#define R_METAG_TLS_GD 47
+#define R_METAG_TLS_LDM 48
+#define R_METAG_TLS_LDO_HI16 49
+#define R_METAG_TLS_LDO_LO16 50
+#define R_METAG_TLS_LDO 51
+#define R_METAG_TLS_IE 52
+#define R_METAG_TLS_IENONPIC 53
+#define R_METAG_TLS_IENONPIC_HI16 54
+#define R_METAG_TLS_IENONPIC_LO16 55
+#define R_METAG_TLS_TPOFF 56
+#define R_METAG_TLS_DTPMOD 57
+#define R_METAG_TLS_DTPOFF 58
+#define R_METAG_TLS_LE 59
+#define R_METAG_TLS_LE_HI16 60
+#define R_METAG_TLS_LE_LO16 61
+
__END_DECLS
#endif /* elf.h */
--
2.13.4
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-08-15 20:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-20 21:49 [PATCH] ppc64: Add HTM SPRs support to readelf Gustavo Romero
2017-07-21 19:55 ` Mark Wielaard
2017-07-24 14:54 ` Gustavo Romero
2017-07-24 19:17 ` Mark Wielaard
2017-07-24 20:47 ` Gustavo Romero
2017-07-24 20:50 ` Gustavo Romero
2017-07-25 10:34 ` Mark Wielaard
2017-08-15 14:25 ` Gustavo Romero
2017-08-15 20:51 ` Mark Wielaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).