===================================================================
@@ -6957,19 +6957,6 @@ mips16_build_call_stub (rtx retval, rtx
reg_names[GP_REG_FIRST + 18],
reg_names[RETURN_ADDR_REGNUM]);
}
- else
- {
- /* Load the address of the MIPS16 function into $25. Do this
- first so that targets with coprocessor interlocks can use
- an MFC1 to fill the delay slot. */
- if (TARGET_EXPLICIT_RELOCS)
- {
- output_asm_insn ("lui\t%^,%%hi(%0)", &fn);
- output_asm_insn ("addiu\t%^,%^,%%lo(%0)", &fn);
- }
- else
- output_asm_insn ("la\t%^,%0", &fn);
- }
/* Move the arguments from general registers to floating-point
registers. */
@@ -7037,10 +7024,7 @@ mips16_build_call_stub (rtx retval, rtx
fprintf (asm_out_file, "\t.cfi_endproc\n");
}
else
- {
- /* Jump to the previously-loaded address. */
- output_asm_insn ("jr\t%^", NULL);
- }
+ output_asm_insn (MIPS_CALL ("j", &fn, 0, -1), &fn);
#ifdef ASM_DECLARE_FUNCTION_SIZE
ASM_DECLARE_FUNCTION_SIZE (asm_out_file, stubname, stubdecl);