[MIPS] Support for TLS register

Change-Id: I6b5194e5e379b573e3b1203d8015e20fb3edd647
Signed-off-by: Chris Dearman <chris@mips.com>
This commit is contained in:
Raghu Gandham 2012-08-02 17:47:37 -07:00
parent 52f3ee962b
commit 1c30398143

View File

@ -127,9 +127,20 @@ extern int __set_tls(void *ptr);
# define __get_tls() ( *((volatile void **) 0xffff0ff0) )
# endif
# endif /* !LIBC_STATIC */
#else /* !ARM */
#elif defined(__mips__)
# define __get_tls() \
({ register unsigned int __val asm("v1"); \
asm ( \
" .set push\n" \
" .set mips32r2\n" \
" rdhwr %0,$29\n" \
" .set pop\n" \
: "=r"(__val) \
); \
(volatile void*)__val; })
#else
extern void* __get_tls( void );
#endif /* !ARM */
#endif
/* return the stack base and size, used by our malloc debugger */
extern void* __get_stack_base(int *p_stack_size);