public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH,SPARC] Support for the sparc %pmcdper privileged register.
@ 2015-08-19 16:03 Jose E. Marchesi
  2015-08-25 14:45 ` Nick Clifton
  0 siblings, 1 reply; 3+ messages in thread
From: Jose E. Marchesi @ 2015-08-19 16:03 UTC (permalink / raw)
  To: binutils


Hi.  This patch adds support for the %pmcdper privileged register
introduced in the OSA2015 architecture, and implemented in the incoming
M7 processor.

Tested in sparc64-unknown-linux-gnu and sparc-unknown-linux-gnu.
Ok to commit?

opcodes/ChangeLog:

2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* sparc-dis.c (print_insn_sparc): Handle the privileged register
	%pmcdper.

gas/ChangeLog:

2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* config/tc-sparc.c (priv_reg_table): New privileged register
	%pmcdper.

gas/testsuite/ChangeLog:

2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* gas/sparc/wrpr.s: Test writing to the privileged %pmcdper
	register.
	* gas/sparc/wrpr.d: ...and the expected result.
	* gas/sparc/rdpr.s: Test reading from the privileged %pmcdper
	register.
	* gas/sparc/rdpr.d: ...and the expected result.

---
 gas/ChangeLog                  | 5 +++++
 gas/config/tc-sparc.c          | 1 +
 gas/testsuite/ChangeLog        | 9 +++++++++
 gas/testsuite/gas/sparc/rdpr.d | 1 +
 gas/testsuite/gas/sparc/rdpr.s | 1 +
 gas/testsuite/gas/sparc/wrpr.d | 1 +
 gas/testsuite/gas/sparc/wrpr.s | 1 +
 opcodes/ChangeLog              | 5 +++++
 opcodes/sparc-dis.c            | 8 ++++++--
 9 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index edadfb8..cd39404 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -805,6 +805,7 @@ struct priv_reg_entry priv_reg_table[] =
   {"wstate", 14},
   {"fq", 15},
   {"gl", 16},
+  {"pmcdper", 23},
   {"ver", 31},
   {"", -1},			/* End marker.  */
 };
diff --git a/gas/testsuite/gas/sparc/rdpr.d b/gas/testsuite/gas/sparc/rdpr.d
index 6ddc24a..58ec2ef 100644
--- a/gas/testsuite/gas/sparc/rdpr.d
+++ b/gas/testsuite/gas/sparc/rdpr.d
@@ -25,3 +25,4 @@ Disassembly of section .text:
   3c:	a1 53 c0 00 	rdpr  %fq, %l0
   40:	a3 54 00 00 	rdpr  %gl, %l1
   44:	a5 57 c0 00 	rdpr  %ver, %l2
+  48:	a7 55 c0 00 	rdpr  %pmcdper, %l3
diff --git a/gas/testsuite/gas/sparc/rdpr.s b/gas/testsuite/gas/sparc/rdpr.s
index 1566035..0bf3db8 100644
--- a/gas/testsuite/gas/sparc/rdpr.s
+++ b/gas/testsuite/gas/sparc/rdpr.s
@@ -18,3 +18,4 @@
 	rdpr %fq,%l0
 	rdpr %gl,%l1
 	rdpr %ver,%l2
+	rdpr %pmcdper,%l3
diff --git a/gas/testsuite/gas/sparc/wrpr.d b/gas/testsuite/gas/sparc/wrpr.d
index d0c1b35..5a9b6f9 100644
--- a/gas/testsuite/gas/sparc/wrpr.d
+++ b/gas/testsuite/gas/sparc/wrpr.d
@@ -23,3 +23,4 @@ Disassembly of section .text:
   34:	9b 93 80 00 	wrpr  %sp, %otherwin
   38:	9d 93 c0 00 	wrpr  %o7, %wstate
   3c:	a1 94 00 00 	wrpr  %l0, %gl
+  40:	af 94 c0 00 	wrpr  %l3, %pmcdper
diff --git a/gas/testsuite/gas/sparc/wrpr.s b/gas/testsuite/gas/sparc/wrpr.s
index e32b149..a17182e 100644
--- a/gas/testsuite/gas/sparc/wrpr.s
+++ b/gas/testsuite/gas/sparc/wrpr.s
@@ -16,3 +16,4 @@
 	wrpr %o6,%otherwin
 	wrpr %o7,%wstate
 	wrpr %l0,%gl
+	wrpr %l3,%pmcdper
diff --git a/opcodes/sparc-dis.c b/opcodes/sparc-dis.c
index 5247526..a2e77f0 100644
--- a/opcodes/sparc-dis.c
+++ b/opcodes/sparc-dis.c
@@ -86,7 +86,7 @@ static char *v9_priv_reg_names[] =
   "tpc", "tnpc", "tstate", "tt", "tick", "tba", "pstate", "tl",
   "pil", "cwp", "cansave", "canrestore", "cleanwin", "otherwin",
   "wstate", "fq", "gl"
-  /* "ver" - special cased */
+  /* "ver" and "pmcdper" - special cased */
 };
 
 /* These are ordered according to there register number in
@@ -813,6 +813,8 @@ print_insn_sparc (bfd_vma memaddr, disassemble_info *info)
 		  case '?':
 		    if (X_RS1 (insn) == 31)
 		      (*info->fprintf_func) (stream, "%%ver");
+		    else if (X_RS1 (insn) == 23)
+		      (*info->fprintf_func) (stream, "%%pmcdper");
 		    else if ((unsigned) X_RS1 (insn) < 17)
 		      (*info->fprintf_func) (stream, "%%%s",
 					     v9_priv_reg_names[X_RS1 (insn)]);
@@ -821,7 +823,9 @@ print_insn_sparc (bfd_vma memaddr, disassemble_info *info)
 		    break;
 
 		  case '!':
-		    if ((unsigned) X_RD (insn) < 17)
+		    if (X_RD (insn) == 23)
+		      (*info->fprintf_func) (stream, "%%pmcdper");
+		    else if ((unsigned) X_RD (insn) < 17)
 		      (*info->fprintf_func) (stream, "%%%s",
 					     v9_priv_reg_names[X_RD (insn)]);
 		    else
-- 
2.3.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH,SPARC] Support for the sparc %pmcdper privileged register.
  2015-08-19 16:03 [PATCH,SPARC] Support for the sparc %pmcdper privileged register Jose E. Marchesi
@ 2015-08-25 14:45 ` Nick Clifton
  2015-08-25 15:11   ` Jose E. Marchesi
  0 siblings, 1 reply; 3+ messages in thread
From: Nick Clifton @ 2015-08-25 14:45 UTC (permalink / raw)
  To: Jose E. Marchesi, binutils

Hi Jose,

> opcodes/ChangeLog:
>
> 2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
>
> 	* sparc-dis.c (print_insn_sparc): Handle the privileged register
> 	%pmcdper.
>
> gas/ChangeLog:
>
> 2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
>
> 	* config/tc-sparc.c (priv_reg_table): New privileged register
> 	%pmcdper.
>
> gas/testsuite/ChangeLog:
>
> 2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
>
> 	* gas/sparc/wrpr.s: Test writing to the privileged %pmcdper
> 	register.
> 	* gas/sparc/wrpr.d: ...and the expected result.
> 	* gas/sparc/rdpr.s: Test reading from the privileged %pmcdper
> 	register.
> 	* gas/sparc/rdpr.d: ...and the expected result.

Approved - please apply.

Cheers
   Nick

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH,SPARC] Support for the sparc %pmcdper privileged register.
  2015-08-25 14:45 ` Nick Clifton
