On Wed, Sep 24, 2008 at 03:44:34PM +0200, Carmelo AMOROSO wrote:
> 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
>  
uClibc has no equivalent of __stringify()? This should probably be in a
generic header somewhere.

> +#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"

The rest obviously looks fine.
_______________________________________________
uClibc mailing list
uClibc@uclibc.org
http://busybox.net/cgi-bin/mailman/listinfo/uclibc

Reply via email to