MIPS16/GCC: Emit explicit JRC from `casesi_internal_mips16_<mode>' insn

gcc/
	* config/mips/mips.md (casesi_internal_mips16_<mode>):
	Explicitly switch between JR and JRC for the table jump.  Adjust
	instruction count.

From-SVN: r242517
This commit is contained in:
Maciej W. Rozycki 2016-11-16 21:42:31 +00:00 committed by Maciej W. Rozycki
parent a3be783adf
commit 576b0863ee
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
* config/mips/mips.md (casesi_internal_mips16_<mode>):
Explicitly switch between JR and JRC for the table jump. Adjust
instruction count.
2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
* config/mips/mips.md (casesi_internal_mips16_<mode>): Set

View File

@ -6442,9 +6442,15 @@
output_asm_insn ("<d>addu\t%4, %4, %5", operands);
return "j\t%4";
if (GENERATE_MIPS16E)
return "jrc\t%4";
else
return "jr\t%4";
}
[(set_attr "insn_count" "11")])
[(set (attr "insn_count")
(if_then_else (match_test "GENERATE_MIPS16E")
(const_string "10")
(const_string "11")))])
;; For TARGET_USE_GOT, we save the gp in the jmp_buf as well.
;; While it is possible to either pull it off the stack (in the