diff options
author | Ian Lance Taylor <ian@airs.com> | 1995-08-08 02:43:30 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1995-08-08 02:43:30 +0000 |
commit | 7239c2977568dee2a20f8952efc5a2d935d9ab7f (patch) | |
tree | b7f24337868680c8b56adb99376ab58f825a6f79 /gas | |
parent | a1c7c0f3ac78467be6f4d649a0ac0a7b2302aa2a (diff) | |
download | gdb-7239c2977568dee2a20f8952efc5a2d935d9ab7f.zip gdb-7239c2977568dee2a20f8952efc5a2d935d9ab7f.tar.gz gdb-7239c2977568dee2a20f8952efc5a2d935d9ab7f.tar.bz2 |
* 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*.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/.Sanitize | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/all.exp | 41 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/bitfield.d | 28 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/bitfield.s | 24 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/cas.d | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/cas.s | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/op68000.d | 188 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/operands.d | 242 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/operands.s | 273 | ||||
-rw-r--r-- | gas/testsuite/gas/m68k/schwab.d | 79 |
11 files changed, 889 insertions, 40 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 0e24283..dc43889 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -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) diff --git a/gas/testsuite/gas/m68k/.Sanitize b/gas/testsuite/gas/m68k/.Sanitize index 611d3db..154caa1 100644 --- a/gas/testsuite/gas/m68k/.Sanitize +++ b/gas/testsuite/gas/m68k/.Sanitize @@ -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 index 0000000..9b38aff --- /dev/null +++ b/gas/testsuite/gas/m68k/all.exp @@ -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 index 0000000..52990e4 --- /dev/null +++ b/gas/testsuite/gas/m68k/bitfield.d @@ -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 index 0000000..1f6a01b --- /dev/null +++ b/gas/testsuite/gas/m68k/bitfield.s @@ -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 index 0000000..f7ef176 --- /dev/null +++ b/gas/testsuite/gas/m68k/cas.d @@ -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 index 0000000..f64e7f5 --- /dev/null +++ b/gas/testsuite/gas/m68k/cas.s @@ -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 index 0000000..0845d2b --- /dev/null +++ b/gas/testsuite/gas/m68k/op68000.d @@ -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 index 0000000..31a6aec --- /dev/null +++ b/gas/testsuite/gas/m68k/operands.d @@ -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 index 0000000..29ec742 --- /dev/null +++ b/gas/testsuite/gas/m68k/operands.s @@ -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 diff --git a/gas/testsuite/gas/m68k/schwab.d b/gas/testsuite/gas/m68k/schwab.d index 393aa5b..a9459d1 100644 --- a/gas/testsuite/gas/m68k/schwab.d +++ b/gas/testsuite/gas/m68k/schwab.d @@ -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 \.\.\. |