--- /dev/null
+# m68hc11 simulator testsuite
+
+if [istarget m68hc11-*] {
+ # all machines
+ set all_machs "m68hc11"
+
+ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.s]] {
+ # If we're only testing specific files and this isn't one of them,
+ # skip it.
+ if ![runtest_file_p $runtests $src] {
+ continue
+ }
+ run_sim_test $src $all_machs
+ }
+}
--- /dev/null
+# MACRO: exit
+ .macro exit nr
+ ldd # \nr
+ # The debug insn class.
+ .byte 0xcd
+ # The exit utility function.
+ .byte 0x03
+ .endm
+
+# MACRO: pass
+# Write 'pass' to stdout and quit
+ .macro pass
+ # Point to the string.
+ # NB: See comment above _pass below.
+ ldx #0x8000
+ # Number of bytes to write.
+ ldd #5
+ # The debug insn class.
+ .byte 0xcd
+ # The write utility function.
+ .byte 0x01
+ exit 0
+ .endm
+
+# MACRO: ffail
+# Write 'ffail' to stdout and quit
+# Normally this would be 'fail', but m68k has a pseudo "fail" op.
+ .macro ffail
+ # Point to the string.
+ ldx #0x8006
+ # Number of bytes to write.
+ ldd #5
+ # The debug insn class.
+ .byte 0xcd
+ # The write utility function.
+ .byte 0x01
+ exit 0
+ .endm
+
+# MACRO: start
+# All assembler tests should start with a call to "start"
+ .macro start
+ .text
+# These need to be at the start of text as it's the only stable address.
+# The sim will load all sections starting at the .text address and ignore
+# the addresses for the other sections.
+_pass:
+ .asciz "pass\n"
+_fail:
+ .asciz "fail\n"
+.global _start
+_start:
+ .endm