From 9bf29d72d48ef0ad6966bcb23ab3fdc5cc3c22fa Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 8 Sep 2011 19:01:11 +0000 Subject: opcodes/ The changes below bring 'mov' and 'ticc' instructions into line with the V8 SPARC Architecture Manual. * sparc-opc.c (sparc_opcodes): Add entry for 'ticc imm + regrs1'. * sparc-opc.c (sparc_opcodes): Add alias entries for 'mov regrs2,%asrX'; 'mov regrs2,%y'; 'mov regrs2,%prs'; 'mov regrs2,%wim' and 'mov regrs2,%tbr'. * sparc-opc.c (sparc_opcodes): Move/Change entries for 'mov imm,%asrX'; 'mov imm,%y'; 'mov imm,%prs'; 'mov imm,%wim' and 'mov imm,%tbr'. * sparc-opc.c (sparc_opcodes): Add wr alias entries to match above mov aliases. gas/testsuite/ * gas/sparc/ticc-imm-reg.[sd]: New test. * gas/sparc/v8-movwr-imm.[sd]: New test. * gas/sparc/sparc.exp: Run new tests. --- gas/testsuite/ChangeLog | 4 +++ gas/testsuite/gas/sparc/sparc.exp | 2 ++ gas/testsuite/gas/sparc/ticc-imm-reg.d | 18 +++++++++++++ gas/testsuite/gas/sparc/ticc-imm-reg.s | 12 +++++++++ gas/testsuite/gas/sparc/v8-movwr-imm.d | 49 ++++++++++++++++++++++++++++++++++ gas/testsuite/gas/sparc/v8-movwr-imm.s | 45 +++++++++++++++++++++++++++++++ 6 files changed, 130 insertions(+) create mode 100644 gas/testsuite/gas/sparc/ticc-imm-reg.d create mode 100644 gas/testsuite/gas/sparc/ticc-imm-reg.s create mode 100644 gas/testsuite/gas/sparc/v8-movwr-imm.d create mode 100644 gas/testsuite/gas/sparc/v8-movwr-imm.s (limited to 'gas') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 2df1ce8..90af146 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -3,6 +3,10 @@ * gas/sparc/imm-plus-rreg.[sd]: New test. * gas/sparc/sparc.exp: Run new test. + * gas/sparc/ticc-imm-reg.[sd]: New test. + * gas/sparc/v8-movwr-imm.[sd]: New test. + * gas/sparc/sparc.exp: Run new tests. + 2011-09-08 David S. Miller * gas/sparc/hpcvis3.s: Correct pdistn test. diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp index 335d4b4..f7f8f8f 100644 --- a/gas/testsuite/gas/sparc/sparc.exp +++ b/gas/testsuite/gas/sparc/sparc.exp @@ -51,6 +51,8 @@ if [istarget sparc*-*-*] { run_dump_test "gotop64" } run_dump_test "imm-plus-rreg" + run_dump_test "ticc-imm-reg" + run_dump_test "v8-movwr-imm" run_dump_test "v9branch1" run_dump_test "v9branch2" run_dump_test "v9branch3" diff --git a/gas/testsuite/gas/sparc/ticc-imm-reg.d b/gas/testsuite/gas/sparc/ticc-imm-reg.d new file mode 100644 index 0000000..ae2aca9 --- /dev/null +++ b/gas/testsuite/gas/sparc/ticc-imm-reg.d @@ -0,0 +1,18 @@ +#as: -Av8 +#objdump: -dr +#name: software traps + +.*: +file format .* + +Disassembly of section .text: + +00000000 : + 0: 91 d2 00 00 ta %o0 + 4: 91 d2 00 0a ta %o0 \+ %o2 + 8: 91 d4 20 0a ta %l0 \+ 0xa + c: 91 d4 3f f6 ta %l0 \+ -10 + 10: 91 d4 3f f6 ta %l0 \+ -10 + 14: 91 d4 20 0a ta %l0 \+ 0xa + 18: 91 d0 20 7f ta 0x7f + 1c: 91 d6 20 0a ta %i0 \+ 0xa + 20: 91 d6 3f f6 ta %i0 \+ -10 diff --git a/gas/testsuite/gas/sparc/ticc-imm-reg.s b/gas/testsuite/gas/sparc/ticc-imm-reg.s new file mode 100644 index 0000000..27dcd43 --- /dev/null +++ b/gas/testsuite/gas/sparc/ticc-imm-reg.s @@ -0,0 +1,12 @@ +! Make ticc aliases operate as per V8 SPARC Architecture Manual + .text +foo: + ta %o0 + ta %o0 + %o2 + ta %l0 + 10 + ta %l0 + -10 + ta %l0 - 10 + ta %l0 - -10 + ta 127 + ta 10 + %i0 + ta -10 + %i0 diff --git a/gas/testsuite/gas/sparc/v8-movwr-imm.d b/gas/testsuite/gas/sparc/v8-movwr-imm.d new file mode 100644 index 0000000..961bb68 --- /dev/null +++ b/gas/testsuite/gas/sparc/v8-movwr-imm.d @@ -0,0 +1,49 @@ +#as: -Av8 +#objdump: -dr +#name: V8 mov/wr aliases + +.*: +file format .* + +Disassembly of section .text: + +00000000 : + 0: 83 80 00 10 mov %l0, %asr1 + 4: 81 80 00 10 mov %l0, %y + 8: 81 88 00 10 mov %l0, %psr + c: 81 90 00 10 mov %l0, %wim + 10: 81 98 00 10 mov %l0, %tbr + 14: 83 80 00 00 mov %g0, %asr1 + 18: 81 80 00 00 mov %g0, %y + 1c: 81 88 00 00 mov %g0, %psr + 20: 81 90 00 00 mov %g0, %wim + 24: 81 98 00 00 mov %g0, %tbr + 28: 83 80 20 00 mov %g0, %asr1 + 2c: 81 80 20 00 mov %g0, %y + 30: 81 88 20 00 mov %g0, %psr + 34: 81 90 20 00 mov %g0, %wim + 38: 81 98 20 00 mov %g0, %tbr + 3c: 83 80 3f ff mov -1, %asr1 + 40: 81 80 3f ff mov -1, %y + 44: 81 88 3f ff mov -1, %psr + 48: 81 90 3f ff mov -1, %wim + 4c: 81 98 3f ff mov -1, %tbr + 50: 83 80 00 10 mov %l0, %asr1 + 54: 81 80 00 10 mov %l0, %y + 58: 81 88 00 10 mov %l0, %psr + 5c: 81 90 00 10 mov %l0, %wim + 60: 81 98 00 10 mov %l0, %tbr + 64: 83 80 00 00 mov %g0, %asr1 + 68: 81 80 00 00 mov %g0, %y + 6c: 81 88 00 00 mov %g0, %psr + 70: 81 90 00 00 mov %g0, %wim + 74: 81 98 00 00 mov %g0, %tbr + 78: 83 80 20 00 mov %g0, %asr1 + 7c: 81 80 20 00 mov %g0, %y + 80: 81 88 20 00 mov %g0, %psr + 84: 81 90 20 00 mov %g0, %wim + 88: 81 98 20 00 mov %g0, %tbr + 8c: 83 80 3f ff mov -1, %asr1 + 90: 81 80 3f ff mov -1, %y + 94: 81 88 3f ff mov -1, %psr + 98: 81 90 3f ff mov -1, %wim + 9c: 81 98 3f ff mov -1, %tbr diff --git a/gas/testsuite/gas/sparc/v8-movwr-imm.s b/gas/testsuite/gas/sparc/v8-movwr-imm.s new file mode 100644 index 0000000..26a46bb --- /dev/null +++ b/gas/testsuite/gas/sparc/v8-movwr-imm.s @@ -0,0 +1,45 @@ +! Make 'mov' and 'wr' aliases operate as per V8 SPARC Architecture Manual + .text +foo: + ! wr Aliases + wr %l0,%asr1 + wr %l0,%y + wr %l0,%psr + wr %l0,%wim + wr %l0,%tbr + wr %g0,%asr1 + wr %g0,%y + wr %g0,%psr + wr %g0,%wim + wr %g0,%tbr + wr 0,%asr1 + wr 0,%y + wr 0,%psr + wr 0,%wim + wr 0,%tbr + wr -1,%asr1 + wr -1,%y + wr -1,%psr + wr -1,%wim + wr -1,%tbr + ! mov Aliases + mov %l0,%asr1 + mov %l0,%y + mov %l0,%psr + mov %l0,%wim + mov %l0,%tbr + mov %g0,%asr1 + mov %g0,%y + mov %g0,%psr + mov %g0,%wim + mov %g0,%tbr + mov 0,%asr1 + mov 0,%y + mov 0,%psr + mov 0,%wim + mov 0,%tbr + mov -1,%asr1 + mov -1,%y + mov -1,%psr + mov -1,%wim + mov -1,%tbr -- cgit v1.1