[PATCH] PPC32 cancellation support

Ulrich Drepper drepper@redhat.com
Sat Jan 4 20:22:00 GMT 2003


Franz Sirl wrote:

> +# ifndef __ASSEMBLER__
> +extern int __local_multiple_threads attribute_hidden;
> +#  define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
> +# else
> +#  if !defined PIC
> +#   define SINGLE_THREAD_P						\
> +  lis 10,__local_multiple_threads@ha;					\
> +  lwz 10,__local_multiple_threads@l(10);				\
> +  cmpwi 10,0
> +#  else
> +#   if !defined HAVE_HIDDEN || !USE___THREAD
> +#    define SINGLE_THREAD_P						\
> +  mflr 9;								\
> +  bl _GLOBAL_OFFSET_TABLE_@local-4;					\
> +  mflr 10;								\
> +  mtlr 9;								\
> +  lwz 10,__local_multiple_threads@got(10);				\
> +  lwz 10,0(10);								\
> +  cmpwi 10,0
> +#   else
> +#    define SINGLE_THREAD_P						\
> +  mflr 9;								\
> +  bl _GLOBAL_OFFSET_TABLE_@local-4;					\
> +  mflr 10;								\
> +  mtlr 9;								\
> +  lwz 10,__local_multiple_threads@got(10);				\
> +  lwz 10,0(10);								\
> +  cmpwi 10,0
> +#   endif
> +#  endif
> +# endif

Do I mis something or are the two SINGLE_THREAD_P asm constructs identical?

-- 
--------------.                        ,-.            444 Castro Street
Ulrich Drepper \    ,-----------------'   \ Mountain View, CA 94041 USA
Red Hat         `--' drepper at redhat.com `---------------------------



More information about the Libc-alpha mailing list