[binutils-gdb] aarch64: Add support for the id_aa64isar3_el1 system register

Nick Clifton nickc@sourceware.org
Mon Feb 19 14:32:35 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1bc24c0dabc577d244627581559707705a4add56

commit 1bc24c0dabc577d244627581559707705a4add56
Author: Yury Khrustalev <Yury.Khrustalev@arm.com>
Date:   Fri Feb 9 13:52:14 2024 +0000

    aarch64: Add support for the id_aa64isar3_el1 system register
    
    Hi,
    
    [PATCH][Binutils] aarch64: Add support for the id_aa64isar3_el1 system register
    
    AArch64 defines a read-only system register called id_aa64isar3_el1.
    This patch also adds relevant tests.
    
    Regression tested on the aarch64-none-elf and aarch64-none-linux-gnu targets
    and no regressions was found.
    
    Is this Ok for trunk? I do not have commit rights, if OK, can someone commit on my behalf?
    
    Thanks,
    Yury Khrustalev
    
    From e42c835e8f2ee81150f498675f2faf108bbe79f8 Mon Sep 17 00:00:00 2001
    From: Yury Khrustalev <yury.khrustalev@arm.com>
    Date: Tue, 6 Feb 2024 11:05:39 +0000
    Subject: [PATCH] [PATCH][Binutils] aarch64: Add support for the
     id_aa64isar3_el1 system register
    
    AArch64 defines a read-only system register called id_aa64isar3_el1.
    This patch also adds relevant tests.
    
    Regression tested on the aarch64-none-elf and aarch64-none-linux-gnu targets
    and no regressions was found.

Diff:
---
 gas/testsuite/gas/aarch64/sysreg-diagnostic.d | 1 +
 gas/testsuite/gas/aarch64/sysreg-diagnostic.l | 1 +
 gas/testsuite/gas/aarch64/sysreg-diagnostic.s | 1 +
 gas/testsuite/gas/aarch64/sysreg.d            | 2 ++
 gas/testsuite/gas/aarch64/sysreg.s            | 3 +++
 opcodes/aarch64-sys-regs.def                  | 1 +
 6 files changed, 9 insertions(+)

diff --git a/gas/testsuite/gas/aarch64/sysreg-diagnostic.d b/gas/testsuite/gas/aarch64/sysreg-diagnostic.d
index 7059fbe3c8e..55cdf09bb80 100644
--- a/gas/testsuite/gas/aarch64/sysreg-diagnostic.d
+++ b/gas/testsuite/gas/aarch64/sysreg-diagnostic.d
@@ -13,3 +13,4 @@ Disassembly of section \.text:
 .*:	d5330503 	mrs	x3, dbgdtrrx_el0
 .*:	d5180003 	msr	midr_el1, x3  // note: writing to a read-only register
 .*:	d5180640 	msr	id_aa64isar2_el1, x0  // note: writing to a read-only register
+.*:	d5180660 	msr	id_aa64isar3_el1, x0  // note: writing to a read-only register
diff --git a/gas/testsuite/gas/aarch64/sysreg-diagnostic.l b/gas/testsuite/gas/aarch64/sysreg-diagnostic.l
index e9a41a2a3d2..df3d3e572a9 100644
--- a/gas/testsuite/gas/aarch64/sysreg-diagnostic.l
+++ b/gas/testsuite/gas/aarch64/sysreg-diagnostic.l
@@ -3,3 +3,4 @@
 .*:5: Warning: specified register cannot be read from at operand 2 -- `mrs x3,dbgdtrtx_el0'
 .*:6: Warning: specified register cannot be written to at operand 1 -- `msr midr_el1,x3'
 .*:7: Warning: specified register cannot be written to at operand 1 -- `msr id_aa64isar2_el1,x0'
+.*:8: Warning: specified register cannot be written to at operand 1 -- `msr id_aa64isar3_el1,x0'
diff --git a/gas/testsuite/gas/aarch64/sysreg-diagnostic.s b/gas/testsuite/gas/aarch64/sysreg-diagnostic.s
index a689cdceae5..d8e48c682a5 100644
--- a/gas/testsuite/gas/aarch64/sysreg-diagnostic.s
+++ b/gas/testsuite/gas/aarch64/sysreg-diagnostic.s
@@ -5,3 +5,4 @@
 	mrs     x3, dbgdtrtx_el0
 	msr     midr_el1, x3
 	msr	id_aa64isar2_el1, x0
+	msr	id_aa64isar3_el1, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg.d b/gas/testsuite/gas/aarch64/sysreg.d
index 704666d48c8..d10175837f2 100644
--- a/gas/testsuite/gas/aarch64/sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg.d
@@ -31,3 +31,5 @@ Disassembly of section \.text:
   5c:	d5110300 	msr	trcstatr, x0
   60:	d5380640 	mrs	x0, id_aa64isar2_el1
   64:	d538065e 	mrs	x30, id_aa64isar2_el1
+  68:	d5380660 	mrs	x0, id_aa64isar3_el1
+  6c:	d538067e 	mrs	x30, id_aa64isar3_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg.s b/gas/testsuite/gas/aarch64/sysreg.s
index f2e75a863a1..a3f5b793620 100644
--- a/gas/testsuite/gas/aarch64/sysreg.s
+++ b/gas/testsuite/gas/aarch64/sysreg.s
@@ -33,3 +33,6 @@
 
 	mrs x0, id_aa64isar2_el1
 	mrs x30, id_aa64isar2_el1
+
+	mrs x0, id_aa64isar3_el1
+	mrs x30, id_aa64isar3_el1
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index 6a948171d6e..8b65673a5d6 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -521,6 +521,7 @@
   SYSREG ("id_aa64isar0_el1",	CPENC (3,0,0,6,0),	F_REG_READ,		AARCH64_NO_FEATURES)
   SYSREG ("id_aa64isar1_el1",	CPENC (3,0,0,6,1),	F_REG_READ,		AARCH64_NO_FEATURES)
   SYSREG ("id_aa64isar2_el1",	CPENC (3,0,0,6,2),	F_REG_READ,		AARCH64_NO_FEATURES)
+  SYSREG ("id_aa64isar3_el1",	CPENC (3,0,0,6,3),	F_REG_READ,		AARCH64_NO_FEATURES)
   SYSREG ("id_aa64mmfr0_el1",	CPENC (3,0,0,7,0),	F_REG_READ,		AARCH64_NO_FEATURES)
   SYSREG ("id_aa64mmfr1_el1",	CPENC (3,0,0,7,1),	F_REG_READ,		AARCH64_NO_FEATURES)
   SYSREG ("id_aa64mmfr2_el1",	CPENC (3,0,0,7,2),	F_REG_READ,		AARCH64_NO_FEATURES)


More information about the Binutils-cvs mailing list