In gcc4.2.1 targeting ARM processors, pure leaf functions were able to make use
of r14 / lr (the link register). However, in gcc4.3.2 and gcc4.4.1 (and
presumably since then, since I can't find it mentioned in any gcc bug reports),
this now uses the stack instead rather than this spare register (bo
--
nickpelling at nanodome dot com changed:
What|Removed |Added
Severity|minor |normal
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42017
--
nickpelling at nanodome dot com changed:
What|Removed |Added
Severity|normal |minor
GCC target triplet||ARM
http
--- Comment #2 from nickpelling at nanodome dot com 2009-11-14 16:45
---
Created an attachment (id=19017)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19017&action=view)
Test C file for which gcc -O3 should (but currently doesn't) use r14
--
http://gcc.gnu.
--- Comment #3 from nickpelling at nanodome dot com 2009-11-14 16:48
---
Created an attachment (id=19018)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19018&action=view)
This is the assembler file generated by gcc 4.4.1 for the C test file
Note the presence of "[sp,
--- Comment #4 from nickpelling at nanodome dot com 2009-11-14 16:50
---
Actually, I am targeting ARM (not Thumb1).
I don't currently have easy access to 4.2.1 and 4.3.2, but I am assured that
the former does indeed use r14 and the latter does indeed not use r14.
--