Re: Ping Re: [PATCH v1] PowerPC: Add NT_PPC_DMR core file support

Abhay Kandpal <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
Hi all,

Just a gentle ping to see if anyone has had a chance to review this patch,
or if any further changes are needed on my end.

Regards
Abhay Kandpal


On 13/07/26 13:39, Abhay Kandpal wrote:
> Hi all,
> Just a gentle ping to see if anyone has had a chance to review this patch,
> or if any further changes are needed on my end.
>
> Regards
> Abhay Kandpal
>
> On 22/06/26 15:44, Abhay Kandpal wrote:
>> Add BFD and readelf support for the new NT_PPC_DMR note type, which
>> carries the contents of the Dense Math Registers (DMR) available on
>> a future PowerPC processor. The DMR register set consists of eight
>> 1024-bit registers introduced by the Dense Math facility in a future
>> Power ISA revision.
>>
>> GDB support for reading and writing DMR registers, both from live
>> processes and from core files, will be added as a follow-up patch.
>>
>> bfd/
>> 	* elf-bfd.h (elfcore_write_ppc_dmr): Declare.
>> 	* elf.c (NOTE_PSEUDO_SECTION_PPC_DMR): Define.
>> 	(elfcore_grok_ppc_dmr): New function.
>> 	(elfcore_grok_note) <NT_PPC_DMR>: Handle it.
>> 	(elfcore_write_ppc_dmr): New function.
>> 	(elfcore_write_register_note): Handle .reg-ppc-dmr.
>>
>> binutils/
>> 	* readelf.c (get_note_type) <NT_PPC_DMR>: Handle it.
>>
>> include/
>> 	* elf/common.h (NT_PPC_DMR): New macro.
>> ---
>> This patch is reg tested.
>>
>>   bfd/elf-bfd.h        |  2 ++
>>   bfd/elf.c            | 20 ++++++++++++++++++++
>>   binutils/readelf.c   |  2 ++
>>   include/elf/common.h |  2 ++
>>   4 files changed, 26 insertions(+)
>>
>> diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
>> index 88d35925987..0605d31107f 100644
>> --- a/bfd/elf-bfd.h
>> +++ b/bfd/elf-bfd.h
>> @@ -3100,6 +3100,8 @@ extern char *elfcore_write_ppc_tm_cppr
>>     (bfd *, char *, int *, const void *, int);
>>   extern char *elfcore_write_ppc_tm_cdscr
>>     (bfd *, char *, int *, const void *, int);
>> +extern char *elfcore_write_ppc_dmr
>> +  (bfd *, char *, int *, const void *, int);
>>   extern char *elfcore_write_s390_timer
>>     (bfd *, char *, int *, const void *, int);
>>   extern char *elfcore_write_s390_todcmp
>> diff --git a/bfd/elf.c b/bfd/elf.c
>> index c9a68404e9d..d0769d03644 100644
>> --- a/bfd/elf.c
>> +++ b/bfd/elf.c
>> @@ -80,6 +80,7 @@ SECTION
>>   #define NOTE_PSEUDO_SECTION_LOONGARCH_LASX	".reg-loongarch-lasx"
>>   #define NOTE_PSEUDO_SECTION_LOONGARCH_LBT	".reg-loongarch-lbt"
>>   #define NOTE_PSEUDO_SECTION_LOONGARCH_LSX	".reg-loongarch-lsx"
>> +#define NOTE_PSEUDO_SECTION_PPC_DMR		".reg-ppc-dmr"
>>   #define NOTE_PSEUDO_SECTION_PPC_DSCR		".reg-ppc-dscr"
>>   #define NOTE_PSEUDO_SECTION_PPC_EBB		".reg-ppc-ebb"
>>   #define NOTE_PSEUDO_SECTION_PPC_PMU		".reg-ppc-pmu" @@ -10507,6 +10508,12 @@ elfcore_grok_ppc_vsx (bfd *abfd, 
>> Elf_Internal_Note *note) return elfcore_make_note_pseudosection 
>> (abfd, NOTE_PSEUDO_SECTION_PPC_VSX, note); } +static bool 
>> +elfcore_grok_ppc_dmr (bfd *abfd, Elf_Internal_Note *note) +{ + 
>> return elfcore_make_note_pseudosection (abfd, 
>> NOTE_PSEUDO_SECTION_PPC_DMR, note); +} + static bool 
>> elfcore_grok_ppc_tar (bfd *abfd, Elf_Internal_Note *note) { @@ 
>> -11193,6 +11200,7 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note 
>> *note) case NT_LARCH_LASX: return elfcore_grok_loongarch_lasx (abfd, 
>> note); case NT_LARCH_LBT: return elfcore_grok_loongarch_lbt (abfd, 
>> note); case NT_LARCH_LSX: return elfcore_grok_loongarch_lsx (abfd, 
>> note); + case NT_PPC_DMR: return elfcore_grok_ppc_dmr (abfd, note); 
>> case NT_PPC_DSCR: return elfcore_grok_ppc_dscr (abfd, note); case 
>> NT_PPC_EBB: return elfcore_grok_ppc_ebb (abfd, note); case 
>> NT_PPC_PMU: return elfcore_grok_ppc_pmu (abfd, note); @@ -12459,6 
>> +12467,17 @@ elfcore_write_ppc_vsx (bfd *abfd, NOTE_NAME_LINUX, 
>> NT_PPC_VSX, ppc_vsx, size); } +char * +elfcore_write_ppc_dmr (bfd 
>> *abfd, + char *buf, + int *bufsiz, + const void *ppc_dmr, + int size) 
>> +{ + return elfcore_write_note (abfd, buf, bufsiz, + NOTE_NAME_LINUX, 
>> NT_PPC_DMR, ppc_dmr, size); +} + char * elfcore_write_ppc_tar (bfd 
>> *abfd, char *buf, @@ -13040,6 +13059,7 @@ elfcore_write_register_note 
>> (bfd *abfd, { NOTE_PSEUDO_SECTION_LOONGARCH_LASX, 
>> elfcore_write_loongarch_lasx}, { NOTE_PSEUDO_SECTION_LOONGARCH_LBT, 
>> elfcore_write_loongarch_lbt}, { NOTE_PSEUDO_SECTION_LOONGARCH_LSX, 
>> elfcore_write_loongarch_lsx}, + { NOTE_PSEUDO_SECTION_PPC_DMR, 
>> elfcore_write_ppc_dmr}, { NOTE_PSEUDO_SECTION_PPC_DSCR, 
>> elfcore_write_ppc_dscr}, { NOTE_PSEUDO_SECTION_PPC_EBB, 
>> elfcore_write_ppc_ebb}, { NOTE_PSEUDO_SECTION_PPC_PMU, 
>> elfcore_write_ppc_pmu}, diff --git a/binutils/readelf.c 
>> b/binutils/readelf.c index bf27f9eec23..aed0b058732 100644 --- 
>> a/binutils/readelf.c +++ b/binutils/readelf.c @@ -21847,6 +21847,8 @@ 
>> get_note_type (Filedata * filedata, unsigned e_type) return _("NT_PPC_TM_CPPR (ppc checkpointed PPR register)");
>>         case NT_PPC_TM_CDSCR:
>>   	return _("NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)");
>> +      case NT_PPC_DMR:
>> +	return _("NT_PPC_DMR (ppc Dense Math registers)");
>>         case NT_386_TLS:
>>   	return _("NT_386_TLS (x86 TLS information)");
>>         case NT_386_IOPERM:
>> diff --git a/include/elf/common.h b/include/elf/common.h
>> index 1ae68221a89..bd327194b7e 100644
>> --- a/include/elf/common.h
>> +++ b/include/elf/common.h
>> @@ -686,6 +686,8 @@
>>   					/*   note name must be "LINUX".  */
>>   #define NT_PPC_TM_CDSCR	0x10f		/* PowerPC TM checkpointed Data SCR */
>>   					/*   note name must be "LINUX".  */
>> +#define NT_PPC_DMR	0x113		/* PowerPC Dense Math Registers */
>> +					/*   note name must be "LINUX".  */
>>   #define NT_386_TLS	0x200		/* x86 TLS information */
>>   					/*   note name must be "LINUX".  */
>>   #define NT_386_IOPERM	0x201		/* x86 io permissions */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.