diff options
author | Jose E. Marchesi <jose.marchesi@oracle.com> | 2015-04-30 17:17:20 -0700 |
---|---|---|
committer | Jose E. Marchesi <jose.marchesi@oracle.com> | 2015-05-06 09:26:23 -0700 |
commit | f9911bebcab64889ec7ab3571305081741aa03e4 (patch) | |
tree | e494b7c63418f7dc99cf98735a9e5695f4740e08 /gas | |
parent | 9ac47a43ffc8e3c73867b9953145a8e7a227132d (diff) | |
download | gdb-f9911bebcab64889ec7ab3571305081741aa03e4.zip gdb-f9911bebcab64889ec7ab3571305081741aa03e4.tar.gz gdb-f9911bebcab64889ec7ab3571305081741aa03e4.tar.bz2 |
gas: support for the sparc %ncc condition codes register.
gas/ChangeLog:
2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c (sparc_ip): Support the %ncc "natural"
condition codes
* doc/c-sparc.texi (Sparc-Regs): Document %ncc.
gas/testsuite/ChangeLog:
2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com>
* gas/sparc/natural.s: New file.
* gas/sparc/natural-32.s: Likewise.
* gas/sparc/natural.d: Likewise.
* gas/sparc/natural-32.d: Likewise.
* gas/sparc/sparc.exp (sparc_elf_setup): Run the tests natural and
natural-32.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-sparc.c | 6 | ||||
-rw-r--r-- | gas/doc/c-sparc.texi | 4 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/natural-32.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/natural-32.s | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/natural.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/natural.s | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/sparc/sparc.exp | 2 |
9 files changed, 56 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 09589a6..57b3bf5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com> + + * config/tc-sparc.c (sparc_ip): Support the %ncc "natural" + condition codes + * doc/c-sparc.texi (Sparc-Regs): Document %ncc. + 2015-05-06 Nick Clifton <nickc@redhat.com> * doc/as.texinfo (Dollar Local Labels): Note that these are only diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c index 60bdcc6..3ffe74f 100644 --- a/gas/config/tc-sparc.c +++ b/gas/config/tc-sparc.c @@ -1973,7 +1973,8 @@ sparc_ip (char *str, const struct sparc_opcode **pinsn) { ++s; } - if (strncmp (s, "%icc", 4) == 0) + if ((strncmp (s, "%icc", 4) == 0) + || (sparc_arch_size == 32 && strncmp (s, "%ncc", 4) == 0)) { s += 4; continue; @@ -1985,7 +1986,8 @@ sparc_ip (char *str, const struct sparc_opcode **pinsn) { ++s; } - if (strncmp (s, "%xcc", 4) == 0) + if ((strncmp (s, "%xcc", 4) == 0) + || (sparc_arch_size == 64 && strncmp (s, "%ncc", 4) == 0)) { s += 4; continue; diff --git a/gas/doc/c-sparc.texi b/gas/doc/c-sparc.texi index aedf25c..f482e3a 100644 --- a/gas/doc/c-sparc.texi +++ b/gas/doc/c-sparc.texi @@ -303,6 +303,10 @@ Various V9 branch and conditional move instructions allow specification of which set of integer condition codes to test. These are referred to as @samp{%xcc} and @samp{%icc}. +Additionally, GAS supports the so-called ``natural'' condition codes; +these are referred to as @samp{%ncc} and reference to @samp{%icc} if +the word size is 32, @samp{%xcc} if the word size is 64. + In V9, there are 4 sets of floating point condition codes which are referred to as @samp{%fcc@var{n}}. diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 41604ef..347fbb2 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com> + + + * gas/sparc/natural.s: New file. + * gas/sparc/natural-32.s: Likewise. + * gas/sparc/natural.d: Likewise. + * gas/sparc/natural-32.d: Likewise. + * gas/sparc/sparc.exp (sparc_elf_setup): Run the tests natural and + natural-32. + 2015-05-06 Renlin Li <renlin.li@arm.com> * gas/aarch64/codealign_1.s: New. diff --git a/gas/testsuite/gas/sparc/natural-32.d b/gas/testsuite/gas/sparc/natural-32.d new file mode 100644 index 0000000..039e45e --- /dev/null +++ b/gas/testsuite/gas/sparc/natural-32.d @@ -0,0 +1,10 @@ +#as: -Av9 -32 +#objdump: -dr --prefix-addresses +#name: sparc natural regs and insns + +.*: +file format .* + +Disassembly of section .text: +0x00000000 b %icc, 0x00000008 +0x0+0000004 nop +0x0+0000008 nop diff --git a/gas/testsuite/gas/sparc/natural-32.s b/gas/testsuite/gas/sparc/natural-32.s new file mode 100644 index 0000000..2a51441 --- /dev/null +++ b/gas/testsuite/gas/sparc/natural-32.s @@ -0,0 +1,5 @@ +# Test SPARC "natural" registers and instructions + .text + ba %ncc, 0f + nop +0: nop diff --git a/gas/testsuite/gas/sparc/natural.d b/gas/testsuite/gas/sparc/natural.d new file mode 100644 index 0000000..e29c251 --- /dev/null +++ b/gas/testsuite/gas/sparc/natural.d @@ -0,0 +1,10 @@ +#as: -Av9 -64 +#objdump: -dr --prefix-addresses +#name: sparc natural regs and insns + +.*: +file format .* + +Disassembly of section .text: +0x0+0000000 b %xcc, 0x0+0000008 +0x0+0000004 nop +0x0+0000008 nop diff --git a/gas/testsuite/gas/sparc/natural.s b/gas/testsuite/gas/sparc/natural.s new file mode 100644 index 0000000..2a51441 --- /dev/null +++ b/gas/testsuite/gas/sparc/natural.s @@ -0,0 +1,5 @@ +# Test SPARC "natural" registers and instructions + .text + ba %ncc, 0f + nop +0: nop diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp index 36113f6..874f795 100644 --- a/gas/testsuite/gas/sparc/sparc.exp +++ b/gas/testsuite/gas/sparc/sparc.exp @@ -93,6 +93,8 @@ if [istarget sparc*-*-*] { run_dump_test "mwait" run_dump_test "mcdper" run_dump_test "sparc5vis4" + run_dump_test "natural" + run_dump_test "natural-32" run_list_test "pr4587" "" } |