Register x20 is a callee-saved register which may be used for other
purposes in certain contexts, for example to hold special variables
within the kernel. This change adds support for reserving this register
both to frontend and backend to make this register usable for these
purposes.
Details
Details
Diff Detail
Diff Detail
- Repository
- rC Clang
Event Timeline
llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp | ||
---|---|---|
170 ↗ | (On Diff #145563) | As you sort of note here, -ffixed-x19 conflicts with LLVM's usage of x19 as the base pointer (in functions which have dynamic allocas). Granted, LLVM could be changed to use a different register for this, but currently you'll just miscompile. |
Comment Actions
I have modified the patch to support x20 since we only need only a single register at the moment.