[aarch64] Fix obsolete comment about X30

r217431 changed X30 as caller-saved in CALL_USE_REGISTERS because of
which this comment about X30 not being marked as call-clobbered is no
longer accurate.  Fixed to describe the current state more accurately.

	* config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete
	comment.
	(EPILOGUE_USES): Likewise.

From-SVN: r262176
This commit is contained in:
Siddhesh Poyarekar 2018-06-27 05:28:06 +00:00 committed by Siddhesh Poyarekar
parent 307193b82c
commit 643ef95719
2 changed files with 17 additions and 12 deletions

View file

@ -1,3 +1,9 @@
2018-06-27 Siddhesh Poyarekar <siddhesh@sourceware.org>
* config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete
comment.
(EPILOGUE_USES): Likewise.
2018-06-26 Eric Botcazou <ebotcazou@adacore.com>
* tree-inline.c (remap_location): New function extracted from...

View file

@ -303,15 +303,6 @@ extern unsigned aarch64_architecture_version;
register. GCC internally uses the poly_int variable aarch64_sve_vg
instead. */
/* Note that we don't mark X30 as a call-clobbered register. The idea is
that it's really the call instructions themselves which clobber X30.
We don't care what the called function does with it afterwards.
This approach makes it easier to implement sibcalls. Unlike normal
calls, sibcalls don't clobber X30, so the register reaches the
called function intact. EPILOGUE_USES says that X30 is useful
to the called function. */
#define FIXED_REGISTERS \
{ \
0, 0, 0, 0, 0, 0, 0, 0, /* R0 - R7 */ \
@ -327,6 +318,13 @@ extern unsigned aarch64_architecture_version;
0, 0, 0, 0, 0, 0, 0, 0, /* P8 - P15 */ \
}
/* X30 is marked as caller-saved which is in line with regular function call
behavior since the call instructions clobber it; AARCH64_EXPAND_CALL does
that for regular function calls and avoids it for sibcalls. X30 is
considered live for sibcalls; EPILOGUE_USES helps achieve that by returning
true but not until function epilogues have been generated. This ensures
that X30 is available for use in leaf functions if needed. */
#define CALL_USED_REGISTERS \
{ \
1, 1, 1, 1, 1, 1, 1, 1, /* R0 - R7 */ \
@ -391,9 +389,10 @@ extern unsigned aarch64_architecture_version;
V_ALIASES(28), V_ALIASES(29), V_ALIASES(30), V_ALIASES(31) \
}
/* Say that the epilogue uses the return address register. Note that
in the case of sibcalls, the values "used by the epilogue" are
considered live at the start of the called function. */
/* Say that the return address register is used by the epilogue, but only after
epilogue generation is complete. Note that in the case of sibcalls, the
values "used by the epilogue" are considered live at the start of the called
function. */
#define EPILOGUE_USES(REGNO) \
(epilogue_completed && (REGNO) == LR_REGNUM)