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]

Re: [ping] account for register spans in expand_builtin_init_dwarf_reg_sizes


On 10/15/2014 11:07 AM, Olivier Hainque wrote:
   for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
     {
+      enum machine_mode save_mode = targetm.dwarf_frame_reg_mode (i);
+      rtx span;

+      span = targetm.dwarf_register_span (gen_rtx_REG (save_mode, i));
+      if (!span)
+	init_one_dwarf_reg_size (i, save_mode, mem, mode, &wrote_return_column);
+      else
 	{
+	  for (int si = 0; si < XVECLEN (span, 0); si++)
 	    {
+	      rtx reg = XVECEXP (span, 0, si);

+	      init_one_dwarf_reg_size
+		(REGNO (reg), GET_MODE (reg), mem, mode, &wrote_return_column);
+	    }
 	}
     }

What happens when the outer loop hits a register that we've already seen as part of a span?

Jason


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