gas tests for the sparc instructions ldfsr, stfsr, ldx, ldxa, stx, stxa, ldxfsr,...
authorJose E. Marchesi <jemarch@gnu.org>
Mon, 25 Aug 2014 11:08:31 +0000 (13:08 +0200)
committerJose E. Marchesi <jemarch@gnu.org>
Mon, 25 Aug 2014 11:08:31 +0000 (13:08 +0200)
- V8 instructions:  ldfsr, stfsr
- V9 instructions:  ldx, ldxa, stx, stxa, ldxfsr, stxfsr
- V9b instructions: ldxefsr

Tested on sparc64-*-linux-gnu.

[gas/testsuite/Changelog]

2014-08-25  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.

gas/testsuite/ChangeLog
gas/testsuite/gas/sparc/ld_st_fsr.d [new file with mode: 0644]
gas/testsuite/gas/sparc/ld_st_fsr.s [new file with mode: 0644]
gas/testsuite/gas/sparc/ldx_efsr.d [new file with mode: 0644]
gas/testsuite/gas/sparc/ldx_efsr.s [new file with mode: 0644]
gas/testsuite/gas/sparc/ldx_stx.d [new file with mode: 0644]
gas/testsuite/gas/sparc/ldx_stx.s [new file with mode: 0644]
gas/testsuite/gas/sparc/sparc.exp

index edba881..bd3f63c 100644 (file)
@@ -1,3 +1,17 @@
+2014-08-25  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.
+
 2014-08-22  Paul Brook  <paul@codesourcery.com>
 
        * gas/arm/arch7a-mp.d: Adjust according to `print_arm_address'
diff --git a/gas/testsuite/gas/sparc/ld_st_fsr.d b/gas/testsuite/gas/sparc/ld_st_fsr.d
new file mode 100644 (file)
index 0000000..565e722
--- /dev/null
@@ -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 (file)
index 0000000..1ad0ac0
--- /dev/null
@@ -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 (file)
index 0000000..63ddcb6
--- /dev/null
@@ -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 (file)
index 0000000..4ce206d
--- /dev/null
@@ -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 (file)
index 0000000..492a633
--- /dev/null
@@ -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 (file)
index 0000000..4e0c724
--- /dev/null
@@ -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]
index 413d2e3..0504b8f 100644 (file)
@@ -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"