[parisc-linux] INLINE_SYSCALL/gcc-bug? (Was Re: pipes)
Jason Eckhardt
jle@cygnus.com
Wed, 7 Mar 2001 10:10:07 -0800 (PST)
Hi,
On Wed, 7 Mar 2001, Paul Bame wrote:
>
> Help! Probable gcc bug!
>
> #define INLINE_SYSCALL(name, nr, args...) ({ \
> unsigned long __sys_res; \
> { \
> register unsigned long __res asm("r28"); \
> LOAD_ARGS_##nr(args) \
> asm volatile( \
> "ble 0x100(%%sr2, %%r0)\n\t" \
> " ldi %1, %%r20" \
> : "=r" (__res) \
> : "i" (SYS_ify(name)) ASM_ARGS_##nr \
> ); \
> __sys_res = __res; \
> } \
> if (__sys_res >= (unsigned long)-4095) { \
> __set_errno(-__sys_res); \
> __sys_res == (unsigned long)-1; \
^^^^
Perhaps this is why no code is generated to set __sys_res to -1?
Or am I out of my mind?
> } \
> __sys_res; \
> })
>