Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On PowerPC, Clang fails to compile code generated by the C backend, due to the implementation of
restore_rt
:This is because
restore_rt
on PowerPC uses a register input operand for the syscall number, which is compiled as a separateregister uintptr_t
declaration, disallowed in naked functions.Following the same approach as x86 and ARM, when using the C backend, this PR employs alternative inline assembly that avoids using non-immediate input operands.
This PR also adds some registers that were missing from the list of clobbers. As with all syscalls, the registers
r0
,r3
,ctr
, andxer
should also be specified as clobbers or outputs (see musl).