]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
xtensa: Revise xtensa_expand_prologue()
authorTakayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
Sun, 10 May 2026 05:54:36 +0000 (14:54 +0900)
committerMax Filippov <jcmvbkbc@gmail.com>
Mon, 11 May 2026 15:17:05 +0000 (08:17 -0700)
No functional changes.

gcc/ChangeLog:

* config/xtensa/xtensa.cc
(xtensa_can_eliminate_callee_saved_reg_p):
Change the arguments that return values from being passed by pointer
to C++ reference.
(xtensa_expand_prologue):
Adjust the call to xtensa_can_eliminate_callee_saved_reg_p() to
match the above changes.

gcc/config/xtensa/xtensa.cc

index ed4f0e346615b6146c5c44e824654aff2bcad563..4abd577c5087ea0dd262e979db62507c4849b368 100644 (file)
@@ -3587,17 +3587,16 @@ xtensa_emit_adjust_stack_ptr (HOST_WIDE_INT offset, int flags)
 
 static bool
 xtensa_can_eliminate_callee_saved_reg_p (unsigned int regno,
-                                        rtx_insn **p_insnS,
-                                        rtx_insn **p_insnR)
+                                        rtx_insn *&insnS, rtx_insn *&insnR)
 {
   df_ref ref;
-  rtx_insn *insn, *insnS = NULL, *insnR = NULL;
+  rtx_insn *insn;
   rtx pattern;
 
   if (!optimize || !df || call_used_or_fixed_reg_p (regno))
     return false;
 
-  for (ref = DF_REG_DEF_CHAIN (regno);
+  for (insnS = NULL, ref = DF_REG_DEF_CHAIN (regno);
        ref; ref = DF_REF_NEXT_REG (ref))
     if (DF_REF_CLASS (ref) != DF_REF_REGULAR
        || DEBUG_INSN_P (insn = DF_REF_INSN (ref)))
@@ -3617,7 +3616,7 @@ xtensa_can_eliminate_callee_saved_reg_p (unsigned int regno,
     else
       return false;
 
-  for (ref = DF_REG_USE_CHAIN (regno);
+  for (insnR = NULL, ref = DF_REG_USE_CHAIN (regno);
        ref; ref = DF_REF_NEXT_REG (ref))
     if (DF_REF_CLASS (ref) != DF_REF_REGULAR
        || DEBUG_INSN_P (insn = DF_REF_INSN (ref)))
@@ -3637,12 +3636,7 @@ xtensa_can_eliminate_callee_saved_reg_p (unsigned int regno,
     else
       return false;
 
-  if (!insnS || !insnR)
-    return false;
-
-  *p_insnS = insnS, *p_insnR = insnR;
-
-  return true;
+  return insnS && insnR;
 }
 
 /* minimum frame = reg save area (4 words) plus static chain (1 word)
@@ -3745,7 +3739,7 @@ xtensa_expand_prologue (void)
 
            if (!large_stack_needed
                && xtensa_can_eliminate_callee_saved_reg_p (regno,
-                                                           &insnS, &insnR))
+                                                           insnS, insnR))
              {
                if (frame_pointer_needed)
                  mem = replace_rtx (mem, stack_pointer_rtx,