The RISC-V ABI [1] mandates that "the stack pointer shall be aligned to
a 128-bit boundary upon procedure entry". This as not the case in clone.
This fixes the misc/tst-misalign-clone-internal and
misc/tst-misalign-clone tests.
Fixes bug 28702.
[1] https://github.com/riscv-non-isa/riscv-elf-psabi-doc
(cherry picked from commit
d2e594d71509faf36cf851a69370db34a4f5fa65)
[28532] powerpc64[le]: CFI for assembly templated syscalls is incorrect
[28678] nptl/tst-create1 hangs sporadically
[28700] "dns [!UNAVAIL=return] files" NSS default for hosts is not useful
+ [28702] RISC-V: clone does not align stack
[28704] elf/tst-cpu-features-cpuinfo fails for KVM guests on some AMD systems
\f
.text
LEAF (__clone)
+ /* Align stack to a 128-bit boundary as per RISC-V ABI. */
+ andi a1,a1,ALMASK
+
/* Sanity check arguments. */
beqz a0,L (invalid) /* No NULL function pointers. */
beqz a1,L (invalid) /* No NULL stack pointers. */