Commit MetaInfo

Revisionb589356e0552e7b09fb214ce080332ee80b2a279 (tree)
Time2015-02-14 21:53:25
AuthorYoshinori Sato <ysato@sa76...>
CommiterYoshinori Sato

Log Message

cleanup

Change Summary

Incremental Difference

--- a/libc/sysdeps/linux/h8300/bits/syscalls.h
+++ b/libc/sysdeps/linux/h8300/bits/syscalls.h
@@ -8,72 +8,78 @@
88
99 #include <errno.h>
1010
11-#define ASMFMT_0()
12-#define ASMFMT_1(arg1) \
13- , "g" ((unsigned long)arg1)
14-#define ASMFMT_2(arg1, arg2) \
15- , "g" ((unsigned long)arg1), "g" ((unsigned long)arg2)
16-#define ASMFMT_3(arg1, arg2, arg3) \
17- , "g" ((unsigned long)arg1), "g" ((unsigned long)arg2), "g" ((unsigned long)arg3)
18-#define ASMFMT_4(arg1, arg2, arg3, arg4) \
19- , "g" ((unsigned long)arg1), "g" ((unsigned long)arg2), "g" ((unsigned long)arg3), "g" ((unsigned long)arg4)
20-#define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
21- , "g" (arg1), "g" (arg2), "g" (arg3), "g" (arg4)/*, "g" (arg5)*/
22-#define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \
23- , "g" (arg1), "g" (arg2), "g" (arg3), "g" (arg4)/*, "g" (arg5), "g" (arg6)*/
11+#define ASMFMT_0
12+#define ASMFMT_1 , "g"(er1)
13+#define ASMFMT_2 , "g"(er1), "g"(er2)
14+#define ASMFMT_3 , "g"(er1), "g"(er2), "g"(er3)
15+#define ASMFMT_4 , "g"(er1), "g"(er2), "g"(er3), "g"(er4)
16+#define ASMFMT_5 , "g"(er1), "g"(er2), "g"(er3), "g"(er4), "g"(er5)
17+#define ASMFMT_6 , "g"(er1), "g"(er2), "g"(er3), "g"(er4), "m"(er5), "m"(er6)
2418
25-#define SUBSTITUTE_ARGS_0 \
26- "mov.l %1, er0\n\t"
27-#define SUBSTITUTE_ARGS_1 \
28- "mov.l %2, er1\n\t" \
29- "mov.l %1, er0\n\t"
30-#define SUBSTITUTE_ARGS_2 \
31- "mov.l %3, er2\n\t" \
32- "mov.l %2, er1\n\t" \
33- "mov.l %1, er0\n\t"
34-#define SUBSTITUTE_ARGS_3 \
35- "mov.l %4, er3\n\t" \
36- "mov.l %3, er2\n\t" \
37- "mov.l %2, er1\n\t" \
38- "mov.l %1, er0\n\t"
39-#define SUBSTITUTE_ARGS_4 \
40- "mov.l %5, er4\n\t" \
41- "mov.l %4, er3\n\t" \
42- "mov.l %3, er2\n\t" \
43- "mov.l %2, er1\n\t" \
44- "mov.l %1, er0\n\t"
45-#define SUBSTITUTE_ARGS_5 \
46- /*"mov.l %6, er5\n\t"*/ \
47- "mov.l %5, er4\n\t" \
48- "mov.l %4, er3\n\t" \
49- "mov.l %3, er2\n\t" \
50- "mov.l %2, er1\n\t" \
51- "mov.l %1, er0\n\t"
52-#define SUBSTITUTE_ARGS_6 \
53- /*"mov.l %7, er6\n\t"*/ \
54- /*"mov.l %6, er5\n\t"*/ \
55- "mov.l %5, er4\n\t" \
56- "mov.l %4, er3\n\t" \
57- "mov.l %3, er2\n\t" \
58- "mov.l %2, er1\n\t" \
59- "mov.l %1, er0\n\t"
19+#define SUBSTITUTE_ARGS_0() do {} while(0);
20+#define SUBSTITUTE_ARGS_1(arg1) \
21+ register long int er1 __asm__("er1") = (long int)arg1;
22+#define SUBSTITUTE_ARGS_2(arg1, arg2) \
23+ register long int er1 __asm__("er1") = (long int)arg1; \
24+ register long int er2 __asm__("er2") = (long int)arg2;
25+#define SUBSTITUTE_ARGS_3(arg1, arg2, arg3) \
26+ register long int er1 __asm__("er1") = (long int)arg1; \
27+ register long int er2 __asm__("er2") = (long int)arg2; \
28+ register long int er3 __asm__("er3") = (long int)arg3;
29+#define SUBSTITUTE_ARGS_4(arg1, arg2, arg3, arg4) \
30+ register long int er1 __asm__("er1") = (long int)arg1; \
31+ register long int er2 __asm__("er2") = (long int)arg2; \
32+ register long int er3 __asm__("er3") = (long int)arg3; \
33+ register long int er4 __asm__("er4") = (long int)arg4;
34+#define SUBSTITUTE_ARGS_5(arg1, arg2, arg3, arg4, arg5) \
35+ register long int er1 __asm__("er1") = (long int)arg1; \
36+ register long int er2 __asm__("er2") = (long int)arg2; \
37+ register long int er3 __asm__("er3") = (long int)arg3; \
38+ register long int er4 __asm__("er4") = (long int)arg4; \
39+ register long int er5 __asm__("er5") = (long int)arg5;
40+#define SUBSTITUTE_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
41+ register long int er1 __asm__("er1") = (long int)arg1; \
42+ register long int er2 __asm__("er2") = (long int)arg2; \
43+ register long int er3 __asm__("er3") = (long int)arg3; \
44+ register long int er4 __asm__("er4") = (long int)arg4; \
45+ long int er5 = (long int)arg5; \
46+ long int er6 = (long int)arg6;
47+
48+#define LOAD_ARGS_0
49+#define LOAD_ARGS_1
50+#define LOAD_ARGS_2
51+#define LOAD_ARGS_3
52+#define LOAD_ARGS_4
53+#define LOAD_ARGS_5
54+#define LOAD_ARGS_6 "mov.l er5,@-sp\n\tmov.l %6,er5\n\t" \
55+ "mov.l er6,@-sp\n\tmov.l %7,er6\n\t"
56+
57+#define RESTORE_ARGS_0
58+#define RESTORE_ARGS_1
59+#define RESTORE_ARGS_2
60+#define RESTORE_ARGS_3
61+#define RESTORE_ARGS_4
62+#define RESTORE_ARGS_5
63+#define RESTORE_ARGS_6 "mov.l @sp+,er6\n\tmov.l @sp+,er5"
6064
6165 /* The _NCS variant allows non-constant syscall numbers. */
6266 #define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
6367 (__extension__ \
64- ({ \
65- register long int er0 __asm__ ("er0"); \
66- __asm__ __volatile__ ( \
67- SUBSTITUTE_ARGS_##nr \
68- "trapa #0" \
69- : "=r" (er0) \
70- : "ir" (name) ASMFMT_##nr(args) \
71- : "memory" \
72- ); \
73- (int) er0; \
68+ ({ \
69+ register long int er0 __asm__ ("er0"); \
70+ SUBSTITUTE_ARGS_##nr(args) \
71+ __asm__ __volatile__ ( \
72+ LOAD_ARGS_##nr \
73+ "mov.l %1,er0\n\t" \
74+ "trapa #0\n\t" \
75+ RESTORE_ARGS_##nr \
76+ : "=r" (er0) \
77+ : "ir" (name) ASMFMT_##nr \
78+ : "memory" \
79+ ); \
80+ (int) er0; \
7481 }) \
7582 )
7683
7784 #endif /* __ASSEMBLER__ */
7885 #endif /* _BITS_SYSCALLS_H */
79-
Show on old repository browser