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.
This commit is contained in:
Jose E. Marchesi 2015-04-30 17:17:20 -07:00
parent 9ac47a43ff
commit f9911bebca
9 changed files with 56 additions and 2 deletions

View File

@ -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

View File

@ -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;

View File

@ -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}}.

View File

@ -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.

View File

@ -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

View File

@ -0,0 +1,5 @@
# Test SPARC "natural" registers and instructions
.text
ba %ncc, 0f
nop
0: nop

View File

@ -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

View File

@ -0,0 +1,5 @@
# Test SPARC "natural" registers and instructions
.text
ba %ncc, 0f
nop
0: nop

View File

@ -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" ""
}