aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2012-04-27 20:43:35 +0000
committerDavid S. Miller <davem@redhat.com>2012-04-27 20:43:35 +0000
commit2e52845baf0090fef75f46b7619935f166ad063d (patch)
tree4c5d31dd1bb967faff1c0df56ca3168ec84cc2cb /gas
parent22d2b532b8f2de5bd20d70b89a06894a5b9f97b1 (diff)
downloadgdb-2e52845baf0090fef75f46b7619935f166ad063d.zip
gdb-2e52845baf0090fef75f46b7619935f166ad063d.tar.gz
gdb-2e52845baf0090fef75f46b7619935f166ad063d.tar.bz2
Add support for sparc %cfr ASR register.
opcodes/ * sparc-dis.c (v9a_asr_reg_names): Add 'cfr'. * sparc-opc.c (sparc_opcodes): Add rd/wr cases for %cfr. gas/ * config/tc-sparc.c (v9a_asr_table): Add 'cfr'. gas/testsuite/ * gas/sparc/sparc.exp: Run cfr test. * gas/sparc/cfr.s: New testcase. * gas/sparc/cfr.d: Likewise.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog2
-rw-r--r--gas/config/tc-sparc.c1
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/sparc/cfr.d15
-rw-r--r--gas/testsuite/gas/sparc/cfr.s8
-rw-r--r--gas/testsuite/gas/sparc/sparc.exp1
6 files changed, 31 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ba54046..c81a39e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,7 @@
2012-04-27 David S. Miller <davem@davemloft.net>
+ * config/tc-sparc.c (v9a_asr_table): Add 'cfr'.
+
* config/tc-sparc.c (sparc_arch_table): Add HWCAP_PAUSE to sparc4,
v8pluse, v8plusv, v9e, and v9v.
(v9a_asr_table): Add 'pause'.
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index e8de372..fe7f8b0 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -805,6 +805,7 @@ struct priv_reg_entry v9a_asr_table[] =
{"gsr", 19},
{"dcr", 18},
{"cps", 28},
+ {"cfr", 26},
{"clear_softint", 21},
{"", -1}, /* End marker. */
};
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 111476f..76f3dc1 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2012-04-27 David S. Miller <davem@davemloft.net>
+ * gas/sparc/sparc.exp: Run cfr test.
+ * gas/sparc/cfr.s: New testcase.
+ * gas/sparc/cfr.d: Likewise.
+
* gas/sparc/sparc.exp: Run pause test.
* gas/sparc/pause.s: New testcase.
* gas/sparc/pause.d: Likewise.
diff --git a/gas/testsuite/gas/sparc/cfr.d b/gas/testsuite/gas/sparc/cfr.d
new file mode 100644
index 0000000..7451250
--- /dev/null
+++ b/gas/testsuite/gas/sparc/cfr.d
@@ -0,0 +1,15 @@
+#as: -Av9v
+#objdump: -dr
+#name: sparc CFR
+
+.*: +file format .*sparc.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+ 0: b5 82 40 16 wr %o1, %l6, %cfr
+ 4: b5 80 62 34 wr %g1, 0x234, %cfr
+ 8: 8b 46 80 00 rd %cfr, %g5
+ c: 97 46 80 00 rd %cfr, %o3
+ 10: b5 46 80 00 rd %cfr, %i2
+ 14: a9 46 80 00 rd %cfr, %l4
diff --git a/gas/testsuite/gas/sparc/cfr.s b/gas/testsuite/gas/sparc/cfr.s
new file mode 100644
index 0000000..0575410
--- /dev/null
+++ b/gas/testsuite/gas/sparc/cfr.s
@@ -0,0 +1,8 @@
+# Test read/write %cfr instructions
+ .text
+ wr %o1, %l6, %cfr
+ wr %g1, 0x234, %cfr
+ rd %cfr, %g5
+ rd %cfr, %o3
+ rd %cfr, %i2
+ rd %cfr, %l4
diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp
index 21a84a7..6ffad39 100644
--- a/gas/testsuite/gas/sparc/sparc.exp
+++ b/gas/testsuite/gas/sparc/sparc.exp
@@ -65,6 +65,7 @@ if [istarget sparc*-*-*] {
run_dump_test "crypto"
run_dump_test "cbcond"
run_dump_test "pause"
+ run_dump_test "cfr"
run_list_test "pr4587" ""
}