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.
This commit is contained in:
parent
2f93a2a03a
commit
7fa1b2c8da
1 changed files with 7 additions and 5 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue