[PATCH 06/12] @eh_set_lr_<mode>

Segher Boessenkool segher@kernel.crashing.org
Mon Jul 1 18:26:00 GMT 2019


2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
	name.
	(eh_return): Use that name.  Simplify.

---
 gcc/config/rs6000/rs6000.md | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 381f140..881efe1 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -13184,15 +13184,12 @@ (define_expand "eh_return"
   [(use (match_operand 0 "general_operand"))]
   ""
 {
-  if (TARGET_32BIT)
-    emit_insn (gen_eh_set_lr_si (operands[0]));
-  else
-    emit_insn (gen_eh_set_lr_di (operands[0]));
+  emit_insn (gen_eh_set_lr (Pmode, operands[0]));
   DONE;
 })
 
 ; We can't expand this before we know where the link register is stored.
-(define_insn_and_split "eh_set_lr_<mode>"
+(define_insn_and_split "@eh_set_lr_<mode>"
   [(unspec_volatile [(match_operand:P 0 "register_operand" "r")] UNSPECV_EH_RR)
    (clobber (match_scratch:P 1 "=&b"))]
   ""
-- 
1.8.3.1



More information about the Gcc-patches mailing list