diff options
Diffstat (limited to 'qemu/tests/tcg/hello-mips.c')
-rw-r--r-- | qemu/tests/tcg/hello-mips.c | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/qemu/tests/tcg/hello-mips.c b/qemu/tests/tcg/hello-mips.c deleted file mode 100644 index f8256730d..000000000 --- a/qemu/tests/tcg/hello-mips.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -* MIPS o32 Linux syscall example -* -* http://www.linux-mips.org/wiki/RISC/os -* http://www.linux-mips.org/wiki/MIPSABIHistory -* http://www.linux.com/howtos/Assembly-HOWTO/mips.shtml -* -* mipsel-linux-gcc -nostdlib -mno-abicalls -fno-PIC -mabi=32 \ -* -O2 -static -o hello-mips hello-mips.c -* -*/ -#define __NR_SYSCALL_BASE 4000 -#define __NR_exit (__NR_SYSCALL_BASE+ 1) -#define __NR_write (__NR_SYSCALL_BASE+ 4) - -static inline void exit1(int status) -{ - register unsigned long __a0 asm("$4") = (unsigned long) status; - - __asm__ __volatile__ ( - " .set push \n" - " .set noreorder \n" - " li $2, %0 \n" - " syscall \n" - " .set pop " - : - : "i" (__NR_exit), "r" (__a0) - : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", - "memory"); -} - -static inline int write(int fd, const char *buf, int len) -{ - register unsigned long __a0 asm("$4") = (unsigned long) fd; - register unsigned long __a1 asm("$5") = (unsigned long) buf; - register unsigned long __a2 asm("$6") = (unsigned long) len; - register unsigned long __a3 asm("$7"); - unsigned long __v0; - - __asm__ __volatile__ ( - " .set push \n" - " .set noreorder \n" - " li $2, %2 \n" - " syscall \n" - " move %0, $2 \n" - " .set pop " - : "=r" (__v0), "=r" (__a3) - : "i" (__NR_write), "r" (__a0), "r" (__a1), "r" (__a2) - : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", - "memory"); - -/* if (__a3 == 0) */ - return (int) __v0; -/* - errno = __v0; - return -1; - */ -} - -void __start(void) -{ - write (1, "Hello, World!\n", 14); - exit1 (42); -} |