aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2016-07-13 01:42:28 -0700
committerJose E. Marchesi <jose.marchesi@oracle.com>2016-07-13 16:05:40 +0200
commit6e7ced37e756420742d51abb044c24d0f1929143 (patch)
tree47b4f357fd3f938b6f5534db66d1c24d458fbad5 /gas
parente87324746c45b0f2cd179ba59a80b43a435a9369 (diff)
downloadgdb-6e7ced37e756420742d51abb044c24d0f1929143.zip
gdb-6e7ced37e756420742d51abb044c24d0f1929143.tar.gz
gdb-6e7ced37e756420742d51abb044c24d0f1929143.tar.bz2
opcodes,gas: support for the ldtxa SPARC instructions.
This patch adds support for the LDTXA instructions, along with the corresponding ASIs. Tests for GAS are included. opcodes/ChangeLog: 2016-07-12 Jose E. Marchesi <jose.marchesi@oracle.com> * sparc-opc.c (ldtxa): New macro. (sparc_opcodes): Use the macro defined above to add entries for the LDTXA instructions. (asi_table): Add the ASI_TWINX_* asis used in the LDTXA instruction. gas/ChangeLog: 2016-07-12 Jose E. Marchesi <jose.marchesi@oracle.com> * testsuite/gas/sparc/ldtxa.s: New file. * testsuite/gas/sparc/ldtxa.d: Likewise. * testsuite/gas/sparc/sparc.exp: Execute the ldtxa test.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/sparc/ldtxa.d33
-rw-r--r--gas/testsuite/gas/sparc/ldtxa.s26
-rw-r--r--gas/testsuite/gas/sparc/sparc.exp1
4 files changed, 66 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index da04199..991bb8d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-12 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * testsuite/gas/sparc/ldtxa.s: New file.
+ * testsuite/gas/sparc/ldtxa.d: Likewise.
+ * testsuite/gas/sparc/sparc.exp: Execute the ldtxa test.
+
2016-07-11 Claudiu Zissulescu <claziss@synopsys.com>
* config/tc-arc.c (arc_reloc_op_tag): Allow complex ops for dtpoff.
diff --git a/gas/testsuite/gas/sparc/ldtxa.d b/gas/testsuite/gas/sparc/ldtxa.d
new file mode 100644
index 0000000..5aba1e7
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ldtxa.d
@@ -0,0 +1,33 @@
+#as: -Av9c
+#objdump: -dr
+#name: sparc LDTXA
+
+.*: +file format .*sparc.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+ 0: d4 98 c4 40 ldtxa \[ %g3 \] #ASI_TWINX_AIUP, %o2
+ 4: d4 98 c4 42 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_AIUP, %o2
+ 8: d4 98 c4 60 ldtxa \[ %g3 \] #ASI_BLK_INIT_QUAD_LDD_AIUS, %o2
+ c: d4 98 c4 62 ldtxa \[ %g3 \+ %g2 \] #ASI_BLK_INIT_QUAD_LDD_AIUS, %o2
+ 10: d4 98 c4 c0 ldtxa \[ %g3 \] #ASI_QUAD_LDD_PHYS_4V, %o2
+ 14: d4 98 c4 c2 ldtxa \[ %g3 \+ %g2 \] #ASI_QUAD_LDD_PHYS_4V, %o2
+ 18: d4 98 c4 e0 ldtxa \[ %g3 \] #ASI_TWINX_N, %o2
+ 1c: d4 98 c4 e2 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_N, %o2
+ 20: d4 98 c5 40 ldtxa \[ %g3 \] #ASI_TWINX_AIUP_L, %o2
+ 24: d4 98 c5 42 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_AIUP_L, %o2
+ 28: d4 98 c5 60 ldtxa \[ %g3 \] #ASI_TWINX_AIUS_L, %o2
+ 2c: d4 98 c5 62 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_AIUS_L, %o2
+ 30: d4 98 c5 c0 ldtxa \[ %g3 \] #ASI_TWINX_REAL_L, %o2
+ 34: d4 98 c5 c2 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_REAL_L, %o2
+ 38: d4 98 c5 e0 ldtxa \[ %g3 \] #ASI_TWINX_NL, %o2
+ 3c: d4 98 c5 e2 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_NL, %o2
+ 40: d4 98 dc 40 ldtxa \[ %g3 \] #ASI_BLK_INIT_QUAD_LDD_P, %o2
+ 44: d4 98 dc 42 ldtxa \[ %g3 \+ %g2 \] #ASI_BLK_INIT_QUAD_LDD_P, %o2
+ 48: d4 98 dc 60 ldtxa \[ %g3 \] #ASI_TWINX_S, %o2
+ 4c: d4 98 dc 62 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_S, %o2
+ 50: d4 98 dd 40 ldtxa \[ %g3 \] #ASI_TWINX_PL, %o2
+ 54: d4 98 dd 42 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_PL, %o2
+ 58: d4 98 dd 60 ldtxa \[ %g3 \] #ASI_TWINX_SL, %o2
+ 5c: d4 98 dd 62 ldtxa \[ %g3 \+ %g2 \] #ASI_TWINX_SL, %o2 \ No newline at end of file
diff --git a/gas/testsuite/gas/sparc/ldtxa.s b/gas/testsuite/gas/sparc/ldtxa.s
new file mode 100644
index 0000000..10072dd
--- /dev/null
+++ b/gas/testsuite/gas/sparc/ldtxa.s
@@ -0,0 +1,26 @@
+# Test ldtxa
+ .text
+ ldtxa [%g3] #ASI_TWINX_AIUP, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_AIUP, %o2
+ ldtxa [%g3] #ASI_TWINX_AIUS, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_AIUS, %o2
+ ldtxa [%g3] #ASI_TWINX_REAL, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_REAL, %o2
+ ldtxa [%g3] #ASI_TWINX_N, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_N, %o2
+ ldtxa [%g3] #ASI_TWINX_AIUP_L, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_AIUP_L, %o2
+ ldtxa [%g3] #ASI_TWINX_AIUS_L, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_AIUS_L, %o2
+ ldtxa [%g3] #ASI_TWINX_REAL_L, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_REAL_L, %o2
+ ldtxa [%g3] #ASI_TWINX_NL, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_NL, %o2
+ ldtxa [%g3] #ASI_TWINX_P, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_P, %o2
+ ldtxa [%g3] #ASI_TWINX_S, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_S, %o2
+ ldtxa [%g3] #ASI_TWINX_PL, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_PL, %o2
+ ldtxa [%g3] #ASI_TWINX_SL, %o2
+ ldtxa [%g3+%g2] #ASI_TWINX_SL, %o2
diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp
index 0a6a494..f0a129d 100644
--- a/gas/testsuite/gas/sparc/sparc.exp
+++ b/gas/testsuite/gas/sparc/sparc.exp
@@ -86,6 +86,7 @@ if [istarget sparc*-*-*] {
run_dump_test "pause"
run_dump_test "cfr"
run_dump_test "ldtw_sttw"
+ run_dump_test "ldtxa"
run_dump_test "ldd_std"
run_dump_test "ldx_stx"
run_dump_test "ldx_efsr"