This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[mep] further refinements of cross-vliw jumps


Committed.

	* config/mep/mep.md (sibcall_internal): Include non-toggling
	non-jmp case.
	(sibcall_value_internal): Likewise.

Index: config/mep/mep.md
===================================================================
--- config/mep/mep.md	(revision 149644)
+++ config/mep/mep.md	(working copy)
@@ -1922,12 +1922,16 @@
    (clobber (reg:SI REGSAVE_CONTROL_TEMP))
   ]
   "SIBLING_CALL_P (insn)"
 {
   if (mep_vliw_jmp_match (operands[2]))
     return "jmp\t%0";
+  else if (mep_vliw_mode_match (operands[2]))
+    return
+        "movu	$11, %0\n\
+	jmp	$11";
   else
     return
 	"ldc	$12, $lp\n\
 	movh	$11, %%hi(%0)\n\
 	xor3	$12, $12, 1\n\
 	add3	$11, $11, %%lo(%0+1)\n\
@@ -1993,12 +1997,16 @@
    (clobber (reg:SI REGSAVE_CONTROL_TEMP))
   ]
   "SIBLING_CALL_P (insn)"
 {
   if (mep_vliw_jmp_match (operands[3]))
     return "jmp\t%1";
+  else if (mep_vliw_mode_match (operands[3]))
+    return
+        "movu	$11, %1\n\
+	jmp	$11";
   else
     return
 	"ldc	$12, $lp\n\
 	movh	$11, %%hi(%1)\n\
 	xor3	$12, $12, 1\n\
 	add3	$11, $11, %%lo(%1+1)\n\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]