From 262121f07030ee05586e59aad705082990776b21 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 15 Dec 1992 16:42:21 -0800 Subject: [PATCH] (return peepholes): Add QImode and HImode move/return patterns. From-SVN: r2876 --- gcc/config/sparc/sparc.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 6cf9eaa42f3..33b50f9e2af 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -3050,6 +3050,37 @@ ;; Return peepholes. First the "normal" ones +;; ??? There are QImode, HImode, and SImode versions of this pattern. +;; It might be possible to write one more general pattern instead of three. + +(define_insn "" + [(set (match_operand:QI 0 "restore_operand" "") + (match_operand:QI 1 "arith_operand" "rI")) + (return)] + "! TARGET_EPILOGUE" + "* +{ + if (current_function_returns_struct) + return \"jmp %%i7+12\;restore %%g0,%1,%Y0\"; + else + return \"ret\;restore %%g0,%1,%Y0\"; +}" + [(set_attr "type" "multi")]) + +(define_insn "" + [(set (match_operand:HI 0 "restore_operand" "") + (match_operand:HI 1 "arith_operand" "rI")) + (return)] + "! TARGET_EPILOGUE" + "* +{ + if (current_function_returns_struct) + return \"jmp %%i7+12\;restore %%g0,%1,%Y0\"; + else + return \"ret\;restore %%g0,%1,%Y0\"; +}" + [(set_attr "type" "multi")]) + (define_insn "" [(set (match_operand:SI 0 "restore_operand" "") (match_operand:SI 1 "arith_operand" "rI")) -- 2.30.2