]> Git Repo - qemu.git/blob - tests/tcg/cris/sys.c
target/s390x: fix PACK reading 1 byte less and writing 1 byte more
[qemu.git] / tests / tcg / cris / sys.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <unistd.h>
4
5 static inline int mystrlen(char *s) {
6         int i = 0;
7         while (s[i])
8                 i++;
9         return i;
10 }
11
12 void pass(void) {
13         char s[] = "passed.\n";
14         write (1, s, sizeof (s) - 1);
15         exit (0);
16 }
17
18 void _fail(char *reason) {
19         char s[] = "\nfailed: ";
20         int len = mystrlen(reason);
21         write (1, s, sizeof (s) - 1);
22         write (1, reason, len);
23         write (1, "\n", 1);
24 //      exit (1);
25 }
26
27 void *memset (void *s, int c, size_t n) {
28         char *p = s;
29         int i;
30         for (i = 0; i < n; i++)
31                 p[i] = c;
32         return p;
33 }
34
35 void exit (int status) {
36         register unsigned int callno asm ("r9") = 1; /* NR_exit */
37
38         asm volatile ("break 13\n"
39                       :
40                       : "r" (callno)
41                       : "memory" );
42         while(1)
43                 ;
44 }
45
46 ssize_t write (int fd, const void *buf, size_t count) {
47         register unsigned int callno asm ("r9") = 4; /* NR_write */
48         register unsigned int r10 asm ("r10") = fd;
49         register const void *r11 asm ("r11") = buf;
50         register size_t r12 asm ("r12") = count;
51         register unsigned int r asm ("r10");
52
53         asm volatile ("break 13\n"
54              : "=r" (r)
55              : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
56              : "memory");
57
58         return r;
59 }
This page took 0.027738 seconds and 4 git commands to generate.