[PATCH] [SPARC] gas tests for ldx/stx/ldxa/stxa/ldxfsr/stxfsr/ldxefsr/ldfsr/stfsr

Jose E. Marchesi jose.marchesi@oracle.com
Thu Jul 24 13:05:00 GMT 2014


Hi.  This little patch adds some simple gas tests for the following
sparc instructions:

- V8 instructions:  ldfsr, stfsr
- V9 instructions:  ldx, ldxa, stx, stxa, ldxfsr, stxfsr
- V9b instructions: ldxefsr

Tested on sparc64-*-linux-gnu.

[gas/testsuite/Changelog]

2014-07-24  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* gas/sparc/ldx_stx.s: New file.
	* gas/sparc/ldx_stx.d: Likewise.

	* gas/sparc/ldx_efsr.s: New file.
	* gas/sparc/ldx_efsr.d: Likewise.

	* gas/sparc/ld_st_fsr.s: New file.
	* gas/sparc/ld_st_fsr.d: Likewise.

	* gas/sparc/sparc.exp: Run the tests ldx_stx, ldx_efsr and
	ld_st_fsr.

diff --git a/gas/testsuite/gas/sparc/ld_st_fsr.d b/gas/testsuite/gas/sparc/ld_st_fsr.d
new file mode 100644
index 0000000..565e722
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ld_st_fsr.d
@@ -0,0 +1,11 @@
+#as: -Av8
+#objdump: -dr -m sparc
+#name: sparc LDFSR/STFSR
+
+.*: +file format .*sparc.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	c1 08 c0 00 	ld  \[ %g3 \], %fsr
+   4:	c1 28 c0 00 	st  %fsr, \[ %g3 \]
diff --git a/gas/testsuite/gas/sparc/ld_st_fsr.s b/gas/testsuite/gas/sparc/ld_st_fsr.s
new file mode 100644
index 0000000..1ad0ac0
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ld_st_fsr.s
@@ -0,0 +1,4 @@
+# Test ldfsr/stfsr
+	.text
+	ld	[%g3], %fsr
+	st	%fsr, [%g3]
diff --git a/gas/testsuite/gas/sparc/ldx_efsr.d b/gas/testsuite/gas/sparc/ldx_efsr.d
new file mode 100644
index 0000000..63ddcb6
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ldx_efsr.d
@@ -0,0 +1,10 @@
+#as: -Av9b
+#objdump: -dr -m sparc:v9b
+#name: sparc LDXEFSR
+
+.*: +file format .*sparc.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	c7 08 c0 00 	ldx  \[ %g3 \], %efsr
diff --git a/gas/testsuite/gas/sparc/ldx_efsr.s b/gas/testsuite/gas/sparc/ldx_efsr.s
new file mode 100644
index 0000000..4ce206d
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ldx_efsr.s
@@ -0,0 +1,3 @@
+# Test ldxefsr
+	.text
+	ldx	[%g3], %efsr
diff --git a/gas/testsuite/gas/sparc/ldx_stx.d b/gas/testsuite/gas/sparc/ldx_stx.d
new file mode 100644
index 0000000..492a633
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ldx_stx.d
@@ -0,0 +1,15 @@
+#as: -Av9
+#objdump: -dr -m sparc:v9
+#name: sparc LDX/STX
+
+.*: +file format .*sparc.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:	d0 58 c0 00 	ldx  \[ %g3 \], %o0
+   4:	d4 d8 c0 80 	ldxa  \[ %g3 \] #ASI_N, %o2
+   8:	c3 08 c0 00 	ldx  \[ %g3 \], %fsr
+   c:	d0 70 c0 00 	stx  %o0, \[ %g3 \]
+  10:	d4 f0 c0 80 	stxa  %o2, \[ %g3 \] #ASI_N
+  14:	c3 28 c0 00 	stx  %fsr, \[ %g3 \]
diff --git a/gas/testsuite/gas/sparc/ldx_stx.s b/gas/testsuite/gas/sparc/ldx_stx.s
new file mode 100644
index 0000000..4e0c724
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ldx_stx.s
@@ -0,0 +1,8 @@
+# Test ldx/ldxa/stx/stxa
+	.text
+	ldx	[%g3], %o0
+	ldxa	[%g3] 0x04, %o2
+	ldx	[%g3], %fsr
+	stx	%o0, [%g3]
+	stxa	%o2, [%g3] 0x04
+	stx	%fsr, [%g3]
diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp
index 413d2e3..0504b8f 100644
--- a/gas/testsuite/gas/sparc/sparc.exp
+++ b/gas/testsuite/gas/sparc/sparc.exp
@@ -84,6 +84,9 @@ if [istarget sparc*-*-*] {
     run_dump_test "cfr"
     run_dump_test "ldtw_sttw"
     run_dump_test "ldd_std"
+    run_dump_test "ldx_stx"
+    run_dump_test "ldx_efsr"
+    run_dump_test "ld_st_fsr"
     run_dump_test "edge"
     run_dump_test "flush"
 



More information about the Binutils mailing list