aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJohn Darrington <john@darrington.wattle.id.au>2018-07-24 13:40:21 +0200
committerJohn Darrington <john@darrington.wattle.id.au>2018-08-18 07:50:57 +0200
commitf41078422a4381d4943f36aa1ef95b1d7c85ee7e (patch)
treefc8c846c8504b62763289f2df7d44b8db6b11824 /gas
parent7ba3ba91a3dbc43f7ff16c4899f7f1cbef056db0 (diff)
downloadgdb-f41078422a4381d4943f36aa1ef95b1d7c85ee7e.zip
gdb-f41078422a4381d4943f36aa1ef95b1d7c85ee7e.tar.gz
gdb-f41078422a4381d4943f36aa1ef95b1d7c85ee7e.tar.bz2
Opcodes: (BRCLR / BRSET) Disassemble reserved codes instead of aborting.
Bit manipulation instructions which are not normally generated by the assembler, should nevertheless be decoded by the disassembler. opcodes/ * s12z-dis.c: BM_RESERVED1 to behave like BM_OPR_REG, and BM_RESERVED0 like BM_REG_IMM.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/s12z/bit-manip-invalid.d19
-rw-r--r--gas/testsuite/gas/s12z/bit-manip-invalid.s11
-rw-r--r--gas/testsuite/gas/s12z/s12z.exp1
4 files changed, 37 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index df36d50..efb834c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2018-07-28 John Darrington <john@darrington.wattle.id.au>
+
+ * testsuite/gas/s12z/bit-manip-invalid.d: New file.
+ * testsuite/gas/s12z/bit-manip-invalid.s: New file.
+ * testsuite/gas/s12z/s12z.exp: Add them.
+
2018-08-14 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/gas/i386/evex-no-scale-64.d: Updated.
diff --git a/gas/testsuite/gas/s12z/bit-manip-invalid.d b/gas/testsuite/gas/s12z/bit-manip-invalid.d
new file mode 100644
index 0000000..0cfcfe4
--- /dev/null
+++ b/gas/testsuite/gas/s12z/bit-manip-invalid.d
@@ -0,0 +1,19 @@
+#objdump: -d
+#name: Test of disassembler behaviour by with invalid bit manipulation instructions
+#source: bit-manip-invalid.s
+
+
+dump.o: file format elf32-s12z
+
+
+Disassembly of section .text:
+
+00000000 <.text>:
+ 0: 01 nop
+ 1: 03 a5 10 04 brset.w 4100, d4, *+6
+ 5: 06
+ 6: 01 nop
+ 7: 01 nop
+ 8: 03 65 12 brset d1, #4, *+18
+ b: 01 nop
+ c: 01 nop
diff --git a/gas/testsuite/gas/s12z/bit-manip-invalid.s b/gas/testsuite/gas/s12z/bit-manip-invalid.s
new file mode 100644
index 0000000..6876ba8
--- /dev/null
+++ b/gas/testsuite/gas/s12z/bit-manip-invalid.s
@@ -0,0 +1,11 @@
+;;; This is really a test of the disassembler rather than
+;;; the assembler.
+ nop
+ DC.L 0x03A51004
+ DC.B 0x06
+ nop
+
+ nop
+ DC.L 0x03651201
+ nop
+
diff --git a/gas/testsuite/gas/s12z/s12z.exp b/gas/testsuite/gas/s12z/s12z.exp
index acd50cf..9d73ca0 100644
--- a/gas/testsuite/gas/s12z/s12z.exp
+++ b/gas/testsuite/gas/s12z/s12z.exp
@@ -113,6 +113,7 @@ run_dump_test ld-immu18
run_dump_test lea-immu18
run_dump_test ext24-ld-xy
run_dump_test st-xy
+run_dump_test bit-manip-invalid
# Symbol related tests
run_dump_test opr-symbol