This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/53735] thumb1 spill failure with -Os
- From: "zhuolin.liu at arm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 24 Jul 2012 09:04:15 +0000
- Subject: [Bug target/53735] thumb1 spill failure with -Os
- Auto-submitted: auto-generated
- References: <bug-53735-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53735
zhuolin liu <zhuolin.liu at arm dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |zhuolin.liu at arm dot com
--- Comment #3 from zhuolin liu <zhuolin.liu at arm dot com> 2012-07-24 09:04:15 UTC ---
simple code
fork() fails to assemble with -mthumb -Os, works with -O2 instead of -Os.
register int aa5 __asm__ ("r4") ;
register int aa6 __asm__ ("r5") ;
struct pthread
{
int tid;
int pid;
int ss[128];
};
int add_lock;
int fork (void)
{
int * meself = __builtin_thread_pointer () - 1;
if (add_lock !=(int)meself)
{
__lll_lock_wait_private (0);
}
register int __a1 __asm__ ("a1")=1;
register int _v3 __asm__ ("v3") = 1;
int _v1tmp = (int) (&((struct pthread *)__builtin_thread_pointer () -
1)->tid);
register int __a2 __asm__ ("a2") =1;
register int __a3 __asm__ ("a3") =1;
register int __a4 __asm__ ("a4") =1;
register int _v1 __asm__ ("v1") = _v1tmp;
__asm__ __volatile__ ( "\n" : :"r" (_v3) , "r" (__a1), "r" (__a2), "r"
(__a3), "r" (__a4), "r" (_v1) :);
}