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:
parent
2c14385aa2
commit
ea7868016d
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user