sim: m68hc11: add a basic testsuite
Commit Message
Committed.
---
sim/testsuite/sim/m68hc11/ChangeLog | 3 ++
sim/testsuite/sim/m68hc11/allinsn.exp | 15 ++++++++++
sim/testsuite/sim/m68hc11/pass.s | 7 +++++
sim/testsuite/sim/m68hc11/testutils.inc | 53 +++++++++++++++++++++++++++++++++
4 files changed, 78 insertions(+)
create mode 100644 sim/testsuite/sim/m68hc11/ChangeLog
create mode 100644 sim/testsuite/sim/m68hc11/allinsn.exp
create mode 100644 sim/testsuite/sim/m68hc11/pass.s
create mode 100644 sim/testsuite/sim/m68hc11/testutils.inc
new file mode 100644
@@ -0,0 +1,3 @@
+2015-04-05 Mike Frysinger <vapier@gentoo.org>
+
+ * pass.s, allinsn.exp, testutils.inc: New files.
new file mode 100644
@@ -0,0 +1,15 @@
+# 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
+ }
+}
new file mode 100644
@@ -0,0 +1,7 @@
+# check that the sim doesn't die immediately.
+# mach: m68hc11
+
+.include "testutils.inc"
+
+ start
+ pass
new file mode 100644
@@ -0,0 +1,53 @@
+# 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