This is based on the toolchain GCC, and aims to share as much of its Makefile and patches with that definition. The package requires two additional patches: (1) 003-dont-choke-when-building-32bit-on-64bit.patch, which fixes the `error: size of array 'test_real_width' is negative` error that occurs when building a 32-bit GCC on a 64-bit host. (Search the Internet for examples of this error appearing.) (2) 980-add-nostdinc++.patch, which backports a fix from 11.3.0 (11.2.0 only). Signed-off-by: W. Michael Petullo <mike@flyn.org>
20 lines
684 B
Diff
20 lines
684 B
Diff
Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790.
|
|
MIPS16 functions have a static assembler prologue which clobbers
|
|
registers v0 and v1. Add these register clobbers to function call
|
|
instructions.
|
|
|
|
--- a/gcc/config/mips/mips.c
|
|
+++ b/gcc/config/mips/mips.c
|
|
@@ -3102,6 +3102,12 @@ mips_emit_call_insn (rtx pattern, rtx or
|
|
emit_insn (gen_update_got_version ());
|
|
}
|
|
|
|
+ if (TARGET_MIPS16 && TARGET_USE_GOT)
|
|
+ {
|
|
+ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP);
|
|
+ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode));
|
|
+ }
|
|
+
|
|
if (TARGET_MIPS16
|
|
&& TARGET_EXPLICIT_RELOCS
|
|
&& TARGET_CALL_CLOBBERED_GP)
|