Hi Paul,
please find attached a patch to make SYSCALL_INST_STR macros working on
SH2 too. I've built trunk for sh4 and objdumped some object using
INLINE_SYSCALL, and it looks fine.
Let me know, so I can commit.
Carmelo
Index: libc/sysdeps/linux/sh/bits/syscalls.h
===================================================================
--- libc/sysdeps/linux/sh/bits/syscalls.h (revision 23456)
+++ libc/sysdeps/linux/sh/bits/syscalls.h (working copy)
@@ -140,14 +140,19 @@
__syscall_return(type,__sc0); \
}
-#define SYSCALL_INST_STR0 "trapa #0x10\n\t"
-#define SYSCALL_INST_STR1 "trapa #0x11\n\t"
-#define SYSCALL_INST_STR2 "trapa #0x12\n\t"
-#define SYSCALL_INST_STR3 "trapa #0x13\n\t"
-#define SYSCALL_INST_STR4 "trapa #0x14\n\t"
-#define SYSCALL_INST_STR5 "trapa #0x15\n\t"
-#define SYSCALL_INST_STR6 "trapa #0x16\n\t"
+/* Two level macros for expansion and stringification */
+#define xstr(s) str(s)
+#define str(s) #s
+#define SYSCALL_INST_STR(x) "trapa #"xstr(__SH_SYSCALL_TRAP_BASE + x)"\n\t"
+#define SYSCALL_INST_STR0 SYSCALL_INST_STR(0)
+#define SYSCALL_INST_STR1 SYSCALL_INST_STR(1)
+#define SYSCALL_INST_STR2 SYSCALL_INST_STR(2)
+#define SYSCALL_INST_STR3 SYSCALL_INST_STR(3)
+#define SYSCALL_INST_STR4 SYSCALL_INST_STR(4)
+#define SYSCALL_INST_STR5 SYSCALL_INST_STR(5)
+#define SYSCALL_INST_STR6 SYSCALL_INST_STR(6)
+
# ifdef NEED_SYSCALL_INST_PAD
# define SYSCALL_INST_PAD "\
or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0"
_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://busybox.net/cgi-bin/mailman/listinfo/uclibc