From ec92c392f7d6b4f43d6191a0d3fa1cd47db9f738 Mon Sep 17 00:00:00 2001 From: "Jose E. Marchesi" Date: Wed, 19 Mar 2014 16:43:41 +0000 Subject: [PATCH] This patch adds support for the hyperprivileged registers %hstick_offset and %hstick_enable to the Sparc assembler. * config/tc-sparc.c (hpriv_reg_table): Added entries for %hstick_offset and %hstick_enable. * doc/c-sparc.texi (Sparc-Regs): Document the %hstick_offset and %hstick_enable hyperprivileged registers. * sparc-dis.c (v9_hpriv_reg_names): Names for %hstick_offset and %hstick_enable added. * gas/sparc/rdhpr.s: Test rd %hstick_offset and %hstick_enable. * gas/sparc/rdhpr.d: Likewise. * gas/sparc/wrhpr.s: Test wr %hstick_offset and %hstick_enable. * gas/sparc/wrhpr.d: Likewise. --- gas/ChangeLog | 7 +++++++ gas/config/tc-sparc.c | 2 ++ gas/doc/c-sparc.texi | 12 ++++++++++-- gas/testsuite/ChangeLog | 6 ++++++ gas/testsuite/gas/sparc/rdhpr.d | 4 +++- gas/testsuite/gas/sparc/rdhpr.s | 4 +++- gas/testsuite/gas/sparc/wrhpr.d | 4 +++- gas/testsuite/gas/sparc/wrhpr.s | 4 +++- opcodes/ChangeLog | 5 +++++ opcodes/sparc-dis.c | 2 +- 10 files changed, 43 insertions(+), 7 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 51032d885eb..f2329163241 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2014-03-19 Jose E. Marchesi + + * config/tc-sparc.c (hpriv_reg_table): Added entries for + %hstick_offset and %hstick_enable. + * doc/c-sparc.texi (Sparc-Regs): Document the %hstick_offset and + %hstick_enable hyperprivileged registers. + 2014-03-19 Daniel Gutson Nick Clifton diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c index b1e4dec72ee..fdc2f0386d3 100644 --- a/gas/config/tc-sparc.c +++ b/gas/config/tc-sparc.c @@ -787,6 +787,8 @@ struct priv_reg_entry hpriv_reg_table[] = {"hintp", 3}, {"htba", 5}, {"hver", 6}, + {"hstick_offset", 28}, + {"hstick_enable", 29}, {"hstick_cmpr", 31}, {"", -1}, /* End marker. */ }; diff --git a/gas/doc/c-sparc.texi b/gas/doc/c-sparc.texi index 12eb6ed838d..8915528f17f 100644 --- a/gas/doc/c-sparc.texi +++ b/gas/doc/c-sparc.texi @@ -406,10 +406,18 @@ The hyperprivileged trap base address register is referred to as The hyperprivileged implementation version register is referred to as @samp{%hver}. +@item +The hyperprivileged system tick offset register is referred to as +@samp{%hstick_offset}. Note that there is no @samp{%hstick} register, +the normal @samp{%stick} is used. + +@item +The hyperprivileged system tick enable register is referred to as +@samp{%hstick_enable}. + @item The hyperprivileged system tick compare register is referred -to as @samp{%hstick_cmpr}. Note that there is no @samp{%hstick} -register, the normal @samp{%stick} is used. +to as @samp{%hstick_cmpr}. @end itemize @node Sparc-Constants diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 5fc94a3bf86..5e9773a7ed7 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -3,6 +3,12 @@ * gas/sparc/ldd_std.d: Fix objdump invocation in order to get the old opcodes for the ldtw, ldtwa, stw and stwa instructions. + * gas/sparc/rdhpr.s: Test rd %hstick_offset and %hstick_enable. + * gas/sparc/rdhpr.d: Likewise. + + * gas/sparc/wrhpr.s: Test wr %hstick_offset and %hstick_enable. + * gas/sparc/wrhpr.d: Likewise. + 2014-03-19 Daniel Gutson Nick Clifton diff --git a/gas/testsuite/gas/sparc/rdhpr.d b/gas/testsuite/gas/sparc/rdhpr.d index fbbd76dab8e..7a12ad3849b 100644 --- a/gas/testsuite/gas/sparc/rdhpr.d +++ b/gas/testsuite/gas/sparc/rdhpr.d @@ -12,4 +12,6 @@ Disassembly of section .text: 8: 87 48 c0 00 rdhpr %hintp, %g3 c: 89 49 40 00 rdhpr %htba, %g4 10: 8b 49 80 00 rdhpr %hver, %g5 - 14: 8d 4f c0 00 rdhpr %hstick_cmpr, %g6 + 14: 8d 4f 00 00 rdhpr %hstick_offset, %g6 + 18: 8b 4f 40 00 rdhpr %hstick_enable, %g5 + 1c: 89 4f c0 00 rdhpr %hstick_cmpr, %g4 diff --git a/gas/testsuite/gas/sparc/rdhpr.s b/gas/testsuite/gas/sparc/rdhpr.s index 5e22f07f351..8f669c79239 100644 --- a/gas/testsuite/gas/sparc/rdhpr.s +++ b/gas/testsuite/gas/sparc/rdhpr.s @@ -5,4 +5,6 @@ rdhpr %hintp,%g3 rdhpr %htba,%g4 rdhpr %hver,%g5 - rdhpr %hstick_cmpr,%g6 + rdhpr %hstick_offset,%g6 + rdhpr %hstick_enable,%g5 + rdhpr %hstick_cmpr,%g4 diff --git a/gas/testsuite/gas/sparc/wrhpr.d b/gas/testsuite/gas/sparc/wrhpr.d index a9ec2b6bcd6..67d7de32f1d 100644 --- a/gas/testsuite/gas/sparc/wrhpr.d +++ b/gas/testsuite/gas/sparc/wrhpr.d @@ -11,4 +11,6 @@ Disassembly of section .text: 4: 83 98 80 00 wrhpr %g2, %htstate 8: 87 98 c0 00 wrhpr %g3, %hintp c: 8b 99 00 00 wrhpr %g4, %htba - 10: bf 99 40 00 wrhpr %g5, %hstick_cmpr + 10: b9 99 40 00 wrhpr %g5, %hstick_offset + 14: bb 99 80 00 wrhpr %g6, %hstick_enable + 18: bf 99 c0 00 wrhpr %g7, %hstick_cmpr diff --git a/gas/testsuite/gas/sparc/wrhpr.s b/gas/testsuite/gas/sparc/wrhpr.s index 838bb538ed3..b93733e770b 100644 --- a/gas/testsuite/gas/sparc/wrhpr.s +++ b/gas/testsuite/gas/sparc/wrhpr.s @@ -4,4 +4,6 @@ wrhpr %g2,%htstate wrhpr %g3,%hintp wrhpr %g4,%htba - wrhpr %g5,%hstick_cmpr + wrhpr %g5,%hstick_offset + wrhpr %g6,%hstick_enable + wrhpr %g7,%hstick_cmpr diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 950ff578641..2c4966382a7 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2014-03-19 Jose E. Marchesi + + * sparc-dis.c (v9_hpriv_reg_names): Names for %hstick_offset and + %hstick_enable added. + 2014-03-19 Nick Clifton * rx-decode.opc (bwl): Allow for bogus instructions with a size diff --git a/opcodes/sparc-dis.c b/opcodes/sparc-dis.c index 38b76f7f7e4..db09c442c7a 100644 --- a/opcodes/sparc-dis.c +++ b/opcodes/sparc-dis.c @@ -97,7 +97,7 @@ static char *v9_hpriv_reg_names[] = "resv7", "resv8", "resv9", "resv10", "resv11", "resv12", "resv13", "resv14", "resv15", "resv16", "resv17", "resv18", "resv19", "resv20", "resv21", "resv22", "resv23", "resv24", "resv25", "resv26", "resv27", - "resv28", "resv29", "resv30", "hstick_cmpr" + "hstick_offset", "hstick_enable", "resv30", "hstick_cmpr" }; /* These are ordered according to there register number in -- 2.30.2