R12 is callee-saved for A- and R- class interrupt handlers

Oliver Stannard Oliver.Stannard at arm.com
Mon Feb 10 06:36:31 PST 2014


Committed as r201089.

Oliver

-----Original Message-----
From: Tim Northover [mailto:t.p.northover at gmail.com]
Sent: 10 February 2014 14:25
To: Oliver Stannard
Cc: LLVM Commits
Subject: Re: R12 is callee-saved for A- and R- class interrupt handlers

> For v7A and v7R, r12 must be callee-saved by interrupt handlers. This is
> because it is the intra-procedure-call scratch register, which may be
> clobbered by any branch subject to a relocation supporting interworking or
> long branches (AAPCS, 5.3.1.1, “Use of IP by the linker”). R12 may be used
> as a temporary register between function calls, so it must be preserved by
> an interrupt handler. It seems that this is mostly implemented, but there
> was a bug in the prologue/epilogue generator which prevented it from being
> included in the push and pop instructions. The attached patch fixes this.

Looks good to me! Thanks for that.

Tim.


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2548782




More information about the llvm-commits mailing list