* 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*.
This commit is contained in:
Ian Lance Taylor 1995-08-08 02:43:30 +00:00
parent a1c7c0f3ac
commit 7239c29775
11 changed files with 889 additions and 40 deletions

View 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)

View 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

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -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\)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View 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
\.\.\.