return register clobbering
Dmitry Pugachev
dima_p@auriga.ru
Sat Nov 4 05:01:00 GMT 2000
Hi! I came across a problem which may be either a gcc bug, or a cause
of my own misunderstanding of gcc internals, but here it is (in the Arm
thumb context, but it does not matter):
expand_function_end() (function.c) generates stack save/restore
instructions at the beginning/end of a function. If such instructions
need reloading, a temporary register will be used. The problem is that
it can be the register holding the return value (r0), as the stack
restore instruction is placed after the USE for r0, and the reloader
considers it free.
If anyone has any ideas that can help me overcome this, I'd appreciate
it.. Thanks in advance!
/Dmitry
More information about the Gcc
mailing list