@@ -9225,6 +9225,13 @@ s390_can_use_return_insn (void)
if (cfun_gpr_save_slot (i))
return false;
+ /* For 31 bit this is not covered by the frame_size check below
+ since f4, f6 are saved in the register save area without needing
+ additional stack space. */
+ if (!TARGET_64BIT
+ && (cfun_fpr_save_p (FPR4_REGNUM) || cfun_fpr_save_p (FPR6_REGNUM)))
+ return false;
+
if (cfun->machine->base_reg
&& !call_really_used_regs[REGNO (cfun->machine->base_reg)])
return false;
new file mode 100644
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -m31 -mzarch" } */
+
+void
+foo ()
+{
+ asm ("" ::: "%f4");
+}
+
+/* { dg-final { scan-assembler "ld" } } */