diff options
author | David S. Miller <davem@redhat.com> | 2012-04-27 20:43:35 +0000 |
---|---|---|
committer | David S. Miller <davem@redhat.com> | 2012-04-27 20:43:35 +0000 |
commit | 2e52845baf0090fef75f46b7619935f166ad063d (patch) | |
tree | 4c5d31dd1bb967faff1c0df56ca3168ec84cc2cb /gas | |
parent | 22d2b532b8f2de5bd20d70b89a06894a5b9f97b1 (diff) | |
download | ppe42-binutils-2e52845baf0090fef75f46b7619935f166ad063d.tar.gz ppe42-binutils-2e52845baf0090fef75f46b7619935f166ad063d.zip |
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/ChangeLog | 2 | ||||
-rw-r--r-- | gas/config/tc-sparc.c | 1 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/cfr.d | 15 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/cfr.s | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/sparc.exp | 1 |
6 files changed, 31 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index ba540469f3..c81a39e470 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 e8de372279..fe7f8b01cc 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 111476fe3e..76f3dc1ee0 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 0000000000..7451250d38 --- /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 0000000000..0575410652 --- /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 21a84a7660..6ffad3912d 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" "" } |