diff options
Diffstat (limited to 'sim/testsuite/m32c')
-rw-r--r-- | sim/testsuite/m32c/ChangeLog | 10 | ||||
-rw-r--r-- | sim/testsuite/m32c/allinsn.exp | 16 | ||||
-rw-r--r-- | sim/testsuite/m32c/blinky.s | 34 | ||||
-rw-r--r-- | sim/testsuite/m32c/fail.s | 9 | ||||
-rw-r--r-- | sim/testsuite/m32c/gloss.s | 32 | ||||
-rw-r--r-- | sim/testsuite/m32c/pass.s | 8 | ||||
-rw-r--r-- | sim/testsuite/m32c/sample.ld | 41 | ||||
-rw-r--r-- | sim/testsuite/m32c/sample.s | 27 | ||||
-rw-r--r-- | sim/testsuite/m32c/sample2.c | 29 | ||||
-rw-r--r-- | sim/testsuite/m32c/testutils.inc | 53 |
10 files changed, 259 insertions, 0 deletions
diff --git a/sim/testsuite/m32c/ChangeLog b/sim/testsuite/m32c/ChangeLog new file mode 100644 index 0000000..8437919 --- /dev/null +++ b/sim/testsuite/m32c/ChangeLog @@ -0,0 +1,10 @@ +2015-11-14 Mike Frysinger <vapier@gentoo.org> + + * allinsn.exp: New file. + * fail.s, pass.s: New tests. + * testutils.inc: New test helper logic. + +2015-11-09 Mike Frysinger <vapier@gentoo.org> + + * blinky.s: Moved from ../../../m32c/. + * gloss.s, sample.ld, sample.s, sample2.c: Likewise. diff --git a/sim/testsuite/m32c/allinsn.exp b/sim/testsuite/m32c/allinsn.exp new file mode 100644 index 0000000..fb5ccca --- /dev/null +++ b/sim/testsuite/m32c/allinsn.exp @@ -0,0 +1,16 @@ +# M32C simulator testsuite. +# TODO: Add support for .c tests. + +if [istarget m32c*-*-*] { + # all machines + set all_machs "m32c" + + 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 + } +} diff --git a/sim/testsuite/m32c/blinky.s b/sim/testsuite/m32c/blinky.s new file mode 100644 index 0000000..1dbad97 --- /dev/null +++ b/sim/testsuite/m32c/blinky.s @@ -0,0 +1,34 @@ +;;; blinky.s --- sample program to blink LED's on M32C simulator +;;; +;;; Copyright (C) 2005-2021 Free Software Foundation, Inc. +;;; Contributed by Red Hat, Inc. +;;; +;;; This file is part of the GNU simulators. +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see <http://www.gnu.org/licenses/>. + + .text + + .global _start +_start: + mov.w #0xe1,a0 +top: + sub.w #1,r0 + mov.b r0h,[a0] + + mov.w #1000,r1 +loop: + adjnz.w #-1,r1,loop + + jmp.w top diff --git a/sim/testsuite/m32c/fail.s b/sim/testsuite/m32c/fail.s new file mode 100644 index 0000000..5066bce --- /dev/null +++ b/sim/testsuite/m32c/fail.s @@ -0,0 +1,9 @@ +# check that the sim doesn't die immediately. +# mach: m32c +# ld: -T$srcdir/$subdir/sample.ld +# xerror: + +.include "testutils.inc" + + start + fail diff --git a/sim/testsuite/m32c/gloss.s b/sim/testsuite/m32c/gloss.s new file mode 100644 index 0000000..ce03774 --- /dev/null +++ b/sim/testsuite/m32c/gloss.s @@ -0,0 +1,32 @@ +;;; gloss.s --- system calls for sample2.x +;;; +;;; Copyright (C) 2005-2021 Free Software Foundation, Inc. +;;; Contributed by Red Hat, Inc. +;;; +;;; This file is part of the GNU simulators. +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; See the 'sample2.x' target in Makefile.in. + .global _exit +_exit: + mov.b #1,r0l + ste.b r0l,0xe0000 + rts + + .global _foo +_foo: + mov.b #2,r0l + ste.b r0l,0xe0000 + rts diff --git a/sim/testsuite/m32c/pass.s b/sim/testsuite/m32c/pass.s new file mode 100644 index 0000000..9f39ac0 --- /dev/null +++ b/sim/testsuite/m32c/pass.s @@ -0,0 +1,8 @@ +# check that the sim doesn't die immediately. +# mach: m32c +# ld: -T$srcdir/$subdir/sample.ld + +.include "testutils.inc" + + start + pass diff --git a/sim/testsuite/m32c/sample.ld b/sim/testsuite/m32c/sample.ld new file mode 100644 index 0000000..112012a --- /dev/null +++ b/sim/testsuite/m32c/sample.ld @@ -0,0 +1,41 @@ +/* sample2.ld --- linker script for sample2.x + +Copyright (C) 2005-2021 Free Software Foundation, Inc. +Contributed by Red Hat, Inc. + +This file is part of the GNU simulators. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* See the 'sample2.x' target in Makefile.in. */ + +ENTRY(_start) + +MEMORY { + RAM1 (w) : ORIGIN = 0xc800, LENGTH = 0x0200 + RAM2 (w) : ORIGIN = 0xca56, LENGTH = 0x1000 + ROM (w) : ORIGIN = 0x30000, LENGTH = 0x1000 +} + +SECTIONS { + .data : { + *(.data*) + } > RAM1 + .text : { + *(.text*) + } > RAM2 + .fardata : { + *(.fardata*) + } > ROM +} diff --git a/sim/testsuite/m32c/sample.s b/sim/testsuite/m32c/sample.s new file mode 100644 index 0000000..14b0548 --- /dev/null +++ b/sim/testsuite/m32c/sample.s @@ -0,0 +1,27 @@ +;;; sample.s --- simple test program for M32C simulator +;;; +;;; Copyright (C) 2005-2021 Free Software Foundation, Inc. +;;; Contributed by Red Hat, Inc. +;;; +;;; This file is part of the GNU simulators. +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see <http://www.gnu.org/licenses/>. + + .text + + .global _start +_start: + mov.w #0x1234,r1 + mov.w r1,r3 | sha.w #-8,r3 | sha.w #-7,r3 + brk diff --git a/sim/testsuite/m32c/sample2.c b/sim/testsuite/m32c/sample2.c new file mode 100644 index 0000000..3b8f055 --- /dev/null +++ b/sim/testsuite/m32c/sample2.c @@ -0,0 +1,29 @@ +/* sample2.c --- main source for sample2.x test program for M32C simulator + +Copyright (C) 2005-2021 Free Software Foundation, Inc. +Contributed by Red Hat, Inc. + +This file is part of the GNU simulators. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* See the 'sample2.x' target in Makefile.in. */ +void exit (int); + +void +start (void) +{ + foo (1, 2, 3, 4); + exit (5); +} diff --git a/sim/testsuite/m32c/testutils.inc b/sim/testsuite/m32c/testutils.inc new file mode 100644 index 0000000..fa6f5a9 --- /dev/null +++ b/sim/testsuite/m32c/testutils.inc @@ -0,0 +1,53 @@ +# MACRO: exit + .macro exit nr + mov.w \nr, r1; + # Trap function 1: exit(). + mov.b #1, r0l; + ste.b r0l, 0x400; + .endm + +# MACRO: pass +# Write 'pass' to stdout and quit + .macro pass + # Use stdout. + mov.w #1, r1; + # Point to the string. + mov.w #1f, r2; + # Number of bytes to write; push onto stack. + push.w #5; + # Adjust as the sim expects 3 byte offset. (!?) + add.w #-3, sp; + # Trap function 5: write(). + mov.b #5, r0l; + ste.b r0l, 0x400; + exit #0 + .data + 1: .asciz "pass\n" + .endm + +# MACRO: fail +# Write 'fail' to stdout and quit + .macro fail + # Use stdout. + mov.w #1, r1; + # Point to the string. + mov.w #1f, r2; + # Number of bytes to write; push onto stack. + push.w #5; + # Adjust as the sim expects 3 byte offset. (!?) + add.w #-3, sp; + # Trap function 5: write(). + mov.b #5, r0l; + ste.b r0l, 0x400; + exit #1 + .data + 1: .asciz "fail\n" + .endm + +# MACRO: start +# All assembler tests should start with a call to "start" + .macro start + .text +.global _start +_start: + .endm |