Rev 2479 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2479 | Rev 2607 | ||
---|---|---|---|
Line 33... | Line 33... | ||
33 | * @ingroup libcmips32eb |
33 | * @ingroup libcmips32eb |
34 | */ |
34 | */ |
35 | 35 | ||
36 | #include <libc.h> |
36 | #include <libc.h> |
37 | 37 | ||
38 | sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, |
38 | sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, const sysarg_t p3, |
39 | const sysarg_t p3, const sysarg_t p4, |
39 | const sysarg_t p4, const sysarg_t p5, const sysarg_t p6, const syscall_t id) |
40 | const syscall_t id) |
- | |
41 | { |
40 | { |
42 | register sysarg_t __mips_reg_a0 asm("$4") = p1; |
41 | register sysarg_t __mips_reg_a0 asm("$4") = p1; |
43 | register sysarg_t __mips_reg_a1 asm("$5") = p2; |
42 | register sysarg_t __mips_reg_a1 asm("$5") = p2; |
44 | register sysarg_t __mips_reg_a2 asm("$6") = p3; |
43 | register sysarg_t __mips_reg_a2 asm("$6") = p3; |
45 | register sysarg_t __mips_reg_a3 asm("$7") = p4; |
44 | register sysarg_t __mips_reg_a3 asm("$7") = p4; |
- | 45 | register sysarg_t __mips_reg_t0 asm("$8") = p5; |
|
- | 46 | register sysarg_t __mips_reg_t1 asm("$9") = p6; |
|
46 | register sysarg_t __mips_reg_v0 asm("$2") = id; |
47 | register sysarg_t __mips_reg_v0 asm("$2") = id; |
47 | 48 | ||
48 | asm volatile ( |
49 | asm volatile ( |
49 | "syscall\n" |
50 | "syscall\n" |
50 | : "=r" (__mips_reg_v0) |
51 | : "=r" (__mips_reg_v0) |
51 | : "r" (__mips_reg_a0), |
52 | : "r" (__mips_reg_a0), |
52 | "r" (__mips_reg_a1), |
53 | "r" (__mips_reg_a1), |
53 | "r" (__mips_reg_a2), |
54 | "r" (__mips_reg_a2), |
54 | "r" (__mips_reg_a3), |
55 | "r" (__mips_reg_a3), |
- | 56 | "r" (__mips_reg_t0), |
|
- | 57 | "r" (__mips_reg_t1), |
|
55 | "r" (__mips_reg_v0) |
58 | "r" (__mips_reg_v0) |
56 | : "%ra" /* We are a function call, although C does not |
59 | : "%ra" /* We are a function call, although C does not |
57 | * know it */ |
60 | * know it */ |
58 | ); |
61 | ); |
59 | 62 |