From dd43edf4e136bff05cbbb6b42b96c024c591dbb9 Mon Sep 17 00:00:00 2001 From: ths Date: Mon, 8 Oct 2007 13:32:20 +0000 Subject: CRIS testsuite, based on the SIM testsuite, by Edgar E. Iglesias. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3365 c046a42c-6fe2-441c-8c8c-71466251a162 --- tests/cris/sys.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tests/cris/sys.c (limited to 'tests/cris/sys.c') diff --git a/tests/cris/sys.c b/tests/cris/sys.c new file mode 100644 index 000000000..264ec06f3 --- /dev/null +++ b/tests/cris/sys.c @@ -0,0 +1,48 @@ +#include +#include +#include + +static inline int mystrlen(char *s) { + int i = 0; + while (s[i]) + i++; + return i; +} + +void pass(void) { + char s[] = "passed.\n"; + write (1, s, sizeof (s) - 1); + exit (0); +} + +void _fail(char *reason) { + char s[] = "failed: "; + int len = mystrlen(reason); + write (1, s, sizeof (s) - 1); + write (1, reason, len); + write (1, "\n", 1); +// exit (1); +} + +void *memset (void *s, int c, size_t n) { + char *p = s; + int i; + for (i = 0; i < n; i++) + p[i] = c; + return p; +} + +void exit (int status) { + asm volatile ("moveq 1, $r9\n" /* NR_exit. */ + "break 13\n"); + while(1) + ; +} + +ssize_t write (int fd, const void *buf, size_t count) { + int r; + asm volatile ("moveq 4, $r9\n" /* NR_write. */ + "break 13\n" : : : "memory"); + asm volatile ("move.d $r10, %0\n" : "=r" (r)); + return r; +} -- cgit v1.2.3