Skip to content
Snippets Groups Projects
Commit 7fa1b2c8 authored by Olivier Hainque's avatar Olivier Hainque
Browse files

Handle use of r18 as a TCB pointer on aarch64-vxworks

Pick an alternate static chain regnum and document that
the port needs to be configured to issue -ffixed-r18 by
default.  The current definition of TARGET_OS_USES_R18 is
not honored by the common part of the back-end.

2020-11-04  Olivier Hainque  <hainque@adacore.com>

gcc/
	* config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18):
	Remove definition.
	(STATIC_CHAIN_REGNUM): Redefine to 9.
parent 2f93a2a0
No related branches found
No related tags found
No related merge requests found
......@@ -60,12 +60,14 @@ along with GCC; see the file COPYING3. If not see
#undef STACK_CHECK_PROTECT
#define STACK_CHECK_PROTECT 16384
/* The VxWorks environment on aarch64 is llvm-based only, uses R18 as
a TCB pointer. */
/* The VxWorks environment on aarch64 is llvm-based. */
#undef VXWORKS_PERSONALITY
#define VXWORKS_PERSONALITY "llvm"
#undef TARGET_OS_USES_R18
#define TARGET_OS_USES_R18 1
/* VxWorks uses R18 as a TCB pointer. We must pick something else as
the static chain and R18 needs to be claimed "fixed". Until we
arrange to override the common parts of the port family to
acknowledge the latter, configure --with-specs="-ffixed-r18". */
#undef STATIC_CHAIN_REGNUM
#define STATIC_CHAIN_REGNUM 9
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment