* gas/m68k/operands.s, gas/m68k/operands.d: New test.
authorIan Lance Taylor <ian@airs.com>
Tue, 8 Aug 1995 02:43:30 +0000 (02:43 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 8 Aug 1995 02:43:30 +0000 (02:43 +0000)
* gas/m68k/op68000.d: New test.
* gas/m68k/cas.s, gas/m68k/cas.d: New test.
* gas/m68k/bitfield.s, gas/m68k/bitfield.d: New test.
* gas/m68k/schwab.d: Run objdump with -j .text.  Adjust for
changes to disassembler.
* gas/m68k/all.exp: Run new tests.  Run schwab test for
m68k-*-coff*.

gas/testsuite/ChangeLog
gas/testsuite/gas/m68k/.Sanitize
gas/testsuite/gas/m68k/all.exp [new file with mode: 0644]
gas/testsuite/gas/m68k/bitfield.d [new file with mode: 0644]
gas/testsuite/gas/m68k/bitfield.s [new file with mode: 0644]
gas/testsuite/gas/m68k/cas.d [new file with mode: 0644]
gas/testsuite/gas/m68k/cas.s [new file with mode: 0644]
gas/testsuite/gas/m68k/op68000.d [new file with mode: 0644]
gas/testsuite/gas/m68k/operands.d [new file with mode: 0644]
gas/testsuite/gas/m68k/operands.s [new file with mode: 0644]
gas/testsuite/gas/m68k/schwab.d

index 0e2428331c828d79c9bcedaaf07ca71102452811..dc43889123a9e29cc1e2f227784c4f7c8b22fbf7 100644 (file)
@@ -1,3 +1,14 @@
+Mon Aug  7 22:39:28 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * gas/m68k/operands.s, gas/m68k/operands.d: New test.
+       * gas/m68k/op68000.d: New test.
+       * gas/m68k/cas.s, gas/m68k/cas.d: New test.
+       * gas/m68k/bitfield.s, gas/m68k/bitfield.d: New test.
+       * gas/m68k/schwab.d: Run objdump with -j .text.  Adjust for
+       changes to disassembler.
+       * gas/m68k/all.exp: Run new tests.  Run schwab test for
+       m68k-*-coff*.
+
 start-sanitize-sh3e
 Mon Aug  7 03:01:32 1995  Jeff Law  (law@snake.cs.utah.edu)
 
index 611d3dbf0ac66fe04956e023280142ba82e8d730..154caa176f116698a71a58ef87ded2fb663f40e7 100644 (file)
@@ -26,7 +26,14 @@ Do-first:
 Things-to-keep:
 
 all.exp
+bitfield.d
+bitfield.s
+cas.d
+cas.s
 disperr.s
+op68000.d
+operands.d
+operands.s
 p2410.s
 p2663.s
 pic1.s
diff --git a/gas/testsuite/gas/m68k/all.exp b/gas/testsuite/gas/m68k/all.exp
new file mode 100644 (file)
index 0000000..9b38aff
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Some generic m68k tests
+#
+if [istarget m68*-*-*] then {
+    gas_test "t2.s" "" "" "cross-section branch"
+
+    gas_test "pic1.s" "" "" "PIC generation"
+
+    gas_test "disperr.s" "" "" "Incorrect Displacement too long error"
+
+    gas_test_error "p2410.s" "" "out-of-range 'bras'"
+
+    if [expr [istarget m68*-*-hpux] || [istarget m68*-*-sun*] \
+               || [istarget m68*-*-*aout*] \
+               || [istarget m68*-*-coff*] \
+               || [istarget m68*-*-vxworks5.1] \
+               ] then {
+       run_dump_test "schwab"
+    }
+
+    run_dump_test operands
+    run_dump_test cas
+    run_dump_test bitfield
+
+    set testname "68000 operands"
+    gas_run "operands.s" "-m68000" "2>err.out"
+    if ![string match "child process exited abnormally" $comp_output] then {
+       send_log "$comp_output\n"
+       verbose "$comp_output" 3
+       fail $testname
+    } else {
+       if [regexp_diff "err.out" "$srcdir$subdir/op68000.d"] then {
+           fail $testname
+       } else {
+           pass $testname
+       }
+    }
+}
+if [info exists errorInfo] then {
+    unset errorInfo
+    }
diff --git a/gas/testsuite/gas/m68k/bitfield.d b/gas/testsuite/gas/m68k/bitfield.d
new file mode 100644 (file)
index 0000000..52990e4
--- /dev/null
@@ -0,0 +1,28 @@
+#objdump: -d
+#name: bitfield
+
+# Test handling of bitfield instruction operands.
+
+.*: +file format .*
+
+Disassembly of section .text:
+0+000 <foo> bfexts %a0@,1,2,%d0
+0+004 <foo\+4> bfexts %a0@,1,6,%d0
+0+008 <foo\+8> bfexts %a0@,3,2,%d0
+0+00c <foo\+c> bfexts %a0@,3,6,%d0
+0+010 <foo\+10> bfexts %a0@,1,2,%d0
+0+014 <foo\+14> bfexts %a0@,1,6,%d0
+0+018 <foo\+18> bfexts %a0@,3,2,%d0
+0+01c <foo\+1c> bfexts %a0@,3,6,%d0
+0+020 <foo\+20> bfset %a0@,1,2
+0+024 <foo\+24> bfset %a0@,1,6
+0+028 <foo\+28> bfset %a0@,3,2
+0+02c <foo\+2c> bfset %a0@,3,6
+0+030 <foo\+30> bfset %a0@,1,2
+0+034 <foo\+34> bfset %a0@,1,6
+0+038 <foo\+38> bfset %a0@,3,2
+0+03c <foo\+3c> bfset %a0@,3,6
+0+040 <foo\+40> bfexts %a0@,%d1,%d2,%d0
+0+044 <foo\+44> bfexts %a0@,%d1,%d2,%d0
+0+048 <foo\+48> bfset %a0@,%d1,%d2
+0+04c <foo\+4c> bfset %a0@,%d1,%d2
diff --git a/gas/testsuite/gas/m68k/bitfield.s b/gas/testsuite/gas/m68k/bitfield.s
new file mode 100644 (file)
index 0000000..1f6a01b
--- /dev/null
@@ -0,0 +1,24 @@
+# Test handling of bitfield instruction operands.
+       .text
+       .globl  foo
+foo:   
+       bfexts  (%a0){#1:#2},%d0
+       bfexts  (%a0){#1:#(2+4)},%d0
+       bfexts  (%a0){#(1+2):#2},%d0
+       bfexts  (%a0){#(1+2):#(2+4)},%d0
+       bfexts  %a0@,#1,#2,%d0
+       bfexts  %a0@,#1,#(2+4),%d0
+       bfexts  %a0@,#1+2,#2,%d0
+       bfexts  %a0@,#(1+2),#(2+4),%d0
+       bfset   (%a0){#1:#2}
+       bfset   (%a0){#1:#(2+4)}
+       bfset   (%a0){#(1+2):#2}
+       bfset   (%a0){#(1+2):#(2+4)}
+       bfset   %a0@,#1,#2
+       bfset   %a0@,#1,#(2+4)
+       bfset   %a0@,#1+2,#2
+       bfset   %a0@,#(1+2),#(2+4)
+       bfexts  (%a0){%d1:%d2},%d0
+       bfexts  %a0@,%d1,%d2,%d0
+       bfset   (%a0){%d1:%d2}
+       bfset   %a0@,%d1,%d2
diff --git a/gas/testsuite/gas/m68k/cas.d b/gas/testsuite/gas/m68k/cas.d
new file mode 100644 (file)
index 0000000..f7ef176
--- /dev/null
@@ -0,0 +1,20 @@
+#objdump: -d
+#name: cas
+
+# Test parsing of the operands of the cas instruction
+
+.*: +file format .*
+
+Disassembly of section .text:
+0+000 <foo> casw %d0,%d1,%a0@
+0+004 <foo\+4> casw %d0,%d1,%a0@
+0+008 <foo\+8> cas2w %d0,%d2,%d3,%d4,%a0@,%a1@
+0+00e <foo\+e> cas2w %d0,%d2,%d3,%d4,@\(%d0\),@\(%d1\)
+0+014 <foo\+14> cas2w %d0,%d2,%d3,%d4,%a0@,%a1@
+0+01a <foo\+1a> cas2w %d0,%d2,%d3,%d4,%a0@,%a1@
+0+020 <foo\+20> cas2w %d0,%d2,%d3,%d4,@\(%d0\),@\(%d1\)
+0+026 <foo\+26> cas2w %d0,%d2,%d3,%d4,%a0@,%a1@
+0+02c <foo\+2c> cas2w %d0,%d2,%d3,%d4,@\(%d0\),@\(%d1\)
+0+032 <foo\+32> cas2w %d0,%d2,%d3,%d4,%a0@,%a1@
+0+038 <foo\+38> cas2w %d0,%d2,%d3,%d4,%a0@,%a1@
+0+03e <foo\+3e> cas2w %d0,%d2,%d3,%d4,@\(%d0\),@\(%d1\)
diff --git a/gas/testsuite/gas/m68k/cas.s b/gas/testsuite/gas/m68k/cas.s
new file mode 100644 (file)
index 0000000..f64e7f5
--- /dev/null
@@ -0,0 +1,16 @@
+# Test parsing of the operands of the cas instruction
+       .text
+       .globl  foo
+foo:   
+       cas     %d0,%d1,(%a0)
+       cas     %d0,%d1,%a0@
+       cas2    %d0:%d2,%d3:%d4,(%a0):(%a1)
+       cas2    %d0:%d2,%d3:%d4,(%d0):(%d1)
+       cas2    %d0:%d2,%d3:%d4,%a0@:%a1@
+       cas2    %d0:%d2,%d3:%d4,@(%a0):@(%a1)
+       cas2    %d0:%d2,%d3:%d4,@(%d0):@(%d1)
+       cas2    %d0,%d2,%d3,%d4,(%a0),(%a1)
+       cas2    %d0,%d2,%d3,%d4,(%d0),(%d1)
+       cas2    %d0,%d2,%d3,%d4,%a0@,%a1@
+       cas2    %d0,%d2,%d3,%d4,@(%a0),@(%a1)
+       cas2    %d0,%d2,%d3,%d4,@(%d0),@(%d1)
diff --git a/gas/testsuite/gas/m68k/op68000.d b/gas/testsuite/gas/m68k/op68000.d
new file mode 100644 (file)
index 0000000..0845d2b
--- /dev/null
@@ -0,0 +1,188 @@
+# This should match the stderr output of gas -m68000 on operands.s.
+# We don't bother to match the exact error message, but instead just
+# look for the statements which should fail.
+
+.*operands.s: Assembler messages:
+.*statement `tstl %a0@\(8,%d0:w:2\)' ignored
+.*statement `tstl %a0@\(8,%d0:w:4\)' ignored
+.*statement `tstl %a0@\(8,%d0:w:8\)' ignored
+.*statement `tstl %a0@\(8,%d0:l:2\)' ignored
+.*statement `tstl %a0@\(8,%d0:l:4\)' ignored
+.*statement `tstl %a0@\(8,%d0:l:8\)' ignored
+.*statement `tstl %a0@\(%d0:w:2\)' ignored
+.*statement `tstl \(8,%a0,%d0\*2\)' ignored
+.*statement `tstl \(8,%a0,%d0\*4\)' ignored
+.*statement `tstl \(8,%a0,%d0\*8\)' ignored
+.*statement `tstl \(8,%a0,%d0.w\*2\)' ignored
+.*statement `tstl \(8,%a0,%d0.w\*4\)' ignored
+.*statement `tstl \(8,%a0,%d0.w\*8\)' ignored
+.*statement `tstl \(8,%a0,%d0.l\*2\)' ignored
+.*statement `tstl \(8,%a0,%d0.l\*4\)' ignored
+.*statement `tstl \(8,%a0,%d0.l\*8\)' ignored
+.*statement `tstl \(8,%a1.w\*2,%a0\)' ignored
+.*statement `tstl 8\(%a0,%d0.w\*2\)' ignored
+.*statement `tstl 8\(%d0.w\*2,%a0\)' ignored
+.*statement `tstl 8\(%a1.w\*2,%a0\)' ignored
+.*statement `tstl \(%a0,%d0.w\*2\)' ignored
+.*statement `tstl \(%d0.w\*2,%a0\)' ignored
+.*statement `tstl %a0@\(1000,%d0:w:2\)' ignored
+.*statement `tstl @\(1000,%d0:w:2\)' ignored
+.*statement `tstl @\(%d0:w:2\)' ignored
+.*statement `tstl @\(1000\)' ignored
+.*statement `tstl \(1000,%a0,%d0.w\*2\)' ignored
+.*statement `tstl \(1000,%d0,%a0\)' ignored
+.*statement `tstl \(1000,%a1.w\*2,%a0\)' ignored
+.*statement `tstl 1000\(%a0,%d0.w\*2\)' ignored
+.*statement `tstl 1000\(%d0,%a0\)' ignored
+.*statement `tstl \(1000,%d0.w\*2\)' ignored
+.*statement `tstl 1000\(%d0.w\*2\)' ignored
+.*statement `tstl \(%d0.w\*2\)' ignored
+.*statement `tstl %za1@\(1000,%d0:w:2\)' ignored
+.*statement `tstl %za1@\(100000\)' ignored
+.*statement `tstl \(1000,%za1,%d0.w\*2\)' ignored
+.*statement `tstl \(1000,%d0,%za1\)' ignored
+.*statement `tstl \(1000,%a1.w\*2,%za1\)' ignored
+.*statement `tstl 1000\(%za1,%d0.w\*2\)' ignored
+.*statement `tstl 1000\(%d0,%za1\)' ignored
+.*statement `tstl \(100000,%za1\)' ignored
+.*statement `tstl 100000\(%za1\)' ignored
+.*statement `tstl %a0@\(1000,%zd1:w:2\)' ignored
+.*statement `tstl @\(1000,%zd1:w:2\)' ignored
+.*statement `tstl @\(%zd1:w:2\)' ignored
+.*statement `tstl \(1000,%a0,%zd1.w\*2\)' ignored
+.*statement `tstl \(1000,%zd1,%a0\)' ignored
+.*statement `tstl \(1000,%za1.w\*2,%a0\)' ignored
+.*statement `tstl 1000\(%a0,%zd1.w\*2\)' ignored
+.*statement `tstl 1000\(%zd1,%a0\)' ignored
+.*statement `tstl \(1000,%zd1.w\*2\)' ignored
+.*statement `tstl 1000\(%zd1.w\*2\)' ignored
+.*statement `tstl \(%zd1.w\*2\)' ignored
+.*statement `tstl %a0@\(1000\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl %a0@\(1000\)@\(%d0:w:2\)' ignored
+.*statement `tstl %a0@\(1000\)@\(2000\)' ignored
+.*statement `tstl @\(1000\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl @\(1000\)@\(%d0:w:2\)' ignored
+.*statement `tstl @\(1000\)@\(2000\)' ignored
+.*statement `tstl %a0@\(0\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl %a0@\(0\)@\(%d0:w:2\)' ignored
+.*statement `tstl %a0@\(0\)@\(2000\)' ignored
+.*statement `tstl @\(0\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl @\(0\)@\(%d0:w:2\)' ignored
+.*statement `tstl @\(0\)@\(2000\)' ignored
+.*statement `tstl \(\[1000,%a0\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[1000,%a0\],%d0:w:2\)' ignored
+.*statement `tstl \(\[1000,%a0\],2000\)' ignored
+.*statement `tstl \(\[1000\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[1000\],%d0:w:2\)' ignored
+.*statement `tstl \(\[1000\],2000\)' ignored
+.*statement `tstl \(\[%a0\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[%a0\],%d0:w:2\)' ignored
+.*statement `tstl \(\[%a0\],2000\)' ignored
+.*statement `tstl \(\[0\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[0\],%d0:w:2\)' ignored
+.*statement `tstl \(\[0\],2000\)' ignored
+.*statement `tstl %a0@\(1000,%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl %a0@\(1000,%d0:w:2\)@\(0\)' ignored
+.*statement `tstl @\(1000,%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl @\(1000,%d0:w:2\)@\(0\)' ignored
+.*statement `tstl %a0@\(%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl %a0@\(%d0:w:2\)@\(0\)' ignored
+.*statement `tstl @\(%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl @\(%d0:w:2\)@\(0\)' ignored
+.*statement `tstl \(\[1000,%a0,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0:w:2,%a0\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0,%a0\],2000\)' ignored
+.*statement `tstl \(\[1000,%a1,%a0\],2000\)' ignored
+.*statement `tstl \(\[1000,%a1:w:2,%a0\],2000\)' ignored
+.*statement `tstl \(\[1000,%a0,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[1000,%d0,%a0\]\)' ignored
+.*statement `tstl \(\[1000,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[%a0,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[%d0,%a0\],2000\)' ignored
+.*statement `tstl \(\[%a0,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[%d0,%a0\]\)' ignored
+.*statement `tstl \(\[%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[%d0:w:2\]\)' ignored
+.*statement `tstl %pc@\(8,%d0:w:2\)' ignored
+.*statement `tstl %pc@\(%d0:w:2\)' ignored
+.*statement `tstl \(8,%pc,%d0.w\*2\)' ignored
+.*statement `tstl 8\(%pc,%d0.w\*2\)' ignored
+.*statement `tstl \(%pc,%d0.w\*2\)' ignored
+.*statement `tstl %pc@\(1000,%d0:w:2\)' ignored
+.*statement `tstl \(1000,%pc,%d0.w\*2\)' ignored
+.*statement `tstl \(1000,%d0,%pc\)' ignored
+.*statement `tstl \(1000,%a1.w\*2,%pc\)' ignored
+.*statement `tstl \(1000,%a1,%pc\)' ignored
+.*statement `tstl 1000\(%pc,%d0.w\*2\)' ignored
+.*statement `tstl 1000\(%d0,%pc\)' ignored
+.*statement `tstl 1000\(%a1,%pc\)' ignored
+.*statement `tstl %zpc@\(1000,%d0:w:2\)' ignored
+.*statement `tstl %zpc@\(100000\)' ignored
+.*statement `tstl \(1000,%zpc,%d0.w\*2\)' ignored
+.*statement `tstl \(1000,%d0,%zpc\)' ignored
+.*statement `tstl \(1000,%a1.w\*2,%zpc\)' ignored
+.*statement `tstl \(1000,%a1,%zpc\)' ignored
+.*statement `tstl 1000\(%zpc,%d0.w\*2\)' ignored
+.*statement `tstl 1000\(%d0,%zpc\)' ignored
+.*statement `tstl 1000\(%a1,%zpc\)' ignored
+.*statement `tstl \(100000,%zpc\)' ignored
+.*statement `tstl 100000\(%zpc\)' ignored
+.*statement `tstl %pc@\(1000\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl %pc@\(1000\)@\(%d0:w:2\)' ignored
+.*statement `tstl %pc@\(1000\)@\(2000\)' ignored
+.*statement `tstl %pc@\(0\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl %pc@\(0\)@\(%d0:w:2\)' ignored
+.*statement `tstl %pc@\(0\)@\(2000\)' ignored
+.*statement `tstl \(\[1000,%pc\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[1000,%pc\],%d0:w:2\)' ignored
+.*statement `tstl \(\[1000,%pc\],2000\)' ignored
+.*statement `tstl \(\[%pc\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[%pc\],%d0:w:2\)' ignored
+.*statement `tstl \(\[%pc\],2000\)' ignored
+.*statement `tstl %zpc@\(1000\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl %zpc@\(1000\)@\(%d0:w:2\)' ignored
+.*statement `tstl %zpc@\(1000\)@\(2000\)' ignored
+.*statement `tstl %zpc@\(0\)@\(2000,%d0:w:2\)' ignored
+.*statement `tstl %zpc@\(0\)@\(%d0:w:2\)' ignored
+.*statement `tstl %zpc@\(0\)@\(2000\)' ignored
+.*statement `tstl \(\[1000,%zpc\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[1000,%zpc\],%d0:w:2\)' ignored
+.*statement `tstl \(\[1000,%zpc\],2000\)' ignored
+.*statement `tstl \(\[%zpc\],%d0:w:2,2000\)' ignored
+.*statement `tstl \(\[%zpc\],%d0:w:2\)' ignored
+.*statement `tstl \(\[%zpc\],2000\)' ignored
+.*statement `tstl %pc@\(1000,%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl %pc@\(1000,%d0:w:2\)@\(0\)' ignored
+.*statement `tstl %pc@\(%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl %pc@\(%d0:w:2\)@\(0\)' ignored
+.*statement `tstl \(\[1000,%pc,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0:w:2,%pc\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0,%pc\],2000\)' ignored
+.*statement `tstl \(\[1000,%a1,%pc\],2000\)' ignored
+.*statement `tstl \(\[1000,%pc,%a1\],2000\)' ignored
+.*statement `tstl \(\[1000,%a1:w:2,%pc\],2000\)' ignored
+.*statement `tstl \(\[1000,%pc,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[1000,%d0,%pc\]\)' ignored
+.*statement `tstl \(\[1000,%a1,%pc\]\)' ignored
+.*statement `tstl \(\[%pc,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[%pc,%a0\],2000\)' ignored
+.*statement `tstl \(\[%pc,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[%d0,%pc\]\)' ignored
+.*statement `tstl %zpc@\(1000,%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl %zpc@\(1000,%d0:w:2\)@\(0\)' ignored
+.*statement `tstl %zpc@\(%d0:w:2\)@\(2000\)' ignored
+.*statement `tstl %zpc@\(%d0:w:2\)@\(0\)' ignored
+.*statement `tstl \(\[1000,%zpc,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0:w:2,%zpc\],2000\)' ignored
+.*statement `tstl \(\[1000,%d0,%zpc\],2000\)' ignored
+.*statement `tstl \(\[1000,%a1,%zpc\],2000\)' ignored
+.*statement `tstl \(\[1000,%zpc,%a1\],2000\)' ignored
+.*statement `tstl \(\[1000,%a1:w:2,%zpc\],2000\)' ignored
+.*statement `tstl \(\[1000,%zpc,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[1000,%d0,%zpc\]\)' ignored
+.*statement `tstl \(\[1000,%a1,%zpc\]\)' ignored
+.*statement `tstl \(\[%zpc,%d0:w:2\],2000\)' ignored
+.*statement `tstl \(\[%zpc,%a0\],2000\)' ignored
+.*statement `tstl \(\[%zpc,%d0:w:2\]\)' ignored
+.*statement `tstl \(\[%d0,%zpc\]\)' ignored
diff --git a/gas/testsuite/gas/m68k/operands.d b/gas/testsuite/gas/m68k/operands.d
new file mode 100644 (file)
index 0000000..31a6aec
--- /dev/null
@@ -0,0 +1,242 @@
+#objdump: -d
+#name: operands
+
+# Test handling of MIT and Motorola syntax operands
+# If you change this file, see also op68000.d.
+
+.*: +file format .*
+
+Disassembly of section .text:
+0+000 <foo> tstl %d0
+0+002 <foo\+2> tstl %a0
+0+004 <foo\+4> tstl %a0@
+0+006 <foo\+6> tstl %a0@
+0+008 <foo\+8> tstl %a0@\+
+0+00a <foo\+a> tstl %a0@\+
+0+00c <foo\+c> tstl %a0@-
+0+00e <foo\+e> tstl %a0@-
+0+010 <foo\+10> tstl %a0@\(8\)
+0+014 <foo\+14> tstl %a0@\(8\)
+0+018 <foo\+18> tstl %a0@\(8\)
+0+01c <foo\+1c> tstl %a0@\(0+008,%d0:l\)
+0+020 <foo\+20> tstl %a0@\(0+008,%d0:w\)
+0+024 <foo\+24> tstl %a0@\(0+008,%d0:w\)
+0+028 <foo\+28> tstl %a0@\(0+008,%d0:w:2\)
+0+02c <foo\+2c> tstl %a0@\(0+008,%d0:w:4\)
+0+030 <foo\+30> tstl %a0@\(0+008,%d0:w:8\)
+0+034 <foo\+34> tstl %a0@\(0+008,%d0:l\)
+0+038 <foo\+38> tstl %a0@\(0+008,%d0:l\)
+0+03c <foo\+3c> tstl %a0@\(0+008,%d0:l:2\)
+0+040 <foo\+40> tstl %a0@\(0+008,%d0:l:4\)
+0+044 <foo\+44> tstl %a0@\(0+008,%d0:l:8\)
+0+048 <foo\+48> tstl %a0@\(0+000,%d0:w:2\)
+0+04c <foo\+4c> tstl %a0@\(0+008,%d0:l\)
+0+050 <foo\+50> tstl %a0@\(0+008,%d0:l\)
+0+054 <foo\+54> tstl %a0@\(0+008,%d0:l:2\)
+0+058 <foo\+58> tstl %a0@\(0+008,%d0:l:4\)
+0+05c <foo\+5c> tstl %a0@\(0+008,%d0:l:8\)
+0+060 <foo\+60> tstl %a0@\(0+008,%d0:w\)
+0+064 <foo\+64> tstl %a0@\(0+008,%d0:w\)
+0+068 <foo\+68> tstl %a0@\(0+008,%d0:w:2\)
+0+06c <foo\+6c> tstl %a0@\(0+008,%d0:w:4\)
+0+070 <foo\+70> tstl %a0@\(0+008,%d0:w:8\)
+0+074 <foo\+74> tstl %a0@\(0+008,%d0:l\)
+0+078 <foo\+78> tstl %a0@\(0+008,%d0:l\)
+0+07c <foo\+7c> tstl %a0@\(0+008,%d0:l:2\)
+0+080 <foo\+80> tstl %a0@\(0+008,%d0:l:4\)
+0+084 <foo\+84> tstl %a0@\(0+008,%d0:l:8\)
+0+088 <foo\+88> tstl %a0@\(0+008,%d0:l\)
+0+08c <foo\+8c> tstl %a0@\(0+008,%a1:w:2\)
+0+090 <foo\+90> tstl %a1@\(0+008,%a0:l\)
+0+094 <foo\+94> tstl %a0@\(0+008,%d0:w:2\)
+0+098 <foo\+98> tstl %a0@\(0+008,%d0:w:2\)
+0+09c <foo\+9c> tstl %a0@\(0+008,%a1:w:2\)
+0+0a0 <foo\+a0> tstl %a0@\(0+000,%d0:w:2\)
+0+0a4 <foo\+a4> tstl %a0@\(0+000,%d0:w:2\)
+0+0a8 <foo\+a8> tstl %a0@\(0+3e8,%d0:w:2\)
+0+0ae <foo\+ae> tstl @\(0+3e8,%d0:w:2\)
+0+0b4 <foo\+b4> tstl @\(0+000,%d0:w:2\)
+0+0b8 <foo\+b8> tstl @\(0+3e8\)
+0+0be <foo\+be> tstl %a0@\(0+186a0\)
+0+0c6 <foo\+c6> tstl %a0@\(0+3e8,%d0:w:2\)
+0+0cc <foo\+cc> tstl %a0@\(0+3e8,%d0:l\)
+0+0d2 <foo\+d2> tstl %a0@\(0+3e8,%a1:w:2\)
+0+0d8 <foo\+d8> tstl %a0@\(0+3e8,%d0:w:2\)
+0+0de <foo\+de> tstl %a0@\(0+3e8,%d0:l\)
+0+0e4 <foo\+e4> tstl @\(0+3e8,%d0:w:2\)
+0+0ea <foo\+ea> tstl @\(0+3e8,%d0:w:2\)
+0+0f0 <foo\+f0> tstl @\(0+000,%d0:w:2\)
+0+0f4 <foo\+f4> tstl %a0@\(0+186a0\)
+0+0fc <foo\+fc> tstl %a0@\(0+186a0\)
+0+104 <foo\+104> tstl @\(0+3e8,%d0:w:2\)
+0+10a <foo\+10a> tstl @\(0+186a0\)
+0+112 <foo\+112> tstl @\(0+3e8,%d0:w:2\)
+0+118 <foo\+118> tstl @\(0+3e8,%d0:l\)
+0+11e <foo\+11e> tstl @\(0+3e8,%a1:w:2\)
+0+124 <foo\+124> tstl @\(0+3e8,%d0:w:2\)
+0+12a <foo\+12a> tstl @\(0+3e8,%d0:l\)
+0+130 <foo\+130> tstl @\(0+186a0\)
+0+138 <foo\+138> tstl @\(0+186a0\)
+0+140 <foo\+140> tstl %a0@\(0+3e8\)
+0+146 <foo\+146> tstl @\(0+3e8\)
+0+14c <foo\+14c> tstl @\(0+000\)
+0+150 <foo\+150> tstl %a0@\(0+3e8\)
+0+156 <foo\+156> tstl %a0@\(0+3e8\)
+0+15c <foo\+15c> tstl %a0@\(0+3e8\)
+0+162 <foo\+162> tstl %a0@\(0+3e8\)
+0+168 <foo\+168> tstl %a0@\(0+3e8\)
+0+16e <foo\+16e> tstl @\(0+3e8\)
+0+174 <foo\+174> tstl @\(0+3e8\)
+0+17a <foo\+17a> tstl @\(0+000\)
+0+17e <foo\+17e> tstl %a0@\(0+3e8\)@\(0+7d0,%d0:w:2\)
+0+186 <foo\+186> tstl %a0@\(0+3e8\)@\(0+000,%d0:w:2\)
+0+18c <foo\+18c> tstl %a0@\(0+3e8\)@\(0+7d0\)
+0+194 <foo\+194> tstl @\(0+3e8\)@\(0+7d0,%d0:w:2\)
+0+19c <foo\+19c> tstl @\(0+3e8\)@\(0+000,%d0:w:2\)
+0+1a2 <foo\+1a2> tstl @\(0+3e8\)@\(0+7d0\)
+0+1aa <foo\+1aa> tstl %a0@\(0+000\)@\(0+7d0,%d0:w:2\)
+0+1b0 <foo\+1b0> tstl %a0@\(0+000\)@\(0+000,%d0:w:2\)
+0+1b4 <foo\+1b4> tstl %a0@\(0+000\)@\(0+7d0\)
+0+1ba <foo\+1ba> tstl @\(0+000\)@\(0+7d0,%d0:w:2\)
+0+1c0 <foo\+1c0> tstl @\(0+000\)@\(0+000,%d0:w:2\)
+0+1c4 <foo\+1c4> tstl @\(0+000\)@\(0+7d0\)
+0+1ca <foo\+1ca> tstl %a0@\(0+3e8\)@\(0+7d0,%d0:w:2\)
+0+1d2 <foo\+1d2> tstl %a0@\(0+3e8\)@\(0+000,%d0:w:2\)
+0+1d8 <foo\+1d8> tstl %a0@\(0+3e8\)@\(0+7d0\)
+0+1e0 <foo\+1e0> tstl @\(0+3e8\)@\(0+7d0,%d0:w:2\)
+0+1e8 <foo\+1e8> tstl @\(0+3e8\)@\(0+000,%d0:w:2\)
+0+1ee <foo\+1ee> tstl @\(0+3e8\)@\(0+7d0\)
+0+1f6 <foo\+1f6> tstl %a0@\(0+000\)@\(0+7d0,%d0:w:2\)
+0+1fc <foo\+1fc> tstl %a0@\(0+000\)@\(0+000,%d0:w:2\)
+0+200 <foo\+200> tstl %a0@\(0+000\)@\(0+7d0\)
+0+206 <foo\+206> tstl @\(0+000\)@\(0+7d0,%d0:w:2\)
+0+20c <foo\+20c> tstl @\(0+000\)@\(0+000,%d0:w:2\)
+0+210 <foo\+210> tstl @\(0+000\)@\(0+7d0\)
+0+216 <foo\+216> tstl %a0@\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+21e <foo\+21e> tstl %a0@\(0+3e8,%d0:w:2\)@\(0+000\)
+0+224 <foo\+224> tstl @\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+22c <foo\+22c> tstl @\(0+3e8,%d0:w:2\)@\(0+000\)
+0+232 <foo\+232> tstl %a0@\(0+000,%d0:w:2\)@\(0+7d0\)
+0+238 <foo\+238> tstl %a0@\(0+000,%d0:w:2\)@\(0+000\)
+0+23c <foo\+23c> tstl @\(0+000,%d0:w:2\)@\(0+7d0\)
+0+242 <foo\+242> tstl @\(0+000,%d0:w:2\)@\(0+000\)
+0+246 <foo\+246> tstl %a0@\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+24e <foo\+24e> tstl %a0@\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+256 <foo\+256> tstl %a0@\(0+3e8,%d0:l\)@\(0+7d0\)
+0+25e <foo\+25e> tstl %a1@\(0+3e8,%a0:l\)@\(0+7d0\)
+0+266 <foo\+266> tstl %a0@\(0+3e8,%a1:w:2\)@\(0+7d0\)
+0+26e <foo\+26e> tstl %a0@\(0+3e8,%d0:w:2\)@\(0+000\)
+0+274 <foo\+274> tstl %a0@\(0+3e8,%d0:l\)@\(0+000\)
+0+27a <foo\+27a> tstl @\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+282 <foo\+282> tstl @\(0+3e8,%d0:w:2\)@\(0+000\)
+0+288 <foo\+288> tstl %a0@\(0+000,%d0:w:2\)@\(0+7d0\)
+0+28e <foo\+28e> tstl %a0@\(0+000,%d0:l\)@\(0+7d0\)
+0+294 <foo\+294> tstl %a0@\(0+000,%d0:w:2\)@\(0+000\)
+0+298 <foo\+298> tstl %a0@\(0+000,%d0:l\)@\(0+000\)
+0+29c <foo\+29c> tstl @\(0+000,%d0:w:2\)@\(0+7d0\)
+0+2a2 <foo\+2a2> tstl @\(0+000,%d0:w:2\)@\(0+000\)
+0+2a6 <foo\+2a6> tstl 0+2b0 <foo\+2b0>
+0+2aa <foo\+2aa> tstl 0+2b4 <foo\+2b4>
+0+2ae <foo\+2ae> tstl 0+2b8 <foo\+2b8>
+0+2b2 <foo\+2b2> tstl 0+000 <foo>
+0+2b6 <foo\+2b6> tstl %pc@\(0+2c0 <foo\+2c0>,%d0:w:2\)
+0+2ba <foo\+2ba> tstl %pc@\(0+2bc <foo\+2bc>,%d0:w:2\)
+0+2be <foo\+2be> tstl %pc@\(0+2c8 <foo\+2c8>,%d0:w:2\)
+0+2c2 <foo\+2c2> tstl %pc@\(0+2cc <foo\+2cc>,%d0:l\)
+0+2c6 <foo\+2c6> tstl %pc@\(0+2d0 <foo\+2d0>,%a0:l\)
+0+2ca <foo\+2ca> tstl %pc@\(0+2d4 <foo\+2d4>,%d0:w:2\)
+0+2ce <foo\+2ce> tstl %pc@\(0+2d8 <foo\+2d8>,%d0:l\)
+0+2d2 <foo\+2d2> tstl %pc@\(0+2dc <foo\+2dc>,%a0:l\)
+0+2d6 <foo\+2d6> tstl %pc@\(0+2d8 <foo\+2d8>,%d0:w:2\)
+0+2da <foo\+2da> tstl %pc@\(0+2dc <foo\+2dc>,%d0:l\)
+0+2de <foo\+2de> tstl %pc@\(0+2e0 <foo\+2e0>,%a0:l\)
+0+2e2 <foo\+2e2> tstl %pc@\(0+6cc <.*>,%d0:w:2\)
+0+2e8 <foo\+2e8> tstl %pc@\(0001898a <.*>\)
+0+2f0 <foo\+2f0> tstl %pc@\(0+6da <.*>,%d0:w:2\)
+0+2f6 <foo\+2f6> tstl %pc@\(0+6e0 <.*>,%d0:l\)
+0+2fc <foo\+2fc> tstl %pc@\(0+6e6 <.*>,%a1:w:2\)
+0+302 <foo\+302> tstl %pc@\(0+6ec <.*>,%a1:l\)
+0+308 <foo\+308> tstl %pc@\(0+6f2 <.*>,%d0:w:2\)
+0+30e <foo\+30e> tstl %pc@\(0+6f8 <.*>,%d0:l\)
+0+314 <foo\+314> tstl %pc@\(0+6fe <.*>,%a1:l\)
+0+31a <foo\+31a> tstl %pc@\(000189bc <.*>\)
+0+322 <foo\+322> tstl %pc@\(000189c4 <.*>\)
+0+32a <foo\+32a> tstl %zpc@\(0+3e8,%d0:w:2\)
+0+330 <foo\+330> tstl %zpc@\(0+186a0\)
+0+338 <foo\+338> tstl %zpc@\(0+3e8,%d0:w:2\)
+0+33e <foo\+33e> tstl %zpc@\(0+3e8,%d0:l\)
+0+344 <foo\+344> tstl %zpc@\(0+3e8,%a1:w:2\)
+0+34a <foo\+34a> tstl %zpc@\(0+3e8,%a1:l\)
+0+350 <foo\+350> tstl %zpc@\(0+3e8,%d0:w:2\)
+0+356 <foo\+356> tstl %zpc@\(0+3e8,%d0:l\)
+0+35c <foo\+35c> tstl %zpc@\(0+3e8,%a1:l\)
+0+362 <foo\+362> tstl %zpc@\(0+186a0\)
+0+36a <foo\+36a> tstl %zpc@\(0+186a0\)
+0+372 <foo\+372> tstl %pc@\(0+75c <.*>\)@\(0+7d0,%d0:w:2\)
+0+37a <foo\+37a> tstl %pc@\(0+764 <.*>\)@\(0+000,%d0:w:2\)
+0+380 <foo\+380> tstl %pc@\(0+76a <.*>\)@\(0+7d0\)
+0+388 <foo\+388> tstl %pc@\(0+38a <foo\+38a>\)@\(0+7d0,%d0:w:2\)
+0+38e <foo\+38e> tstl %pc@\(0+390 <foo\+390>\)@\(0+000,%d0:w:2\)
+0+392 <foo\+392> tstl %pc@\(0+394 <foo\+394>\)@\(0+7d0\)
+0+398 <foo\+398> tstl %pc@\(0+782 <.*>\)@\(0+7d0,%d0:w:2\)
+0+3a0 <foo\+3a0> tstl %pc@\(0+78a <.*>\)@\(0+000,%d0:w:2\)
+0+3a6 <foo\+3a6> tstl %pc@\(0+790 <.*>\)@\(0+7d0\)
+0+3ae <foo\+3ae> tstl %pc@\(0+3b0 <foo\+3b0>\)@\(0+7d0,%d0:w:2\)
+0+3b4 <foo\+3b4> tstl %pc@\(0+3b6 <foo\+3b6>\)@\(0+000,%d0:w:2\)
+0+3b8 <foo\+3b8> tstl %pc@\(0+3ba <foo\+3ba>\)@\(0+7d0\)
+0+3be <foo\+3be> tstl %zpc@\(0+3e8\)@\(0+7d0,%d0:w:2\)
+0+3c6 <foo\+3c6> tstl %zpc@\(0+3e8\)@\(0+000,%d0:w:2\)
+0+3cc <foo\+3cc> tstl %zpc@\(0+3e8\)@\(0+7d0\)
+0+3d4 <foo\+3d4> tstl %zpc@\(0+000\)@\(0+7d0,%d0:w:2\)
+0+3da <foo\+3da> tstl %zpc@\(0+000\)@\(0+000,%d0:w:2\)
+0+3de <foo\+3de> tstl %zpc@\(0+000\)@\(0+7d0\)
+0+3e4 <foo\+3e4> tstl %zpc@\(0+3e8\)@\(0+7d0,%d0:w:2\)
+0+3ec <foo\+3ec> tstl %zpc@\(0+3e8\)@\(0+000,%d0:w:2\)
+0+3f2 <foo\+3f2> tstl %zpc@\(0+3e8\)@\(0+7d0\)
+0+3fa <foo\+3fa> tstl %zpc@\(0+000\)@\(0+7d0,%d0:w:2\)
+0+400 <foo\+400> tstl %zpc@\(0+000\)@\(0+000,%d0:w:2\)
+0+404 <foo\+404> tstl %zpc@\(0+000\)@\(0+7d0\)
+0+40a <foo\+40a> tstl %pc@\(0+7f4 <.*>,%d0:w:2\)@\(0+7d0\)
+0+412 <foo\+412> tstl %pc@\(0+7fc <.*>,%d0:w:2\)@\(0+000\)
+0+418 <foo\+418> tstl %pc@\(0+41a <foo\+41a>,%d0:w:2\)@\(0+7d0\)
+0+41e <foo\+41e> tstl %pc@\(0+420 <foo\+420>,%d0:w:2\)@\(0+000\)
+0+422 <foo\+422> tstl %pc@\(0+80c <.*>,%d0:w:2\)@\(0+7d0\)
+0+42a <foo\+42a> tstl %pc@\(0+814 <.*>,%d0:w:2\)@\(0+7d0\)
+0+432 <foo\+432> tstl %pc@\(0+81c <.*>,%d0:l\)@\(0+7d0\)
+0+43a <foo\+43a> tstl %pc@\(0+824 <.*>,%a1:l\)@\(0+7d0\)
+0+442 <foo\+442> tstl %pc@\(0+82c <.*>,%a1:l\)@\(0+7d0\)
+0+44a <foo\+44a> tstl %pc@\(0+834 <.*>,%a1:w:2\)@\(0+7d0\)
+0+452 <foo\+452> tstl %pc@\(0+83c <.*>,%d0:w:2\)@\(0+000\)
+0+458 <foo\+458> tstl %pc@\(0+842 <.*>,%d0:l\)@\(0+000\)
+0+45e <foo\+45e> tstl %pc@\(0+848 <.*>,%a1:l\)@\(0+000\)
+0+464 <foo\+464> tstl %pc@\(0+466 <foo\+466>,%d0:w:2\)@\(0+7d0\)
+0+46a <foo\+46a> tstl %pc@\(0+46c <foo\+46c>,%a0:l\)@\(0+7d0\)
+0+470 <foo\+470> tstl %pc@\(0+472 <foo\+472>,%d0:w:2\)@\(0+000\)
+0+474 <foo\+474> tstl %pc@\(0+476 <foo\+476>,%d0:l\)@\(0+000\)
+0+478 <foo\+478> tstl %zpc@\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+480 <foo\+480> tstl %zpc@\(0+3e8,%d0:w:2\)@\(0+000\)
+0+486 <foo\+486> tstl %zpc@\(0+000,%d0:w:2\)@\(0+7d0\)
+0+48c <foo\+48c> tstl %zpc@\(0+000,%d0:w:2\)@\(0+000\)
+0+490 <foo\+490> tstl %zpc@\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+498 <foo\+498> tstl %zpc@\(0+3e8,%d0:w:2\)@\(0+7d0\)
+0+4a0 <foo\+4a0> tstl %zpc@\(0+3e8,%d0:l\)@\(0+7d0\)
+0+4a8 <foo\+4a8> tstl %zpc@\(0+3e8,%a1:l\)@\(0+7d0\)
+0+4b0 <foo\+4b0> tstl %zpc@\(0+3e8,%a1:l\)@\(0+7d0\)
+0+4b8 <foo\+4b8> tstl %zpc@\(0+3e8,%a1:w:2\)@\(0+7d0\)
+0+4c0 <foo\+4c0> tstl %zpc@\(0+3e8,%d0:w:2\)@\(0+000\)
+0+4c6 <foo\+4c6> tstl %zpc@\(0+3e8,%d0:l\)@\(0+000\)
+0+4cc <foo\+4cc> tstl %zpc@\(0+3e8,%a1:l\)@\(0+000\)
+0+4d2 <foo\+4d2> tstl %zpc@\(0+000,%d0:w:2\)@\(0+7d0\)
+0+4d8 <foo\+4d8> tstl %zpc@\(0+000,%a0:l\)@\(0+7d0\)
+0+4de <foo\+4de> tstl %zpc@\(0+000,%d0:w:2\)@\(0+000\)
+0+4e2 <foo\+4e2> tstl %zpc@\(0+000,%d0:l\)@\(0+000\)
+0+4e6 <foo\+4e6> tstl 0+004 <foo\+4>
+0+4ea <foo\+4ea> tstl 0+004 <foo\+4>
+0+4ee <foo\+4ee> tstl 0+004 <foo\+4>
+0+4f2 <foo\+4f2> tstl 0+186a0 <.*>
+0+4f8 <foo\+4f8> tstl 0+008 <foo\+8>
+0+4fe <foo\+4fe> tstl 0+008 <foo\+8>
+0+504 <foo\+504> addib #1,%d0
+0+508 <foo\+508> addiw #1,%d0
+0+50c <foo\+50c> addil #1,%d0
+0+512 <foo\+512> addqb #1,%d0
diff --git a/gas/testsuite/gas/m68k/operands.s b/gas/testsuite/gas/m68k/operands.s
new file mode 100644 (file)
index 0000000..29ec742
--- /dev/null
@@ -0,0 +1,273 @@
+# Test handling of MIT and Motorola syntax operands
+# If you change this file, see also op68000.d.
+       .text
+       .globl  foo
+foo:   
+       | Data register direct
+       tstl    %d0
+
+       | Address register direct
+       tstl    %a0
+
+       | Address register indirect
+       tstl    %a0@
+       tstl    (%a0)
+
+       | Address register indirect with postincrement
+       tstl    %a0@+
+       tstl    (%a0)+
+
+       | Address register indirect with predecrement
+       tstl    %a0@-
+       tstl    -(%a0)
+
+       | Address register indirect with displacement
+       tstl    %a0@(8)
+       tstl    (8,%a0)
+       tstl    8(%a0)
+
+       | Address register indirect with index (8-bit displacement)
+       tstl    %a0@(8,%d0)
+       tstl    %a0@(8,%d0:w)
+       tstl    %a0@(8,%d0:w:1)
+       tstl    %a0@(8,%d0:w:2)
+       tstl    %a0@(8,%d0:w:4)
+       tstl    %a0@(8,%d0:w:8)
+       tstl    %a0@(8,%d0:l)
+       tstl    %a0@(8,%d0:l:1)
+       tstl    %a0@(8,%d0:l:2)
+       tstl    %a0@(8,%d0:l:4)
+       tstl    %a0@(8,%d0:l:8)
+       tstl    %a0@(%d0:w:2)
+       tstl    (8,%a0,%d0)
+       tstl    (8,%a0,%d0*1)
+       tstl    (8,%a0,%d0*2)
+       tstl    (8,%a0,%d0*4)
+       tstl    (8,%a0,%d0*8)
+       tstl    (8,%a0,%d0.w)
+       tstl    (8,%a0,%d0.w*1)
+       tstl    (8,%a0,%d0.w*2)
+       tstl    (8,%a0,%d0.w*4)
+       tstl    (8,%a0,%d0.w*8)
+       tstl    (8,%a0,%d0.l)
+       tstl    (8,%a0,%d0.l*1)
+       tstl    (8,%a0,%d0.l*2)
+       tstl    (8,%a0,%d0.l*4)
+       tstl    (8,%a0,%d0.l*8)
+       tstl    (8,%d0,%a0)
+       tstl    (8,%a1.w*2,%a0)
+       tstl    (8,%a1,%a0)
+       tstl    8(%a0,%d0.w*2)
+       tstl    8(%d0.w*2,%a0)
+       tstl    8(%a1.w*2,%a0)
+       tstl    (%a0,%d0.w*2)
+       tstl    (%d0.w*2,%a0)
+
+       | Address register indirect with index (base displacement)
+       tstl    %a0@(1000,%d0:w:2)
+       tstl    @(1000,%d0:w:2)
+       tstl    @(%d0:w:2)
+       tstl    @(1000)
+       tstl    %a0@(100000)
+       tstl    (1000,%a0,%d0.w*2)
+       tstl    (1000,%d0,%a0)
+       tstl    (1000,%a1.w*2,%a0)
+       tstl    1000(%a0,%d0.w*2)
+       tstl    1000(%d0,%a0)
+       tstl    (1000,%d0.w*2)
+       tstl    1000(%d0.w*2)
+       tstl    (%d0.w*2)
+       tstl    (100000,%a0)
+       tstl    100000(%a0)
+       tstl    %za1@(1000,%d0:w:2)
+       tstl    %za1@(100000)
+       tstl    (1000,%za1,%d0.w*2)
+       tstl    (1000,%d0,%za1)
+       tstl    (1000,%a1.w*2,%za1)
+       tstl    1000(%za1,%d0.w*2)
+       tstl    1000(%d0,%za1)
+       tstl    (100000,%za1)
+       tstl    100000(%za1)
+       tstl    %a0@(1000,%zd1:w:2)
+       tstl    @(1000,%zd1:w:2)
+       tstl    @(%zd1:w:2)
+       tstl    (1000,%a0,%zd1.w*2)
+       tstl    (1000,%zd1,%a0)
+       tstl    (1000,%za1.w*2,%a0)
+       tstl    1000(%a0,%zd1.w*2)
+       tstl    1000(%zd1,%a0)
+       tstl    (1000,%zd1.w*2)
+       tstl    1000(%zd1.w*2)
+       tstl    (%zd1.w*2)
+
+       | Memory indirect postindexed
+       tstl    %a0@(1000)@(2000,%d0:w:2)
+       tstl    %a0@(1000)@(%d0:w:2)
+       tstl    %a0@(1000)@(2000)
+       tstl    @(1000)@(2000,%d0:w:2)
+       tstl    @(1000)@(%d0:w:2)
+       tstl    @(1000)@(2000)
+       tstl    %a0@(0)@(2000,%d0:w:2)
+       tstl    %a0@(0)@(%d0:w:2)
+       tstl    %a0@(0)@(2000)
+       tstl    @(0)@(2000,%d0:w:2)
+       tstl    @(0)@(%d0:w:2)
+       tstl    @(0)@(2000)
+       tstl    ([1000,%a0],%d0:w:2,2000)
+       tstl    ([1000,%a0],%d0:w:2)
+       tstl    ([1000,%a0],2000)
+       tstl    ([1000],%d0:w:2,2000)
+       tstl    ([1000],%d0:w:2)
+       tstl    ([1000],2000)
+       tstl    ([%a0],%d0:w:2,2000)
+       tstl    ([%a0],%d0:w:2)
+       tstl    ([%a0],2000)
+       tstl    ([0],%d0:w:2,2000)
+       tstl    ([0],%d0:w:2)
+       tstl    ([0],2000)
+
+       | Memory indirect preindexed
+       tstl    %a0@(1000,%d0:w:2)@(2000)
+       tstl    %a0@(1000,%d0:w:2)@(0)
+       tstl    @(1000,%d0:w:2)@(2000)
+       tstl    @(1000,%d0:w:2)@(0)
+       tstl    %a0@(%d0:w:2)@(2000)
+       tstl    %a0@(%d0:w:2)@(0)
+       tstl    @(%d0:w:2)@(2000)
+       tstl    @(%d0:w:2)@(0)
+       tstl    ([1000,%a0,%d0:w:2],2000)
+       tstl    ([1000,%d0:w:2,%a0],2000)
+       tstl    ([1000,%d0,%a0],2000)
+       tstl    ([1000,%a1,%a0],2000)
+       tstl    ([1000,%a1:w:2,%a0],2000)
+       tstl    ([1000,%a0,%d0:w:2])
+       tstl    ([1000,%d0,%a0])
+       tstl    ([1000,%d0:w:2],2000)
+       tstl    ([1000,%d0:w:2])
+       tstl    ([%a0,%d0:w:2],2000)
+       tstl    ([%d0,%a0],2000)
+       tstl    ([%a0,%d0:w:2])
+       tstl    ([%d0,%a0])
+       tstl    ([%d0:w:2],2000)
+       tstl    ([%d0:w:2])
+
+       | Program counter indirect with displacement
+       tstl    %pc@(8)
+       tstl    (8,%pc)
+       tstl    8(%pc)
+       tstl    foo
+
+       | Program counter indirect with index (8-bit displacement)
+       tstl    %pc@(8,%d0:w:2)
+       tstl    %pc@(%d0:w:2)
+       tstl    (8,%pc,%d0.w*2)
+       tstl    (8,%d0,%pc)
+       tstl    (8,%a0,%pc)
+       tstl    8(%pc,%d0.w*2)
+       tstl    8(%d0,%pc)
+       tstl    8(%a0,%pc)
+       tstl    (%pc,%d0.w*2)
+       tstl    (%d0,%pc)
+       tstl    (%a0,%pc)
+
+       | Program counter indirect with index (base displacement)
+       tstl    %pc@(1000,%d0:w:2)
+       tstl    %pc@(100000)
+       tstl    (1000,%pc,%d0.w*2)
+       tstl    (1000,%d0,%pc)
+       tstl    (1000,%a1.w*2,%pc)
+       tstl    (1000,%a1,%pc)
+       tstl    1000(%pc,%d0.w*2)
+       tstl    1000(%d0,%pc)
+       tstl    1000(%a1,%pc)
+       tstl    (100000,%pc)
+       tstl    100000(%pc)
+       tstl    %zpc@(1000,%d0:w:2)
+       tstl    %zpc@(100000)
+       tstl    (1000,%zpc,%d0.w*2)
+       tstl    (1000,%d0,%zpc)
+       tstl    (1000,%a1.w*2,%zpc)
+       tstl    (1000,%a1,%zpc)
+       tstl    1000(%zpc,%d0.w*2)
+       tstl    1000(%d0,%zpc)
+       tstl    1000(%a1,%zpc)
+       tstl    (100000,%zpc)
+       tstl    100000(%zpc)
+
+       | Program counter memory indirect postindexed
+       tstl    %pc@(1000)@(2000,%d0:w:2)
+       tstl    %pc@(1000)@(%d0:w:2)
+       tstl    %pc@(1000)@(2000)
+       tstl    %pc@(0)@(2000,%d0:w:2)
+       tstl    %pc@(0)@(%d0:w:2)
+       tstl    %pc@(0)@(2000)
+       tstl    ([1000,%pc],%d0:w:2,2000)
+       tstl    ([1000,%pc],%d0:w:2)
+       tstl    ([1000,%pc],2000)
+       tstl    ([%pc],%d0:w:2,2000)
+       tstl    ([%pc],%d0:w:2)
+       tstl    ([%pc],2000)
+       tstl    %zpc@(1000)@(2000,%d0:w:2)
+       tstl    %zpc@(1000)@(%d0:w:2)
+       tstl    %zpc@(1000)@(2000)
+       tstl    %zpc@(0)@(2000,%d0:w:2)
+       tstl    %zpc@(0)@(%d0:w:2)
+       tstl    %zpc@(0)@(2000)
+       tstl    ([1000,%zpc],%d0:w:2,2000)
+       tstl    ([1000,%zpc],%d0:w:2)
+       tstl    ([1000,%zpc],2000)
+       tstl    ([%zpc],%d0:w:2,2000)
+       tstl    ([%zpc],%d0:w:2)
+       tstl    ([%zpc],2000)
+
+       | Program counter memory indirect preindexed
+       tstl    %pc@(1000,%d0:w:2)@(2000)
+       tstl    %pc@(1000,%d0:w:2)@(0)
+       tstl    %pc@(%d0:w:2)@(2000)
+       tstl    %pc@(%d0:w:2)@(0)
+       tstl    ([1000,%pc,%d0:w:2],2000)
+       tstl    ([1000,%d0:w:2,%pc],2000)
+       tstl    ([1000,%d0,%pc],2000)
+       tstl    ([1000,%a1,%pc],2000)
+       tstl    ([1000,%pc,%a1],2000)
+       tstl    ([1000,%a1:w:2,%pc],2000)
+       tstl    ([1000,%pc,%d0:w:2])
+       tstl    ([1000,%d0,%pc])
+       tstl    ([1000,%a1,%pc])
+       tstl    ([%pc,%d0:w:2],2000)
+       tstl    ([%pc,%a0],2000)
+       tstl    ([%pc,%d0:w:2])
+       tstl    ([%d0,%pc])
+       tstl    %zpc@(1000,%d0:w:2)@(2000)
+       tstl    %zpc@(1000,%d0:w:2)@(0)
+       tstl    %zpc@(%d0:w:2)@(2000)
+       tstl    %zpc@(%d0:w:2)@(0)
+       tstl    ([1000,%zpc,%d0:w:2],2000)
+       tstl    ([1000,%d0:w:2,%zpc],2000)
+       tstl    ([1000,%d0,%zpc],2000)
+       tstl    ([1000,%a1,%zpc],2000)
+       tstl    ([1000,%zpc,%a1],2000)
+       tstl    ([1000,%a1:w:2,%zpc],2000)
+       tstl    ([1000,%zpc,%d0:w:2])
+       tstl    ([1000,%d0,%zpc])
+       tstl    ([1000,%a1,%zpc])
+       tstl    ([%zpc,%d0:w:2],2000)
+       tstl    ([%zpc,%a0],2000)
+       tstl    ([%zpc,%d0:w:2])
+       tstl    ([%d0,%zpc])
+
+       | Absolute short
+       tstl    4
+       tstl    4.w
+       tstl    (4).w
+
+       | Absolute long
+       tstl    100000
+       tstl    8.l
+       tstl    (8).l
+
+       | Immediate
+       addib   #1,%d0
+       addiw   #1,%d0
+       addil   #1,%d0
+       addqb   #1,%d0
index 393aa5b07a35f7b26c8665567b11d3102554661a..a9459d1daaf29bc627e96b3d778e46377ffef0db 100644 (file)
@@ -1,5 +1,5 @@
 #name: PC-relative relocations
-#objdump: -drs
+#objdump: -drs -j .text
 
 .*:     file format .*
 
@@ -22,68 +22,67 @@ Contents of section .text:
  00f0 41fb0170 00008000 4e7141fb 0170ffff  A..p....NqA..p..
  0100 ff0441fb 0930ffff fefc4e71 41f90000  ..A..0....NqA...
  0110 0000...............................  ................
-Contents of section .data:
 Disassembly of section \.text:
-0+0000 <lbl_b-2> nop
+0+0000 <.*> nop
 0+0002 <lbl_b> nop
 0+0004 <lbl_b\+2> moveml 0+0002 <lbl_b>,%a0-%a1
 0+000a <lbl_b\+8> moveml 0+0002 <lbl_b>,%a0-%a1
-0+0010 <lbl_b\+e> moveml 0x10002\[%d0\.l\],%a0-%a1
+0+0010 <lbl_b\+e> moveml %pc@\(0+02 <lbl_b>,%d0:l\),%a0-%a1
 0+0016 <lbl_b\+14> lea 0+0002 <lbl_b>,%a0
 0+001a <lbl_b\+18> lea 0+0002 <lbl_b>,%a0
-0+001e <lbl_b\+1c> lea f+ff82 <lbl_a\+f+fedc>,%a0
-0+0022 <lbl_b\+20> lea 0x10002\[%d0\.l\],%a0
-0+0026 <lbl_b\+24> lea 0x10002\[%d0\.l\],%a0
-0+002a <lbl_b\+28> lea 0x10002\[%d0\.l\],%a0
-0+002e <lbl_b\+2c> lea 0x2\[%d0\.l\],%a0
-0+0034 <lbl_b\+32> lea 0x2\[%d0\.l\],%a0
-0+003a <lbl_b\+38> lea 0x2\[%d0\.l\],%a0
-0+0042 <lbl_b\+40> lea 0x2\[%d0\.l\],%a0
+0+001e <lbl_b\+1c> lea f+ff82 <.*>,%a0
+0+0022 <lbl_b\+20> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
+0+0026 <lbl_b\+24> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
+0+002a <lbl_b\+28> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
+0+002e <lbl_b\+2c> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
+0+0034 <lbl_b\+32> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
+0+003a <lbl_b\+38> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
+0+0042 <lbl_b\+40> lea %pc@\(0+02 <lbl_b>,%d0:l\),%a0
 0+004a <lbl_b\+48> nop
 0+004c <lbl_b\+4a> bsrl 0+00a6 <lbl_a>
-0+0052 <lbl_b\+50> bsr 0+00a6 <lbl_a>
+0+0052 <lbl_b\+50> bsrw 0+00a6 <lbl_a>
 0+0056 <lbl_b\+54> bsrs 0+00a6 <lbl_a>
 0+0058 <lbl_b\+56> bsrs 0+00a6 <lbl_a>
 0+005a <lbl_b\+58> nop
-0+005c <lbl_b\+5a> lea @#0+00a6 <lbl_a>,%a0
+0+005c <lbl_b\+5a> lea 0+00a6 <lbl_a>,%a0
                RELOC: 0+005e (R_68K_)?32 \.text
 0+0062 <lbl_b\+60> lea 0+00a6 <lbl_a>,%a0
-0+0066 <lbl_b\+64> lea 0+0126 <lbl_a\+80>,%a0
-0+006a <lbl_b\+68> lea 0xa6\[%d0\.l\],%a0
-0+006e <lbl_b\+6c> lea 0xa6\[%d0\.l\],%a0
-0+0072 <lbl_b\+70> lea 0xa6\[%d0\.l\],%a0
-0+0076 <lbl_b\+74> lea 0xa6\[%d0\.l\],%a0
-0+007c <lbl_b\+7a> lea 0xa6\[%d0\.l\],%a0
-0+0082 <lbl_b\+80> lea 0xa6\[%d0\.l\],%a0
-0+008a <lbl_b\+88> lea 0xa6\[%d0\.l\],%a0
-0+0092 <lbl_b\+90> lea 0xa6\[%d0\.l\],%a0
-0+009a <lbl_b\+98> lea 0xa6\[%d0\.l\],%a0
-0+00a0 <lbl_b\+9e> lea 0xa6\[%d0\.l\],%a0
+0+0066 <lbl_b\+64> lea 0+0126 <.*>,%a0
+0+006a <lbl_b\+68> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+006e <lbl_b\+6c> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+0072 <lbl_b\+70> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+0076 <lbl_b\+74> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+007c <lbl_b\+7a> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+0082 <lbl_b\+80> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+008a <lbl_b\+88> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+0092 <lbl_b\+90> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+009a <lbl_b\+98> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
+0+00a0 <lbl_b\+9e> lea %pc@\(0+a6 <lbl_a>,%d0:l\),%a0
 0+00a4 <lbl_b\+a2> nop
 0+00a6 <lbl_a> nop
 0+00a8 <lbl_a\+2> nop
-0+00aa <lbl_a\+4> lea 0x1002c\[%d0\.l\],%a0
-0+00ae <lbl_a\+8> lea 0x2f\[%d0\.l\],%a0
-0+00b4 <lbl_a\+e> lea 0xf+80b6\[%d0\.l\],%a0
-0+00ba <lbl_a\+14> lea 0xf+80bb\[%d0\.l\],%a0
+0+00aa <lbl_a\+4> lea %pc@\(0+2c <lbl_b\+2a>,%d0:l\),%a0
+0+00ae <lbl_a\+8> lea %pc@\(0+2f <lbl_b\+2d>,%d0:l\),%a0
+0+00b4 <lbl_a\+e> lea %pc@\(f+80b6 <.*>,%d0:l\),%a0
+0+00ba <lbl_a\+14> lea %pc@\(f+80bb <.*>,%d0:l\),%a0
 0+00c2 <lbl_a\+1c> nop
-0+00c4 <lbl_a\+1e> lea 0x145\[%d0\.l\],%a0
-0+00c8 <lbl_a\+22> lea 0x14a\[%d0\.l\],%a0
-0+00ce <lbl_a\+28> lea 0x80cf\[%d0\.l\],%a0
-0+00d4 <lbl_a\+2e> lea 0x80d6\[%d0\.l\],%a0
+0+00c4 <lbl_a\+1e> lea %pc@\(0+145 <.*>,%d0:l\),%a0
+0+00c8 <lbl_a\+22> lea %pc@\(0+14a <.*>,%d0:l\),%a0
+0+00ce <lbl_a\+28> lea %pc@\(0+80cf <.*>,%d0:l\),%a0
+0+00d4 <lbl_a\+2e> lea %pc@\(0+80d6 <.*>,%d0:l\),%a0
 0+00dc <lbl_a\+36> nop
-0+00de <lbl_a\+38> lea f+80e0 <lbl_a\+f+803a>,%a0
-0+00e2 <lbl_a\+3c> lea 0xf+80e3,%a0
+0+00de <lbl_a\+38> lea f+80e0 <.*>,%a0
+0+00e2 <lbl_a\+3c> lea %pc@\(f+80e3 <.*>\),%a0
 0+00ea <lbl_a\+44> nop
-0+00ec <lbl_a\+46> lea 0+80ed <lbl_a\+8047>,%a0
-0+00f0 <lbl_a\+4a> lea 0x80f2,%a0
+0+00ec <lbl_a\+46> lea 0+80ed <.*>,%a0
+0+00f0 <lbl_a\+4a> lea %pc@\(0+80f2 <.*>\),%a0
 0+00f8 <lbl_a\+52> nop
-0+00fa <lbl_a\+54> lea 0x0,%a0
+0+00fa <lbl_a\+54> lea %pc@\(0+0 <.*>\),%a0
                RELOC: 0+00fe (R_68K_PC|DISP)32 undef
-0+0102 <lbl_a\+5c> lea 0x0\[%d0\.l\],%a0
+0+0102 <lbl_a\+5c> lea %pc@\(0+0 <.*>,%d0:l\),%a0
                RELOC: 0+0106 (R_68K_PC|DISP)32 undef
 0+010a <lbl_a\+64> nop
-0+010c <lbl_a\+66> lea @#0+0+ <lbl_b-2>,%a0
+0+010c <lbl_a\+66> lea 0+0+ <.*>,%a0
                RELOC: 0+010e (R_68K_)?32 undef
 0+0112 <lbl_a\+6c> nop
 \.\.\.