mips: csu: fix compilation w/ LLVM

GCC issues the warning, but with LLVM it is fatal- no matching .cprestore
with .cpload. Reserve some place on the stack and and add the proper
.cprestore to pair it with.

nop added in the !o32 branch to fill out delay slot instruction, just in
case.

Reviewed by:	arichardson
Differential Revision:	https://reviews.freebsd.org/D21697
This commit is contained in:
Kyle Evans 2020-01-03 19:59:42 +00:00
parent 2c14385aa2
commit ea7868016d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356327

View file

@ -34,10 +34,14 @@
"bal 1f \n" \
"nop \n" \
"1: \n" \
".cpload $ra \n" \
".cpload $ra \n" \
"addu $sp, $sp, -8 \n" \
".set reorder \n" \
".cprestore 4 \n" \
".local " __STRING(func) "\n" \
"jal " __STRING(func)
"jal " __STRING(func) "\n" \
"nop \n" \
"addu $sp, $sp, 8 \n"
#else
#define INIT_CALL_SEQ(func) \
".set noreorder \n" \
@ -48,6 +52,7 @@
".cpsetup $ra, $v0, 1b \n" \
".local " __STRING(func) "\n" \
"jal " __STRING(func)
"nop \n" \
#endif
#endif