This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Long and short jumps


Jeffrey A Law wrote:
You might want to look at the fr30 port which IIRC had many similarities to what you're trying to do.
ok, thanks for that.

You might also look at trying to do register scavenging when presented
with an out of range jump rather than reserving or trying to allocate
a scratch register.
tried that, unfortunately it is possible for there to be no free
register, so I must keep one in reserve.

Regardless, it's likely going to be rather painful as I'm sure you're
finding out.
yeah, I've fixed it in a similar way to thumb, by reserving the
link register for this purpose. Plus I've been able to detect
small leaf functions early enough to not premptively spill the
link reg.

nathan

--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]