@ 2015-08-25 15:11   ` Jose E. Marchesi
  0 siblings, 0 replies; 3+ messages in thread
From: Jose E. Marchesi @ 2015-08-25 15:11 UTC (permalink / raw)
  To: Nick Clifton; +Cc: binutils

    
    > opcodes/ChangeLog:
    >
    > 2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
    >
    > 	* sparc-dis.c (print_insn_sparc): Handle the privileged register
    > 	%pmcdper.
    >
    > gas/ChangeLog:
    >
    > 2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
    >
    > 	* config/tc-sparc.c (priv_reg_table): New privileged register
    > 	%pmcdper.
    >
    > gas/testsuite/ChangeLog:
    >
    > 2015-08-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
    >
    > 	* gas/sparc/wrpr.s: Test writing to the privileged %pmcdper
    > 	register.
    > 	* gas/sparc/wrpr.d: ...and the expected result.
    > 	* gas/sparc/rdpr.s: Test reading from the privileged %pmcdper
    > 	register.
    > 	* gas/sparc/rdpr.d: ...and the expected result.
    
    Approved - please apply.
    
Applied.  Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-08-25 15:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-19 16:03 [PATCH,SPARC] Support for the sparc %pmcdper privileged register Jose E. Marchesi
2015-08-25 14:45 ` Nick Clifton
2015-08-25 15:11   ` Jose E. Marchesi

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).