public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [patch,avr,applied] Tabify avr.cc
@ 2024-01-31 10:42 Georg-Johann Lay
  0 siblings, 0 replies; only message in thread
From: Georg-Johann Lay @ 2024-01-31 10:42 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 279 bytes --]

avr.cc still had a mix of spaces and TABs for indentation.
This patch uses TABs according to the coding rules.

Applied prior to the creation of the v14 branch so that
master -> v14 back-porting will be easier.

Johann

--

AVR: Tabify avr.cc

gcc/
	* config/avr/avr.cc: Tabify.

[-- Attachment #2: tabify-avr.c.diff --]
[-- Type: text/x-patch, Size: 364958 bytes --]

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index d77e1aad5cd..d21b286ed8b 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -147,12 +147,12 @@ static avr_addr_t avr_addr;
 
 /* Prototypes for local helper functions.  */
 
-static const char* out_movqi_r_mr (rtx_insn *, rtx[], int*);
-static const char* out_movhi_r_mr (rtx_insn *, rtx[], int*);
-static const char* out_movsi_r_mr (rtx_insn *, rtx[], int*);
-static const char* out_movqi_mr_r (rtx_insn *, rtx[], int*);
-static const char* out_movhi_mr_r (rtx_insn *, rtx[], int*);
-static const char* out_movsi_mr_r (rtx_insn *, rtx[], int*);
+static const char *out_movqi_r_mr (rtx_insn *, rtx[], int *);
+static const char *out_movhi_r_mr (rtx_insn *, rtx[], int *);
+static const char *out_movsi_r_mr (rtx_insn *, rtx[], int *);
+static const char *out_movqi_mr_r (rtx_insn *, rtx[], int *);
+static const char *out_movhi_mr_r (rtx_insn *, rtx[], int *);
+static const char *out_movsi_mr_r (rtx_insn *, rtx[], int *);
 
 static int get_sequence_length (rtx_insn *insns);
 static int sequent_regs_live (void);
@@ -160,14 +160,14 @@ static const char *ptrreg_to_str (int);
 static const char *cond_string (enum rtx_code);
 static int avr_num_arg_regs (machine_mode, const_tree);
 static int avr_operand_rtx_cost (rtx, machine_mode, enum rtx_code,
-                                 int, bool);
-static void output_reload_in_const (rtx*, rtx, int*, bool);
-static struct machine_function * avr_init_machine_status (void);
+				 int, bool);
+static void output_reload_in_const (rtx *, rtx, int *, bool);
+static struct machine_function *avr_init_machine_status (void);
 
 
 /* Prototypes for hook implementors if needed before their implementation.  */
 
-static bool avr_rtx_costs (rtx, machine_mode, int, int, int*, bool);
+static bool avr_rtx_costs (rtx, machine_mode, int, int, int *, bool);
 
 
 /* Allocate registers from r25 to r8 for parameters for function calls.  */
@@ -239,7 +239,7 @@ bool avr_has_rodata_p = false;
 /* Transform UP into lowercase and write the result to LO.
    You must provide enough space for LO.  Return LO.  */
 
-static char*
+static char *
 avr_tolower (char *lo, const char *up)
 {
   char *lo0 = lo;
@@ -272,7 +272,7 @@ avr_popcount_each_byte (rtx xval, int n_bytes, int pop_mask)
       unsigned int val8 = UINTVAL (xval8) & GET_MODE_MASK (QImode);
 
       if ((pop_mask & (1 << popcount_hwi (val8))) == 0)
-        return false;
+	return false;
     }
 
   return true;
@@ -317,7 +317,7 @@ public:
     this->name = name;
   }
 
-  virtual unsigned int execute (function*)
+  virtual unsigned int execute (function *)
   {
     df_note_add_problem ();
     df_analyze ();
@@ -349,9 +349,9 @@ public:
     this->name = name;
   }
 
-  void avr_rest_of_handle_casesi (function*);
+  void avr_rest_of_handle_casesi (function *);
 
-  virtual bool gate (function*) { return optimize > 0; }
+  virtual bool gate (function *) { return optimize > 0; }
 
   virtual unsigned int execute (function *func)
   {
@@ -384,9 +384,9 @@ public:
     this->name = name;
   }
 
-  void avr_rest_of_handle_ifelse (function*);
+  void avr_rest_of_handle_ifelse (function *);
 
-  virtual bool gate (function*) { return optimize > 0; }
+  virtual bool gate (function *) { return optimize > 0; }
 
   virtual unsigned int execute (function *func)
   {
@@ -398,19 +398,19 @@ public:
 
 } // anon namespace
 
-rtl_opt_pass*
+rtl_opt_pass *
 make_avr_pass_recompute_notes (gcc::context *ctxt)
 {
   return new avr_pass_recompute_notes (ctxt, "avr-notes-free-cfg");
 }
 
-rtl_opt_pass*
+rtl_opt_pass *
 make_avr_pass_casesi (gcc::context *ctxt)
 {
   return new avr_pass_casesi (ctxt, "avr-casesi");
 }
 
-rtl_opt_pass*
+rtl_opt_pass *
 make_avr_pass_ifelse (gcc::context *ctxt)
 {
   return new avr_pass_ifelse (ctxt, "avr-ifelse");
@@ -419,11 +419,11 @@ make_avr_pass_ifelse (gcc::context *ctxt)
 
 /* Make one parallel insn with all the patterns from insns i[0]..i[5].  */
 
-static rtx_insn*
+static rtx_insn *
 avr_parallel_insn_from_insns (rtx_insn *i[5])
 {
   rtvec vec = gen_rtvec (5, PATTERN (i[0]), PATTERN (i[1]), PATTERN (i[2]),
-                         PATTERN (i[3]), PATTERN (i[4]));
+			 PATTERN (i[3]), PATTERN (i[4]));
   start_sequence();
   emit (gen_rtx_PARALLEL (VOIDmode, vec));
   rtx_insn *insn = get_insns();
@@ -449,21 +449,21 @@ avr_is_casesi_sequence (basic_block bb, rtx_insn *insn, rtx_insn *insns[5])
      the test, harvest respective insns to INSNS[0..4].  */
 
   if (!(JUMP_P (insns[4] = insn)
-        // casesi is the only insn that comes up with UNSPEC_INDEX_JMP,
-        // hence the following test ensures that we are actually dealing
-        // with code from casesi.
-        && (set_4 = single_set (insns[4]))
-        && UNSPEC == GET_CODE (SET_SRC (set_4))
-        && UNSPEC_INDEX_JMP == XINT (SET_SRC (set_4), 1)
-
-        && (insns[3] = prev_real_insn (insns[4]))
-        && (insns[2] = prev_real_insn (insns[3]))
-        && (insns[1] = prev_real_insn (insns[2]))
-
-        // Insn prior to casesi.
-        && (insns[0] = prev_real_insn (insns[1]))
-        && (set_0 = single_set (insns[0]))
-        && extend_operator (SET_SRC (set_0), SImode)))
+	// casesi is the only insn that comes up with UNSPEC_INDEX_JMP,
+	// hence the following test ensures that we are actually dealing
+	// with code from casesi.
+	&& (set_4 = single_set (insns[4]))
+	&& UNSPEC == GET_CODE (SET_SRC (set_4))
+	&& UNSPEC_INDEX_JMP == XINT (SET_SRC (set_4), 1)
+
+	&& (insns[3] = prev_real_insn (insns[4]))
+	&& (insns[2] = prev_real_insn (insns[3]))
+	&& (insns[1] = prev_real_insn (insns[2]))
+
+	// Insn prior to casesi.
+	&& (insns[0] = prev_real_insn (insns[1]))
+	&& (set_0 = single_set (insns[0]))
+	&& extend_operator (SET_SRC (set_0), SImode)))
     {
       return false;
     }
@@ -471,9 +471,9 @@ avr_is_casesi_sequence (basic_block bb, rtx_insn *insn, rtx_insn *insns[5])
   if (dump_file)
     {
       fprintf (dump_file, ";; Sequence from casesi in "
-               "[bb %d]:\n\n", bb->index);
+	       "[bb %d]:\n\n", bb->index);
       for (int i = 0; i < 5; i++)
-        print_rtl_single (dump_file, insns[i]);
+	print_rtl_single (dump_file, insns[i]);
     }
 
   /* We have to deal with quite some operands.  Extracting them by hand
@@ -491,13 +491,13 @@ avr_is_casesi_sequence (basic_block bb, rtx_insn *insn, rtx_insn *insns[5])
   if (INSN_CODE (xinsn) < 0)
     {
       if (dump_file)
-        fprintf (dump_file, ";; Sequence not recognized, giving up.\n\n");
+	fprintf (dump_file, ";; Sequence not recognized, giving up.\n\n");
 
       return false;
     }
 
   gcc_assert (CODE_FOR_casesi_qi_sequence == INSN_CODE (xinsn)
-              || CODE_FOR_casesi_hi_sequence == INSN_CODE (xinsn));
+	      || CODE_FOR_casesi_hi_sequence == INSN_CODE (xinsn));
 
   extract_insn (xinsn);
 
@@ -510,7 +510,7 @@ avr_is_casesi_sequence (basic_block bb, rtx_insn *insn, rtx_insn *insns[5])
     {
       fprintf (dump_file, ";; Operands extracted:\n");
       for (int i = 0; i < recog_data.n_operands; i++)
-        avr_fdump (dump_file, ";; $%d = %r\n", i, recog_data.operand[i]);
+	avr_fdump (dump_file, ";; $%d = %r\n", i, recog_data.operand[i]);
       fprintf (dump_file, "\n");
     }
 
@@ -539,7 +539,7 @@ avr_casei_sequence_check_operands (rtx *xop)
 
   if (!AVR_HAVE_EIJMP_EICALL
       // $6 is: (plus:HI (subreg:SI ($5) 0)
-      //                 (label_ref ($3)))
+      //		 (label_ref ($3)))
       && PLUS == GET_CODE (xop[6])
       && LABEL_REF == GET_CODE (XEXP (xop[6], 1))
       && rtx_equal_p (xop[3], XEXP (XEXP (xop[6], 1), 0))
@@ -574,7 +574,7 @@ avr_casei_sequence_check_operands (rtx *xop)
       $4: Label if out-of-bounds.
       $5: $0 + $1.
       $6: 3-byte PC: subreg:HI ($5) + label_ref ($3)
-          2-byte PC: subreg:HI ($5)
+	  2-byte PC: subreg:HI ($5)
       $7: HI reg index into table (Z or pseudo)
       $8: R24 or const0_rtx (to be clobbered)
       $9: Extension to SImode of an 8-bit or 16-bit integer register $10.
@@ -617,15 +617,15 @@ avr_optimize_casesi (rtx_insn *insns[5], rtx *xop)
       // ok
     }
   else if (ZERO_EXTEND == code
-           && low_idx >= 0
-           && (unsigned) hig_idx <= umax)
+	   && low_idx >= 0
+	   && (unsigned) hig_idx <= umax)
     {
       // ok
     }
   else
     {
       if (dump_file)
-        fprintf (dump_file, ";; Case ranges too big, giving up.\n\n");
+	fprintf (dump_file, ";; Case ranges too big, giving up.\n\n");
       return;
     }
 
@@ -684,21 +684,21 @@ avr_optimize_casesi (rtx_insn *insns[5], rtx *xop)
       fprintf (dump_file, ";; New insns: ");
 
       for (rtx_insn *insn = seq1; ; insn = NEXT_INSN (insn))
-        {
-          fprintf (dump_file, "%d, ", INSN_UID (insn));
-          if (insn == last1)
-            break;
-        }
+	{
+	  fprintf (dump_file, "%d, ", INSN_UID (insn));
+	  if (insn == last1)
+	    break;
+	}
       for (rtx_insn *insn = seq2; ; insn = NEXT_INSN (insn))
-        {
-          fprintf (dump_file, "%d%s", INSN_UID (insn),
-                   insn == last2 ? ".\n\n" : ", ");
-          if (insn == last2)
-            break;
-        }
+	{
+	  fprintf (dump_file, "%d%s", INSN_UID (insn),
+		   insn == last2 ? ".\n\n" : ", ");
+	  if (insn == last2)
+	    break;
+	}
 
       fprintf (dump_file, ";; Deleting insns: %d, %d, %d.\n\n",
-               INSN_UID (insns[1]), INSN_UID (insns[2]), INSN_UID (insns[3]));
+	       INSN_UID (insns[1]), INSN_UID (insns[2]), INSN_UID (insns[3]));
     }
 
   // Pseudodelete the SImode and subreg of SImode insns.  We don't care
@@ -721,12 +721,12 @@ avr_pass_casesi::avr_rest_of_handle_casesi (function *func)
       rtx_insn *insn, *insns[5];
 
       FOR_BB_INSNS (bb, insn)
-        {
-          if (avr_is_casesi_sequence (bb, insn, insns))
-            {
-              avr_optimize_casesi (insns, recog_data.operand);
-            }
-        }
+	{
+	  if (avr_is_casesi_sequence (bb, insn, insns))
+	    {
+	      avr_optimize_casesi (insns, recog_data.operand);
+	    }
+	}
     }
 }
 
@@ -862,7 +862,7 @@ avr_redundant_compare (enum rtx_code cond1, rtx xval1,
    Hence, run a mini pass right before split2 which introduces REG_CC.  */
 
 void
-avr_pass_ifelse::avr_rest_of_handle_ifelse (function*)
+avr_pass_ifelse::avr_rest_of_handle_ifelse (function *)
 {
   rtx_insn *next_insn;
 
@@ -1045,28 +1045,28 @@ avr_set_core_architecture (void)
   for (const avr_mcu_t *mcu = avr_mcu_types; ; mcu++)
     {
       if (mcu->name == NULL)
-        {
-          /* Reached the end of `avr_mcu_types'.  This should actually never
-             happen as options are provided by device-specs.  It could be a
-             typo in a device-specs or calling the compiler proper directly
-             with -mmcu=<device>. */
-
-          error ("unknown core architecture %qs specified with %qs",
-                 avr_mmcu, "-mmcu=");
-          avr_inform_core_architectures ();
-          break;
-        }
+	{
+	  /* Reached the end of `avr_mcu_types'.  This should actually never
+	     happen as options are provided by device-specs.  It could be a
+	     typo in a device-specs or calling the compiler proper directly
+	     with -mmcu=<device>. */
+
+	  error ("unknown core architecture %qs specified with %qs",
+		 avr_mmcu, "-mmcu=");
+	  avr_inform_core_architectures ();
+	  break;
+	}
       else if (strcmp (mcu->name, avr_mmcu) == 0
-               // Is this a proper architecture ?
+	       // Is this a proper architecture ?
 	       && mcu->macro == NULL)
-        {
-          avr_arch = &avr_arch_types[mcu->arch_id];
+	{
+	  avr_arch = &avr_arch_types[mcu->arch_id];
 	  avr_arch_index = mcu->arch_id;
-          if (avr_n_flash < 0)
-            avr_n_flash = 1 + (mcu->flash_size - 1) / 0x10000;
+	  if (avr_n_flash < 0)
+	    avr_n_flash = 1 + (mcu->flash_size - 1) / 0x10000;
 
-          return true;
-        }
+	  return true;
+	}
     }
 
   return false;
@@ -1278,7 +1278,7 @@ bool
 avr_mem_flash_p (rtx x)
 {
   return (MEM_P (x)
-          && !ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x)));
+	  && !ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x)));
 }
 
 
@@ -1289,7 +1289,7 @@ bool
 avr_mem_memx_p (rtx x)
 {
   return (MEM_P (x)
-          && ADDR_SPACE_MEMX == MEM_ADDR_SPACE (x));
+	  && ADDR_SPACE_MEMX == MEM_ADDR_SPACE (x));
 }
 
 
@@ -1302,9 +1302,9 @@ avr_lookup_function_attribute1 (const_tree func, const char *name)
   if (FUNCTION_DECL == TREE_CODE (func))
     {
       if (NULL_TREE != lookup_attribute (name, DECL_ATTRIBUTES (func)))
-        {
-          return true;
-        }
+	{
+	  return true;
+	}
 
       func = TREE_TYPE (func);
     }
@@ -1408,12 +1408,12 @@ avr_set_current_function (tree decl)
   if (cfun->machine->is_OS_task
       && (cfun->machine->is_signal || cfun->machine->is_interrupt))
     error_at (loc, "function attributes %qs and %qs are mutually exclusive",
-              "OS_task", isr);
+	      "OS_task", isr);
 
   if (cfun->machine->is_OS_main
       && (cfun->machine->is_signal || cfun->machine->is_interrupt))
     error_at (loc, "function attributes %qs and %qs are mutually exclusive",
-              "OS_main", isr);
+	      "OS_main", isr);
 
   if (cfun->machine->is_interrupt || cfun->machine->is_signal)
     {
@@ -1422,36 +1422,36 @@ avr_set_current_function (tree decl)
       const char *name;
 
       name = DECL_ASSEMBLER_NAME_SET_P (decl)
-        ? IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
-        : IDENTIFIER_POINTER (DECL_NAME (decl));
+	? IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))
+	: IDENTIFIER_POINTER (DECL_NAME (decl));
 
       /* Skip a leading '*' that might still prefix the assembler name,
-         e.g. in non-LTO runs.  */
+	 e.g. in non-LTO runs.  */
 
       name = default_strip_name_encoding (name);
 
       /* Interrupt handlers must be  void __vector (void)  functions.  */
 
       if (args && TREE_CODE (TREE_VALUE (args)) != VOID_TYPE)
-        error_at (loc, "%qs function cannot have arguments", isr);
+	error_at (loc, "%qs function cannot have arguments", isr);
 
       if (TREE_CODE (ret) != VOID_TYPE)
-        error_at (loc, "%qs function cannot return a value", isr);
+	error_at (loc, "%qs function cannot return a value", isr);
 
 #if defined WITH_AVRLIBC
       /* Silently ignore 'signal' if 'interrupt' is present.  AVR-LibC startet
-         using this when it switched from SIGNAL and INTERRUPT to ISR.  */
+	 using this when it switched from SIGNAL and INTERRUPT to ISR.  */
 
       if (cfun->machine->is_interrupt)
-        cfun->machine->is_signal = 0;
+	cfun->machine->is_signal = 0;
 
       /* If the function has the 'signal' or 'interrupt' attribute, ensure
-         that the name of the function is "__vector_NN" so as to catch
-         when the user misspells the vector name.  */
+	 that the name of the function is "__vector_NN" so as to catch
+	 when the user misspells the vector name.  */
 
       if (!startswith (name, "__vector"))
-        warning_at (loc, OPT_Wmisspelled_isr, "%qs appears to be a misspelled "
-                    "%qs handler, missing %<__vector%> prefix", name, isr);
+	warning_at (loc, OPT_Wmisspelled_isr, "%qs appears to be a misspelled "
+		    "%qs handler, missing %<__vector%> prefix", name, isr);
 #endif // AVR-LibC naming conventions
     }
 
@@ -1464,8 +1464,8 @@ avr_set_current_function (tree decl)
       || strcmp ("SIGNAL", name) == 0)
     {
       warning_at (loc, OPT_Wmisspelled_isr, "%qs is a reserved identifier"
-                  " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
-                  " before using the %qs macro", name, name);
+		  " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
+		  " before using the %qs macro", name, name);
     }
 #endif // AVR-LibC naming conventions
 
@@ -1484,15 +1484,15 @@ avr_accumulate_outgoing_args (void)
     return TARGET_ACCUMULATE_OUTGOING_ARGS;
 
   /* FIXME: For setjmp and in avr_builtin_setjmp_frame_value we don't know
-        what offset is correct.  In some cases it is relative to
-        virtual_outgoing_args_rtx and in others it is relative to
-        virtual_stack_vars_rtx.  For example code see
-            gcc.c-torture/execute/built-in-setjmp.c
-            gcc.c-torture/execute/builtins/sprintf-chk.c   */
+	what offset is correct.  In some cases it is relative to
+	virtual_outgoing_args_rtx and in others it is relative to
+	virtual_stack_vars_rtx.  For example code see
+	    gcc.c-torture/execute/built-in-setjmp.c
+	    gcc.c-torture/execute/builtins/sprintf-chk.c   */
 
   return (TARGET_ACCUMULATE_OUTGOING_ARGS
-          && !(cfun->calls_setjmp
-               || cfun->has_nonlocal_label));
+	  && !(cfun->calls_setjmp
+	       || cfun->has_nonlocal_label));
 }
 
 
@@ -1541,23 +1541,23 @@ avr_regs_to_save (HARD_REG_SET *set)
   for (int reg = 0; reg < 32; reg++)
     {
       /* Do not push/pop __tmp_reg__, __zero_reg__, as well as
-         any global register variables.  */
+	 any global register variables.  */
 
       if (fixed_regs[reg])
-        continue;
+	continue;
 
       if ((int_or_sig_p && !crtl->is_leaf && call_used_or_fixed_reg_p (reg))
-          || (df_regs_ever_live_p (reg)
-              && (int_or_sig_p || !call_used_or_fixed_reg_p (reg))
-              /* Don't record frame pointer registers here.  They are treated
-                 indivitually in prologue.  */
-              && !(frame_pointer_needed
-                   && (reg == REG_Y || reg == REG_Y + 1))))
-        {
-          if (set)
-            SET_HARD_REG_BIT (*set, reg);
-          count++;
-        }
+	  || (df_regs_ever_live_p (reg)
+	      && (int_or_sig_p || !call_used_or_fixed_reg_p (reg))
+	      /* Don't record frame pointer registers here.  They are treated
+		 indivitually in prologue.  */
+	      && !(frame_pointer_needed
+		   && (reg == REG_Y || reg == REG_Y + 1))))
+	{
+	  if (set)
+	    SET_HARD_REG_BIT (*set, reg);
+	  count++;
+	}
     }
   return count;
 }
@@ -1578,7 +1578,7 @@ static bool
 avr_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
 {
   return ((frame_pointer_needed && to == FRAME_POINTER_REGNUM)
-          || !frame_pointer_needed);
+	  || !frame_pointer_needed);
 }
 
 
@@ -1610,7 +1610,7 @@ avr_initial_elimination_offset (int from, int to)
       // by gasisr prologues.
       offset += avr_regs_to_save (NULL);
       return (get_frame_size () + avr_outgoing_args_size()
-              + avr_pc_size + 1 + offset);
+	      + avr_pc_size + 1 + offset);
     }
 }
 
@@ -1681,7 +1681,7 @@ avr_return_addr_rtx (int count, rtx tem)
     {
       r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+2");
       warning (0, "%<builtin_return_address%> contains only 2 bytes"
-               " of address");
+	       " of address");
     }
   else
     r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+1");
@@ -1700,13 +1700,13 @@ int
 avr_simple_epilogue (void)
 {
   return (! frame_pointer_needed
-          && get_frame_size () == 0
-          && avr_outgoing_args_size() == 0
-          && avr_regs_to_save (NULL) == 0
-          && ! cfun->machine->is_interrupt
-          && ! cfun->machine->is_signal
-          && ! cfun->machine->is_naked
-          && ! TREE_THIS_VOLATILE (current_function_decl));
+	  && get_frame_size () == 0
+	  && avr_outgoing_args_size() == 0
+	  && avr_regs_to_save (NULL) == 0
+	  && ! cfun->machine->is_interrupt
+	  && ! cfun->machine->is_signal
+	  && ! cfun->machine->is_naked
+	  && ! TREE_THIS_VOLATILE (current_function_decl));
 }
 
 /* This function checks sequence of live registers.  */
@@ -1720,45 +1720,45 @@ sequent_regs_live (void)
   for (int reg = 0; reg <= LAST_CALLEE_SAVED_REG; ++reg)
     {
       if (fixed_regs[reg])
-        {
-          /* Don't recognize sequences that contain global register
-             variables.  */
+	{
+	  /* Don't recognize sequences that contain global register
+	     variables.  */
 
-          if (live_seq != 0)
-            return 0;
-          else
-            continue;
-        }
+	  if (live_seq != 0)
+	    return 0;
+	  else
+	    continue;
+	}
 
       if (!call_used_or_fixed_reg_p (reg))
-        {
-          if (df_regs_ever_live_p (reg))
-            {
-              ++live_seq;
-              ++cur_seq;
-            }
-          else
-            cur_seq = 0;
-        }
+	{
+	  if (df_regs_ever_live_p (reg))
+	    {
+	      ++live_seq;
+	      ++cur_seq;
+	    }
+	  else
+	    cur_seq = 0;
+	}
     }
 
   if (!frame_pointer_needed)
     {
       if (df_regs_ever_live_p (REG_Y))
-        {
-          ++live_seq;
-          ++cur_seq;
-        }
+	{
+	  ++live_seq;
+	  ++cur_seq;
+	}
       else
-        cur_seq = 0;
+	cur_seq = 0;
 
       if (df_regs_ever_live_p (REG_Y + 1))
-        {
-          ++live_seq;
-          ++cur_seq;
-        }
+	{
+	  ++live_seq;
+	  ++cur_seq;
+	}
       else
-        cur_seq = 0;
+	cur_seq = 0;
     }
   else
     {
@@ -1772,14 +1772,14 @@ namespace {
 static const pass_data avr_pass_data_pre_proep =
 {
   RTL_PASS,      // type
-  "",            // name (will be patched)
+  "",	    // name (will be patched)
   OPTGROUP_NONE, // optinfo_flags
   TV_DF_SCAN,    // tv_id
-  0,             // properties_required
-  0,             // properties_provided
-  0,             // properties_destroyed
-  0,             // todo_flags_start
-  0              // todo_flags_finish
+  0,	     // properties_required
+  0,	     // properties_provided
+  0,	     // properties_destroyed
+  0,	     // todo_flags_start
+  0	      // todo_flags_finish
 };
 
 
@@ -1792,22 +1792,22 @@ public:
     this->name = name;
   }
 
-  void compute_maybe_gasisr (function*);
+  void compute_maybe_gasisr (function *);
 
   virtual unsigned int execute (function *fun)
   {
     if (avr_gasisr_prologues
-        // Whether this function is an ISR worth scanning at all.
-        && !fun->machine->is_no_gccisr
-        && (fun->machine->is_interrupt
-            || fun->machine->is_signal)
-        && !cfun->machine->is_naked
-        // Paranoia: Non-local gotos and labels that might escape.
-        && !cfun->calls_setjmp
-        && !cfun->has_nonlocal_label
-        && !cfun->has_forced_label_in_static)
+	// Whether this function is an ISR worth scanning at all.
+	&& !fun->machine->is_no_gccisr
+	&& (fun->machine->is_interrupt
+	    || fun->machine->is_signal)
+	&& !cfun->machine->is_naked
+	// Paranoia: Non-local gotos and labels that might escape.
+	&& !cfun->calls_setjmp
+	&& !cfun->has_nonlocal_label
+	&& !cfun->has_forced_label_in_static)
       {
-        compute_maybe_gasisr (fun);
+	compute_maybe_gasisr (fun);
       }
 
     return 0;
@@ -1817,7 +1817,7 @@ public:
 
 } // anon namespace
 
-rtl_opt_pass*
+rtl_opt_pass *
 make_avr_pass_pre_proep (gcc::context *ctxt)
 {
   return new avr_pass_pre_proep (ctxt, "avr-pre-proep");
@@ -1839,20 +1839,20 @@ avr_pass_pre_proep::compute_maybe_gasisr (function *fun)
       // out are open coded (tail) calls.
 
       if (CALL_P (insn))
-        return;
+	return;
 
       // __tablejump2__ clobbers something and is targeted by JMP so
       // that GAS won't see its usage.
 
       if (AVR_HAVE_JMP_CALL
-          && JUMP_TABLE_DATA_P (insn))
-        return;
+	  && JUMP_TABLE_DATA_P (insn))
+	return;
 
       // Non-local gotos not seen in *FUN.
 
       if (JUMP_P (insn)
-          && find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX))
-        return;
+	  && find_reg_note (insn, REG_NON_LOCAL_GOTO, NULL_RTX))
+	return;
     }
 
   fun->machine->gasisr.maybe = 1;
@@ -1893,30 +1893,30 @@ avr_hregs_split_reg (HARD_REG_SET *set)
   for (int regno = 0; regno < 32; regno++)
     if (TEST_HARD_REG_BIT (*set, regno))
       {
-        // Don't remove a register from *SET which might indicate that
-        // some RAMP* register might need ISR prologue / epilogue treatment.
-
-        if (AVR_HAVE_RAMPX
-            && (REG_X == regno || REG_X + 1 == regno)
-            && TEST_HARD_REG_BIT (*set, REG_X)
-            && TEST_HARD_REG_BIT (*set, REG_X + 1))
-          continue;
-
-        if (AVR_HAVE_RAMPY
-            && !frame_pointer_needed
-            && (REG_Y == regno || REG_Y + 1 == regno)
-            && TEST_HARD_REG_BIT (*set, REG_Y)
-            && TEST_HARD_REG_BIT (*set, REG_Y + 1))
-          continue;
-
-        if (AVR_HAVE_RAMPZ
-            && (REG_Z == regno || REG_Z + 1 == regno)
-            && TEST_HARD_REG_BIT (*set, REG_Z)
-            && TEST_HARD_REG_BIT (*set, REG_Z + 1))
-          continue;
-            
-        CLEAR_HARD_REG_BIT (*set, regno);
-        return regno;
+	// Don't remove a register from *SET which might indicate that
+	// some RAMP* register might need ISR prologue / epilogue treatment.
+
+	if (AVR_HAVE_RAMPX
+	    && (REG_X == regno || REG_X + 1 == regno)
+	    && TEST_HARD_REG_BIT (*set, REG_X)
+	    && TEST_HARD_REG_BIT (*set, REG_X + 1))
+	  continue;
+
+	if (AVR_HAVE_RAMPY
+	    && !frame_pointer_needed
+	    && (REG_Y == regno || REG_Y + 1 == regno)
+	    && TEST_HARD_REG_BIT (*set, REG_Y)
+	    && TEST_HARD_REG_BIT (*set, REG_Y + 1))
+	  continue;
+
+	if (AVR_HAVE_RAMPZ
+	    && (REG_Z == regno || REG_Z + 1 == regno)
+	    && TEST_HARD_REG_BIT (*set, REG_Z)
+	    && TEST_HARD_REG_BIT (*set, REG_Z + 1))
+	  continue;
+
+	CLEAR_HARD_REG_BIT (*set, regno);
+	return regno;
       }
 
   return -1;
@@ -1967,7 +1967,7 @@ emit_push_sfr (rtx sfr, bool frame_related_p, bool clr_p, int treg)
       /* OUT IO(SFR), __zero_reg__ */
       insn = emit_move_insn (sfr, const0_rtx);
       if (frame_related_p)
-        RTX_FRAME_RELATED_P (insn) = 1;
+	RTX_FRAME_RELATED_P (insn) = 1;
     }
 }
 
@@ -1982,262 +1982,262 @@ avr_prologue_setup_frame (HOST_WIDE_INT size, HARD_REG_SET set)
     = (HOST_WIDE_INT) GET_MODE_MASK (AVR_HAVE_8BIT_SP ? QImode : Pmode);
 
   bool minimize = (TARGET_CALL_PROLOGUES
-                   && size < size_max
-                   && live_seq
-                   && !isr_p
-                   && !cfun->machine->is_OS_task
-                   && !cfun->machine->is_OS_main
-                   && !AVR_TINY);
+		   && size < size_max
+		   && live_seq
+		   && !isr_p
+		   && !cfun->machine->is_OS_task
+		   && !cfun->machine->is_OS_main
+		   && !AVR_TINY);
 
   if (minimize
       && (frame_pointer_needed
-          || avr_outgoing_args_size() > 8
-          || (AVR_2_BYTE_PC && live_seq > 6)
-          || live_seq > 7))
+	  || avr_outgoing_args_size() > 8
+	  || (AVR_2_BYTE_PC && live_seq > 6)
+	  || live_seq > 7))
     {
       rtx pattern;
       int first_reg, reg, offset;
 
       emit_move_insn (gen_rtx_REG (HImode, REG_X),
-                      gen_int_mode (size, HImode));
+		      gen_int_mode (size, HImode));
 
       pattern = gen_call_prologue_saves (gen_int_mode (live_seq, HImode),
-                                         gen_int_mode (live_seq+size, HImode));
+					 gen_int_mode (live_seq+size, HImode));
       insn = emit_insn (pattern);
       RTX_FRAME_RELATED_P (insn) = 1;
 
       /* Describe the effect of the unspec_volatile call to prologue_saves.
-         Note that this formulation assumes that add_reg_note pushes the
-         notes to the front.  Thus we build them in the reverse order of
-         how we want dwarf2out to process them.  */
+	 Note that this formulation assumes that add_reg_note pushes the
+	 notes to the front.  Thus we build them in the reverse order of
+	 how we want dwarf2out to process them.  */
 
       /* The function does always set frame_pointer_rtx, but whether that
-         is going to be permanent in the function is frame_pointer_needed.  */
+	 is going to be permanent in the function is frame_pointer_needed.  */
 
       add_reg_note (insn, REG_CFA_ADJUST_CFA,
-                    gen_rtx_SET ((frame_pointer_needed
+		    gen_rtx_SET ((frame_pointer_needed
 				  ? frame_pointer_rtx
 				  : stack_pointer_rtx),
-                                 plus_constant (Pmode, stack_pointer_rtx,
-                                                -(size + live_seq))));
+				 plus_constant (Pmode, stack_pointer_rtx,
+						-(size + live_seq))));
 
       /* Note that live_seq always contains r28+r29, but the other
-         registers to be saved are all below 18.  */
+	 registers to be saved are all below 18.  */
 
       first_reg = (LAST_CALLEE_SAVED_REG + 1) - (live_seq - 2);
 
       for (reg = 29, offset = -live_seq + 1;
-           reg >= first_reg;
-           reg = (reg == 28 ? LAST_CALLEE_SAVED_REG : reg - 1), ++offset)
-        {
-          rtx m, r;
+	   reg >= first_reg;
+	   reg = (reg == 28 ? LAST_CALLEE_SAVED_REG : reg - 1), ++offset)
+	{
+	  rtx m, r;
 
-          m = gen_rtx_MEM (QImode, plus_constant (Pmode, stack_pointer_rtx,
-                                                  offset));
-          r = gen_rtx_REG (QImode, reg);
-          add_reg_note (insn, REG_CFA_OFFSET, gen_rtx_SET (m, r));
-        }
+	  m = gen_rtx_MEM (QImode, plus_constant (Pmode, stack_pointer_rtx,
+						  offset));
+	  r = gen_rtx_REG (QImode, reg);
+	  add_reg_note (insn, REG_CFA_OFFSET, gen_rtx_SET (m, r));
+	}
 
       cfun->machine->stack_usage += size + live_seq;
     }
   else /* !minimize */
     {
       for (int reg = 0; reg < 32; ++reg)
-        if (TEST_HARD_REG_BIT (set, reg))
-          emit_push_byte (reg, true);
+	if (TEST_HARD_REG_BIT (set, reg))
+	  emit_push_byte (reg, true);
 
       if (frame_pointer_needed
-          && (!(cfun->machine->is_OS_task || cfun->machine->is_OS_main)))
-        {
-          /* Push frame pointer.  Always be consistent about the
-             ordering of pushes -- epilogue_restores expects the
-             register pair to be pushed low byte first.  */
+	  && (!(cfun->machine->is_OS_task || cfun->machine->is_OS_main)))
+	{
+	  /* Push frame pointer.  Always be consistent about the
+	     ordering of pushes -- epilogue_restores expects the
+	     register pair to be pushed low byte first.  */
 
-          emit_push_byte (REG_Y, true);
-          emit_push_byte (REG_Y + 1, true);
-        }
+	  emit_push_byte (REG_Y, true);
+	  emit_push_byte (REG_Y + 1, true);
+	}
 
       if (frame_pointer_needed
-          && size == 0)
-        {
-          insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
-          RTX_FRAME_RELATED_P (insn) = 1;
-        }
+	  && size == 0)
+	{
+	  insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
+	  RTX_FRAME_RELATED_P (insn) = 1;
+	}
 
       if (size != 0)
-        {
-          /*  Creating a frame can be done by direct manipulation of the
-              stack or via the frame pointer. These two methods are:
-                  fp =  sp
-                  fp -= size
-                  sp =  fp
-              or
-                  sp -= size
-                  fp =  sp    (*)
-              the optimum method depends on function type, stack and
-              frame size.  To avoid a complex logic, both methods are
-              tested and shortest is selected.
-
-              There is also the case where SIZE != 0 and no frame pointer is
-              needed; this can occur if ACCUMULATE_OUTGOING_ARGS is on.
-              In that case, insn (*) is not needed in that case.
-              We use the X register as scratch. This is save because in X
-              is call-clobbered.
-                 In an interrupt routine, the case of SIZE != 0 together with
-              !frame_pointer_needed can only occur if the function is not a
-              leaf function and thus X has already been saved.  */
-
-          int irq_state = -1;
-          HOST_WIDE_INT size_cfa = size, neg_size;
-          rtx_insn *fp_plus_insns;
-          rtx fp, my_fp;
-
-          gcc_assert (frame_pointer_needed
-                      || !isr_p
-                      || !crtl->is_leaf);
-
-          fp = my_fp = (frame_pointer_needed
-                        ? frame_pointer_rtx
-                        : gen_rtx_REG (Pmode, REG_X));
-
-          if (AVR_HAVE_8BIT_SP)
-            {
-              /* The high byte (r29) does not change:
-                 Prefer SUBI (1 cycle) over SBIW (2 cycles, same size).  */
-
-              my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
-            }
-
-          /* Cut down size and avoid size = 0 so that we don't run
-             into ICE like PR52488 in the remainder.  */
-
-          if (size > size_max)
-            {
-              /* Don't error so that insane code from newlib still compiles
-                 and does not break building newlib.  As PR51345 is implemented
-                 now, there are multilib variants with -msp8.
-
-                 If user wants sanity checks he can use -Wstack-usage=
-                 or similar options.
-
-                 For CFA we emit the original, non-saturated size so that
-                 the generic machinery is aware of the real stack usage and
-                 will print the above diagnostic as expected.  */
-
-              size = size_max;
-            }
-
-          size = trunc_int_for_mode (size, GET_MODE (my_fp));
-          neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp));
-
-          /************  Method 1: Adjust frame pointer  ************/
-
-          start_sequence ();
-
-          /* Normally, the dwarf2out frame-related-expr interpreter does
-             not expect to have the CFA change once the frame pointer is
-             set up.  Thus, we avoid marking the move insn below and
-             instead indicate that the entire operation is complete after
-             the frame pointer subtraction is done.  */
-
-          insn = emit_move_insn (fp, stack_pointer_rtx);
-          if (frame_pointer_needed)
-            {
-              RTX_FRAME_RELATED_P (insn) = 1;
-              add_reg_note (insn, REG_CFA_ADJUST_CFA,
-                            gen_rtx_SET (fp, stack_pointer_rtx));
-            }
-
-          insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp),
-                                                       my_fp, neg_size));
-
-          if (frame_pointer_needed)
-            {
-              RTX_FRAME_RELATED_P (insn) = 1;
-              add_reg_note (insn, REG_CFA_ADJUST_CFA,
-                            gen_rtx_SET (fp, plus_constant (Pmode, fp,
+	{
+	  /*  Creating a frame can be done by direct manipulation of the
+	      stack or via the frame pointer. These two methods are:
+		  fp =  sp
+		  fp -= size
+		  sp =  fp
+	      or
+		  sp -= size
+		  fp =  sp    (*)
+	      the optimum method depends on function type, stack and
+	      frame size.  To avoid a complex logic, both methods are
+	      tested and shortest is selected.
+
+	      There is also the case where SIZE != 0 and no frame pointer is
+	      needed; this can occur if ACCUMULATE_OUTGOING_ARGS is on.
+	      In that case, insn (*) is not needed in that case.
+	      We use the X register as scratch. This is save because in X
+	      is call-clobbered.
+		 In an interrupt routine, the case of SIZE != 0 together with
+	      !frame_pointer_needed can only occur if the function is not a
+	      leaf function and thus X has already been saved.  */
+
+	  int irq_state = -1;
+	  HOST_WIDE_INT size_cfa = size, neg_size;
+	  rtx_insn *fp_plus_insns;
+	  rtx fp, my_fp;
+
+	  gcc_assert (frame_pointer_needed
+		      || !isr_p
+		      || !crtl->is_leaf);
+
+	  fp = my_fp = (frame_pointer_needed
+			? frame_pointer_rtx
+			: gen_rtx_REG (Pmode, REG_X));
+
+	  if (AVR_HAVE_8BIT_SP)
+	    {
+	      /* The high byte (r29) does not change:
+		 Prefer SUBI (1 cycle) over SBIW (2 cycles, same size).  */
+
+	      my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
+	    }
+
+	  /* Cut down size and avoid size = 0 so that we don't run
+	     into ICE like PR52488 in the remainder.  */
+
+	  if (size > size_max)
+	    {
+	      /* Don't error so that insane code from newlib still compiles
+		 and does not break building newlib.  As PR51345 is implemented
+		 now, there are multilib variants with -msp8.
+
+		 If user wants sanity checks he can use -Wstack-usage=
+		 or similar options.
+
+		 For CFA we emit the original, non-saturated size so that
+		 the generic machinery is aware of the real stack usage and
+		 will print the above diagnostic as expected.  */
+
+	      size = size_max;
+	    }
+
+	  size = trunc_int_for_mode (size, GET_MODE (my_fp));
+	  neg_size = trunc_int_for_mode (-size, GET_MODE (my_fp));
+
+	  /************  Method 1: Adjust frame pointer  ************/
+
+	  start_sequence ();
+
+	  /* Normally, the dwarf2out frame-related-expr interpreter does
+	     not expect to have the CFA change once the frame pointer is
+	     set up.  Thus, we avoid marking the move insn below and
+	     instead indicate that the entire operation is complete after
+	     the frame pointer subtraction is done.  */
+
+	  insn = emit_move_insn (fp, stack_pointer_rtx);
+	  if (frame_pointer_needed)
+	    {
+	      RTX_FRAME_RELATED_P (insn) = 1;
+	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
+			    gen_rtx_SET (fp, stack_pointer_rtx));
+	    }
+
+	  insn = emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp),
+						       my_fp, neg_size));
+
+	  if (frame_pointer_needed)
+	    {
+	      RTX_FRAME_RELATED_P (insn) = 1;
+	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
+			    gen_rtx_SET (fp, plus_constant (Pmode, fp,
 							    -size_cfa)));
-            }
-
-          /* Copy to stack pointer.  Note that since we've already
-             changed the CFA to the frame pointer this operation
-             need not be annotated if frame pointer is needed.
-             Always move through unspec, see PR50063.
-             For meaning of irq_state see movhi_sp_r insn.  */
-
-          if (cfun->machine->is_interrupt)
-            irq_state = 1;
-
-          if (TARGET_NO_INTERRUPTS
-              || cfun->machine->is_signal
-              || cfun->machine->is_OS_main)
-            irq_state = 0;
-
-          if (AVR_HAVE_8BIT_SP)
-            irq_state = 2;
-
-          insn = emit_insn (gen_movhi_sp_r (stack_pointer_rtx,
-                                            fp, GEN_INT (irq_state)));
-          if (!frame_pointer_needed)
-            {
-              RTX_FRAME_RELATED_P (insn) = 1;
-              add_reg_note (insn, REG_CFA_ADJUST_CFA,
-                            gen_rtx_SET (stack_pointer_rtx,
-                                         plus_constant (Pmode,
-                                                        stack_pointer_rtx,
-                                                        -size_cfa)));
-            }
-
-          fp_plus_insns = get_insns ();
-          end_sequence ();
-
-          /************  Method 2: Adjust Stack pointer  ************/
-
-          /* Stack adjustment by means of RCALL . and/or PUSH __TMP_REG__
-             can only handle specific offsets.  */
-
-          int n_rcall = size / (AVR_3_BYTE_PC ? 3 : 2);
-
-          if (avr_sp_immediate_operand (gen_int_mode (-size, HImode), HImode)
-              // Don't use more than 3 RCALLs.
-              && n_rcall <= 3)
-            {
-              rtx_insn *sp_plus_insns;
-
-              start_sequence ();
-
-              insn = emit_move_insn (stack_pointer_rtx,
-                                     plus_constant (Pmode, stack_pointer_rtx,
-                                                    -size));
-              RTX_FRAME_RELATED_P (insn) = 1;
-              add_reg_note (insn, REG_CFA_ADJUST_CFA,
-                            gen_rtx_SET (stack_pointer_rtx,
-                                         plus_constant (Pmode,
-                                                        stack_pointer_rtx,
-                                                        -size_cfa)));
-              if (frame_pointer_needed)
-                {
-                  insn = emit_move_insn (fp, stack_pointer_rtx);
-                  RTX_FRAME_RELATED_P (insn) = 1;
-                }
-
-              sp_plus_insns = get_insns ();
-              end_sequence ();
-
-              /************ Use shortest method  ************/
-
-              emit_insn (get_sequence_length (sp_plus_insns)
-                         < get_sequence_length (fp_plus_insns)
-                         ? sp_plus_insns
-                         : fp_plus_insns);
-            }
-          else
-            {
-              emit_insn (fp_plus_insns);
-            }
-
-          cfun->machine->stack_usage += size_cfa;
-        } /* !minimize && size != 0 */
+	    }
+
+	  /* Copy to stack pointer.  Note that since we've already
+	     changed the CFA to the frame pointer this operation
+	     need not be annotated if frame pointer is needed.
+	     Always move through unspec, see PR50063.
+	     For meaning of irq_state see movhi_sp_r insn.  */
+
+	  if (cfun->machine->is_interrupt)
+	    irq_state = 1;
+
+	  if (TARGET_NO_INTERRUPTS
+	      || cfun->machine->is_signal
+	      || cfun->machine->is_OS_main)
+	    irq_state = 0;
+
+	  if (AVR_HAVE_8BIT_SP)
+	    irq_state = 2;
+
+	  insn = emit_insn (gen_movhi_sp_r (stack_pointer_rtx,
+					    fp, GEN_INT (irq_state)));
+	  if (!frame_pointer_needed)
+	    {
+	      RTX_FRAME_RELATED_P (insn) = 1;
+	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
+			    gen_rtx_SET (stack_pointer_rtx,
+					 plus_constant (Pmode,
+							stack_pointer_rtx,
+							-size_cfa)));
+	    }
+
+	  fp_plus_insns = get_insns ();
+	  end_sequence ();
+
+	  /************  Method 2: Adjust Stack pointer  ************/
+
+	  /* Stack adjustment by means of RCALL . and/or PUSH __TMP_REG__
+	     can only handle specific offsets.  */
+
+	  int n_rcall = size / (AVR_3_BYTE_PC ? 3 : 2);
+
+	  if (avr_sp_immediate_operand (gen_int_mode (-size, HImode), HImode)
+	      // Don't use more than 3 RCALLs.
+	      && n_rcall <= 3)
+	    {
+	      rtx_insn *sp_plus_insns;
+
+	      start_sequence ();
+
+	      insn = emit_move_insn (stack_pointer_rtx,
+				     plus_constant (Pmode, stack_pointer_rtx,
+						    -size));
+	      RTX_FRAME_RELATED_P (insn) = 1;
+	      add_reg_note (insn, REG_CFA_ADJUST_CFA,
+			    gen_rtx_SET (stack_pointer_rtx,
+					 plus_constant (Pmode,
+							stack_pointer_rtx,
+							-size_cfa)));
+	      if (frame_pointer_needed)
+		{
+		  insn = emit_move_insn (fp, stack_pointer_rtx);
+		  RTX_FRAME_RELATED_P (insn) = 1;
+		}
+
+	      sp_plus_insns = get_insns ();
+	      end_sequence ();
+
+	      /************ Use shortest method  ************/
+
+	      emit_insn (get_sequence_length (sp_plus_insns)
+			 < get_sequence_length (fp_plus_insns)
+			 ? sp_plus_insns
+			 : fp_plus_insns);
+	    }
+	  else
+	    {
+	      emit_insn (fp_plus_insns);
+	    }
+
+	  cfun->machine->stack_usage += size_cfa;
+	} /* !minimize && size != 0 */
     } /* !minimize */
 }
 
@@ -2267,79 +2267,79 @@ avr_expand_prologue (void)
       int treg = AVR_TMP_REGNO;
       /* Enable interrupts.  */
       if (cfun->machine->is_interrupt)
-        emit_insn (gen_enable_interrupt ());
+	emit_insn (gen_enable_interrupt ());
 
       if (cfun->machine->gasisr.maybe)
-        {
-          /* Let GAS PR21472 emit prologue preamble for us which handles SREG,
-             ZERO_REG and TMP_REG and one additional, optional register for
-             us in an optimal way.  This even scans through inline asm.  */
-
-          cfun->machine->gasisr.yes = 1;
-
-          // The optional reg or TMP_REG if we don't need one.  If we need one,
-          // remove that reg from SET so that it's not puhed / popped twice.
-          // We also use it below instead of TMP_REG in some places.
-
-          treg = avr_hregs_split_reg (&set);
-          if (treg < 0)
-            treg = AVR_TMP_REGNO;
-          cfun->machine->gasisr.regno = treg;
-
-          // The worst case of pushes.  The exact number can be inferred
-          // at assembly time by magic expression __gcc_isr.n_pushed.
-          cfun->machine->stack_usage += 3 + (treg != AVR_TMP_REGNO);
-
-          // Emit a Prologue chunk.  Epilogue chunk(s) might follow.
-          // The final Done chunk is emit by final postscan.
-          emit_insn (gen_gasisr (GEN_INT (GASISR_Prologue), GEN_INT (treg)));
-        }
+	{
+	  /* Let GAS PR21472 emit prologue preamble for us which handles SREG,
+	     ZERO_REG and TMP_REG and one additional, optional register for
+	     us in an optimal way.  This even scans through inline asm.  */
+
+	  cfun->machine->gasisr.yes = 1;
+
+	  // The optional reg or TMP_REG if we don't need one.  If we need one,
+	  // remove that reg from SET so that it's not puhed / popped twice.
+	  // We also use it below instead of TMP_REG in some places.
+
+	  treg = avr_hregs_split_reg (&set);
+	  if (treg < 0)
+	    treg = AVR_TMP_REGNO;
+	  cfun->machine->gasisr.regno = treg;
+
+	  // The worst case of pushes.  The exact number can be inferred
+	  // at assembly time by magic expression __gcc_isr.n_pushed.
+	  cfun->machine->stack_usage += 3 + (treg != AVR_TMP_REGNO);
+
+	  // Emit a Prologue chunk.  Epilogue chunk(s) might follow.
+	  // The final Done chunk is emit by final postscan.
+	  emit_insn (gen_gasisr (GEN_INT (GASISR_Prologue), GEN_INT (treg)));
+	}
       else // !TARGET_GASISR_PROLOGUES: Classic, dumb prologue preamble.
-        {
-          /* Push zero reg.  */
-          emit_push_byte (AVR_ZERO_REGNO, true);
+	{
+	  /* Push zero reg.  */
+	  emit_push_byte (AVR_ZERO_REGNO, true);
 
-          /* Push tmp reg.  */
-          emit_push_byte (AVR_TMP_REGNO, true);
+	  /* Push tmp reg.  */
+	  emit_push_byte (AVR_TMP_REGNO, true);
 
-          /* Push SREG.  */
-          /* ??? There's no dwarf2 column reserved for SREG.  */
-          emit_push_sfr (sreg_rtx, false, false /* clr */, AVR_TMP_REGNO);
+	  /* Push SREG.  */
+	  /* ??? There's no dwarf2 column reserved for SREG.  */
+	  emit_push_sfr (sreg_rtx, false, false /* clr */, AVR_TMP_REGNO);
 
-          /* Clear zero reg.  */
-          emit_move_insn (zero_reg_rtx, const0_rtx);
+	  /* Clear zero reg.  */
+	  emit_move_insn (zero_reg_rtx, const0_rtx);
 
-          /* Prevent any attempt to delete the setting of ZERO_REG!  */
-          emit_use (zero_reg_rtx);
-        }
+	  /* Prevent any attempt to delete the setting of ZERO_REG!  */
+	  emit_use (zero_reg_rtx);
+	}
 
       /* Push and clear RAMPD/X/Y/Z if present and low-part register is used.
-         ??? There are no dwarf2 columns reserved for RAMPD/X/Y/Z.  */
+	 ??? There are no dwarf2 columns reserved for RAMPD/X/Y/Z.  */
 
       if (AVR_HAVE_RAMPD)
-        emit_push_sfr (rampd_rtx, false /* frame */, true /* clr */, treg);
+	emit_push_sfr (rampd_rtx, false /* frame */, true /* clr */, treg);
 
       if (AVR_HAVE_RAMPX
-          && TEST_HARD_REG_BIT (set, REG_X)
-          && TEST_HARD_REG_BIT (set, REG_X + 1))
-        {
-          emit_push_sfr (rampx_rtx, false /* frame */, true /* clr */, treg);
-        }
+	  && TEST_HARD_REG_BIT (set, REG_X)
+	  && TEST_HARD_REG_BIT (set, REG_X + 1))
+	{
+	  emit_push_sfr (rampx_rtx, false /* frame */, true /* clr */, treg);
+	}
 
       if (AVR_HAVE_RAMPY
-          && (frame_pointer_needed
-              || (TEST_HARD_REG_BIT (set, REG_Y)
-                  && TEST_HARD_REG_BIT (set, REG_Y + 1))))
-        {
-          emit_push_sfr (rampy_rtx, false /* frame */, true /* clr */, treg);
-        }
+	  && (frame_pointer_needed
+	      || (TEST_HARD_REG_BIT (set, REG_Y)
+		  && TEST_HARD_REG_BIT (set, REG_Y + 1))))
+	{
+	  emit_push_sfr (rampy_rtx, false /* frame */, true /* clr */, treg);
+	}
 
       if (AVR_HAVE_RAMPZ
-          && TEST_HARD_REG_BIT (set, REG_Z)
-          && TEST_HARD_REG_BIT (set, REG_Z + 1))
-        {
-          emit_push_sfr (rampz_rtx, false /* frame */, AVR_HAVE_RAMPD, treg);
-        }
+	  && TEST_HARD_REG_BIT (set, REG_Z)
+	  && TEST_HARD_REG_BIT (set, REG_Z + 1))
+	{
+	  emit_push_sfr (rampz_rtx, false /* frame */, AVR_HAVE_RAMPD, treg);
+	}
     }  /* is_interrupt is_signal */
 
   avr_prologue_setup_frame (size, set);
@@ -2363,23 +2363,23 @@ avr_asm_function_end_prologue (FILE *file)
   else
     {
       if (cfun->machine->is_interrupt)
-        {
-          fputs ("/* prologue: Interrupt */\n", file);
-        }
+	{
+	  fputs ("/* prologue: Interrupt */\n", file);
+	}
       else if (cfun->machine->is_signal)
-        {
-          fputs ("/* prologue: Signal */\n", file);
-        }
+	{
+	  fputs ("/* prologue: Signal */\n", file);
+	}
       else
-        fputs ("/* prologue: function */\n", file);
+	fputs ("/* prologue: function */\n", file);
     }
 
   if (ACCUMULATE_OUTGOING_ARGS)
     fprintf (file, "/* outgoing args size = %d */\n",
-             avr_outgoing_args_size());
+	     avr_outgoing_args_size());
 
   fprintf (file, "/* frame size = " HOST_WIDE_INT_PRINT_DEC " */\n",
-           (HOST_WIDE_INT) get_frame_size());
+	   (HOST_WIDE_INT) get_frame_size());
 
   if (!cfun->machine->gasisr.yes)
     {
@@ -2452,29 +2452,29 @@ avr_expand_epilogue (bool sibcall_p)
   live_seq = sequent_regs_live ();
 
   minimize = (TARGET_CALL_PROLOGUES
-              && live_seq
-              && !isr_p
-              && !cfun->machine->is_OS_task
-              && !cfun->machine->is_OS_main
-              && !AVR_TINY);
+	      && live_seq
+	      && !isr_p
+	      && !cfun->machine->is_OS_task
+	      && !cfun->machine->is_OS_main
+	      && !AVR_TINY);
 
   if (minimize
       && (live_seq > 4
-          || frame_pointer_needed
-          || size))
+	  || frame_pointer_needed
+	  || size))
     {
       /*  Get rid of frame.  */
 
       if (!frame_pointer_needed)
-        {
-          emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
-        }
+	{
+	  emit_move_insn (frame_pointer_rtx, stack_pointer_rtx);
+	}
 
       if (size)
-        {
-          emit_move_insn (frame_pointer_rtx,
-                          plus_constant (Pmode, frame_pointer_rtx, size));
-        }
+	{
+	  emit_move_insn (frame_pointer_rtx,
+			  plus_constant (Pmode, frame_pointer_rtx, size));
+	}
 
       emit_insn (gen_epilogue_restores (gen_int_mode (live_seq, HImode)));
       return;
@@ -2490,26 +2490,26 @@ avr_expand_epilogue (bool sibcall_p)
       HOST_WIDE_INT size_max;
 
       gcc_assert (frame_pointer_needed
-                  || !isr_p
-                  || !crtl->is_leaf);
+		  || !isr_p
+		  || !crtl->is_leaf);
 
       fp = my_fp = (frame_pointer_needed
-                    ? frame_pointer_rtx
-                    : gen_rtx_REG (Pmode, REG_X));
+		    ? frame_pointer_rtx
+		    : gen_rtx_REG (Pmode, REG_X));
 
       if (AVR_HAVE_8BIT_SP)
-        {
-          /* The high byte (r29) does not change:
-             Prefer SUBI (1 cycle) over SBIW (2 cycles).  */
+	{
+	  /* The high byte (r29) does not change:
+	     Prefer SUBI (1 cycle) over SBIW (2 cycles).  */
 
-          my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
-        }
+	  my_fp = all_regs_rtx[FRAME_POINTER_REGNUM];
+	}
 
       /* For rationale see comment in prologue generation.  */
 
       size_max = (HOST_WIDE_INT) GET_MODE_MASK (GET_MODE (my_fp));
       if (size > size_max)
-        size = size_max;
+	size = size_max;
       size = trunc_int_for_mode (size, GET_MODE (my_fp));
 
       /********** Method 1: Adjust fp register  **********/
@@ -2517,20 +2517,20 @@ avr_expand_epilogue (bool sibcall_p)
       start_sequence ();
 
       if (!frame_pointer_needed)
-        emit_move_insn (fp, stack_pointer_rtx);
+	emit_move_insn (fp, stack_pointer_rtx);
 
       emit_move_insn (my_fp, plus_constant (GET_MODE (my_fp), my_fp, size));
 
       /* Copy to stack pointer.  */
 
       if (TARGET_NO_INTERRUPTS)
-        irq_state = 0;
+	irq_state = 0;
 
       if (AVR_HAVE_8BIT_SP)
-        irq_state = 2;
+	irq_state = 2;
 
       emit_insn (gen_movhi_sp_r (stack_pointer_rtx, fp,
-                                 GEN_INT (irq_state)));
+				 GEN_INT (irq_state)));
 
       fp_plus_insns = get_insns ();
       end_sequence ();
@@ -2538,33 +2538,33 @@ avr_expand_epilogue (bool sibcall_p)
       /********** Method 2: Adjust Stack pointer  **********/
 
       if (avr_sp_immediate_operand (gen_int_mode (size, HImode), HImode))
-        {
-          rtx_insn *sp_plus_insns;
+	{
+	  rtx_insn *sp_plus_insns;
 
-          start_sequence ();
+	  start_sequence ();
 
-          emit_move_insn (stack_pointer_rtx,
-                          plus_constant (Pmode, stack_pointer_rtx, size));
+	  emit_move_insn (stack_pointer_rtx,
+			  plus_constant (Pmode, stack_pointer_rtx, size));
 
-          sp_plus_insns = get_insns ();
-          end_sequence ();
+	  sp_plus_insns = get_insns ();
+	  end_sequence ();
 
-          /************ Use shortest method  ************/
+	  /************ Use shortest method  ************/
 
-          emit_insn (get_sequence_length (sp_plus_insns)
-                     < get_sequence_length (fp_plus_insns)
-                     ? sp_plus_insns
-                     : fp_plus_insns);
-        }
+	  emit_insn (get_sequence_length (sp_plus_insns)
+		     < get_sequence_length (fp_plus_insns)
+		     ? sp_plus_insns
+		     : fp_plus_insns);
+	}
       else
-        emit_insn (fp_plus_insns);
+	emit_insn (fp_plus_insns);
     } /* size != 0 */
 
   if (frame_pointer_needed
       && !(cfun->machine->is_OS_task || cfun->machine->is_OS_main))
     {
       /* Restore previous frame_pointer.  See avr_expand_prologue for
-         rationale for not using pophi.  */
+	 rationale for not using pophi.  */
 
       emit_pop_byte (REG_Y + 1);
       emit_pop_byte (REG_Y);
@@ -2588,58 +2588,58 @@ avr_expand_epilogue (bool sibcall_p)
   if (isr_p)
     {
       /* Restore RAMPZ/Y/X/D using tmp_reg as scratch.
-         The conditions to restore them must be tha same as in prologue.  */
+	 The conditions to restore them must be tha same as in prologue.  */
 
       if (AVR_HAVE_RAMPZ
-          && TEST_HARD_REG_BIT (set, REG_Z)
-          && TEST_HARD_REG_BIT (set, REG_Z + 1))
-        {
-          emit_pop_byte (treg);
-          emit_move_insn (rampz_rtx, all_regs_rtx[treg]);
-        }
+	  && TEST_HARD_REG_BIT (set, REG_Z)
+	  && TEST_HARD_REG_BIT (set, REG_Z + 1))
+	{
+	  emit_pop_byte (treg);
+	  emit_move_insn (rampz_rtx, all_regs_rtx[treg]);
+	}
 
       if (AVR_HAVE_RAMPY
-          && (frame_pointer_needed
-              || (TEST_HARD_REG_BIT (set, REG_Y)
-                  && TEST_HARD_REG_BIT (set, REG_Y + 1))))
-        {
-          emit_pop_byte (treg);
-          emit_move_insn (rampy_rtx, all_regs_rtx[treg]);
-        }
+	  && (frame_pointer_needed
+	      || (TEST_HARD_REG_BIT (set, REG_Y)
+		  && TEST_HARD_REG_BIT (set, REG_Y + 1))))
+	{
+	  emit_pop_byte (treg);
+	  emit_move_insn (rampy_rtx, all_regs_rtx[treg]);
+	}
 
       if (AVR_HAVE_RAMPX
-          && TEST_HARD_REG_BIT (set, REG_X)
-          && TEST_HARD_REG_BIT (set, REG_X + 1))
-        {
-          emit_pop_byte (treg);
-          emit_move_insn (rampx_rtx, all_regs_rtx[treg]);
-        }
+	  && TEST_HARD_REG_BIT (set, REG_X)
+	  && TEST_HARD_REG_BIT (set, REG_X + 1))
+	{
+	  emit_pop_byte (treg);
+	  emit_move_insn (rampx_rtx, all_regs_rtx[treg]);
+	}
 
       if (AVR_HAVE_RAMPD)
-        {
-          emit_pop_byte (treg);
-          emit_move_insn (rampd_rtx, all_regs_rtx[treg]);
-        }
+	{
+	  emit_pop_byte (treg);
+	  emit_move_insn (rampd_rtx, all_regs_rtx[treg]);
+	}
 
       if (cfun->machine->gasisr.yes)
-        {
-          // Emit an Epilogue chunk.
-          emit_insn (gen_gasisr (GEN_INT (GASISR_Epilogue),
-                                 GEN_INT (cfun->machine->gasisr.regno)));
-        }
+	{
+	  // Emit an Epilogue chunk.
+	  emit_insn (gen_gasisr (GEN_INT (GASISR_Epilogue),
+				 GEN_INT (cfun->machine->gasisr.regno)));
+	}
       else // !TARGET_GASISR_PROLOGUES
-        {
-          /* Restore SREG using tmp_reg as scratch.  */
+	{
+	  /* Restore SREG using tmp_reg as scratch.  */
 
-          emit_pop_byte (AVR_TMP_REGNO);
-          emit_move_insn (sreg_rtx, tmp_reg_rtx);
+	  emit_pop_byte (AVR_TMP_REGNO);
+	  emit_move_insn (sreg_rtx, tmp_reg_rtx);
 
-          /* Restore tmp REG.  */
-          emit_pop_byte (AVR_TMP_REGNO);
+	  /* Restore tmp REG.  */
+	  emit_pop_byte (AVR_TMP_REGNO);
 
-          /* Restore zero REG.  */
-          emit_pop_byte (AVR_ZERO_REGNO);
-        }
+	  /* Restore zero REG.  */
+	  emit_pop_byte (AVR_ZERO_REGNO);
+	}
     }
 
   if (!sibcall_p)
@@ -2718,13 +2718,13 @@ avr_address_tiny_absdata_p (rtx x, machine_mode mode)
 
 static inline bool
 avr_reg_ok_for_addr_p (rtx reg, addr_space_t as,
-                       RTX_CODE outer_code, bool strict)
+		       RTX_CODE outer_code, bool strict)
 {
   return (REG_P (reg)
-          && (avr_regno_mode_code_ok_for_base_p (REGNO (reg), QImode,
-                                                 as, outer_code, UNKNOWN)
-              || (!strict
-                  && REGNO (reg) >= FIRST_PSEUDO_REGISTER)));
+	  && (avr_regno_mode_code_ok_for_base_p (REGNO (reg), QImode,
+						 as, outer_code, UNKNOWN)
+	      || (!strict
+		  && REGNO (reg) >= FIRST_PSEUDO_REGISTER)));
 }
 
 
@@ -2740,51 +2740,51 @@ avr_legitimate_address_p (machine_mode mode, rtx x, bool strict)
     {
     case REG:
       ok = avr_reg_ok_for_addr_p (x, ADDR_SPACE_GENERIC,
-                                  MEM, strict);
+				  MEM, strict);
 
       if (strict
-          && GET_MODE_SIZE (mode) > 4
-          && REG_X == REGNO (x))
-        {
-          ok = false;
-        }
+	  && GET_MODE_SIZE (mode) > 4
+	  && REG_X == REGNO (x))
+	{
+	  ok = false;
+	}
       break;
 
     case POST_INC:
     case PRE_DEC:
       ok = avr_reg_ok_for_addr_p (XEXP (x, 0), ADDR_SPACE_GENERIC,
-                                  GET_CODE (x), strict);
+				  GET_CODE (x), strict);
       break;
 
     case PLUS:
       {
-        rtx reg = XEXP (x, 0);
-        rtx op1 = XEXP (x, 1);
-
-        if (REG_P (reg)
-            && CONST_INT_P (op1)
-            && INTVAL (op1) >= 0)
-          {
-            bool fit = IN_RANGE (INTVAL (op1), 0, MAX_LD_OFFSET (mode));
-
-            if (fit)
-              {
-                ok = (! strict
-                      || avr_reg_ok_for_addr_p (reg, ADDR_SPACE_GENERIC,
-                                                PLUS, strict));
-
-                if (reg == frame_pointer_rtx
-                    || reg == arg_pointer_rtx)
-                  {
-                    ok = true;
-                  }
-              }
-            else if (frame_pointer_needed
-                     && reg == frame_pointer_rtx)
-              {
-                ok = true;
-              }
-          }
+	rtx reg = XEXP (x, 0);
+	rtx op1 = XEXP (x, 1);
+
+	if (REG_P (reg)
+	    && CONST_INT_P (op1)
+	    && INTVAL (op1) >= 0)
+	  {
+	    bool fit = IN_RANGE (INTVAL (op1), 0, MAX_LD_OFFSET (mode));
+
+	    if (fit)
+	      {
+		ok = (! strict
+		      || avr_reg_ok_for_addr_p (reg, ADDR_SPACE_GENERIC,
+						PLUS, strict));
+
+		if (reg == frame_pointer_rtx
+		    || reg == arg_pointer_rtx)
+		  {
+		    ok = true;
+		  }
+	      }
+	    else if (frame_pointer_needed
+		     && reg == frame_pointer_rtx)
+	      {
+		ok = true;
+	      }
+	  }
       }
       break;
 
@@ -2796,7 +2796,7 @@ avr_legitimate_address_p (machine_mode mode, rtx x, bool strict)
       && CONSTANT_ADDRESS_P (x))
     {
       /* avrtiny's load / store instructions only cover addresses 0..0xbf:
-         IN / OUT range is 0..0x3f and LDS / STS can access 0x40..0xbf.  */
+	 IN / OUT range is 0..0x3f and LDS / STS can access 0x40..0xbf.  */
 
       ok = avr_address_tiny_absdata_p (x, mode);
     }
@@ -2804,19 +2804,19 @@ avr_legitimate_address_p (machine_mode mode, rtx x, bool strict)
   if (avr_log.legitimate_address_p)
     {
       avr_edump ("\n%?: ret=%d, mode=%m strict=%d "
-                 "reload_completed=%d reload_in_progress=%d %s:",
-                 ok, mode, strict, reload_completed, reload_in_progress,
-                 reg_renumber ? "(reg_renumber)" : "");
+		 "reload_completed=%d reload_in_progress=%d %s:",
+		 ok, mode, strict, reload_completed, reload_in_progress,
+		 reg_renumber ? "(reg_renumber)" : "");
 
       if (GET_CODE (x) == PLUS
-          && REG_P (XEXP (x, 0))
-          && CONST_INT_P (XEXP (x, 1))
-          && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
-          && reg_renumber)
-        {
-          avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
-                     true_regnum (XEXP (x, 0)));
-        }
+	  && REG_P (XEXP (x, 0))
+	  && CONST_INT_P (XEXP (x, 1))
+	  && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
+	  && reg_renumber)
+	{
+	  avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
+		     true_regnum (XEXP (x, 0)));
+	}
 
       avr_edump ("\n%r\n", x);
     }
@@ -2840,27 +2840,27 @@ avr_legitimize_address (rtx x, rtx oldx, machine_mode mode)
   if (AVR_TINY)
     {
       if (CONSTANT_ADDRESS_P (x)
-          && ! avr_address_tiny_absdata_p (x, mode))
-        {
-          x = force_reg (Pmode, x);
-        }
+	  && ! avr_address_tiny_absdata_p (x, mode))
+	{
+	  x = force_reg (Pmode, x);
+	}
     }
 
   if (GET_CODE (oldx) == PLUS
       && REG_P (XEXP (oldx, 0)))
     {
       if (REG_P (XEXP (oldx, 1)))
-        x = force_reg (GET_MODE (oldx), oldx);
+	x = force_reg (GET_MODE (oldx), oldx);
       else if (CONST_INT_P (XEXP (oldx, 1)))
-        {
-          int offs = INTVAL (XEXP (oldx, 1));
-          if (frame_pointer_rtx != XEXP (oldx, 0)
-              && offs > MAX_LD_OFFSET (mode))
-            {
-              big_offset_p = true;
-              x = force_reg (GET_MODE (oldx), oldx);
-            }
-        }
+	{
+	  int offs = INTVAL (XEXP (oldx, 1));
+	  if (frame_pointer_rtx != XEXP (oldx, 0)
+	      && offs > MAX_LD_OFFSET (mode))
+	    {
+	      big_offset_p = true;
+	      x = force_reg (GET_MODE (oldx), oldx);
+	    }
+	}
     }
 
   if (avr_log.legitimize_address)
@@ -2868,7 +2868,7 @@ avr_legitimize_address (rtx x, rtx oldx, machine_mode mode)
       avr_edump ("\n%?: mode=%m\n %r\n", mode, oldx);
 
       if (x != oldx)
-        avr_edump (" %s --> %r\n", big_offset_p ? "(big offset)" : "", x);
+	avr_edump (" %s --> %r\n", big_offset_p ? "(big offset)" : "", x);
     }
 
   return x;
@@ -2882,9 +2882,9 @@ avr_legitimize_address (rtx x, rtx oldx, machine_mode mode)
 
 rtx
 avr_legitimize_reload_address (rtx *px, machine_mode mode,
-                               int opnum, int type, int addr_type,
-                               int ind_levels ATTRIBUTE_UNUSED,
-                               rtx (*mk_memloc)(rtx,int))
+			       int opnum, int type, int addr_type,
+			       int ind_levels ATTRIBUTE_UNUSED,
+			       rtx (*mk_memloc)(rtx,int))
 {
   rtx x = *px;
 
@@ -2892,15 +2892,15 @@ avr_legitimize_reload_address (rtx *px, machine_mode mode,
     avr_edump ("\n%?:%m %r\n", mode, x);
 
   if (1 && (GET_CODE (x) == POST_INC
-            || GET_CODE (x) == PRE_DEC))
+	    || GET_CODE (x) == PRE_DEC))
     {
       push_reload (XEXP (x, 0), XEXP (x, 0), &XEXP (x, 0), &XEXP (x, 0),
-                   POINTER_REGS, GET_MODE (x), GET_MODE (x), 0, 0,
-                   opnum, RELOAD_OTHER);
+		   POINTER_REGS, GET_MODE (x), GET_MODE (x), 0, 0,
+		   opnum, RELOAD_OTHER);
 
       if (avr_log.legitimize_reload_address)
-        avr_edump (" RCLASS.1 = %R\n IN = %r\n OUT = %r\n",
-                   POINTER_REGS, XEXP (x, 0), XEXP (x, 0));
+	avr_edump (" RCLASS.1 = %R\n IN = %r\n OUT = %r\n",
+		   POINTER_REGS, XEXP (x, 0), XEXP (x, 0));
 
       return x;
     }
@@ -2914,44 +2914,44 @@ avr_legitimize_reload_address (rtx *px, machine_mode mode,
       bool fit = INTVAL (XEXP (x, 1)) <= MAX_LD_OFFSET (mode);
 
       if (fit)
-        {
-          if (reg_equiv_address (REGNO (XEXP (x, 0))) != 0)
-            {
-              int regno = REGNO (XEXP (x, 0));
-              rtx mem = mk_memloc (x, regno);
-
-              push_reload (XEXP (mem, 0), NULL_RTX, &XEXP (mem, 0), NULL,
-                           POINTER_REGS, Pmode, VOIDmode, 0, 0,
-                           1, (enum reload_type) addr_type);
-
-              if (avr_log.legitimize_reload_address)
-                avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
-                           POINTER_REGS, XEXP (mem, 0), NULL_RTX);
-
-              push_reload (mem, NULL_RTX, &XEXP (x, 0), NULL,
-                           BASE_POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
-                           opnum, (enum reload_type) type);
-
-              if (avr_log.legitimize_reload_address)
-                avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
-                           BASE_POINTER_REGS, mem, NULL_RTX);
-
-              return x;
-            }
-        }
+	{
+	  if (reg_equiv_address (REGNO (XEXP (x, 0))) != 0)
+	    {
+	      int regno = REGNO (XEXP (x, 0));
+	      rtx mem = mk_memloc (x, regno);
+
+	      push_reload (XEXP (mem, 0), NULL_RTX, &XEXP (mem, 0), NULL,
+			   POINTER_REGS, Pmode, VOIDmode, 0, 0,
+			   1, (enum reload_type) addr_type);
+
+	      if (avr_log.legitimize_reload_address)
+		avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
+			   POINTER_REGS, XEXP (mem, 0), NULL_RTX);
+
+	      push_reload (mem, NULL_RTX, &XEXP (x, 0), NULL,
+			   BASE_POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
+			   opnum, (enum reload_type) type);
+
+	      if (avr_log.legitimize_reload_address)
+		avr_edump (" RCLASS.2 = %R\n IN = %r\n OUT = %r\n",
+			   BASE_POINTER_REGS, mem, NULL_RTX);
+
+	      return x;
+	    }
+	}
       else if (! (frame_pointer_needed
-                  && XEXP (x, 0) == frame_pointer_rtx))
-        {
-          push_reload (x, NULL_RTX, px, NULL,
-                       POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
-                       opnum, (enum reload_type) type);
+		  && XEXP (x, 0) == frame_pointer_rtx))
+	{
+	  push_reload (x, NULL_RTX, px, NULL,
+		       POINTER_REGS, GET_MODE (x), VOIDmode, 0, 0,
+		       opnum, (enum reload_type) type);
 
-          if (avr_log.legitimize_reload_address)
-            avr_edump (" RCLASS.3 = %R\n IN = %r\n OUT = %r\n",
-                       POINTER_REGS, x, NULL_RTX);
+	  if (avr_log.legitimize_reload_address)
+	    avr_edump (" RCLASS.3 = %R\n IN = %r\n OUT = %r\n",
+		       POINTER_REGS, x, NULL_RTX);
 
-          return x;
-        }
+	  return x;
+	}
     }
 
   return NULL_RTX;
@@ -2971,17 +2971,17 @@ avr_legitimize_reload_address (rtx *px, machine_mode mode,
        Don't output anything.
 */
 
-static const char*
-avr_asm_len (const char* tpl, rtx* operands, int* plen, int n_words)
+static const char *
+avr_asm_len (const char *tpl, rtx *operands, int *plen, int n_words)
 {
   if (plen == NULL)
     output_asm_insn (tpl, operands);
   else
     {
       if (n_words < 0)
-        *plen = -n_words;
+	*plen = -n_words;
       else
-        *plen += n_words;
+	*plen += n_words;
     }
 
   return "";
@@ -2990,7 +2990,7 @@ avr_asm_len (const char* tpl, rtx* operands, int* plen, int n_words)
 
 /* Return a pointer register name as a string.  */
 
-static const char*
+static const char *
 ptrreg_to_str (int regno)
 {
   switch (regno)
@@ -3000,7 +3000,7 @@ ptrreg_to_str (int regno)
     case REG_Z: return "Z";
     default:
       output_operand_lossage ("address operand requires constraint for"
-                              " X, Y, or Z register");
+			      " X, Y, or Z register");
     }
   return NULL;
 }
@@ -3008,7 +3008,7 @@ ptrreg_to_str (int regno)
 /* Return the condition name as a string.
    Used in conditional jump constructing  */
 
-static const char*
+static const char *
 cond_string (enum rtx_code code)
 {
   bool cc_overflow_unusable = false;
@@ -3021,14 +3021,14 @@ cond_string (enum rtx_code code)
       return "eq";
     case GE:
       if (cc_overflow_unusable)
-        return "pl";
+	return "pl";
       else
-        return "ge";
+	return "ge";
     case LT:
       if (cc_overflow_unusable)
-        return "mi";
+	return "mi";
       else
-        return "lt";
+	return "lt";
     case GEU:
       return "sh";
     case LTU:
@@ -3086,40 +3086,40 @@ avr_print_operand_address (FILE *file, machine_mode /*mode*/, rtx addr)
 
     default:
       if (CONSTANT_ADDRESS_P (addr)
-          && text_segment_operand (addr, VOIDmode))
-        {
-          rtx x = addr;
-          if (GET_CODE (x) == CONST)
-            x = XEXP (x, 0);
-          if (GET_CODE (x) == PLUS && CONST_INT_P (XEXP (x, 1)))
-            {
-              /* Assembler gs() will implant word address.  Make offset
-                 a byte offset inside gs() for assembler.  This is
-                 needed because the more logical (constant+gs(sym)) is not
-                 accepted by gas.  For 128K and smaller devices this is ok.
-                 For large devices it will create a trampoline to offset
-                 from symbol which may not be what the user really wanted.  */
-
-              fprintf (file, "gs(");
-              output_addr_const (file, XEXP (x, 0));
-              fprintf (file, "+" HOST_WIDE_INT_PRINT_DEC ")",
-                       2 * INTVAL (XEXP (x, 1)));
-              if (AVR_3_BYTE_PC)
-                if (warning (0, "pointer offset from symbol maybe incorrect"))
-                  {
-                    output_addr_const (stderr, addr);
-                    fprintf (stderr, "\n");
-                  }
-            }
-          else
-            {
-              fprintf (file, "gs(");
-              output_addr_const (file, addr);
-              fprintf (file, ")");
-            }
-        }
+	  && text_segment_operand (addr, VOIDmode))
+	{
+	  rtx x = addr;
+	  if (GET_CODE (x) == CONST)
+	    x = XEXP (x, 0);
+	  if (GET_CODE (x) == PLUS && CONST_INT_P (XEXP (x, 1)))
+	    {
+	      /* Assembler gs() will implant word address.  Make offset
+		 a byte offset inside gs() for assembler.  This is
+		 needed because the more logical (constant+gs(sym)) is not
+		 accepted by gas.  For 128K and smaller devices this is ok.
+		 For large devices it will create a trampoline to offset
+		 from symbol which may not be what the user really wanted.  */
+
+	      fprintf (file, "gs(");
+	      output_addr_const (file, XEXP (x, 0));
+	      fprintf (file, "+" HOST_WIDE_INT_PRINT_DEC ")",
+		       2 * INTVAL (XEXP (x, 1)));
+	      if (AVR_3_BYTE_PC)
+		if (warning (0, "pointer offset from symbol maybe incorrect"))
+		  {
+		    output_addr_const (stderr, addr);
+		    fprintf (stderr, "\n");
+		  }
+	    }
+	  else
+	    {
+	      fprintf (file, "gs(");
+	      output_addr_const (file, addr);
+	      fprintf (file, ")");
+	    }
+	}
       else
-        output_addr_const (file, addr);
+	output_addr_const (file, addr);
     }
 }
 
@@ -3152,37 +3152,37 @@ avr_print_operand (FILE *file, rtx x, int code)
   if (code == '~')
     {
       if (!AVR_HAVE_JMP_CALL)
-        fputc ('r', file);
+	fputc ('r', file);
     }
   else if (code == '!')
     {
       if (AVR_HAVE_EIJMP_EICALL)
-        fputc ('e', file);
+	fputc ('e', file);
     }
   else if (code == 't'
-           || code == 'T')
+	   || code == 'T')
     {
       static int t_regno = -1;
       static int t_nbits = -1;
 
       if (REG_P (x) && t_regno < 0 && code == 'T')
-        {
-          t_regno = REGNO (x);
-          t_nbits = GET_MODE_BITSIZE (GET_MODE (x));
-        }
+	{
+	  t_regno = REGNO (x);
+	  t_nbits = GET_MODE_BITSIZE (GET_MODE (x));
+	}
       else if (CONST_INT_P (x) && t_regno >= 0
-               && IN_RANGE (INTVAL (x), 0, t_nbits - 1))
-        {
-          int bpos = INTVAL (x);
+	       && IN_RANGE (INTVAL (x), 0, t_nbits - 1))
+	{
+	  int bpos = INTVAL (x);
 
-          fprintf (file, "%s", reg_names[t_regno + bpos / 8]);
-          if (code == 'T')
-            fprintf (file, ",%d", bpos % 8);
+	  fprintf (file, "%s", reg_names[t_regno + bpos / 8]);
+	  if (code == 'T')
+	    fprintf (file, ",%d", bpos % 8);
 
-          t_regno = -1;
-        }
+	  t_regno = -1;
+	}
       else
-        fatal_insn ("operands to %T/%t must be reg + const_int:", x);
+	fatal_insn ("operands to %T/%t must be reg + const_int:", x);
     }
   else if (code == 'E' || code == 'F')
     {
@@ -3197,101 +3197,101 @@ avr_print_operand (FILE *file, rtx x, int code)
   else if (REG_P (x))
     {
       if (x == zero_reg_rtx)
-        fprintf (file, "__zero_reg__");
+	fprintf (file, "__zero_reg__");
       else if (code == 'r' && REGNO (x) < 32)
-        fprintf (file, "%d", (int) REGNO (x));
+	fprintf (file, "%d", (int) REGNO (x));
       else
-        fprintf (file, "%s", reg_names[REGNO (x) + abcd]);
+	fprintf (file, "%s", reg_names[REGNO (x) + abcd]);
     }
   else if (CONST_INT_P (x))
     {
       HOST_WIDE_INT ival = INTVAL (x);
 
       if ('i' != code)
-        fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival + abcd);
+	fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival + abcd);
       else if (low_io_address_operand (x, VOIDmode)
-               || high_io_address_operand (x, VOIDmode))
-        {
-          if (AVR_HAVE_RAMPZ && ival == avr_addr.rampz)
-            fprintf (file, "__RAMPZ__");
-          else if (AVR_HAVE_RAMPY && ival == avr_addr.rampy)
-            fprintf (file, "__RAMPY__");
-          else if (AVR_HAVE_RAMPX && ival == avr_addr.rampx)
-            fprintf (file, "__RAMPX__");
-          else if (AVR_HAVE_RAMPD && ival == avr_addr.rampd)
-            fprintf (file, "__RAMPD__");
-          else if ((AVR_XMEGA || AVR_TINY) && ival == avr_addr.ccp)
-            fprintf (file, "__CCP__");
-          else if (ival == avr_addr.sreg)   fprintf (file, "__SREG__");
-          else if (ival == avr_addr.sp_l)   fprintf (file, "__SP_L__");
-          else if (ival == avr_addr.sp_h)   fprintf (file, "__SP_H__");
-          else
-            {
-              fprintf (file, HOST_WIDE_INT_PRINT_HEX,
-                       ival - avr_arch->sfr_offset);
-            }
-        }
+	       || high_io_address_operand (x, VOIDmode))
+	{
+	  if (AVR_HAVE_RAMPZ && ival == avr_addr.rampz)
+	    fprintf (file, "__RAMPZ__");
+	  else if (AVR_HAVE_RAMPY && ival == avr_addr.rampy)
+	    fprintf (file, "__RAMPY__");
+	  else if (AVR_HAVE_RAMPX && ival == avr_addr.rampx)
+	    fprintf (file, "__RAMPX__");
+	  else if (AVR_HAVE_RAMPD && ival == avr_addr.rampd)
+	    fprintf (file, "__RAMPD__");
+	  else if ((AVR_XMEGA || AVR_TINY) && ival == avr_addr.ccp)
+	    fprintf (file, "__CCP__");
+	  else if (ival == avr_addr.sreg)   fprintf (file, "__SREG__");
+	  else if (ival == avr_addr.sp_l)   fprintf (file, "__SP_L__");
+	  else if (ival == avr_addr.sp_h)   fprintf (file, "__SP_H__");
+	  else
+	    {
+	      fprintf (file, HOST_WIDE_INT_PRINT_HEX,
+		       ival - avr_arch->sfr_offset);
+	    }
+	}
       else
-        fatal_insn ("bad address, not an I/O address:", x);
+	fatal_insn ("bad address, not an I/O address:", x);
     }
   else if (MEM_P (x))
     {
       rtx addr = XEXP (x, 0);
 
       if (code == 'm')
-        {
-          if (!CONSTANT_P (addr))
-            fatal_insn ("bad address, not a constant:", addr);
-          /* Assembler template with m-code is data - not progmem section */
-          if (text_segment_operand (addr, VOIDmode))
-            if (warning (0, "accessing data memory with"
-                         " program memory address"))
-              {
-                output_addr_const (stderr, addr);
-                fprintf(stderr,"\n");
-              }
-          output_addr_const (file, addr);
-        }
+	{
+	  if (!CONSTANT_P (addr))
+	    fatal_insn ("bad address, not a constant:", addr);
+	  /* Assembler template with m-code is data - not progmem section */
+	  if (text_segment_operand (addr, VOIDmode))
+	    if (warning (0, "accessing data memory with"
+			 " program memory address"))
+	      {
+		output_addr_const (stderr, addr);
+		fprintf(stderr,"\n");
+	      }
+	  output_addr_const (file, addr);
+	}
       else if (code == 'i')
-        {
-          avr_print_operand (file, addr, 'i');
-        }
+	{
+	  avr_print_operand (file, addr, 'i');
+	}
       else if (code == 'o')
-        {
-          if (GET_CODE (addr) != PLUS)
-            fatal_insn ("bad address, not (reg+disp):", addr);
+	{
+	  if (GET_CODE (addr) != PLUS)
+	    fatal_insn ("bad address, not (reg+disp):", addr);
 
-          avr_print_operand (file, XEXP (addr, 1), 0);
-        }
+	  avr_print_operand (file, XEXP (addr, 1), 0);
+	}
       else if (code == 'b')
-        {
-          if (GET_CODE (addr) != PLUS)
-            fatal_insn ("bad address, not (reg+disp):", addr);
+	{
+	  if (GET_CODE (addr) != PLUS)
+	    fatal_insn ("bad address, not (reg+disp):", addr);
 
-          avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
-        }
+	  avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
+	}
       else if (code == 'p' || code == 'r')
-        {
-          if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC)
-            fatal_insn ("bad address, not post_inc or pre_dec:", addr);
-
-          if (code == 'p')
-            /* X, Y, Z */
-            avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
-          else
-            avr_print_operand (file, XEXP (addr, 0), 0);  /* r26, r28, r30 */
-        }
+	{
+	  if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC)
+	    fatal_insn ("bad address, not post_inc or pre_dec:", addr);
+
+	  if (code == 'p')
+	    /* X, Y, Z */
+	    avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
+	  else
+	    avr_print_operand (file, XEXP (addr, 0), 0);  /* r26, r28, r30 */
+	}
       else if (GET_CODE (addr) == PLUS)
-        {
-          avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
-          if (REGNO (XEXP (addr, 0)) == REG_X)
-            fatal_insn ("internal compiler error.  Bad address:"
-                        ,addr);
-          fputc ('+', file);
-          avr_print_operand (file, XEXP (addr, 1), code);
-        }
+	{
+	  avr_print_operand_address (file, VOIDmode, XEXP (addr, 0));
+	  if (REGNO (XEXP (addr, 0)) == REG_X)
+	    fatal_insn ("internal compiler error.  Bad address:"
+			,addr);
+	  fputc ('+', file);
+	  avr_print_operand (file, XEXP (addr, 1), code);
+	}
       else
-        avr_print_operand_address (file, VOIDmode, addr);
+	avr_print_operand_address (file, VOIDmode, addr);
     }
   else if (code == 'i')
     {
@@ -3305,12 +3305,12 @@ avr_print_operand (FILE *file, rtx x, int code)
     {
       /* Constant progmem address - like used in jmp or call */
       if (text_segment_operand (x, VOIDmode) == 0)
-        if (warning (0, "accessing program memory"
-                     " with data memory address"))
-          {
-            output_addr_const (stderr, x);
-            fprintf(stderr,"\n");
-          }
+	if (warning (0, "accessing program memory"
+		     " with data memory address"))
+	  {
+	    output_addr_const (stderr, x);
+	    fprintf(stderr,"\n");
+	  }
       /* Use normal symbol for direct address no linker trampoline needed */
       output_addr_const (file, x);
     }
@@ -3318,15 +3318,15 @@ avr_print_operand (FILE *file, rtx x, int code)
     {
       HOST_WIDE_INT ival = INTVAL (avr_to_int_mode (x));
       if (code != 0)
-        output_operand_lossage ("Unsupported code '%c' for fixed-point:",
-                                code);
+	output_operand_lossage ("Unsupported code '%c' for fixed-point:",
+				code);
       fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival);
     }
   else if (CONST_DOUBLE_P (x))
     {
       long val;
       if (GET_MODE (x) != SFmode)
-        fatal_insn ("internal compiler error.  Unknown mode:", x);
+	fatal_insn ("internal compiler error.  Unknown mode:", x);
       REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (x), val);
       fprintf (file, "0x%lx", val);
     }
@@ -3350,9 +3350,9 @@ avr_print_operand (FILE *file, rtx x, int code)
 
 static bool
 avr_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size,
-                                    unsigned int align ATTRIBUTE_UNUSED,
-                                    enum by_pieces_operation op,
-                                    bool speed_p)
+				    unsigned int align ATTRIBUTE_UNUSED,
+				    enum by_pieces_operation op,
+				    bool speed_p)
 {
   if (op != MOVE_BY_PIECES
       || (speed_p && size > MOVE_MAX_PIECES))
@@ -3370,7 +3370,7 @@ int
 avr_jump_mode (rtx x, rtx_insn *insn)
 {
   int dest_addr = INSN_ADDRESSES (INSN_UID (GET_CODE (x) == LABEL_REF
-                                            ? XEXP (x, 0) : x));
+					    ? XEXP (x, 0) : x));
   int cur_addr = INSN_ADDRESSES (INSN_UID (insn));
   int jump_distance = cur_addr - dest_addr;
 
@@ -3389,7 +3389,7 @@ avr_jump_mode (rtx x, rtx_insn *insn)
    LEN is a number returned by avr_jump_mode function.
    If REVERSE nonzero then condition code in X must be reversed.  */
 
-const char*
+const char *
 ret_cond_branch (rtx x, int len, int reverse)
 {
   RTX_CODE cond = reverse ? reverse_condition (GET_CODE (x)) : GET_CODE (x);
@@ -3419,13 +3419,13 @@ ret_cond_branch (rtx x, int len, int reverse)
 		 "jmp %0"));
     case GTU:
       return (len == 1 ? ("breq .+2" CR_TAB
-                          "brsh %0") :
-              len == 2 ? ("breq .+4" CR_TAB
-                          "brlo .+2" CR_TAB
-                          "rjmp %0") :
-              ("breq .+6" CR_TAB
-               "brlo .+4" CR_TAB
-               "jmp %0"));
+			  "brsh %0") :
+	      len == 2 ? ("breq .+4" CR_TAB
+			  "brlo .+2" CR_TAB
+			  "rjmp %0") :
+	      ("breq .+6" CR_TAB
+	       "brlo .+4" CR_TAB
+	       "jmp %0"));
     case LE:
       if (cc_overflow_unusable)
 	return (len == 1 ? ("breq %0" CR_TAB
@@ -3447,12 +3447,12 @@ ret_cond_branch (rtx x, int len, int reverse)
 		 "jmp %0"));
     case LEU:
       return (len == 1 ? ("breq %0" CR_TAB
-                          "brlo %0") :
-              len == 2 ? ("breq .+2" CR_TAB
-                          "brsh .+2" CR_TAB
+			  "brlo %0") :
+	      len == 2 ? ("breq .+2" CR_TAB
+			  "brsh .+2" CR_TAB
 			  "rjmp %0") :
-              ("breq .+2" CR_TAB
-               "brsh .+4" CR_TAB
+	      ("breq .+2" CR_TAB
+	       "brsh .+4" CR_TAB
 	       "jmp %0"));
     default:
       if (reverse)
@@ -3470,19 +3470,19 @@ ret_cond_branch (rtx x, int len, int reverse)
 	    }
 	}
       else
-        {
-          switch (len)
-            {
-            case 1:
-              return "br%j1 %0";
-            case 2:
-              return ("br%k1 .+2" CR_TAB
-                      "rjmp %0");
-            default:
-              return ("br%k1 .+4" CR_TAB
-                      "jmp %0");
-            }
-        }
+	{
+	  switch (len)
+	    {
+	    case 1:
+	      return "br%j1 %0";
+	    case 2:
+	      return ("br%k1 .+2" CR_TAB
+		      "rjmp %0");
+	    default:
+	      return ("br%k1 .+4" CR_TAB
+		      "jmp %0");
+	    }
+	}
     }
   return "";
 }
@@ -3493,25 +3493,25 @@ ret_cond_branch (rtx x, int len, int reverse)
 
 void
 avr_final_prescan_insn (rtx_insn *insn, rtx *operand ATTRIBUTE_UNUSED,
-                        int num_operands ATTRIBUTE_UNUSED)
+			int num_operands ATTRIBUTE_UNUSED)
 {
   if (avr_log.rtx_costs)
     {
       rtx set = single_set (insn);
 
       if (set)
-        fprintf (asm_out_file, "/* DEBUG: cost = %d.  */\n",
-                 set_src_cost (SET_SRC (set), GET_MODE (SET_DEST (set)),
+	fprintf (asm_out_file, "/* DEBUG: cost = %d.  */\n",
+		 set_src_cost (SET_SRC (set), GET_MODE (SET_DEST (set)),
 			       optimize_insn_for_speed_p ()));
       else
-        fprintf (asm_out_file, "/* DEBUG: pattern-cost = %d.  */\n",
-                 rtx_cost (PATTERN (insn), VOIDmode, INSN, 0,
-                           optimize_insn_for_speed_p()));
+	fprintf (asm_out_file, "/* DEBUG: pattern-cost = %d.  */\n",
+		 rtx_cost (PATTERN (insn), VOIDmode, INSN, 0,
+			   optimize_insn_for_speed_p()));
     }
 
   if (avr_log.insn_addresses)
     fprintf (asm_out_file, ";; ADDR = %d\n",
-             (int) INSN_ADDRESSES (INSN_UID (insn)));
+	     (int) INSN_ADDRESSES (INSN_UID (insn)));
 }
 
 
@@ -3521,14 +3521,14 @@ avr_final_prescan_insn (rtx_insn *insn, rtx *operand ATTRIBUTE_UNUSED,
    after the last epilogue.  */
 
 static void
-avr_asm_final_postscan_insn (FILE *stream, rtx_insn *insn, rtx*, int)
+avr_asm_final_postscan_insn (FILE *stream, rtx_insn *insn, rtx *, int)
 {
   if (cfun->machine->gasisr.yes
       && !next_real_insn (insn))
     {
       app_disable();
       fprintf (stream, "\t__gcc_isr %d,r%d\n", GASISR_Done,
-               cfun->machine->gasisr.regno);
+	       cfun->machine->gasisr.regno);
     }
 }
 
@@ -3550,7 +3550,7 @@ avr_function_arg_regno_p (int r)
 
 void
 avr_init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, rtx libname,
-                          tree fndecl ATTRIBUTE_UNUSED)
+			  tree fndecl ATTRIBUTE_UNUSED)
 {
   cum->nregs = AVR_TINY ? 6 : 18;
   cum->regno = FIRST_CUM_REG;
@@ -3622,10 +3622,10 @@ avr_function_arg_advance (cumulative_args_t cum_v,
       && !call_used_or_fixed_reg_p (cum->regno))
     {
       /* FIXME: We ship info on failing tail-call in struct machine_function.
-         This uses internals of calls.cc:expand_call() and the way args_so_far
-         is used.  targetm.function_ok_for_sibcall() needs to be extended to
-         pass &args_so_far, too.  At present, CUMULATIVE_ARGS is target
-         dependent so that such an extension is not wanted.  */
+	 This uses internals of calls.cc:expand_call() and the way args_so_far
+	 is used.  targetm.function_ok_for_sibcall() needs to be extended to
+	 pass &args_so_far, too.  At present, CUMULATIVE_ARGS is target
+	 dependent so that such an extension is not wanted.  */
 
       cfun->machine->sibcall_fails = 1;
     }
@@ -3638,9 +3638,9 @@ avr_function_arg_advance (cumulative_args_t cum_v,
       && cum->nregs >= 0)
     {
       for (int regno = cum->regno; regno < cum->regno + bytes; regno++)
-        if (fixed_regs[regno])
-          warning (0, "fixed register %s used to pass parameter to function",
-                   reg_names[regno]);
+	if (fixed_regs[regno])
+	  warning (0, "fixed register %s used to pass parameter to function",
+		   reg_names[regno]);
     }
 
   if (cum->nregs <= 0)
@@ -3683,10 +3683,10 @@ avr_function_ok_for_sibcall (tree decl_callee, tree exp_callee)
       decl_callee = fntype_callee;
 
       while (FUNCTION_TYPE != TREE_CODE (decl_callee)
-             && METHOD_TYPE != TREE_CODE (decl_callee))
-        {
-          decl_callee = TREE_TYPE (decl_callee);
-        }
+	     && METHOD_TYPE != TREE_CODE (decl_callee))
+	{
+	  decl_callee = TREE_TYPE (decl_callee);
+	}
     }
 
   /* Ensure that caller and callee have compatible epilogues */
@@ -3716,8 +3716,8 @@ avr_load_libgcc_p (rtx op)
   int n_bytes = GET_MODE_SIZE (mode);
 
   return (n_bytes > 2
-          && !AVR_HAVE_LPMX
-          && avr_mem_flash_p (op));
+	  && !AVR_HAVE_LPMX
+	  && avr_mem_flash_p (op));
 }
 
 /* Return true if a value of mode MODE is read by __xload_* function.  */
@@ -3728,7 +3728,7 @@ avr_xload_libgcc_p (machine_mode mode)
   int n_bytes = GET_MODE_SIZE (mode);
 
   return (n_bytes > 1
-          || avr_n_flash > 1);
+	  || avr_n_flash > 1);
 }
 
 
@@ -3747,38 +3747,38 @@ static rtx
 avr_find_unused_d_reg (rtx_insn *insn, rtx exclude)
 {
   bool isr_p = (avr_interrupt_function_p (current_function_decl)
-                || avr_signal_function_p (current_function_decl));
+		|| avr_signal_function_p (current_function_decl));
 
   for (int regno = 16; regno < 32; regno++)
     {
       rtx reg = all_regs_rtx[regno];
 
       if ((exclude
-           && reg_overlap_mentioned_p (exclude, reg))
-          || fixed_regs[regno])
-        {
-          continue;
-        }
+	   && reg_overlap_mentioned_p (exclude, reg))
+	  || fixed_regs[regno])
+	{
+	  continue;
+	}
 
       /* Try non-live register */
 
       if (!df_regs_ever_live_p (regno)
-          && (TREE_THIS_VOLATILE (current_function_decl)
-              || cfun->machine->is_OS_task
-              || cfun->machine->is_OS_main
-              || (!isr_p && call_used_or_fixed_reg_p (regno))))
-        {
-          return reg;
-        }
+	  && (TREE_THIS_VOLATILE (current_function_decl)
+	      || cfun->machine->is_OS_task
+	      || cfun->machine->is_OS_main
+	      || (!isr_p && call_used_or_fixed_reg_p (regno))))
+	{
+	  return reg;
+	}
 
       /* Any live register can be used if it is unused after.
-         Prologue/epilogue will care for it as needed.  */
+	 Prologue/epilogue will care for it as needed.  */
 
       if (df_regs_ever_live_p (regno)
-          && reg_unused_after (insn, reg))
-        {
-          return reg;
-        }
+	  && reg_unused_after (insn, reg))
+	{
+	  return reg;
+	}
     }
 
   return NULL_RTX;
@@ -3788,7 +3788,7 @@ avr_find_unused_d_reg (rtx_insn *insn, rtx exclude)
 /* Helper function for the next function in the case where only restricted
    version of LPM instruction is available.  */
 
-static const char*
+static const char *
 avr_out_lpm_no_lpmx (rtx_insn *insn, rtx *xop, int *plen)
 {
   rtx dest = xop[0];
@@ -3811,68 +3811,68 @@ avr_out_lpm_no_lpmx (rtx_insn *insn, rtx *xop, int *plen)
       gcc_assert (REG_Z == REGNO (addr));
 
       switch (n_bytes)
-        {
-        default:
-          gcc_unreachable();
-
-        case 1:
-          avr_asm_len ("%4lpm", xop, plen, 1);
-
-          if (regno_dest != LPM_REGNO)
-            avr_asm_len ("mov %0,%3", xop, plen, 1);
-
-          return "";
+	{
+	default:
+	  gcc_unreachable();
 
-        case 2:
-          if (REGNO (dest) == REG_Z)
-            return avr_asm_len ("%4lpm"      CR_TAB
-                                "push %3"    CR_TAB
-                                "adiw %2,1"  CR_TAB
-                                "%4lpm"      CR_TAB
-                                "mov %B0,%3" CR_TAB
-                                "pop %A0", xop, plen, 6);
+	case 1:
+	  avr_asm_len ("%4lpm", xop, plen, 1);
 
-          avr_asm_len ("%4lpm"      CR_TAB
-                       "mov %A0,%3" CR_TAB
-                       "adiw %2,1"  CR_TAB
-                       "%4lpm"      CR_TAB
-                       "mov %B0,%3", xop, plen, 5);
+	  if (regno_dest != LPM_REGNO)
+	    avr_asm_len ("mov %0,%3", xop, plen, 1);
 
-          if (!reg_unused_after (insn, addr))
-            avr_asm_len ("sbiw %2,1", xop, plen, 1);
+	  return "";
 
-          break; /* 2 */
-        }
+	case 2:
+	  if (REGNO (dest) == REG_Z)
+	    return avr_asm_len ("%4lpm"      CR_TAB
+				"push %3"    CR_TAB
+				"adiw %2,1"  CR_TAB
+				"%4lpm"      CR_TAB
+				"mov %B0,%3" CR_TAB
+				"pop %A0", xop, plen, 6);
+
+	  avr_asm_len ("%4lpm"      CR_TAB
+		       "mov %A0,%3" CR_TAB
+		       "adiw %2,1"  CR_TAB
+		       "%4lpm"      CR_TAB
+		       "mov %B0,%3", xop, plen, 5);
+
+	  if (!reg_unused_after (insn, addr))
+	    avr_asm_len ("sbiw %2,1", xop, plen, 1);
+
+	  break; /* 2 */
+	}
 
       break; /* REG */
 
     case POST_INC:
 
       gcc_assert (REG_Z == REGNO (XEXP (addr, 0))
-                  && n_bytes <= 4);
+		  && n_bytes <= 4);
 
       if (regno_dest == LPM_REGNO)
-        avr_asm_len ("%4lpm"      CR_TAB
-                     "adiw %2,1", xop, plen, 2);
+	avr_asm_len ("%4lpm"      CR_TAB
+		     "adiw %2,1", xop, plen, 2);
       else
-        avr_asm_len ("%4lpm"      CR_TAB
-                     "mov %A0,%3" CR_TAB
-                     "adiw %2,1", xop, plen, 3);
+	avr_asm_len ("%4lpm"      CR_TAB
+		     "mov %A0,%3" CR_TAB
+		     "adiw %2,1", xop, plen, 3);
 
       if (n_bytes >= 2)
-        avr_asm_len ("%4lpm"      CR_TAB
-                     "mov %B0,%3" CR_TAB
-                     "adiw %2,1", xop, plen, 3);
+	avr_asm_len ("%4lpm"      CR_TAB
+		     "mov %B0,%3" CR_TAB
+		     "adiw %2,1", xop, plen, 3);
 
       if (n_bytes >= 3)
-        avr_asm_len ("%4lpm"      CR_TAB
-                     "mov %C0,%3" CR_TAB
-                     "adiw %2,1", xop, plen, 3);
+	avr_asm_len ("%4lpm"      CR_TAB
+		     "mov %C0,%3" CR_TAB
+		     "adiw %2,1", xop, plen, 3);
 
       if (n_bytes >= 4)
-        avr_asm_len ("%4lpm"      CR_TAB
-                     "mov %D0,%3" CR_TAB
-                     "adiw %2,1", xop, plen, 3);
+	avr_asm_len ("%4lpm"      CR_TAB
+		     "mov %D0,%3" CR_TAB
+		     "adiw %2,1", xop, plen, 3);
 
       break; /* POST_INC */
 
@@ -3887,7 +3887,7 @@ avr_out_lpm_no_lpmx (rtx_insn *insn, rtx *xop, int *plen)
    If PLEN != 0 set *PLEN to the length in words of the instruction sequence.
    Return "".  */
 
-const char*
+const char *
 avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx xop[7];
@@ -3905,7 +3905,7 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
   if (MEM_P (dest))
     {
       warning (0, "writing to address space %qs not supported",
-               avr_addrspace[MEM_ADDR_SPACE (dest)].name);
+	       avr_addrspace[MEM_ADDR_SPACE (dest)].name);
 
       return "";
     }
@@ -3933,28 +3933,28 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
       xop[3] = avr_find_unused_d_reg (insn, lpm_addr_reg_rtx);
 
       if (xop[3] != NULL_RTX)
-        {
-          avr_asm_len ("ldi %3,%4" CR_TAB
-                       "out %i6,%3", xop, plen, 2);
-        }
+	{
+	  avr_asm_len ("ldi %3,%4" CR_TAB
+		       "out %i6,%3", xop, plen, 2);
+	}
       else if (segment == 1)
-        {
-          avr_asm_len ("clr %5" CR_TAB
-                       "inc %5" CR_TAB
-                       "out %i6,%5", xop, plen, 3);
-        }
+	{
+	  avr_asm_len ("clr %5" CR_TAB
+		       "inc %5" CR_TAB
+		       "out %i6,%5", xop, plen, 3);
+	}
       else
-        {
-          avr_asm_len ("mov %5,%2"   CR_TAB
-                       "ldi %2,%4"   CR_TAB
-                       "out %i6,%2"  CR_TAB
-                       "mov %2,%5", xop, plen, 4);
-        }
+	{
+	  avr_asm_len ("mov %5,%2"   CR_TAB
+		       "ldi %2,%4"   CR_TAB
+		       "out %i6,%2"  CR_TAB
+		       "mov %2,%5", xop, plen, 4);
+	}
 
       xop[4] = xstring_e;
 
       if (!AVR_HAVE_ELPMX)
-        return avr_out_lpm_no_lpmx (insn, xop, plen);
+	return avr_out_lpm_no_lpmx (insn, xop, plen);
     }
   else if (!AVR_HAVE_LPMX)
     {
@@ -3973,70 +3973,70 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
       gcc_assert (REG_Z == REGNO (addr));
 
       switch (n_bytes)
-        {
-        default:
-          gcc_unreachable();
+	{
+	default:
+	  gcc_unreachable();
 
-        case 1:
-          avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
-          break;
+	case 1:
+	  avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
+	  break;
 
-        case 2:
-          if (REGNO (dest) == REG_Z)
-            avr_asm_len ("%4lpm %5,%a2+" CR_TAB
-                         "%4lpm %B0,%a2" CR_TAB
-                         "mov %A0,%5", xop, plen, 3);
-          else
-            {
-              avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
-                           "%4lpm %B0,%a2", xop, plen, 2);
+	case 2:
+	  if (REGNO (dest) == REG_Z)
+	    avr_asm_len ("%4lpm %5,%a2+" CR_TAB
+			 "%4lpm %B0,%a2" CR_TAB
+			 "mov %A0,%5", xop, plen, 3);
+	  else
+	    {
+	      avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
+			   "%4lpm %B0,%a2", xop, plen, 2);
 
-              if (!reg_unused_after (insn, addr))
-                avr_asm_len ("sbiw %2,1", xop, plen, 1);
-            }
+	      if (!reg_unused_after (insn, addr))
+		avr_asm_len ("sbiw %2,1", xop, plen, 1);
+	    }
 
-          break; /* 2 */
+	  break; /* 2 */
 
-        case 3:
+	case 3:
 
-          avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
-                       "%4lpm %B0,%a2+" CR_TAB
-                       "%4lpm %C0,%a2", xop, plen, 3);
+	  avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
+		       "%4lpm %B0,%a2+" CR_TAB
+		       "%4lpm %C0,%a2", xop, plen, 3);
 
-          if (!reg_unused_after (insn, addr))
-            avr_asm_len ("sbiw %2,2", xop, plen, 1);
+	  if (!reg_unused_after (insn, addr))
+	    avr_asm_len ("sbiw %2,2", xop, plen, 1);
 
-          break; /* 3 */
+	  break; /* 3 */
 
-        case 4:
+	case 4:
 
-          avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
-                       "%4lpm %B0,%a2+", xop, plen, 2);
+	  avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
+		       "%4lpm %B0,%a2+", xop, plen, 2);
 
-          if (REGNO (dest) == REG_Z - 2)
-            avr_asm_len ("%4lpm %5,%a2+" CR_TAB
-                         "%4lpm %C0,%a2" CR_TAB
-                         "mov %D0,%5", xop, plen, 3);
-          else
-            {
-              avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
-                           "%4lpm %D0,%a2", xop, plen, 2);
+	  if (REGNO (dest) == REG_Z - 2)
+	    avr_asm_len ("%4lpm %5,%a2+" CR_TAB
+			 "%4lpm %C0,%a2" CR_TAB
+			 "mov %D0,%5", xop, plen, 3);
+	  else
+	    {
+	      avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
+			   "%4lpm %D0,%a2", xop, plen, 2);
 
-              if (!reg_unused_after (insn, addr))
-                avr_asm_len ("sbiw %2,3", xop, plen, 1);
-            }
+	      if (!reg_unused_after (insn, addr))
+		avr_asm_len ("sbiw %2,3", xop, plen, 1);
+	    }
 
-          break; /* 4 */
-        } /* n_bytes */
+	  break; /* 4 */
+	} /* n_bytes */
 
       break; /* REG */
 
     case POST_INC:
 
       gcc_assert (REG_Z == REGNO (XEXP (addr, 0))
-                  && n_bytes <= 4);
+		  && n_bytes <= 4);
 
-      avr_asm_len                    ("%4lpm %A0,%a2+", xop, plen, 1);
+      avr_asm_len		    ("%4lpm %A0,%a2+", xop, plen, 1);
       if (n_bytes >= 2)  avr_asm_len ("%4lpm %B0,%a2+", xop, plen, 1);
       if (n_bytes >= 3)  avr_asm_len ("%4lpm %C0,%a2+", xop, plen, 1);
       if (n_bytes >= 4)  avr_asm_len ("%4lpm %D0,%a2+", xop, plen, 1);
@@ -4059,7 +4059,7 @@ avr_out_lpm (rtx_insn *insn, rtx *op, int *plen)
 
 /* Worker function for xload_8 insn.  */
 
-const char*
+const char *
 avr_out_xload (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
 {
   rtx xop[4];
@@ -4072,7 +4072,7 @@ avr_out_xload (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
   avr_asm_len (AVR_HAVE_LPMX ? "lpm %3,%a2" : "lpm", xop, plen, -1);
 
   avr_asm_len ("sbrc %1,7" CR_TAB
-               "ld %3,%a2", xop, plen, 2);
+	       "ld %3,%a2", xop, plen, 2);
 
   if (REGNO (xop[0]) != REGNO (xop[3]))
     avr_asm_len ("mov %0,%3", xop, plen, 1);
@@ -4081,7 +4081,7 @@ avr_out_xload (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
 }
 
 
-const char*
+const char *
 output_movqi (rtx_insn *insn, rtx operands[], int *plen)
 {
   rtx dest = operands[0];
@@ -4098,21 +4098,21 @@ output_movqi (rtx_insn *insn, rtx operands[], int *plen)
   if (REG_P (dest))
     {
       if (REG_P (src)) /* mov r,r */
-        {
-          if (test_hard_reg_class (STACK_REG, dest))
-            return avr_asm_len ("out %0,%1", operands, plen, -1);
-          else if (test_hard_reg_class (STACK_REG, src))
-            return avr_asm_len ("in %0,%1", operands, plen, -1);
-
-          return avr_asm_len ("mov %0,%1", operands, plen, -1);
-        }
+	{
+	  if (test_hard_reg_class (STACK_REG, dest))
+	    return avr_asm_len ("out %0,%1", operands, plen, -1);
+	  else if (test_hard_reg_class (STACK_REG, src))
+	    return avr_asm_len ("in %0,%1", operands, plen, -1);
+
+	  return avr_asm_len ("mov %0,%1", operands, plen, -1);
+	}
       else if (CONSTANT_P (src))
-        {
-          output_reload_in_const (operands, NULL_RTX, plen, false);
-          return "";
-        }
+	{
+	  output_reload_in_const (operands, NULL_RTX, plen, false);
+	  return "";
+	}
       else if (MEM_P (src))
-        return out_movqi_r_mr (insn, operands, plen); /* mov r,m */
+	return out_movqi_r_mr (insn, operands, plen); /* mov r,m */
     }
   else if (MEM_P (dest))
     {
@@ -4145,51 +4145,51 @@ output_movhi (rtx_insn *insn, rtx xop[], int *plen)
   if (REG_P (dest))
     {
       if (REG_P (src)) /* mov r,r */
-        {
-          if (test_hard_reg_class (STACK_REG, dest))
-            {
-              if (AVR_HAVE_8BIT_SP)
-                return avr_asm_len ("out __SP_L__,%A1", xop, plen, -1);
-
-              if (AVR_XMEGA)
-                return avr_asm_len ("out __SP_L__,%A1" CR_TAB
-                                    "out __SP_H__,%B1", xop, plen, -2);
-
-              /* Use simple load of SP if no interrupts are  used.  */
-
-              return TARGET_NO_INTERRUPTS
-                ? avr_asm_len ("out __SP_H__,%B1" CR_TAB
-                               "out __SP_L__,%A1", xop, plen, -2)
-                : avr_asm_len ("in __tmp_reg__,__SREG__"  CR_TAB
-                               "cli"                      CR_TAB
-                               "out __SP_H__,%B1"         CR_TAB
-                               "out __SREG__,__tmp_reg__" CR_TAB
-                               "out __SP_L__,%A1", xop, plen, -5);
-            }
-          else if (test_hard_reg_class (STACK_REG, src))
-            {
-              return !AVR_HAVE_SPH
-                ? avr_asm_len ("in %A0,__SP_L__" CR_TAB
-                               "clr %B0", xop, plen, -2)
-
-                : avr_asm_len ("in %A0,__SP_L__" CR_TAB
-                               "in %B0,__SP_H__", xop, plen, -2);
-            }
-
-          return AVR_HAVE_MOVW
-            ? avr_asm_len ("movw %0,%1", xop, plen, -1)
-
-            : avr_asm_len ("mov %A0,%A1" CR_TAB
-                           "mov %B0,%B1", xop, plen, -2);
-        } /* REG_P (src) */
-      else if (CONSTANT_P (src))
-        {
-          return output_reload_inhi (xop, NULL, plen);
-        }
+	{
+	  if (test_hard_reg_class (STACK_REG, dest))
+	    {
+	      if (AVR_HAVE_8BIT_SP)
+		return avr_asm_len ("out __SP_L__,%A1", xop, plen, -1);
+
+	      if (AVR_XMEGA)
+		return avr_asm_len ("out __SP_L__,%A1" CR_TAB
+				    "out __SP_H__,%B1", xop, plen, -2);
+
+	      /* Use simple load of SP if no interrupts are  used.  */
+
+	      return TARGET_NO_INTERRUPTS
+		? avr_asm_len ("out __SP_H__,%B1" CR_TAB
+			       "out __SP_L__,%A1", xop, plen, -2)
+		: avr_asm_len ("in __tmp_reg__,__SREG__"  CR_TAB
+			       "cli"                      CR_TAB
+			       "out __SP_H__,%B1"         CR_TAB
+			       "out __SREG__,__tmp_reg__" CR_TAB
+			       "out __SP_L__,%A1", xop, plen, -5);
+	    }
+	  else if (test_hard_reg_class (STACK_REG, src))
+	    {
+	      return !AVR_HAVE_SPH
+		? avr_asm_len ("in %A0,__SP_L__" CR_TAB
+			       "clr %B0", xop, plen, -2)
+
+		: avr_asm_len ("in %A0,__SP_L__" CR_TAB
+			       "in %B0,__SP_H__", xop, plen, -2);
+	    }
+
+	  return AVR_HAVE_MOVW
+	    ? avr_asm_len ("movw %0,%1", xop, plen, -1)
+
+	    : avr_asm_len ("mov %A0,%A1" CR_TAB
+			   "mov %B0,%B1", xop, plen, -2);
+	} /* REG_P (src) */
+      else if (CONSTANT_P (src))
+	{
+	  return output_reload_inhi (xop, NULL, plen);
+	}
       else if (MEM_P (src))
-        {
-          return out_movhi_r_mr (insn, xop, plen); /* mov r,m */
-        }
+	{
+	  return out_movhi_r_mr (insn, xop, plen); /* mov r,m */
+	}
     }
   else if (MEM_P (dest))
     {
@@ -4209,7 +4209,7 @@ output_movhi (rtx_insn *insn, rtx xop[], int *plen)
 
 /* Same as out_movqi_r_mr, but TINY does not have ADIW or SBIW */
 
-static const char*
+static const char *
 avr_out_movqi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -4217,7 +4217,7 @@ avr_out_movqi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   rtx x = XEXP (src, 0);
 
   avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
-               "ld %0,%b1" , op, plen, -3);
+	       "ld %0,%b1" , op, plen, -3);
 
   if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
       && !reg_unused_after (insn, XEXP (x, 0)))
@@ -4226,7 +4226,7 @@ avr_out_movqi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   return "";
 }
 
-static const char*
+static const char *
 out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -4237,8 +4237,8 @@ out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
     {
       int n_words = AVR_TINY ? 1 : 2;
       return io_address_operand (x, QImode)
-        ? avr_asm_len ("in %0,%i1", op, plen, -1)
-        : avr_asm_len ("lds %0,%m1", op, plen, -n_words);
+	? avr_asm_len ("in %0,%i1", op, plen, -1)
+	: avr_asm_len ("lds %0,%m1", op, plen, -n_words);
     }
 
   if (GET_CODE (x) == PLUS
@@ -4250,40 +4250,40 @@ out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
       int disp = INTVAL (XEXP (x, 1));
 
       if (AVR_TINY)
-        return avr_out_movqi_r_mr_reg_disp_tiny (insn, op, plen);
+	return avr_out_movqi_r_mr_reg_disp_tiny (insn, op, plen);
 
       if (disp - GET_MODE_SIZE (GET_MODE (src)) >= 63)
-        {
-          if (REGNO (XEXP (x, 0)) != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
-            return avr_asm_len ("adiw r28,%o1-63" CR_TAB
-                                "ldd %0,Y+63"     CR_TAB
-                                "sbiw r28,%o1-63", op, plen, -3);
-
-          return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
-                              "sbci r29,hi8(-%o1)" CR_TAB
-                              "ld %0,Y"            CR_TAB
-                              "subi r28,lo8(%o1)"  CR_TAB
-                              "sbci r29,hi8(%o1)", op, plen, -5);
-        }
+	{
+	  if (REGNO (XEXP (x, 0)) != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
+	    return avr_asm_len ("adiw r28,%o1-63" CR_TAB
+				"ldd %0,Y+63"     CR_TAB
+				"sbiw r28,%o1-63", op, plen, -3);
+
+	  return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
+			      "sbci r29,hi8(-%o1)" CR_TAB
+			      "ld %0,Y"            CR_TAB
+			      "subi r28,lo8(%o1)"  CR_TAB
+			      "sbci r29,hi8(%o1)", op, plen, -5);
+	}
       else if (REGNO (XEXP (x, 0)) == REG_X)
-        {
-          /* This is a paranoid case LEGITIMIZE_RELOAD_ADDRESS must exclude
-             it but I have this situation with extremal optimizing options.  */
+	{
+	  /* This is a paranoid case LEGITIMIZE_RELOAD_ADDRESS must exclude
+	     it but I have this situation with extremal optimizing options.  */
 
-          avr_asm_len ("adiw r26,%o1" CR_TAB
-                       "ld %0,X", op, plen, -2);
+	  avr_asm_len ("adiw r26,%o1" CR_TAB
+		       "ld %0,X", op, plen, -2);
 
-          if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
-              && !reg_unused_after (insn, XEXP (x, 0)))
-            {
-              avr_asm_len ("sbiw r26,%o1", op, plen, 1);
-            }
+	  if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
+	      && !reg_unused_after (insn, XEXP (x, 0)))
+	    {
+	      avr_asm_len ("sbiw r26,%o1", op, plen, 1);
+	    }
 
-          return "";
-        }
+	  return "";
+	}
 
       return avr_asm_len ("ldd %0,%1", op, plen, -1);
     }
@@ -4294,7 +4294,7 @@ out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
 
 /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
 
-static const char*
+static const char *
 avr_out_movhi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -4304,13 +4304,13 @@ avr_out_movhi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   int reg_dest = true_regnum (dest);
   int reg_base = true_regnum (base);
 
-  if (reg_dest == reg_base)         /* R = (R) */
+  if (reg_dest == reg_base)  /* R = (R) */
     return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
 			"ld %B0,%1"          CR_TAB
 			"mov %A0,__tmp_reg__", op, plen, -3);
 
   avr_asm_len ("ld %A0,%1+" CR_TAB
-               "ld %B0,%1", op, plen, -2);
+	       "ld %B0,%1", op, plen, -2);
 
   if (!reg_unused_after (insn, base))
     avr_asm_len (TINY_SBIW (%E1, %F1, 1), op, plen, 2);
@@ -4321,7 +4321,7 @@ avr_out_movhi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 
 /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
 
-static const char*
+static const char *
 avr_out_movhi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -4334,18 +4334,18 @@ avr_out_movhi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   if (reg_base == reg_dest)
     {
       return avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
-                          "ld __tmp_reg__,%b1+"     CR_TAB
-                          "ld %B0,%b1"              CR_TAB
-                          "mov %A0,__tmp_reg__", op, plen, -5);
+			  "ld __tmp_reg__,%b1+"     CR_TAB
+			  "ld %B0,%b1"              CR_TAB
+			  "mov %A0,__tmp_reg__", op, plen, -5);
     }
   else
     {
       avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
-                   "ld %A0,%b1+"             CR_TAB
-                   "ld %B0,%b1", op, plen, -4);
+		   "ld %A0,%b1+"             CR_TAB
+		   "ld %B0,%b1", op, plen, -4);
 
       if (!reg_unused_after (insn, XEXP (base, 0)))
-        avr_asm_len (TINY_SBIW (%I1, %J1, %o1+1), op, plen, 2);
+	avr_asm_len (TINY_SBIW (%I1, %J1, %o1+1), op, plen, 2);
 
       return "";
     }
@@ -4354,7 +4354,7 @@ avr_out_movhi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 
 /* Same as movhi_r_mr, but TINY does not have ADIW, SBIW and LDD */
 
-static const char*
+static const char *
 avr_out_movhi_r_mr_pre_dec_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   int mem_volatile_p = 0;
@@ -4371,16 +4371,16 @@ avr_out_movhi_r_mr_pre_dec_tiny (rtx_insn *insn, rtx op[], int *plen)
 
   if (!mem_volatile_p)
     return avr_asm_len ("ld %B0,%1" CR_TAB
-                        "ld %A0,%1", op, plen, -2);
+			"ld %A0,%1", op, plen, -2);
 
   return avr_asm_len (TINY_SBIW (%I1, %J1, 2)  CR_TAB
-                      "ld %A0,%p1+"            CR_TAB
-                      "ld %B0,%p1"             CR_TAB
-                      TINY_SBIW (%I1, %J1, 1), op, plen, -6);
+		      "ld %A0,%p1+"            CR_TAB
+		      "ld %B0,%p1"             CR_TAB
+		      TINY_SBIW (%I1, %J1, 1), op, plen, -6);
 }
 
 
-static const char*
+static const char *
 out_movhi_r_mr (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -4395,22 +4395,22 @@ out_movhi_r_mr (rtx_insn *insn, rtx op[], int *plen)
   if (reg_base > 0)
     {
       if (AVR_TINY)
-        return avr_out_movhi_r_mr_reg_no_disp_tiny (insn, op, plen);
+	return avr_out_movhi_r_mr_reg_no_disp_tiny (insn, op, plen);
 
       if (reg_dest == reg_base)         /* R = (R) */
-        return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
-                            "ld %B0,%1"          CR_TAB
-                            "mov %A0,__tmp_reg__", op, plen, -3);
+	return avr_asm_len ("ld __tmp_reg__,%1+" CR_TAB
+			    "ld %B0,%1"          CR_TAB
+			    "mov %A0,__tmp_reg__", op, plen, -3);
 
       if (reg_base != REG_X)
-        return avr_asm_len ("ld %A0,%1" CR_TAB
-                            "ldd %B0,%1+1", op, plen, -2);
+	return avr_asm_len ("ld %A0,%1" CR_TAB
+			    "ldd %B0,%1+1", op, plen, -2);
 
       avr_asm_len ("ld %A0,X+" CR_TAB
-                   "ld %B0,X", op, plen, -2);
+		   "ld %B0,X", op, plen, -2);
 
       if (!reg_unused_after (insn, base))
-        avr_asm_len ("sbiw r26,1", op, plen, 1);
+	avr_asm_len ("sbiw r26,1", op, plen, 1);
 
       return "";
     }
@@ -4420,56 +4420,56 @@ out_movhi_r_mr (rtx_insn *insn, rtx op[], int *plen)
       int reg_base = true_regnum (XEXP (base, 0));
 
       if (AVR_TINY)
-        return avr_out_movhi_r_mr_reg_disp_tiny (insn, op, plen);
+	return avr_out_movhi_r_mr_reg_disp_tiny (insn, op, plen);
 
       if (disp > MAX_LD_OFFSET (GET_MODE (src)))
-        {
-          if (REGNO (XEXP (base, 0)) != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          return disp <= 63 + MAX_LD_OFFSET (GET_MODE (src))
-            ? avr_asm_len ("adiw r28,%o1-62" CR_TAB
-                           "ldd %A0,Y+62"    CR_TAB
-                           "ldd %B0,Y+63"    CR_TAB
-                           "sbiw r28,%o1-62", op, plen, -4)
-
-            : avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
-                           "sbci r29,hi8(-%o1)" CR_TAB
-                           "ld %A0,Y"           CR_TAB
-                           "ldd %B0,Y+1"        CR_TAB
-                           "subi r28,lo8(%o1)"  CR_TAB
-                           "sbci r29,hi8(%o1)", op, plen, -6);
-        }
+	{
+	  if (REGNO (XEXP (base, 0)) != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  return disp <= 63 + MAX_LD_OFFSET (GET_MODE (src))
+	    ? avr_asm_len ("adiw r28,%o1-62" CR_TAB
+			   "ldd %A0,Y+62"    CR_TAB
+			   "ldd %B0,Y+63"    CR_TAB
+			   "sbiw r28,%o1-62", op, plen, -4)
+
+	    : avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
+			   "sbci r29,hi8(-%o1)" CR_TAB
+			   "ld %A0,Y"           CR_TAB
+			   "ldd %B0,Y+1"        CR_TAB
+			   "subi r28,lo8(%o1)"  CR_TAB
+			   "sbci r29,hi8(%o1)", op, plen, -6);
+	}
 
       /* This is a paranoid case. LEGITIMIZE_RELOAD_ADDRESS must exclude
-         it but I have this situation with extremal
-         optimization options.  */
+	 it but I have this situation with extremal
+	 optimization options.  */
 
       if (reg_base == REG_X)
-        {
-          if (reg_base == reg_dest)
-            return avr_asm_len ("adiw r26,%o1"      CR_TAB
-                                "ld __tmp_reg__,X+" CR_TAB
-                                "ld %B0,X"          CR_TAB
-                                "mov %A0,__tmp_reg__", op, plen, -4);
+	{
+	  if (reg_base == reg_dest)
+	    return avr_asm_len ("adiw r26,%o1"      CR_TAB
+				"ld __tmp_reg__,X+" CR_TAB
+				"ld %B0,X"          CR_TAB
+				"mov %A0,__tmp_reg__", op, plen, -4);
 
-          avr_asm_len ("adiw r26,%o1" CR_TAB
-                       "ld %A0,X+"    CR_TAB
-                       "ld %B0,X", op, plen, -3);
+	  avr_asm_len ("adiw r26,%o1" CR_TAB
+		       "ld %A0,X+"    CR_TAB
+		       "ld %B0,X", op, plen, -3);
 
-          if (!reg_unused_after (insn, XEXP (base, 0)))
-            avr_asm_len ("sbiw r26,%o1+1", op, plen, 1);
+	  if (!reg_unused_after (insn, XEXP (base, 0)))
+	    avr_asm_len ("sbiw r26,%o1+1", op, plen, 1);
 
-          return "";
-        }
+	  return "";
+	}
 
       return reg_base == reg_dest
-        ? avr_asm_len ("ldd __tmp_reg__,%A1" CR_TAB
-                       "ldd %B0,%B1"         CR_TAB
-                       "mov %A0,__tmp_reg__", op, plen, -3)
+	? avr_asm_len ("ldd __tmp_reg__,%A1" CR_TAB
+		       "ldd %B0,%B1"         CR_TAB
+		       "mov %A0,__tmp_reg__", op, plen, -3)
 
-        : avr_asm_len ("ldd %A0,%A1" CR_TAB
-                       "ldd %B0,%B1", op, plen, -2);
+	: avr_asm_len ("ldd %A0,%A1" CR_TAB
+		       "ldd %B0,%B1", op, plen, -2);
     }
   else if (GET_CODE (base) == PRE_DEC) /* (--R) */
     {
@@ -4477,46 +4477,46 @@ out_movhi_r_mr (rtx_insn *insn, rtx op[], int *plen)
 	return avr_out_movhi_r_mr_pre_dec_tiny (insn, op, plen);
 
       if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
-        fatal_insn ("incorrect insn:", insn);
+	fatal_insn ("incorrect insn:", insn);
 
       if (!mem_volatile_p)
-        return avr_asm_len ("ld %B0,%1" CR_TAB
-                            "ld %A0,%1", op, plen, -2);
+	return avr_asm_len ("ld %B0,%1" CR_TAB
+			    "ld %A0,%1", op, plen, -2);
 
       return REGNO (XEXP (base, 0)) == REG_X
-        ? avr_asm_len ("sbiw r26,2"  CR_TAB
-                       "ld %A0,X+"   CR_TAB
-                       "ld %B0,X"    CR_TAB
-                       "sbiw r26,1", op, plen, -4)
+	? avr_asm_len ("sbiw r26,2"  CR_TAB
+		       "ld %A0,X+"   CR_TAB
+		       "ld %B0,X"    CR_TAB
+		       "sbiw r26,1", op, plen, -4)
 
-        : avr_asm_len ("sbiw %r1,2"  CR_TAB
-                       "ld %A0,%p1"  CR_TAB
-                       "ldd %B0,%p1+1", op, plen, -3);
+	: avr_asm_len ("sbiw %r1,2"  CR_TAB
+		       "ld %A0,%p1"  CR_TAB
+		       "ldd %B0,%p1+1", op, plen, -3);
     }
   else if (GET_CODE (base) == POST_INC) /* (R++) */
     {
       if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
-        fatal_insn ("incorrect insn:", insn);
+	fatal_insn ("incorrect insn:", insn);
 
       return avr_asm_len ("ld %A0,%1"  CR_TAB
-                          "ld %B0,%1", op, plen, -2);
+			  "ld %B0,%1", op, plen, -2);
     }
   else if (CONSTANT_ADDRESS_P (base))
     {
       int n_words = AVR_TINY ? 2 : 4;
       return io_address_operand (base, HImode)
-        ? avr_asm_len ("in %A0,%i1" CR_TAB
-                       "in %B0,%i1+1", op, plen, -2)
+	? avr_asm_len ("in %A0,%i1" CR_TAB
+		       "in %B0,%i1+1", op, plen, -2)
 
-        : avr_asm_len ("lds %A0,%m1" CR_TAB
-                       "lds %B0,%m1+1", op, plen, -n_words);
+	: avr_asm_len ("lds %A0,%m1" CR_TAB
+		       "lds %B0,%m1+1", op, plen, -n_words);
     }
 
   fatal_insn ("unknown move insn:",insn);
   return "";
 }
 
-static const char*
+static const char *
 avr_out_movsi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
 {
   rtx dest = op[0];
@@ -4562,7 +4562,7 @@ avr_out_movsi_r_mr_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
 }
 
 
-static const char*
+static const char *
 avr_out_movsi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *l)
 {
   rtx dest = op[0];
@@ -4575,42 +4575,42 @@ avr_out_movsi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *l)
     {
       /* "ld r26,-X" is undefined */
       return *l = 9, (TINY_ADIW (%I1, %J1, %o1+3) CR_TAB
-                      "ld %D0,%b1"                CR_TAB
-                      "ld %C0,-%b1"               CR_TAB
-                      "ld __tmp_reg__,-%b1"       CR_TAB
-                      TINY_SBIW (%I1, %J1, 1)     CR_TAB
-                      "ld %A0,%b1"                CR_TAB
-                      "mov %B0,__tmp_reg__");
+		      "ld %D0,%b1"                CR_TAB
+		      "ld %C0,-%b1"               CR_TAB
+		      "ld __tmp_reg__,-%b1"       CR_TAB
+		      TINY_SBIW (%I1, %J1, 1)     CR_TAB
+		      "ld %A0,%b1"                CR_TAB
+		      "mov %B0,__tmp_reg__");
     }
   else if (reg_dest == reg_base - 2)
     {
       return *l = 7, (TINY_ADIW (%I1, %J1, %o1) CR_TAB
-                      "ld %A0,%b1+"             CR_TAB
-                      "ld %B0,%b1+"             CR_TAB
-                      "ld __tmp_reg__,%b1+"     CR_TAB
-                      "ld %D0,%b1"              CR_TAB
-                      "mov %C0,__tmp_reg__");
+		      "ld %A0,%b1+"             CR_TAB
+		      "ld %B0,%b1+"             CR_TAB
+		      "ld __tmp_reg__,%b1+"     CR_TAB
+		      "ld %D0,%b1"              CR_TAB
+		      "mov %C0,__tmp_reg__");
     }
   else if (reg_unused_after (insn, XEXP (base, 0)))
     {
       return *l = 6, (TINY_ADIW (%I1, %J1, %o1) CR_TAB
-                      "ld %A0,%b1+"             CR_TAB
-                      "ld %B0,%b1+"             CR_TAB
-                      "ld %C0,%b1+"             CR_TAB
-                      "ld %D0,%b1");
+		      "ld %A0,%b1+"             CR_TAB
+		      "ld %B0,%b1+"             CR_TAB
+		      "ld %C0,%b1+"             CR_TAB
+		      "ld %D0,%b1");
     }
   else
     {
       return *l = 8, (TINY_ADIW (%I1, %J1, %o1)  CR_TAB
-                      "ld %A0,%b1+"              CR_TAB
-                      "ld %B0,%b1+"              CR_TAB
-                      "ld %C0,%b1+"              CR_TAB
-                      "ld %D0,%b1"               CR_TAB
-                      TINY_SBIW (%I1, %J1, %o1+3));
+		      "ld %A0,%b1+"              CR_TAB
+		      "ld %B0,%b1+"              CR_TAB
+		      "ld %C0,%b1+"              CR_TAB
+		      "ld %D0,%b1"               CR_TAB
+		      TINY_SBIW (%I1, %J1, %o1+3));
     }
 }
 
-static const char*
+static const char *
 out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
 {
   rtx dest = op[0];
@@ -4626,11 +4626,11 @@ out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
   if (reg_base > 0)
     {
       if (AVR_TINY)
-        return avr_out_movsi_r_mr_reg_no_disp_tiny (insn, op, l);
+	return avr_out_movsi_r_mr_reg_no_disp_tiny (insn, op, l);
 
-      if (reg_base == REG_X)        /* (R26) */
-        {
-          if (reg_dest == REG_X)
+      if (reg_base == REG_X)  /* (R26) */
+	{
+	  if (reg_dest == REG_X)
 	    /* "ld r26,-X" is undefined */
 	    return *l=7, ("adiw r26,3"        CR_TAB
 			  "ld r29,X"          CR_TAB
@@ -4639,51 +4639,51 @@ out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
 			  "sbiw r26,1"        CR_TAB
 			  "ld r26,X"          CR_TAB
 			  "mov r27,__tmp_reg__");
-          else if (reg_dest == REG_X - 2)
-            return *l=5, ("ld %A0,X+"          CR_TAB
-                          "ld %B0,X+"          CR_TAB
-                          "ld __tmp_reg__,X+"  CR_TAB
-                          "ld %D0,X"           CR_TAB
-                          "mov %C0,__tmp_reg__");
-          else if (reg_unused_after (insn, base))
-            return  *l=4, ("ld %A0,X+" CR_TAB
-                           "ld %B0,X+" CR_TAB
-                           "ld %C0,X+" CR_TAB
-                           "ld %D0,X");
-          else
-            return  *l=5, ("ld %A0,X+" CR_TAB
-                           "ld %B0,X+" CR_TAB
-                           "ld %C0,X+" CR_TAB
-                           "ld %D0,X"  CR_TAB
-                           "sbiw r26,3");
-        }
+	  else if (reg_dest == REG_X - 2)
+	    return *l=5, ("ld %A0,X+"          CR_TAB
+			  "ld %B0,X+"          CR_TAB
+			  "ld __tmp_reg__,X+"  CR_TAB
+			  "ld %D0,X"           CR_TAB
+			  "mov %C0,__tmp_reg__");
+	  else if (reg_unused_after (insn, base))
+	    return  *l=4, ("ld %A0,X+" CR_TAB
+			   "ld %B0,X+" CR_TAB
+			   "ld %C0,X+" CR_TAB
+			   "ld %D0,X");
+	  else
+	    return  *l=5, ("ld %A0,X+" CR_TAB
+			   "ld %B0,X+" CR_TAB
+			   "ld %C0,X+" CR_TAB
+			   "ld %D0,X"  CR_TAB
+			   "sbiw r26,3");
+	}
       else
-        {
-          if (reg_dest == reg_base)
-            return *l=5, ("ldd %D0,%1+3" CR_TAB
-                          "ldd %C0,%1+2" CR_TAB
-                          "ldd __tmp_reg__,%1+1"  CR_TAB
-                          "ld %A0,%1"  CR_TAB
-                          "mov %B0,__tmp_reg__");
-          else if (reg_base == reg_dest + 2)
-            return *l=5, ("ld %A0,%1"             CR_TAB
-                          "ldd %B0,%1+1"          CR_TAB
-                          "ldd __tmp_reg__,%1+2"  CR_TAB
-                          "ldd %D0,%1+3"          CR_TAB
-                          "mov %C0,__tmp_reg__");
-          else
-            return *l=4, ("ld %A0,%1"    CR_TAB
-                          "ldd %B0,%1+1" CR_TAB
-                          "ldd %C0,%1+2" CR_TAB
-                          "ldd %D0,%1+3");
-        }
+	{
+	  if (reg_dest == reg_base)
+	    return *l=5, ("ldd %D0,%1+3" CR_TAB
+			  "ldd %C0,%1+2" CR_TAB
+			  "ldd __tmp_reg__,%1+1"  CR_TAB
+			  "ld %A0,%1"  CR_TAB
+			  "mov %B0,__tmp_reg__");
+	  else if (reg_base == reg_dest + 2)
+	    return *l=5, ("ld %A0,%1"             CR_TAB
+			  "ldd %B0,%1+1"          CR_TAB
+			  "ldd __tmp_reg__,%1+2"  CR_TAB
+			  "ldd %D0,%1+3"          CR_TAB
+			  "mov %C0,__tmp_reg__");
+	  else
+	    return *l=4, ("ld %A0,%1"    CR_TAB
+			  "ldd %B0,%1+1" CR_TAB
+			  "ldd %C0,%1+2" CR_TAB
+			  "ldd %D0,%1+3");
+	}
     }
   else if (GET_CODE (base) == PLUS) /* (R + i) */
     {
       int disp = INTVAL (XEXP (base, 1));
 
       if (AVR_TINY)
-        return avr_out_movsi_r_mr_reg_disp_tiny (insn, op, l);
+	return avr_out_movsi_r_mr_reg_disp_tiny (insn, op, l);
 
       if (disp > MAX_LD_OFFSET (GET_MODE (src)))
 	{
@@ -4741,21 +4741,21 @@ out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
 		  "sbiw r26,%o1+3");
 	}
       if (reg_dest == reg_base)
-        return *l=5, ("ldd %D0,%D1"          CR_TAB
-                      "ldd %C0,%C1"          CR_TAB
-                      "ldd __tmp_reg__,%B1"  CR_TAB
-                      "ldd %A0,%A1"          CR_TAB
-                      "mov %B0,__tmp_reg__");
+	return *l=5, ("ldd %D0,%D1"          CR_TAB
+		      "ldd %C0,%C1"          CR_TAB
+		      "ldd __tmp_reg__,%B1"  CR_TAB
+		      "ldd %A0,%A1"          CR_TAB
+		      "mov %B0,__tmp_reg__");
       else if (reg_dest == reg_base - 2)
-        return *l=5, ("ldd %A0,%A1"          CR_TAB
-                      "ldd %B0,%B1"          CR_TAB
-                      "ldd __tmp_reg__,%C1"  CR_TAB
-                      "ldd %D0,%D1"          CR_TAB
-                      "mov %C0,__tmp_reg__");
+	return *l=5, ("ldd %A0,%A1"          CR_TAB
+		      "ldd %B0,%B1"          CR_TAB
+		      "ldd __tmp_reg__,%C1"  CR_TAB
+		      "ldd %D0,%D1"          CR_TAB
+		      "mov %C0,__tmp_reg__");
       return *l=4, ("ldd %A0,%A1" CR_TAB
-                    "ldd %B0,%B1" CR_TAB
-                    "ldd %C0,%C1" CR_TAB
-                    "ldd %D0,%D1");
+		    "ldd %B0,%B1" CR_TAB
+		    "ldd %C0,%C1" CR_TAB
+		    "ldd %D0,%D1");
     }
   else if (GET_CODE (base) == PRE_DEC) /* (--R) */
     return *l=4, ("ld %D0,%1" CR_TAB
@@ -4770,28 +4770,28 @@ out_movsi_r_mr (rtx_insn *insn, rtx op[], int *l)
   else if (CONSTANT_ADDRESS_P (base))
     {
       if (io_address_operand (base, SImode))
-        {
-          *l = 4;
-          return ("in %A0,%i1"   CR_TAB
-                  "in %B0,%i1+1" CR_TAB
-                  "in %C0,%i1+2" CR_TAB
-                  "in %D0,%i1+3");
-        }
+	{
+	  *l = 4;
+	  return ("in %A0,%i1"   CR_TAB
+		  "in %B0,%i1+1" CR_TAB
+		  "in %C0,%i1+2" CR_TAB
+		  "in %D0,%i1+3");
+	}
       else
-        {
-          *l = AVR_TINY ? 4 : 8;
-          return ("lds %A0,%m1"   CR_TAB
-                  "lds %B0,%m1+1" CR_TAB
-                  "lds %C0,%m1+2" CR_TAB
-                  "lds %D0,%m1+3");
-        }
+	{
+	  *l = AVR_TINY ? 4 : 8;
+	  return ("lds %A0,%m1"   CR_TAB
+		  "lds %B0,%m1+1" CR_TAB
+		  "lds %C0,%m1+2" CR_TAB
+		  "lds %D0,%m1+3");
+	}
     }
 
   fatal_insn ("unknown move insn:",insn);
   return "";
 }
 
-static const char*
+static const char *
 avr_out_movsi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
 {
   rtx dest = op[0];
@@ -4804,35 +4804,35 @@ avr_out_movsi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
     {
       /* "ld r26,-X" is undefined */
       if (reg_unused_after (insn, base))
-        {
-          return *l = 7, ("mov __tmp_reg__, %B1"  CR_TAB
+	{
+	  return *l = 7, ("mov __tmp_reg__, %B1"  CR_TAB
 			  "st %0,%A1"             CR_TAB
 			  TINY_ADIW (%E0, %F0, 1) CR_TAB
 			  "st %0+,__tmp_reg__"    CR_TAB
 			  "st %0+,%C1"            CR_TAB
 			  "st %0+,%D1");
-        }
+	}
       else
-        {
-          return *l = 9, ("mov __tmp_reg__, %B1"  CR_TAB
+	{
+	  return *l = 9, ("mov __tmp_reg__, %B1"  CR_TAB
 			  "st %0,%A1"             CR_TAB
 			  TINY_ADIW (%E0, %F0, 1) CR_TAB
 			  "st %0+,__tmp_reg__"    CR_TAB
 			  "st %0+,%C1"            CR_TAB
 			  "st %0+,%D1"            CR_TAB
 			  TINY_SBIW (%E0, %F0, 3));
-        }
+	}
     }
   else if (reg_base == reg_src + 2)
     {
       if (reg_unused_after (insn, base))
 	return *l = 7, ("mov __zero_reg__,%C1" CR_TAB
-                        "mov __tmp_reg__,%D1"  CR_TAB
-                        "st %0+,%A1"           CR_TAB
-                        "st %0+,%B1"           CR_TAB
-                        "st %0+,__zero_reg__"  CR_TAB
-                        "st %0,__tmp_reg__"    CR_TAB
-                        "clr __zero_reg__");
+			"mov __tmp_reg__,%D1"  CR_TAB
+			"st %0+,%A1"           CR_TAB
+			"st %0+,%B1"           CR_TAB
+			"st %0+,__zero_reg__"  CR_TAB
+			"st %0,__tmp_reg__"    CR_TAB
+			"clr __zero_reg__");
       else
 	return *l = 9, ("mov __zero_reg__,%C1" CR_TAB
 			"mov __tmp_reg__,%D1"  CR_TAB
@@ -4851,7 +4851,7 @@ avr_out_movsi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *l)
 		  TINY_SBIW (%E0, %F0, 3));
 }
 
-static const char*
+static const char *
 avr_out_movsi_mr_r_reg_disp_tiny (rtx op[], int *l)
 {
   rtx dest = op[0];
@@ -4864,38 +4864,38 @@ avr_out_movsi_mr_r_reg_disp_tiny (rtx op[], int *l)
     {
       *l = 11;
       return ("mov __tmp_reg__,%A2"        CR_TAB
-              "mov __zero_reg__,%B2"       CR_TAB
-              TINY_ADIW (%I0, %J0, %o0)    CR_TAB
-              "st %b0+,__tmp_reg__"        CR_TAB
-              "st %b0+,__zero_reg__"       CR_TAB
-              "st %b0+,%C2"                CR_TAB
-              "st %b0,%D2"                 CR_TAB
-              "clr __zero_reg__"           CR_TAB
-              TINY_SBIW (%I0, %J0, %o0+3));
+	      "mov __zero_reg__,%B2"       CR_TAB
+	      TINY_ADIW (%I0, %J0, %o0)    CR_TAB
+	      "st %b0+,__tmp_reg__"        CR_TAB
+	      "st %b0+,__zero_reg__"       CR_TAB
+	      "st %b0+,%C2"                CR_TAB
+	      "st %b0,%D2"                 CR_TAB
+	      "clr __zero_reg__"           CR_TAB
+	      TINY_SBIW (%I0, %J0, %o0+3));
     }
   else if (reg_src == reg_base - 2)
     {
       *l = 11;
       return ("mov __tmp_reg__,%C2"         CR_TAB
-              "mov __zero_reg__,%D2"        CR_TAB
-              TINY_ADIW (%I0, %J0, %o0)     CR_TAB
-              "st %b0+,%A0"                 CR_TAB
-              "st %b0+,%B0"                 CR_TAB
-              "st %b0+,__tmp_reg__"         CR_TAB
-              "st %b0,__zero_reg__"         CR_TAB
-              "clr __zero_reg__"            CR_TAB
-              TINY_SBIW (%I0, %J0, %o0+3));
+	      "mov __zero_reg__,%D2"        CR_TAB
+	      TINY_ADIW (%I0, %J0, %o0)     CR_TAB
+	      "st %b0+,%A0"                 CR_TAB
+	      "st %b0+,%B0"                 CR_TAB
+	      "st %b0+,__tmp_reg__"         CR_TAB
+	      "st %b0,__zero_reg__"         CR_TAB
+	      "clr __zero_reg__"            CR_TAB
+	      TINY_SBIW (%I0, %J0, %o0+3));
     }
   *l = 8;
   return (TINY_ADIW (%I0, %J0, %o0)     CR_TAB
-          "st %b0+,%A1"                 CR_TAB
-          "st %b0+,%B1"                 CR_TAB
-          "st %b0+,%C1"                 CR_TAB
-          "st %b0,%D1"                  CR_TAB
-          TINY_SBIW (%I0, %J0, %o0+3));
+	  "st %b0+,%A1"                 CR_TAB
+	  "st %b0+,%B1"                 CR_TAB
+	  "st %b0+,%C1"                 CR_TAB
+	  "st %b0,%D1"                  CR_TAB
+	  TINY_SBIW (%I0, %J0, %o0+3));
 }
 
-static const char*
+static const char *
 out_movsi_mr_r (rtx_insn *insn, rtx op[], int *l)
 {
   rtx dest = op[0];
@@ -4911,76 +4911,76 @@ out_movsi_mr_r (rtx_insn *insn, rtx op[], int *l)
   if (CONSTANT_ADDRESS_P (base))
     {
       if (io_address_operand (base, SImode))
-        {
-          return *l=4,("out %i0, %A1"  CR_TAB
-                       "out %i0+1,%B1" CR_TAB
-                       "out %i0+2,%C1" CR_TAB
-                       "out %i0+3,%D1");
-        }
+	{
+	  return *l=4,("out %i0, %A1"  CR_TAB
+		       "out %i0+1,%B1" CR_TAB
+		       "out %i0+2,%C1" CR_TAB
+		       "out %i0+3,%D1");
+	}
       else
-        {
-          *l = AVR_TINY ? 4 : 8;
-          return ("sts %m0,%A1"   CR_TAB
-                  "sts %m0+1,%B1" CR_TAB
-                  "sts %m0+2,%C1" CR_TAB
-                  "sts %m0+3,%D1");
-        }
+	{
+	  *l = AVR_TINY ? 4 : 8;
+	  return ("sts %m0,%A1"   CR_TAB
+		  "sts %m0+1,%B1" CR_TAB
+		  "sts %m0+2,%C1" CR_TAB
+		  "sts %m0+3,%D1");
+	}
     }
 
-  if (reg_base > 0)                 /* (r) */
+  if (reg_base > 0)  /* (r) */
     {
       if (AVR_TINY)
-        return avr_out_movsi_mr_r_reg_no_disp_tiny (insn, op, l);
+	return avr_out_movsi_mr_r_reg_no_disp_tiny (insn, op, l);
 
-      if (reg_base == REG_X)                /* (R26) */
-        {
-          if (reg_src == REG_X)
-            {
+      if (reg_base == REG_X)  /* (R26) */
+	{
+	  if (reg_src == REG_X)
+	    {
 	      /* "st X+,r26" is undefined */
-              if (reg_unused_after (insn, base))
+	      if (reg_unused_after (insn, base))
 		return *l=6, ("mov __tmp_reg__,r27" CR_TAB
 			      "st X,r26"            CR_TAB
 			      "adiw r26,1"          CR_TAB
 			      "st X+,__tmp_reg__"   CR_TAB
 			      "st X+,r28"           CR_TAB
 			      "st X,r29");
-              else
-                return *l=7, ("mov __tmp_reg__,r27" CR_TAB
+	      else
+		return *l=7, ("mov __tmp_reg__,r27" CR_TAB
 			      "st X,r26"            CR_TAB
 			      "adiw r26,1"          CR_TAB
 			      "st X+,__tmp_reg__"   CR_TAB
 			      "st X+,r28"           CR_TAB
 			      "st X,r29"            CR_TAB
 			      "sbiw r26,3");
-            }
-          else if (reg_base == reg_src + 2)
-            {
-              if (reg_unused_after (insn, base))
-                return *l=7, ("mov __zero_reg__,%C1" CR_TAB
-                              "mov __tmp_reg__,%D1"  CR_TAB
-                              "st %0+,%A1"           CR_TAB
-                              "st %0+,%B1"           CR_TAB
-                              "st %0+,__zero_reg__"  CR_TAB
-                              "st %0,__tmp_reg__"    CR_TAB
-                              "clr __zero_reg__");
-              else
-                return *l=8, ("mov __zero_reg__,%C1" CR_TAB
-                              "mov __tmp_reg__,%D1"  CR_TAB
-                              "st %0+,%A1"           CR_TAB
-                              "st %0+,%B1"           CR_TAB
-                              "st %0+,__zero_reg__"  CR_TAB
-                              "st %0,__tmp_reg__"    CR_TAB
-                              "clr __zero_reg__"     CR_TAB
-                              "sbiw r26,3");
-            }
-          return *l=5, ("st %0+,%A1" CR_TAB
-                        "st %0+,%B1" CR_TAB
-                        "st %0+,%C1" CR_TAB
-                        "st %0,%D1"  CR_TAB
-                        "sbiw r26,3");
-        }
+	    }
+	  else if (reg_base == reg_src + 2)
+	    {
+	      if (reg_unused_after (insn, base))
+		return *l=7, ("mov __zero_reg__,%C1" CR_TAB
+			      "mov __tmp_reg__,%D1"  CR_TAB
+			      "st %0+,%A1"           CR_TAB
+			      "st %0+,%B1"           CR_TAB
+			      "st %0+,__zero_reg__"  CR_TAB
+			      "st %0,__tmp_reg__"    CR_TAB
+			      "clr __zero_reg__");
+	      else
+		return *l=8, ("mov __zero_reg__,%C1" CR_TAB
+			      "mov __tmp_reg__,%D1"  CR_TAB
+			      "st %0+,%A1"           CR_TAB
+			      "st %0+,%B1"           CR_TAB
+			      "st %0+,__zero_reg__"  CR_TAB
+			      "st %0,__tmp_reg__"    CR_TAB
+			      "clr __zero_reg__"     CR_TAB
+			      "sbiw r26,3");
+	    }
+	  return *l=5, ("st %0+,%A1" CR_TAB
+			"st %0+,%B1" CR_TAB
+			"st %0+,%C1" CR_TAB
+			"st %0,%D1"  CR_TAB
+			"sbiw r26,3");
+	}
       else
-        return *l=4, ("st %0,%A1"    CR_TAB
+	return *l=4, ("st %0,%A1"    CR_TAB
 		      "std %0+1,%B1" CR_TAB
 		      "std %0+2,%C1" CR_TAB
 		      "std %0+3,%D1");
@@ -4990,7 +4990,7 @@ out_movsi_mr_r (rtx_insn *insn, rtx op[], int *l)
       int disp = INTVAL (XEXP (base, 1));
 
       if (AVR_TINY)
-        return avr_out_movsi_mr_r_reg_disp_tiny (op, l);
+	return avr_out_movsi_mr_r_reg_disp_tiny (op, l);
 
       reg_base = REGNO (XEXP (base, 0));
       if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
@@ -5125,8 +5125,8 @@ output_movsisf (rtx_insn *insn, rtx operands[], int *l)
 	}
       else if (CONSTANT_P (src))
 	{
-          return output_reload_insisf (operands, NULL_RTX, real_l);
-        }
+	  return output_reload_insisf (operands, NULL_RTX, real_l);
+	}
       else if (MEM_P (src))
 	return out_movsi_r_mr (insn, operands, real_l); /* mov r,m */
     }
@@ -5135,7 +5135,7 @@ output_movsisf (rtx_insn *insn, rtx operands[], int *l)
       const char *templ;
 
       if (src == CONST0_RTX (GET_MODE (dest)))
-        operands[1] = zero_reg_rtx;
+	operands[1] = zero_reg_rtx;
 
       templ = out_movsi_mr_r (insn, operands, real_l);
 
@@ -5152,7 +5152,7 @@ output_movsisf (rtx_insn *insn, rtx operands[], int *l)
 
 /* Handle loads of 24-bit types from memory to register.  */
 
-static const char*
+static const char *
 avr_out_load_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx dest = op[0];
@@ -5164,11 +5164,11 @@ avr_out_load_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
   if (reg_base == reg_dest)
     {
       return avr_asm_len (TINY_ADIW (%E1, %F1, 2)   CR_TAB
-                          "ld %C0,%1"               CR_TAB
-                          "ld __tmp_reg__,-%1"      CR_TAB
-                          TINY_SBIW (%E1, %F1, 1)   CR_TAB
-                          "ld %A0,%1"               CR_TAB
-                          "mov %B0,__tmp_reg__", op, plen, -8);
+			  "ld %C0,%1"               CR_TAB
+			  "ld __tmp_reg__,-%1"      CR_TAB
+			  TINY_SBIW (%E1, %F1, 1)   CR_TAB
+			  "ld %A0,%1"               CR_TAB
+			  "mov %B0,__tmp_reg__", op, plen, -8);
     }
   else
     {
@@ -5177,15 +5177,15 @@ avr_out_load_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 		   "ld %C0,%1", op, plen, -3);
 
       if (reg_dest != reg_base - 2
-          && !reg_unused_after (insn, base))
-        {
-          avr_asm_len (TINY_SBIW (%E1, %F1, 2), op, plen, 2);
-        }
+	  && !reg_unused_after (insn, base))
+	{
+	  avr_asm_len (TINY_SBIW (%E1, %F1, 2), op, plen, 2);
+	}
       return "";
     }
 }
 
-static const char*
+static const char *
 avr_out_load_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx dest = op[0];
@@ -5198,28 +5198,28 @@ avr_out_load_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
   if (reg_base == reg_dest)
     {
       return avr_asm_len (TINY_ADIW (%I1, %J1, %o1+2) CR_TAB
-                          "ld %C0,%b1"                CR_TAB
-                          "ld __tmp_reg__,-%b1"       CR_TAB
-                          TINY_SBIW (%I1, %J1, 1)     CR_TAB
-                          "ld %A0,%b1"                CR_TAB
-                          "mov %B0,__tmp_reg__", op, plen, -8);
+			  "ld %C0,%b1"                CR_TAB
+			  "ld __tmp_reg__,-%b1"       CR_TAB
+			  TINY_SBIW (%I1, %J1, 1)     CR_TAB
+			  "ld %A0,%b1"                CR_TAB
+			  "mov %B0,__tmp_reg__", op, plen, -8);
     }
   else
     {
       avr_asm_len (TINY_ADIW (%I1, %J1, %o1)   CR_TAB
-                   "ld %A0,%b1+"               CR_TAB
-                   "ld %B0,%b1+"               CR_TAB
-                   "ld %C0,%b1", op, plen, -5);
+		   "ld %A0,%b1+"               CR_TAB
+		   "ld %B0,%b1+"               CR_TAB
+		   "ld %C0,%b1", op, plen, -5);
 
       if (reg_dest != reg_base - 2
-          && !reg_unused_after (insn, XEXP (base, 0)))
-        avr_asm_len (TINY_SBIW (%I1, %J1, %o1+2), op, plen, 2);
+	  && !reg_unused_after (insn, XEXP (base, 0)))
+	avr_asm_len (TINY_SBIW (%I1, %J1, %o1+2), op, plen, 2);
 
       return "";
     }
 }
 
-static const char*
+static const char *
 avr_out_load_psi (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx dest = op[0];
@@ -5231,126 +5231,126 @@ avr_out_load_psi (rtx_insn *insn, rtx *op, int *plen)
   if (reg_base > 0)
     {
       if (AVR_TINY)
-        return avr_out_load_psi_reg_no_disp_tiny (insn, op, plen);
-
-      if (reg_base == REG_X)        /* (R26) */
-        {
-          if (reg_dest == REG_X)
-            /* "ld r26,-X" is undefined */
-            return avr_asm_len ("adiw r26,2"        CR_TAB
-                                "ld r28,X"          CR_TAB
-                                "ld __tmp_reg__,-X" CR_TAB
-                                "sbiw r26,1"        CR_TAB
-                                "ld r26,X"          CR_TAB
-                                "mov r27,__tmp_reg__", op, plen, -6);
-          else
-            {
-              avr_asm_len ("ld %A0,X+" CR_TAB
-                           "ld %B0,X+" CR_TAB
-                           "ld %C0,X", op, plen, -3);
-
-              if (reg_dest != REG_X - 2
-                  && !reg_unused_after (insn, base))
-                {
-                  avr_asm_len ("sbiw r26,2", op, plen, 1);
-                }
-
-              return "";
-            }
-        }
+	return avr_out_load_psi_reg_no_disp_tiny (insn, op, plen);
+
+      if (reg_base == REG_X)  /* (R26) */
+	{
+	  if (reg_dest == REG_X)
+	    /* "ld r26,-X" is undefined */
+	    return avr_asm_len ("adiw r26,2"        CR_TAB
+				"ld r28,X"          CR_TAB
+				"ld __tmp_reg__,-X" CR_TAB
+				"sbiw r26,1"        CR_TAB
+				"ld r26,X"          CR_TAB
+				"mov r27,__tmp_reg__", op, plen, -6);
+	  else
+	    {
+	      avr_asm_len ("ld %A0,X+" CR_TAB
+			   "ld %B0,X+" CR_TAB
+			   "ld %C0,X", op, plen, -3);
+
+	      if (reg_dest != REG_X - 2
+		  && !reg_unused_after (insn, base))
+		{
+		  avr_asm_len ("sbiw r26,2", op, plen, 1);
+		}
+
+	      return "";
+	    }
+	}
       else /* reg_base != REG_X */
-        {
-          if (reg_dest == reg_base)
-            return avr_asm_len ("ldd %C0,%1+2"          CR_TAB
-                                "ldd __tmp_reg__,%1+1"  CR_TAB
-                                "ld  %A0,%1"            CR_TAB
-                                "mov %B0,__tmp_reg__", op, plen, -4);
-          else
-            return avr_asm_len ("ld  %A0,%1"    CR_TAB
-                                "ldd %B0,%1+1"  CR_TAB
-                                "ldd %C0,%1+2", op, plen, -3);
-        }
+	{
+	  if (reg_dest == reg_base)
+	    return avr_asm_len ("ldd %C0,%1+2"          CR_TAB
+				"ldd __tmp_reg__,%1+1"  CR_TAB
+				"ld  %A0,%1"            CR_TAB
+				"mov %B0,__tmp_reg__", op, plen, -4);
+	  else
+	    return avr_asm_len ("ld  %A0,%1"    CR_TAB
+				"ldd %B0,%1+1"  CR_TAB
+				"ldd %C0,%1+2", op, plen, -3);
+	}
     }
   else if (GET_CODE (base) == PLUS) /* (R + i) */
     {
       int disp = INTVAL (XEXP (base, 1));
 
       if (AVR_TINY)
-        return avr_out_load_psi_reg_disp_tiny (insn, op, plen);
+	return avr_out_load_psi_reg_disp_tiny (insn, op, plen);
 
       if (disp > MAX_LD_OFFSET (GET_MODE (src)))
-        {
-          if (REGNO (XEXP (base, 0)) != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
-            return avr_asm_len ("adiw r28,%o1-61" CR_TAB
-                                "ldd %A0,Y+61"    CR_TAB
-                                "ldd %B0,Y+62"    CR_TAB
-                                "ldd %C0,Y+63"    CR_TAB
-                                "sbiw r28,%o1-61", op, plen, -5);
-
-          return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
-                              "sbci r29,hi8(-%o1)" CR_TAB
-                              "ld  %A0,Y"          CR_TAB
-                              "ldd %B0,Y+1"        CR_TAB
-                              "ldd %C0,Y+2"        CR_TAB
-                              "subi r28,lo8(%o1)"  CR_TAB
-                              "sbci r29,hi8(%o1)", op, plen, -7);
-        }
+	{
+	  if (REGNO (XEXP (base, 0)) != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
+	    return avr_asm_len ("adiw r28,%o1-61" CR_TAB
+				"ldd %A0,Y+61"    CR_TAB
+				"ldd %B0,Y+62"    CR_TAB
+				"ldd %C0,Y+63"    CR_TAB
+				"sbiw r28,%o1-61", op, plen, -5);
+
+	  return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
+			      "sbci r29,hi8(-%o1)" CR_TAB
+			      "ld  %A0,Y"          CR_TAB
+			      "ldd %B0,Y+1"        CR_TAB
+			      "ldd %C0,Y+2"        CR_TAB
+			      "subi r28,lo8(%o1)"  CR_TAB
+			      "sbci r29,hi8(%o1)", op, plen, -7);
+	}
 
       reg_base = true_regnum (XEXP (base, 0));
       if (reg_base == REG_X)
-        {
-          /* R = (X + d) */
-          if (reg_dest == REG_X)
-            {
-              /* "ld r26,-X" is undefined */
-              return avr_asm_len ("adiw r26,%o1+2"     CR_TAB
-                                  "ld  r28,X"          CR_TAB
-                                  "ld  __tmp_reg__,-X" CR_TAB
-                                  "sbiw r26,1"         CR_TAB
-                                  "ld  r26,X"          CR_TAB
-                                  "mov r27,__tmp_reg__", op, plen, -6);
-            }
-
-          avr_asm_len ("adiw r26,%o1" CR_TAB
-                       "ld %A0,X+"    CR_TAB
-                       "ld %B0,X+"    CR_TAB
-                       "ld %C0,X", op, plen, -4);
-
-          if (reg_dest != REG_W
-              && !reg_unused_after (insn, XEXP (base, 0)))
-            avr_asm_len ("sbiw r26,%o1+2", op, plen, 1);
-
-          return "";
-        }
+	{
+	  /* R = (X + d) */
+	  if (reg_dest == REG_X)
+	    {
+	      /* "ld r26,-X" is undefined */
+	      return avr_asm_len ("adiw r26,%o1+2"     CR_TAB
+				  "ld  r28,X"          CR_TAB
+				  "ld  __tmp_reg__,-X" CR_TAB
+				  "sbiw r26,1"         CR_TAB
+				  "ld  r26,X"          CR_TAB
+				  "mov r27,__tmp_reg__", op, plen, -6);
+	    }
+
+	  avr_asm_len ("adiw r26,%o1" CR_TAB
+		       "ld %A0,X+"    CR_TAB
+		       "ld %B0,X+"    CR_TAB
+		       "ld %C0,X", op, plen, -4);
+
+	  if (reg_dest != REG_W
+	      && !reg_unused_after (insn, XEXP (base, 0)))
+	    avr_asm_len ("sbiw r26,%o1+2", op, plen, 1);
+
+	  return "";
+	}
 
       if (reg_dest == reg_base)
-        return avr_asm_len ("ldd %C0,%C1" CR_TAB
-                            "ldd __tmp_reg__,%B1"  CR_TAB
-                            "ldd %A0,%A1" CR_TAB
-                            "mov %B0,__tmp_reg__", op, plen, -4);
+	return avr_asm_len ("ldd %C0,%C1"          CR_TAB
+			    "ldd __tmp_reg__,%B1"  CR_TAB
+			    "ldd %A0,%A1"          CR_TAB
+			    "mov %B0,__tmp_reg__", op, plen, -4);
 
       return avr_asm_len ("ldd %A0,%A1" CR_TAB
-                          "ldd %B0,%B1" CR_TAB
-                          "ldd %C0,%C1", op, plen, -3);
+			  "ldd %B0,%B1" CR_TAB
+			  "ldd %C0,%C1", op, plen, -3);
     }
   else if (GET_CODE (base) == PRE_DEC) /* (--R) */
     return avr_asm_len ("ld %C0,%1" CR_TAB
-                        "ld %B0,%1" CR_TAB
-                        "ld %A0,%1", op, plen, -3);
+			"ld %B0,%1" CR_TAB
+			"ld %A0,%1", op, plen, -3);
   else if (GET_CODE (base) == POST_INC) /* (R++) */
     return avr_asm_len ("ld %A0,%1" CR_TAB
-                        "ld %B0,%1" CR_TAB
-                        "ld %C0,%1", op, plen, -3);
+			"ld %B0,%1" CR_TAB
+			"ld %C0,%1", op, plen, -3);
 
   else if (CONSTANT_ADDRESS_P (base))
     {
       int n_words = AVR_TINY ? 3 : 6;
-      return avr_asm_len ("lds %A0,%m1" CR_TAB
-                          "lds %B0,%m1+1" CR_TAB
-                          "lds %C0,%m1+2", op, plen , -n_words);
+      return avr_asm_len ("lds %A0,%m1"   CR_TAB
+			  "lds %B0,%m1+1" CR_TAB
+			  "lds %C0,%m1+2", op, plen , -n_words);
     }
 
   fatal_insn ("unknown move insn:",insn);
@@ -5358,7 +5358,7 @@ avr_out_load_psi (rtx_insn *insn, rtx *op, int *plen)
 }
 
 
-static const char*
+static const char *
 avr_out_store_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx dest = op[0];
@@ -5370,25 +5370,25 @@ avr_out_store_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
   if (reg_base == reg_src)
     {
       avr_asm_len ("st %0,%A1"              CR_TAB
-                   "mov __tmp_reg__,%B1"    CR_TAB
-                   TINY_ADIW (%E0, %F0, 1)  CR_TAB /* st X+, r27 is undefined */
-                   "st %0+,__tmp_reg__"     CR_TAB
-                   "st %0,%C1", op, plen, -6);
+		   "mov __tmp_reg__,%B1"    CR_TAB
+		   TINY_ADIW (%E0, %F0, 1)  CR_TAB /* st X+, r27 is undefined */
+		   "st %0+,__tmp_reg__"     CR_TAB
+		   "st %0,%C1", op, plen, -6);
 
     }
   else if (reg_src == reg_base - 2)
     {
       avr_asm_len ("st %0,%A1"              CR_TAB
-                   "mov __tmp_reg__,%C1"    CR_TAB
-                   TINY_ADIW (%E0, %F0, 1)  CR_TAB
-                   "st %0+,%B1"             CR_TAB
-                   "st %0,__tmp_reg__", op, plen, 6);
+		   "mov __tmp_reg__,%C1"    CR_TAB
+		   TINY_ADIW (%E0, %F0, 1)  CR_TAB
+		   "st %0+,%B1"             CR_TAB
+		   "st %0,__tmp_reg__", op, plen, 6);
     }
   else
     {
       avr_asm_len ("st %0+,%A1"  CR_TAB
-                   "st %0+,%B1" CR_TAB
-                   "st %0,%C1", op, plen, -3);
+		   "st %0+,%B1" CR_TAB
+		   "st %0,%C1", op, plen, -3);
     }
 
   if (!reg_unused_after (insn, base))
@@ -5397,7 +5397,7 @@ avr_out_store_psi_reg_no_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
   return "";
 }
 
-static const char*
+static const char *
 avr_out_store_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx dest = op[0];
@@ -5408,23 +5408,23 @@ avr_out_store_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 
   if (reg_src == reg_base)
     avr_asm_len ("mov __tmp_reg__,%A1"          CR_TAB
-                 "mov __zero_reg__,%B1"         CR_TAB
-                 TINY_ADIW (%I0, %J0, %o0)      CR_TAB
-                 "st %b0+,__tmp_reg__"          CR_TAB
-                 "st %b0+,__zero_reg__"         CR_TAB
-                 "st %b0,%C1"                   CR_TAB
-                 "clr __zero_reg__", op, plen, -8);
+		 "mov __zero_reg__,%B1"         CR_TAB
+		 TINY_ADIW (%I0, %J0, %o0)      CR_TAB
+		 "st %b0+,__tmp_reg__"          CR_TAB
+		 "st %b0+,__zero_reg__"         CR_TAB
+		 "st %b0,%C1"                   CR_TAB
+		 "clr __zero_reg__", op, plen, -8);
   else if (reg_src == reg_base - 2)
     avr_asm_len ("mov __tmp_reg__,%C1"          CR_TAB
-                 TINY_ADIW (%I0, %J0, %o0)      CR_TAB
-                 "st %b0+,%A1"                  CR_TAB
-                 "st %b0+,%B1"                  CR_TAB
-                 "st %b0,__tmp_reg__", op, plen, -6);
+		 TINY_ADIW (%I0, %J0, %o0)      CR_TAB
+		 "st %b0+,%A1"                  CR_TAB
+		 "st %b0+,%B1"                  CR_TAB
+		 "st %b0,__tmp_reg__", op, plen, -6);
   else
     avr_asm_len (TINY_ADIW (%I0, %J0, %o0)      CR_TAB
-                 "st %b0+,%A1"                  CR_TAB
-                 "st %b0+,%B1"                  CR_TAB
-                 "st %b0,%C1", op, plen, -5);
+		 "st %b0+,%A1"                  CR_TAB
+		 "st %b0+,%B1"                  CR_TAB
+		 "st %b0,%C1", op, plen, -5);
 
   if (!reg_unused_after (insn, XEXP (base, 0)))
     avr_asm_len (TINY_SBIW (%I0, %J0, %o0+2), op, plen, 2);
@@ -5434,7 +5434,7 @@ avr_out_store_psi_reg_disp_tiny (rtx_insn *insn, rtx *op, int *plen)
 
 /* Handle store of 24-bit type from register or zero to memory.  */
 
-static const char*
+static const char *
 avr_out_store_psi (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx dest = op[0];
@@ -5446,90 +5446,90 @@ avr_out_store_psi (rtx_insn *insn, rtx *op, int *plen)
     {
       int n_words = AVR_TINY ? 3 : 6;
       return avr_asm_len ("sts %m0,%A1"   CR_TAB
-                          "sts %m0+1,%B1" CR_TAB
-                          "sts %m0+2,%C1", op, plen, -n_words);
+			  "sts %m0+1,%B1" CR_TAB
+			  "sts %m0+2,%C1", op, plen, -n_words);
     }
 
-  if (reg_base > 0)                 /* (r) */
+  if (reg_base > 0)  /* (r) */
     {
       if (AVR_TINY)
-        return avr_out_store_psi_reg_no_disp_tiny (insn, op, plen);
+	return avr_out_store_psi_reg_no_disp_tiny (insn, op, plen);
 
-      if (reg_base == REG_X)        /* (R26) */
-        {
-          gcc_assert (!reg_overlap_mentioned_p (base, src));
+      if (reg_base == REG_X)  /* (R26) */
+	{
+	  gcc_assert (!reg_overlap_mentioned_p (base, src));
 
-          avr_asm_len ("st %0+,%A1"  CR_TAB
-                       "st %0+,%B1" CR_TAB
-                       "st %0,%C1", op, plen, -3);
+	  avr_asm_len ("st %0+,%A1"  CR_TAB
+		       "st %0+,%B1" CR_TAB
+		       "st %0,%C1", op, plen, -3);
 
-          if (!reg_unused_after (insn, base))
-            avr_asm_len ("sbiw r26,2", op, plen, 1);
+	  if (!reg_unused_after (insn, base))
+	    avr_asm_len ("sbiw r26,2", op, plen, 1);
 
-          return "";
-        }
+	  return "";
+	}
       else
-        return avr_asm_len ("st %0,%A1"    CR_TAB
-                            "std %0+1,%B1" CR_TAB
-                            "std %0+2,%C1", op, plen, -3);
+	return avr_asm_len ("st %0,%A1"    CR_TAB
+			    "std %0+1,%B1" CR_TAB
+			    "std %0+2,%C1", op, plen, -3);
     }
   else if (GET_CODE (base) == PLUS) /* (R + i) */
     {
       int disp = INTVAL (XEXP (base, 1));
 
       if (AVR_TINY)
-        return avr_out_store_psi_reg_disp_tiny (insn, op, plen);
+	return avr_out_store_psi_reg_disp_tiny (insn, op, plen);
 
       reg_base = REGNO (XEXP (base, 0));
 
       if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
-        {
-          if (reg_base != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
-            return avr_asm_len ("adiw r28,%o0-61" CR_TAB
-                                "std Y+61,%A1"    CR_TAB
-                                "std Y+62,%B1"    CR_TAB
-                                "std Y+63,%C1"    CR_TAB
-                                "sbiw r28,%o0-61", op, plen, -5);
-
-          return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
-                              "sbci r29,hi8(-%o0)" CR_TAB
-                              "st Y,%A1"           CR_TAB
-                              "std Y+1,%B1"        CR_TAB
-                              "std Y+2,%C1"        CR_TAB
-                              "subi r28,lo8(%o0)"  CR_TAB
-                              "sbci r29,hi8(%o0)", op, plen, -7);
-        }
+	{
+	  if (reg_base != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
+	    return avr_asm_len ("adiw r28,%o0-61" CR_TAB
+				"std Y+61,%A1"    CR_TAB
+				"std Y+62,%B1"    CR_TAB
+				"std Y+63,%C1"    CR_TAB
+				"sbiw r28,%o0-61", op, plen, -5);
+
+	  return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
+			      "sbci r29,hi8(-%o0)" CR_TAB
+			      "st Y,%A1"           CR_TAB
+			      "std Y+1,%B1"        CR_TAB
+			      "std Y+2,%C1"        CR_TAB
+			      "subi r28,lo8(%o0)"  CR_TAB
+			      "sbci r29,hi8(%o0)", op, plen, -7);
+	}
       if (reg_base == REG_X)
-        {
-          /* (X + d) = R */
-          gcc_assert (!reg_overlap_mentioned_p (XEXP (base, 0), src));
+	{
+	  /* (X + d) = R */
+	  gcc_assert (!reg_overlap_mentioned_p (XEXP (base, 0), src));
 
-          avr_asm_len ("adiw r26,%o0" CR_TAB
-                       "st X+,%A1"    CR_TAB
-                       "st X+,%B1"    CR_TAB
-                       "st X,%C1", op, plen, -4);
+	  avr_asm_len ("adiw r26,%o0" CR_TAB
+		       "st X+,%A1"    CR_TAB
+		       "st X+,%B1"    CR_TAB
+		       "st X,%C1", op, plen, -4);
 
-          if (!reg_unused_after (insn, XEXP (base, 0)))
-            avr_asm_len ("sbiw r26,%o0+2", op, plen, 1);
+	  if (!reg_unused_after (insn, XEXP (base, 0)))
+	    avr_asm_len ("sbiw r26,%o0+2", op, plen, 1);
 
-          return "";
-        }
+	  return "";
+	}
 
       return avr_asm_len ("std %A0,%A1" CR_TAB
-                          "std %B0,%B1" CR_TAB
-                          "std %C0,%C1", op, plen, -3);
+			  "std %B0,%B1" CR_TAB
+			  "std %C0,%C1", op, plen, -3);
     }
   else if (GET_CODE (base) == PRE_DEC) /* (--R) */
     return avr_asm_len ("st %0,%C1" CR_TAB
-                        "st %0,%B1" CR_TAB
-                        "st %0,%A1", op, plen, -3);
+			"st %0,%B1" CR_TAB
+			"st %0,%A1", op, plen, -3);
   else if (GET_CODE (base) == POST_INC) /* (R++) */
     return avr_asm_len ("st %0,%A1" CR_TAB
-                        "st %0,%B1" CR_TAB
-                        "st %0,%C1", op, plen, -3);
+			"st %0,%B1" CR_TAB
+			"st %0,%C1", op, plen, -3);
 
   fatal_insn ("unknown move insn:",insn);
   return "";
@@ -5553,34 +5553,34 @@ avr_out_movpsi (rtx_insn *insn, rtx *op, int *plen)
   if (register_operand (dest, VOIDmode))
     {
       if (register_operand (src, VOIDmode)) /* mov r,r */
-        {
-          if (true_regnum (dest) > true_regnum (src))
-            {
-              avr_asm_len ("mov %C0,%C1", op, plen, -1);
-
-              if (AVR_HAVE_MOVW)
-                return avr_asm_len ("movw %A0,%A1", op, plen, 1);
-              else
-                return avr_asm_len ("mov %B0,%B1"  CR_TAB
-                                    "mov %A0,%A1", op, plen, 2);
-            }
-          else
-            {
-              if (AVR_HAVE_MOVW)
-                avr_asm_len ("movw %A0,%A1", op, plen, -1);
-              else
-                avr_asm_len ("mov %A0,%A1"  CR_TAB
-                             "mov %B0,%B1", op, plen, -2);
-
-              return avr_asm_len ("mov %C0,%C1", op, plen, 1);
-            }
-        }
+	{
+	  if (true_regnum (dest) > true_regnum (src))
+	    {
+	      avr_asm_len ("mov %C0,%C1", op, plen, -1);
+
+	      if (AVR_HAVE_MOVW)
+		return avr_asm_len ("movw %A0,%A1", op, plen, 1);
+	      else
+		return avr_asm_len ("mov %B0,%B1"  CR_TAB
+				    "mov %A0,%A1", op, plen, 2);
+	    }
+	  else
+	    {
+	      if (AVR_HAVE_MOVW)
+		avr_asm_len ("movw %A0,%A1", op, plen, -1);
+	      else
+		avr_asm_len ("mov %A0,%A1"  CR_TAB
+			     "mov %B0,%B1", op, plen, -2);
+
+	      return avr_asm_len ("mov %C0,%C1", op, plen, 1);
+	    }
+	}
       else if (CONSTANT_P (src))
-        {
-          return avr_out_reload_inpsi (op, NULL_RTX, plen);
-        }
+	{
+	  return avr_out_reload_inpsi (op, NULL_RTX, plen);
+	}
       else if (MEM_P (src))
-        return avr_out_load_psi (insn, op, plen); /* mov r,m */
+	return avr_out_load_psi (insn, op, plen); /* mov r,m */
     }
   else if (MEM_P (dest))
     {
@@ -5596,7 +5596,7 @@ avr_out_movpsi (rtx_insn *insn, rtx *op, int *plen)
   return "";
 }
 
-static const char*
+static const char *
 avr_out_movqi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -5606,13 +5606,13 @@ avr_out_movqi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
     {
       avr_asm_len ("mov __tmp_reg__,%1"      CR_TAB
-                   TINY_ADIW (%I0, %J0, %o0) CR_TAB
-                   "st %b0,__tmp_reg__", op, plen, -4);
+		   TINY_ADIW (%I0, %J0, %o0) CR_TAB
+		   "st %b0,__tmp_reg__", op, plen, -4);
     }
   else
     {
       avr_asm_len (TINY_ADIW (%I0, %J0, %o0) CR_TAB
-                   "st %b0,%1", op, plen, -3);
+		   "st %b0,%1", op, plen, -3);
     }
 
   if (!reg_unused_after (insn, XEXP (x, 0)))
@@ -5621,7 +5621,7 @@ avr_out_movqi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   return "";
 }
 
-static const char*
+static const char *
 out_movqi_mr_r (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -5632,55 +5632,55 @@ out_movqi_mr_r (rtx_insn *insn, rtx op[], int *plen)
     {
       int n_words = AVR_TINY ? 1 : 2;
       return io_address_operand (x, QImode)
-        ? avr_asm_len ("out %i0,%1", op, plen, -1)
-        : avr_asm_len ("sts %m0,%1", op, plen, -n_words);
+	? avr_asm_len ("out %i0,%1", op, plen, -1)
+	: avr_asm_len ("sts %m0,%1", op, plen, -n_words);
     }
   else if (GET_CODE (x) == PLUS
-           && REG_P (XEXP (x, 0))
-           && CONST_INT_P (XEXP (x, 1)))
+	   && REG_P (XEXP (x, 0))
+	   && CONST_INT_P (XEXP (x, 1)))
     {
       /* memory access by reg+disp */
 
       int disp = INTVAL (XEXP (x, 1));
 
       if (AVR_TINY)
-        return avr_out_movqi_mr_r_reg_disp_tiny (insn, op, plen);
+	return avr_out_movqi_mr_r_reg_disp_tiny (insn, op, plen);
 
       if (disp - GET_MODE_SIZE (GET_MODE (dest)) >= 63)
-        {
-          if (REGNO (XEXP (x, 0)) != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
-            return avr_asm_len ("adiw r28,%o0-63" CR_TAB
-                                "std Y+63,%1"     CR_TAB
-                                "sbiw r28,%o0-63", op, plen, -3);
-
-          return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
-                              "sbci r29,hi8(-%o0)" CR_TAB
-                              "st Y,%1"            CR_TAB
-                              "subi r28,lo8(%o0)"  CR_TAB
-                              "sbci r29,hi8(%o0)", op, plen, -5);
-        }
+	{
+	  if (REGNO (XEXP (x, 0)) != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
+	    return avr_asm_len ("adiw r28,%o0-63" CR_TAB
+				"std Y+63,%1"     CR_TAB
+				"sbiw r28,%o0-63", op, plen, -3);
+
+	  return avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
+			      "sbci r29,hi8(-%o0)" CR_TAB
+			      "st Y,%1"            CR_TAB
+			      "subi r28,lo8(%o0)"  CR_TAB
+			      "sbci r29,hi8(%o0)", op, plen, -5);
+	}
       else if (REGNO (XEXP (x, 0)) == REG_X)
-        {
-          if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
-            {
-              avr_asm_len ("mov __tmp_reg__,%1" CR_TAB
-                           "adiw r26,%o0"       CR_TAB
-                           "st X,__tmp_reg__", op, plen, -3);
-            }
-          else
-            {
-              avr_asm_len ("adiw r26,%o0" CR_TAB
-                           "st X,%1", op, plen, -2);
-            }
-
-          if (!reg_unused_after (insn, XEXP (x, 0)))
-            avr_asm_len ("sbiw r26,%o0", op, plen, 1);
-
-          return "";
-        }
+	{
+	  if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
+	    {
+	      avr_asm_len ("mov __tmp_reg__,%1" CR_TAB
+			   "adiw r26,%o0"       CR_TAB
+			   "st X,__tmp_reg__", op, plen, -3);
+	    }
+	  else
+	    {
+	      avr_asm_len ("adiw r26,%o0" CR_TAB
+			   "st X,%1", op, plen, -2);
+	    }
+
+	  if (!reg_unused_after (insn, XEXP (x, 0)))
+	    avr_asm_len ("sbiw r26,%o0", op, plen, 1);
+
+	  return "";
+	}
 
       return avr_asm_len ("std %0,%1", op, plen, -1);
     }
@@ -5692,7 +5692,7 @@ out_movqi_mr_r (rtx_insn *insn, rtx op[], int *plen)
 /* Helper for the next function for XMEGA.  It does the same
    but with low byte first.  */
 
-static const char*
+static const char *
 avr_out_movhi_mr_r_xmega (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -5708,101 +5708,101 @@ avr_out_movhi_mr_r_xmega (rtx_insn *insn, rtx op[], int *plen)
   if (CONSTANT_ADDRESS_P (base))
     {
       return io_address_operand (base, HImode)
-        ? avr_asm_len ("out %i0,%A1" CR_TAB
-                       "out %i0+1,%B1", op, plen, -2)
+	? avr_asm_len ("out %i0,%A1" CR_TAB
+		       "out %i0+1,%B1", op, plen, -2)
 
-        : avr_asm_len ("sts %m0,%A1" CR_TAB
-                       "sts %m0+1,%B1", op, plen, -4);
+	: avr_asm_len ("sts %m0,%A1" CR_TAB
+		       "sts %m0+1,%B1", op, plen, -4);
     }
 
   if (reg_base > 0)
     {
       if (reg_base != REG_X)
-        return avr_asm_len ("st %0,%A1" CR_TAB
-                            "std %0+1,%B1", op, plen, -2);
+	return avr_asm_len ("st %0,%A1" CR_TAB
+			    "std %0+1,%B1", op, plen, -2);
 
       if (reg_src == REG_X)
-        /* "st X+,r26" and "st -X,r26" are undefined.  */
-        avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
-                     "st X,r26"            CR_TAB
-                     "adiw r26,1"          CR_TAB
-                     "st X,__tmp_reg__", op, plen, -4);
+	/* "st X+,r26" and "st -X,r26" are undefined.  */
+	avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
+		     "st X,r26"            CR_TAB
+		     "adiw r26,1"          CR_TAB
+		     "st X,__tmp_reg__", op, plen, -4);
       else
-        avr_asm_len ("st X+,%A1" CR_TAB
-                     "st X,%B1", op, plen, -2);
+	avr_asm_len ("st X+,%A1" CR_TAB
+		     "st X,%B1", op, plen, -2);
 
       return reg_unused_after (insn, base)
-        ? ""
-        : avr_asm_len ("sbiw r26,1", op, plen, 1);
+	? ""
+	: avr_asm_len ("sbiw r26,1", op, plen, 1);
     }
   else if (GET_CODE (base) == PLUS)
     {
       int disp = INTVAL (XEXP (base, 1));
       reg_base = REGNO (XEXP (base, 0));
       if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
-        {
-          if (reg_base != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
-            ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
-                           "std Y+62,%A1"    CR_TAB
-                           "std Y+63,%B1"    CR_TAB
-                           "sbiw r28,%o0-62", op, plen, -4)
-
-            : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
-                           "sbci r29,hi8(-%o0)" CR_TAB
-                           "st Y,%A1"           CR_TAB
-                           "std Y+1,%B1"        CR_TAB
-                           "subi r28,lo8(%o0)"  CR_TAB
-                           "sbci r29,hi8(%o0)", op, plen, -6);
-        }
+	{
+	  if (reg_base != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
+	    ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
+			   "std Y+62,%A1"    CR_TAB
+			   "std Y+63,%B1"    CR_TAB
+			   "sbiw r28,%o0-62", op, plen, -4)
+
+	    : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
+			   "sbci r29,hi8(-%o0)" CR_TAB
+			   "st Y,%A1"           CR_TAB
+			   "std Y+1,%B1"        CR_TAB
+			   "subi r28,lo8(%o0)"  CR_TAB
+			   "sbci r29,hi8(%o0)", op, plen, -6);
+	}
 
       if (reg_base != REG_X)
-        return avr_asm_len ("std %A0,%A1" CR_TAB
-                            "std %B0,%B1", op, plen, -2);
+	return avr_asm_len ("std %A0,%A1" CR_TAB
+			    "std %B0,%B1", op, plen, -2);
       /* (X + d) = R */
       return reg_src == REG_X
-        ? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
-                       "mov __zero_reg__,r27" CR_TAB
-                       "adiw r26,%o0"         CR_TAB
-                       "st X+,__tmp_reg__"    CR_TAB
-                       "st X,__zero_reg__"    CR_TAB
-                       "clr __zero_reg__"     CR_TAB
-                       "sbiw r26,%o0+1", op, plen, -7)
-
-        : avr_asm_len ("adiw r26,%o0" CR_TAB
-                       "st X+,%A1"    CR_TAB
-                       "st X,%B1"     CR_TAB
-                       "sbiw r26,%o0+1", op, plen, -4);
+	? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
+		       "mov __zero_reg__,r27" CR_TAB
+		       "adiw r26,%o0"         CR_TAB
+		       "st X+,__tmp_reg__"    CR_TAB
+		       "st X,__zero_reg__"    CR_TAB
+		       "clr __zero_reg__"     CR_TAB
+		       "sbiw r26,%o0+1", op, plen, -7)
+
+	: avr_asm_len ("adiw r26,%o0" CR_TAB
+		       "st X+,%A1"    CR_TAB
+		       "st X,%B1"     CR_TAB
+		       "sbiw r26,%o0+1", op, plen, -4);
     }
   else if (GET_CODE (base) == PRE_DEC) /* (--R) */
     {
       if (!mem_volatile_p)
-        return avr_asm_len ("st %0,%B1" CR_TAB
-                            "st %0,%A1", op, plen, -2);
+	return avr_asm_len ("st %0,%B1" CR_TAB
+			    "st %0,%A1", op, plen, -2);
 
       return REGNO (XEXP (base, 0)) == REG_X
-        ? avr_asm_len ("sbiw r26,2"  CR_TAB
-                       "st X+,%A1"   CR_TAB
-                       "st X,%B1"    CR_TAB
-                       "sbiw r26,1", op, plen, -4)
+	? avr_asm_len ("sbiw r26,2"  CR_TAB
+		       "st X+,%A1"   CR_TAB
+		       "st X,%B1"    CR_TAB
+		       "sbiw r26,1", op, plen, -4)
 
-        : avr_asm_len ("sbiw %r0,2"  CR_TAB
-                       "st %p0,%A1"  CR_TAB
-                       "std %p0+1,%B1", op, plen, -3);
+	: avr_asm_len ("sbiw %r0,2"  CR_TAB
+		       "st %p0,%A1"  CR_TAB
+		       "std %p0+1,%B1", op, plen, -3);
     }
   else if (GET_CODE (base) == POST_INC) /* (R++) */
     {
       return avr_asm_len ("st %0,%A1"  CR_TAB
-                          "st %0,%B1", op, plen, -2);
+			  "st %0,%B1", op, plen, -2);
 
     }
   fatal_insn ("unknown move insn:",insn);
   return "";
 }
 
-static const char*
+static const char *
 avr_out_movhi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -5815,26 +5815,26 @@ avr_out_movhi_mr_r_reg_no_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   if (reg_base == reg_src)
     {
       return !mem_volatile_p && reg_unused_after (insn, src)
-        ? avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
-                       "st %0,%A1"             CR_TAB
-                       TINY_ADIW (%E0, %F0, 1) CR_TAB
-                       "st %0,__tmp_reg__", op, plen, -5)
-        : avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
-                       TINY_ADIW (%E0, %F0, 1) CR_TAB
-                       "st %0,__tmp_reg__"     CR_TAB
-                       TINY_SBIW (%E0, %F0, 1) CR_TAB
-                       "st %0, %A1", op, plen, -7);
+	? avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
+		       "st %0,%A1"             CR_TAB
+		       TINY_ADIW (%E0, %F0, 1) CR_TAB
+		       "st %0,__tmp_reg__", op, plen, -5)
+	: avr_asm_len ("mov __tmp_reg__,%B1"   CR_TAB
+		       TINY_ADIW (%E0, %F0, 1) CR_TAB
+		       "st %0,__tmp_reg__"     CR_TAB
+		       TINY_SBIW (%E0, %F0, 1) CR_TAB
+		       "st %0, %A1", op, plen, -7);
     }
 
   return !mem_volatile_p && reg_unused_after (insn, base)
     ? avr_asm_len ("st %0+,%A1" CR_TAB
-                   "st %0,%B1", op, plen, -2)
+		   "st %0,%B1", op, plen, -2)
     : avr_asm_len (TINY_ADIW (%E0, %F0, 1) CR_TAB
-                   "st %0,%B1"             CR_TAB
-                   "st -%0,%A1", op, plen, -4);
+		   "st %0,%B1"             CR_TAB
+		   "st -%0,%A1", op, plen, -4);
 }
 
-static const char*
+static const char *
 avr_out_movhi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -5845,15 +5845,15 @@ avr_out_movhi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
 
   if (reg_src == reg_base)
     avr_asm_len ("mov __tmp_reg__,%A1"          CR_TAB
-                 "mov __zero_reg__,%B1"         CR_TAB
-                 TINY_ADIW (%I0, %J0, %o0+1)    CR_TAB
-                 "st %b0,__zero_reg__"          CR_TAB
-                 "st -%b0,__tmp_reg__"          CR_TAB
-                 "clr __zero_reg__", op, plen, -7);
+		 "mov __zero_reg__,%B1"         CR_TAB
+		 TINY_ADIW (%I0, %J0, %o0+1)    CR_TAB
+		 "st %b0,__zero_reg__"          CR_TAB
+		 "st -%b0,__tmp_reg__"          CR_TAB
+		 "clr __zero_reg__", op, plen, -7);
   else
     avr_asm_len (TINY_ADIW (%I0, %J0, %o0+1) CR_TAB
-                 "st %b0,%B1"                CR_TAB
-                 "st -%b0,%A1", op, plen, -4);
+		 "st %b0,%B1"                CR_TAB
+		 "st -%b0,%A1", op, plen, -4);
 
   if (!reg_unused_after (insn, XEXP (base, 0)))
     avr_asm_len (TINY_SBIW (%I0, %J0, %o0), op, plen, 2);
@@ -5861,16 +5861,16 @@ avr_out_movhi_mr_r_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
   return "";
 }
 
-static const char*
+static const char *
 avr_out_movhi_mr_r_post_inc_tiny (rtx op[], int *plen)
 {
   return avr_asm_len (TINY_ADIW (%I0, %J0, 1)  CR_TAB
-                      "st %p0,%B1"    CR_TAB
-                      "st -%p0,%A1"   CR_TAB
-                      TINY_ADIW (%I0, %J0, 2), op, plen, -6);
+		      "st %p0,%B1"    CR_TAB
+		      "st -%p0,%A1"   CR_TAB
+		      TINY_ADIW (%I0, %J0, 2), op, plen, -6);
 }
 
-static const char*
+static const char *
 out_movhi_mr_r (rtx_insn *insn, rtx op[], int *plen)
 {
   rtx dest = op[0];
@@ -5893,111 +5893,111 @@ out_movhi_mr_r (rtx_insn *insn, rtx op[], int *plen)
     {
       int n_words = AVR_TINY ? 2 : 4;
       return io_address_operand (base, HImode)
-        ? avr_asm_len ("out %i0+1,%B1" CR_TAB
-                       "out %i0,%A1", op, plen, -2)
+	? avr_asm_len ("out %i0+1,%B1" CR_TAB
+		       "out %i0,%A1", op, plen, -2)
 
-        : avr_asm_len ("sts %m0+1,%B1" CR_TAB
-                       "sts %m0,%A1", op, plen, -n_words);
+	: avr_asm_len ("sts %m0+1,%B1" CR_TAB
+		       "sts %m0,%A1", op, plen, -n_words);
     }
 
   if (reg_base > 0)
     {
       if (AVR_TINY)
-        return avr_out_movhi_mr_r_reg_no_disp_tiny (insn, op, plen);
+	return avr_out_movhi_mr_r_reg_no_disp_tiny (insn, op, plen);
 
       if (reg_base != REG_X)
-        return avr_asm_len ("std %0+1,%B1" CR_TAB
-                            "st %0,%A1", op, plen, -2);
+	return avr_asm_len ("std %0+1,%B1" CR_TAB
+			    "st %0,%A1", op, plen, -2);
 
       if (reg_src == REG_X)
-        /* "st X+,r26" and "st -X,r26" are undefined.  */
-        return !mem_volatile_p && reg_unused_after (insn, src)
-          ? avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
-                         "st X,r26"            CR_TAB
-                         "adiw r26,1"          CR_TAB
-                         "st X,__tmp_reg__", op, plen, -4)
-
-          : avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
-                         "adiw r26,1"          CR_TAB
-                         "st X,__tmp_reg__"    CR_TAB
-                         "sbiw r26,1"          CR_TAB
-                         "st X,r26", op, plen, -5);
+	/* "st X+,r26" and "st -X,r26" are undefined.  */
+	return !mem_volatile_p && reg_unused_after (insn, src)
+	  ? avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
+			 "st X,r26"            CR_TAB
+			 "adiw r26,1"          CR_TAB
+			 "st X,__tmp_reg__", op, plen, -4)
+
+	  : avr_asm_len ("mov __tmp_reg__,r27" CR_TAB
+			 "adiw r26,1"          CR_TAB
+			 "st X,__tmp_reg__"    CR_TAB
+			 "sbiw r26,1"          CR_TAB
+			 "st X,r26", op, plen, -5);
 
       return !mem_volatile_p && reg_unused_after (insn, base)
-        ? avr_asm_len ("st X+,%A1" CR_TAB
-                       "st X,%B1", op, plen, -2)
-        : avr_asm_len ("adiw r26,1" CR_TAB
-                       "st X,%B1"   CR_TAB
-                       "st -X,%A1", op, plen, -3);
+	? avr_asm_len ("st X+,%A1" CR_TAB
+		       "st X,%B1", op, plen, -2)
+	: avr_asm_len ("adiw r26,1" CR_TAB
+		       "st X,%B1"   CR_TAB
+		       "st -X,%A1", op, plen, -3);
     }
   else if (GET_CODE (base) == PLUS)
     {
       int disp = INTVAL (XEXP (base, 1));
 
       if (AVR_TINY)
-        return avr_out_movhi_mr_r_reg_disp_tiny (insn, op, plen);
+	return avr_out_movhi_mr_r_reg_disp_tiny (insn, op, plen);
 
       reg_base = REGNO (XEXP (base, 0));
       if (disp > MAX_LD_OFFSET (GET_MODE (dest)))
-        {
-          if (reg_base != REG_Y)
-            fatal_insn ("incorrect insn:",insn);
-
-          return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
-            ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
-                           "std Y+63,%B1"    CR_TAB
-                           "std Y+62,%A1"    CR_TAB
-                           "sbiw r28,%o0-62", op, plen, -4)
-
-            : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
-                           "sbci r29,hi8(-%o0)" CR_TAB
-                           "std Y+1,%B1"        CR_TAB
-                           "st Y,%A1"           CR_TAB
-                           "subi r28,lo8(%o0)"  CR_TAB
-                           "sbci r29,hi8(%o0)", op, plen, -6);
-        }
+	{
+	  if (reg_base != REG_Y)
+	    fatal_insn ("incorrect insn:",insn);
+
+	  return disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest))
+	    ? avr_asm_len ("adiw r28,%o0-62" CR_TAB
+			   "std Y+63,%B1"    CR_TAB
+			   "std Y+62,%A1"    CR_TAB
+			   "sbiw r28,%o0-62", op, plen, -4)
+
+	    : avr_asm_len ("subi r28,lo8(-%o0)" CR_TAB
+			   "sbci r29,hi8(-%o0)" CR_TAB
+			   "std Y+1,%B1"        CR_TAB
+			   "st Y,%A1"           CR_TAB
+			   "subi r28,lo8(%o0)"  CR_TAB
+			   "sbci r29,hi8(%o0)", op, plen, -6);
+	}
 
       if (reg_base != REG_X)
-        return avr_asm_len ("std %B0,%B1" CR_TAB
-                            "std %A0,%A1", op, plen, -2);
+	return avr_asm_len ("std %B0,%B1" CR_TAB
+			    "std %A0,%A1", op, plen, -2);
       /* (X + d) = R */
       return reg_src == REG_X
-        ? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
-                       "mov __zero_reg__,r27" CR_TAB
-                       "adiw r26,%o0+1"       CR_TAB
-                       "st X,__zero_reg__"    CR_TAB
-                       "st -X,__tmp_reg__"    CR_TAB
-                       "clr __zero_reg__"     CR_TAB
-                       "sbiw r26,%o0", op, plen, -7)
-
-        : avr_asm_len ("adiw r26,%o0+1" CR_TAB
-                       "st X,%B1"       CR_TAB
-                       "st -X,%A1"      CR_TAB
-                       "sbiw r26,%o0", op, plen, -4);
+	? avr_asm_len ("mov __tmp_reg__,r26"  CR_TAB
+		       "mov __zero_reg__,r27" CR_TAB
+		       "adiw r26,%o0+1"       CR_TAB
+		       "st X,__zero_reg__"    CR_TAB
+		       "st -X,__tmp_reg__"    CR_TAB
+		       "clr __zero_reg__"     CR_TAB
+		       "sbiw r26,%o0", op, plen, -7)
+
+	: avr_asm_len ("adiw r26,%o0+1" CR_TAB
+		       "st X,%B1"       CR_TAB
+		       "st -X,%A1"      CR_TAB
+		       "sbiw r26,%o0", op, plen, -4);
     }
   else if (GET_CODE (base) == PRE_DEC) /* (--R) */
     {
       return avr_asm_len ("st %0,%B1" CR_TAB
-                          "st %0,%A1", op, plen, -2);
+			  "st %0,%A1", op, plen, -2);
     }
   else if (GET_CODE (base) == POST_INC) /* (R++) */
     {
       if (!mem_volatile_p)
-        return avr_asm_len ("st %0,%A1"  CR_TAB
-                            "st %0,%B1", op, plen, -2);
+	return avr_asm_len ("st %0,%A1"  CR_TAB
+			    "st %0,%B1", op, plen, -2);
 
       if (AVR_TINY)
-        return avr_out_movhi_mr_r_post_inc_tiny (op, plen);
+	return avr_out_movhi_mr_r_post_inc_tiny (op, plen);
 
       return REGNO (XEXP (base, 0)) == REG_X
-        ? avr_asm_len ("adiw r26,1"  CR_TAB
-                       "st X,%B1"    CR_TAB
-                       "st -X,%A1"   CR_TAB
-                       "adiw r26,2", op, plen, -4)
+	? avr_asm_len ("adiw r26,1"  CR_TAB
+		       "st X,%B1"    CR_TAB
+		       "st -X,%A1"   CR_TAB
+		       "adiw r26,2", op, plen, -4)
 
-        : avr_asm_len ("std %p0+1,%B1" CR_TAB
-                       "st %p0,%A1"    CR_TAB
-                       "adiw %r0,2", op, plen, -3);
+	: avr_asm_len ("std %p0+1,%B1" CR_TAB
+		       "st %p0,%A1"    CR_TAB
+		       "adiw %r0,2", op, plen, -3);
     }
   fatal_insn ("unknown move insn:",insn);
   return "";
@@ -6009,10 +6009,10 @@ static bool
 avr_frame_pointer_required_p (void)
 {
   return (cfun->calls_alloca
-          || cfun->calls_setjmp
-          || cfun->has_nonlocal_label
-          || crtl->args.info.nregs == 0
-          || get_frame_size () > 0);
+	  || cfun->calls_setjmp
+	  || cfun->has_nonlocal_label
+	  || crtl->args.info.nregs == 0
+	  || get_frame_size () > 0);
 }
 
 
@@ -6157,7 +6157,7 @@ avr_canonicalize_comparison (int *icode, rtx *op0, rtx *op1, bool op0_fixed)
    PLEN != NULL:  Set *PLEN to the length (in words) of the sequence.
                   Don't output anything.  */
 
-const char*
+const char *
 avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
 {
   /* Register to compare and value to compare against. */
@@ -6186,7 +6186,7 @@ avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
 
   gcc_assert (REG_P (xreg));
   gcc_assert ((CONST_INT_P (xval) && n_bytes <= 4)
-              || (const_double_operand (xval, VOIDmode) && n_bytes == 8));
+	      || (const_double_operand (xval, VOIDmode) && n_bytes == 8));
 
   if (plen)
     *plen = 0;
@@ -6201,29 +6201,29 @@ avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
       && reg_unused_after (insn, xreg))
     {
       if (xval == const1_rtx)
-        {
-          avr_asm_len ("dec %A0" CR_TAB
-                       "or %A0,%B0", xop, plen, 2);
+	{
+	  avr_asm_len ("dec %A0" CR_TAB
+		       "or %A0,%B0", xop, plen, 2);
 
-          if (n_bytes >= 3)
-            avr_asm_len ("or %A0,%C0", xop, plen, 1);
+	  if (n_bytes >= 3)
+	    avr_asm_len ("or %A0,%C0", xop, plen, 1);
 
-          if (n_bytes >= 4)
-            avr_asm_len ("or %A0,%D0", xop, plen, 1);
+	  if (n_bytes >= 4)
+	    avr_asm_len ("or %A0,%D0", xop, plen, 1);
 
-          return "";
-        }
+	  return "";
+	}
       else if (xval == constm1_rtx)
-        {
-          if (n_bytes >= 4)
-            avr_asm_len ("and %A0,%D0", xop, plen, 1);
+	{
+	  if (n_bytes >= 4)
+	    avr_asm_len ("and %A0,%D0", xop, plen, 1);
 
-          if (n_bytes >= 3)
-            avr_asm_len ("and %A0,%C0", xop, plen, 1);
+	  if (n_bytes >= 3)
+	    avr_asm_len ("and %A0,%C0", xop, plen, 1);
 
-          return avr_asm_len ("and %A0,%B0" CR_TAB
-                              "com %A0", xop, plen, 2);
-        }
+	  return avr_asm_len ("and %A0,%B0" CR_TAB
+			      "com %A0", xop, plen, 2);
+	}
     }
 
   /* Comparisons == -1 and != -1 of a d-register that's used after the
@@ -6245,13 +6245,13 @@ avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
       rtx xhi8 = simplify_gen_subreg (QImode, xval, mode, 1);
 
       if (INTVAL (xlo8) == INTVAL (xhi8))
-        {
-          xop[0] = xreg;
-          xop[1] = xlo8;
+	{
+	  xop[0] = xreg;
+	  xop[1] = xlo8;
 
-          return avr_asm_len ("cpi %A0,%1"  CR_TAB
-                              "cpc %B0,%A0", xop, plen, 2);
-        }
+	  return avr_asm_len ("cpi %A0,%1"  CR_TAB
+			      "cpc %B0,%A0", xop, plen, 2);
+	}
     }
 
   for (int i = 0; i < n_bytes; i++)
@@ -6272,74 +6272,74 @@ avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
       /* Word registers >= R24 can use SBIW/ADIW with 0..63.  */
 
       if (i == 0
-          && test_hard_reg_class (ADDW_REGS, reg8))
-        {
-          int val16 = trunc_int_for_mode (INTVAL (xval), HImode);
-
-          if (IN_RANGE (val16, 0, 63)
-              && (val8 == 0
-                  || reg_unused_after (insn, xreg)))
-            {
-              if (AVR_TINY)
-                avr_asm_len (TINY_SBIW (%A0, %B0, %1), xop, plen, 2);
-              else
-                avr_asm_len ("sbiw %0,%1", xop, plen, 1);
-
-              i++;
-              continue;
-            }
-
-          if (n_bytes == 2
-              && IN_RANGE (val16, -63, -1)
-              && compare_eq_p (insn)
-              && reg_unused_after (insn, xreg))
-            {
-              return AVR_TINY
-                ? avr_asm_len (TINY_ADIW (%A0, %B0, %n1), xop, plen, 2)
-                : avr_asm_len ("adiw %0,%n1", xop, plen, 1);
-            }
-        }
+	  && test_hard_reg_class (ADDW_REGS, reg8))
+	{
+	  int val16 = trunc_int_for_mode (INTVAL (xval), HImode);
+
+	  if (IN_RANGE (val16, 0, 63)
+	      && (val8 == 0
+		  || reg_unused_after (insn, xreg)))
+	    {
+	      if (AVR_TINY)
+		avr_asm_len (TINY_SBIW (%A0, %B0, %1), xop, plen, 2);
+	      else
+		avr_asm_len ("sbiw %0,%1", xop, plen, 1);
+
+	      i++;
+	      continue;
+	    }
+
+	  if (n_bytes == 2
+	      && IN_RANGE (val16, -63, -1)
+	      && compare_eq_p (insn)
+	      && reg_unused_after (insn, xreg))
+	    {
+	      return AVR_TINY
+		? avr_asm_len (TINY_ADIW (%A0, %B0, %n1), xop, plen, 2)
+		: avr_asm_len ("adiw %0,%n1", xop, plen, 1);
+	    }
+	}
 
       /* Comparing against 0 is easy.  */
 
       if (val8 == 0)
-        {
-          avr_asm_len (i == 0
-                       ? "cp %0,__zero_reg__"
-                       : "cpc %0,__zero_reg__", xop, plen, 1);
-          continue;
-        }
+	{
+	  avr_asm_len (i == 0
+		       ? "cp %0,__zero_reg__"
+		       : "cpc %0,__zero_reg__", xop, plen, 1);
+	  continue;
+	}
 
       /* Upper registers can compare and subtract-with-carry immediates.
-         Notice that compare instructions do the same as respective subtract
-         instruction; the only difference is that comparisons don't write
-         the result back to the target register.  */
+	 Notice that compare instructions do the same as respective subtract
+	 instruction; the only difference is that comparisons don't write
+	 the result back to the target register.  */
 
       if (ld_reg_p)
-        {
-          if (i == 0)
-            {
-              avr_asm_len ("cpi %0,%1", xop, plen, 1);
-              continue;
-            }
-          else if (reg_unused_after (insn, xreg))
-            {
-              avr_asm_len ("sbci %0,%1", xop, plen, 1);
-              continue;
-            }
-        }
+	{
+	  if (i == 0)
+	    {
+	      avr_asm_len ("cpi %0,%1", xop, plen, 1);
+	      continue;
+	    }
+	  else if (reg_unused_after (insn, xreg))
+	    {
+	      avr_asm_len ("sbci %0,%1", xop, plen, 1);
+	      continue;
+	    }
+	}
 
       /* Must load the value into the scratch register.  */
 
       gcc_assert (REG_P (xop[2]));
 
       if (clobber_val != (int) val8)
-        avr_asm_len ("ldi %2,%1", xop, plen, 1);
+	avr_asm_len ("ldi %2,%1", xop, plen, 1);
       clobber_val = (int) val8;
 
       avr_asm_len (i == 0
-                   ? "cp %0,%2"
-                   : "cpc %0,%2", xop, plen, 1);
+		   ? "cp %0,%2"
+		   : "cpc %0,%2", xop, plen, 1);
     }
 
   return "";
@@ -6348,7 +6348,7 @@ avr_out_compare (rtx_insn *insn, rtx *xop, int *plen)
 
 /* Prepare operands of compare_const_di2 to be used with avr_out_compare.  */
 
-const char*
+const char *
 avr_out_compare64 (rtx_insn *insn, rtx *op, int *plen)
 {
   rtx xop[3];
@@ -6362,7 +6362,7 @@ avr_out_compare64 (rtx_insn *insn, rtx *op, int *plen)
 
 /* Output test instruction for HImode.  */
 
-const char*
+const char *
 avr_out_tsthi (rtx_insn *insn, rtx *op, int *plen)
 {
   if (compare_sign_p (insn))
@@ -6370,7 +6370,7 @@ avr_out_tsthi (rtx_insn *insn, rtx *op, int *plen)
       avr_asm_len ("tst %B0", op, plen, -1);
     }
   else if (reg_unused_after (insn, op[0])
-           && compare_eq_p (insn))
+	   && compare_eq_p (insn))
     {
       /* Faster than sbiw if we can clobber the operand.  */
       avr_asm_len ("or %A0,%B0", op, plen, -1);
@@ -6386,7 +6386,7 @@ avr_out_tsthi (rtx_insn *insn, rtx *op, int *plen)
 
 /* Output test instruction for PSImode.  */
 
-const char*
+const char *
 avr_out_tstpsi (rtx_insn *insn, rtx *op, int *plen)
 {
   if (compare_sign_p (insn))
@@ -6394,11 +6394,11 @@ avr_out_tstpsi (rtx_insn *insn, rtx *op, int *plen)
       avr_asm_len ("tst %C0", op, plen, -1);
     }
   else if (reg_unused_after (insn, op[0])
-           && compare_eq_p (insn))
+	   && compare_eq_p (insn))
     {
       /* Faster than sbiw if we can clobber the operand.  */
       avr_asm_len ("or %A0,%B0" CR_TAB
-                   "or %A0,%C0", op, plen, -2);
+		   "or %A0,%C0", op, plen, -2);
     }
   else
     {
@@ -6411,7 +6411,7 @@ avr_out_tstpsi (rtx_insn *insn, rtx *op, int *plen)
 
 /* Output test instruction for SImode.  */
 
-const char*
+const char *
 avr_out_tstsi (rtx_insn *insn, rtx *op, int *plen)
 {
   if (compare_sign_p (insn))
@@ -6419,12 +6419,12 @@ avr_out_tstsi (rtx_insn *insn, rtx *op, int *plen)
       avr_asm_len ("tst %D0", op, plen, -1);
     }
   else if (reg_unused_after (insn, op[0])
-           && compare_eq_p (insn))
+	   && compare_eq_p (insn))
     {
       /* Faster than sbiw if we can clobber the operand.  */
       avr_asm_len ("or %A0,%B0" CR_TAB
-                   "or %A0,%C0" CR_TAB
-                   "or %A0,%D0", op, plen, -3);
+		   "or %A0,%C0" CR_TAB
+		   "or %A0,%D0", op, plen, -3);
     }
   else
     {
@@ -6441,7 +6441,7 @@ avr_out_tstsi (rtx_insn *insn, rtx *op, int *plen)
    PLEN != 0: Set *PLEN to the code length in words. Don't output anything.
    PLEN == 0: Print instructions.  */
 
-const char*
+const char *
 avr_out_cmp_ext (rtx xop[], enum rtx_code code, int *plen)
 {
   // The smaller reg is the one that's to be extended.  Get its index as z.
@@ -6533,56 +6533,56 @@ out_shift_with_cnt (const char *templ, rtx_insn *insn, rtx operands[],
          If a scratch reg is not available, then the parallel
          will contain only a set and clobber of REG_CC. */
       bool scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
-                      && XVECLEN (PATTERN (insn), 0) == 3
-                      && REG_P (operands[3]));
+		      && XVECLEN (PATTERN (insn), 0) == 3
+		      && REG_P (operands[3]));
       int count = INTVAL (operands[2]);
       int max_len = 10;  /* If larger than this, always use a loop.  */
 
       if (count <= 0)
-        return;
+	return;
 
       if (count < 8 && !scratch)
-        use_zero_reg = true;
+	use_zero_reg = true;
 
       if (optimize_size)
-        max_len = t_len + (scratch ? 3 : (use_zero_reg ? 4 : 5));
+	max_len = t_len + (scratch ? 3 : (use_zero_reg ? 4 : 5));
 
       if (t_len * count <= max_len)
-        {
-          /* Output shifts inline with no loop - faster.  */
+	{
+	  /* Output shifts inline with no loop - faster.  */
 
-          while (count-- > 0)
-            avr_asm_len (templ, op, plen, t_len);
+	  while (count-- > 0)
+	    avr_asm_len (templ, op, plen, t_len);
 
-          return;
-        }
+	  return;
+	}
 
       if (scratch)
-        {
-          avr_asm_len ("ldi %3,%2", op, plen, 1);
-        }
+	{
+	  avr_asm_len ("ldi %3,%2", op, plen, 1);
+	}
       else if (use_zero_reg)
-        {
-          /* Hack to save one word: use __zero_reg__ as loop counter.
-             Set one bit, then shift in a loop until it is 0 again.  */
+	{
+	  /* Hack to save one word: use __zero_reg__ as loop counter.
+	     Set one bit, then shift in a loop until it is 0 again.  */
 
-          op[3] = zero_reg_rtx;
+	  op[3] = zero_reg_rtx;
 
-          avr_asm_len ("set" CR_TAB
-                       "bld %3,%2-1", op, plen, 2);
-        }
+	  avr_asm_len ("set" CR_TAB
+		       "bld %3,%2-1", op, plen, 2);
+	}
       else
-        {
-          /* No scratch register available, use one from LD_REGS (saved in
-             __tmp_reg__) that doesn't overlap with registers to shift.  */
+	{
+	  /* No scratch register available, use one from LD_REGS (saved in
+	     __tmp_reg__) that doesn't overlap with registers to shift.  */
 
-          op[3] = all_regs_rtx[((REGNO (op[0]) - 1) & 15) + 16];
-          op[4] = tmp_reg_rtx;
-          saved_in_tmp = true;
+	  op[3] = all_regs_rtx[((REGNO (op[0]) - 1) & 15) + 16];
+	  op[4] = tmp_reg_rtx;
+	  saved_in_tmp = true;
 
-          avr_asm_len ("mov %4,%3" CR_TAB
-                       "ldi %3,%2", op, plen, 2);
-        }
+	  avr_asm_len ("mov %4,%3" CR_TAB
+		       "ldi %3,%2", op, plen, 2);
+	}
 
       second_label = false;
     }
@@ -6600,11 +6600,11 @@ out_shift_with_cnt (const char *templ, rtx_insn *insn, rtx operands[],
       op[3] = op[2];
 
       if (!reg_unused_after (insn, op[2])
-          || reg_overlap_mentioned_p (op[0], op[2]))
-        {
-          op[3] = tmp_reg_rtx;
-          avr_asm_len ("mov %3,%2", op, plen, 1);
-        }
+	  || reg_overlap_mentioned_p (op[0], op[2]))
+	{
+	  op[3] = tmp_reg_rtx;
+	  avr_asm_len ("mov %3,%2", op, plen, 1);
+	}
     }
   else
     fatal_insn ("bad shift insn:", insn);
@@ -6718,7 +6718,7 @@ ashlqi3_out (rtx_insn *insn, rtx operands[], int *len)
     fatal_insn ("internal compiler error.  Incorrect shift:", insn);
 
   out_shift_with_cnt ("lsl %0",
-                      insn, operands, len, 1);
+		      insn, operands, len, 1);
   return "";
 }
 
@@ -6731,8 +6731,8 @@ ashlhi3_out (rtx_insn *insn, rtx operands[], int *len)
   if (CONST_INT_P (operands[2]))
     {
       int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
-                     && XVECLEN (PATTERN (insn), 0) == 3
-                     && REG_P (operands[3]));
+		     && XVECLEN (PATTERN (insn), 0) == 3
+		     && REG_P (operands[3]));
       int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
       int k;
       int *t = len;
@@ -6977,14 +6977,14 @@ ashlhi3_out (rtx_insn *insn, rtx operands[], int *len)
       len = t;
     }
   out_shift_with_cnt ("lsl %A0" CR_TAB
-                      "rol %B0", insn, operands, len, 2);
+		      "rol %B0", insn, operands, len, 2);
   return "";
 }
 
 
 /* 24-bit shift left */
 
-const char*
+const char *
 avr_out_ashlpsi3 (rtx_insn *insn, rtx *op, int *plen)
 {
   if (plen)
@@ -6993,54 +6993,54 @@ avr_out_ashlpsi3 (rtx_insn *insn, rtx *op, int *plen)
   if (CONST_INT_P (op[2]))
     {
       switch (INTVAL (op[2]))
-        {
-        default:
-          if (INTVAL (op[2]) < 24)
-            break;
-
-          return avr_asm_len ("clr %A0" CR_TAB
-                              "clr %B0" CR_TAB
-                              "clr %C0", op, plen, 3);
-
-        case 8:
-          {
-            int reg0 = REGNO (op[0]);
-            int reg1 = REGNO (op[1]);
-
-            if (reg0 >= reg1)
-              return avr_asm_len ("mov %C0,%B1"  CR_TAB
-                                  "mov %B0,%A1"  CR_TAB
-                                  "clr %A0", op, plen, 3);
-            else
-              return avr_asm_len ("clr %A0"      CR_TAB
-                                  "mov %B0,%A1"  CR_TAB
-                                  "mov %C0,%B1", op, plen, 3);
-          }
-
-        case 16:
-          {
-            int reg0 = REGNO (op[0]);
-            int reg1 = REGNO (op[1]);
-
-            if (reg0 + 2 != reg1)
-              avr_asm_len ("mov %C0,%A0", op, plen, 1);
-
-            return avr_asm_len ("clr %B0"  CR_TAB
-                                "clr %A0", op, plen, 2);
-          }
-
-        case 23:
-          return avr_asm_len ("clr %C0" CR_TAB
-                              "lsr %A0" CR_TAB
-                              "ror %C0" CR_TAB
-                              "clr %B0" CR_TAB
-                              "clr %A0", op, plen, 5);
-        }
+	{
+	default:
+	  if (INTVAL (op[2]) < 24)
+	    break;
+
+	  return avr_asm_len ("clr %A0" CR_TAB
+			      "clr %B0" CR_TAB
+			      "clr %C0", op, plen, 3);
+
+	case 8:
+	  {
+	    int reg0 = REGNO (op[0]);
+	    int reg1 = REGNO (op[1]);
+
+	    if (reg0 >= reg1)
+	      return avr_asm_len ("mov %C0,%B1"  CR_TAB
+				  "mov %B0,%A1"  CR_TAB
+				  "clr %A0", op, plen, 3);
+	    else
+	      return avr_asm_len ("clr %A0"      CR_TAB
+				  "mov %B0,%A1"  CR_TAB
+				  "mov %C0,%B1", op, plen, 3);
+	  }
+
+	case 16:
+	  {
+	    int reg0 = REGNO (op[0]);
+	    int reg1 = REGNO (op[1]);
+
+	    if (reg0 + 2 != reg1)
+	      avr_asm_len ("mov %C0,%A0", op, plen, 1);
+
+	    return avr_asm_len ("clr %B0"  CR_TAB
+				"clr %A0", op, plen, 2);
+	  }
+
+	case 23:
+	  return avr_asm_len ("clr %C0" CR_TAB
+			      "lsr %A0" CR_TAB
+			      "ror %C0" CR_TAB
+			      "clr %B0" CR_TAB
+			      "clr %A0", op, plen, 5);
+	}
     }
 
   out_shift_with_cnt ("lsl %A0" CR_TAB
-                      "rol %B0" CR_TAB
-                      "rol %C0", insn, op, plen, 3);
+		      "rol %B0" CR_TAB
+		      "rol %C0", insn, op, plen, 3);
   return "";
 }
 
@@ -7128,9 +7128,9 @@ ashlsi3_out (rtx_insn *insn, rtx operands[], int *len)
       len = t;
     }
   out_shift_with_cnt ("lsl %A0" CR_TAB
-                      "rol %B0" CR_TAB
-                      "rol %C0" CR_TAB
-                      "rol %D0", insn, operands, len, 4);
+		      "rol %B0" CR_TAB
+		      "rol %C0" CR_TAB
+		      "rol %D0", insn, operands, len, 4);
   return "";
 }
 
@@ -7201,7 +7201,7 @@ ashrqi3_out (rtx_insn *insn, rtx operands[], int *len)
     fatal_insn ("internal compiler error.  Incorrect shift:", insn);
 
   out_shift_with_cnt ("asr %0",
-                      insn, operands, len, 1);
+		      insn, operands, len, 1);
   return "";
 }
 
@@ -7214,8 +7214,8 @@ ashrhi3_out (rtx_insn *insn, rtx operands[], int *len)
   if (CONST_INT_P (operands[2]))
     {
       int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
-                     && XVECLEN (PATTERN (insn), 0) == 3
-                     && REG_P (operands[3]));
+		     && XVECLEN (PATTERN (insn), 0) == 3
+		     && REG_P (operands[3]));
       int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
       int k;
       int *t = len;
@@ -7261,9 +7261,9 @@ ashrhi3_out (rtx_insn *insn, rtx operands[], int *len)
 				"sbc %B0,%B0");
 	    else
 	      return *len = 4, ("mov %A0,%B1" CR_TAB
-			        "clr %B0"     CR_TAB
-			        "sbrc %A0,7"  CR_TAB
-			        "dec %B0");
+				"clr %B0"     CR_TAB
+				"sbrc %A0,7"  CR_TAB
+				"dec %B0");
 	  }
 
 	case 9:
@@ -7366,14 +7366,14 @@ ashrhi3_out (rtx_insn *insn, rtx operands[], int *len)
       len = t;
     }
   out_shift_with_cnt ("asr %B0" CR_TAB
-                      "ror %A0", insn, operands, len, 2);
+		      "ror %A0", insn, operands, len, 2);
   return "";
 }
 
 
 /* 24-bit arithmetic shift right */
 
-const char*
+const char *
 avr_out_ashrpsi3 (rtx_insn *insn, rtx *op, int *plen)
 {
   int dest = REGNO (op[0]);
@@ -7382,50 +7382,50 @@ avr_out_ashrpsi3 (rtx_insn *insn, rtx *op, int *plen)
   if (CONST_INT_P (op[2]))
     {
       if (plen)
-        *plen = 0;
+	*plen = 0;
 
       switch (INTVAL (op[2]))
-        {
-        case 8:
-          if (dest <= src)
-            return avr_asm_len ("mov %A0,%B1" CR_TAB
-                                "mov %B0,%C1" CR_TAB
-                                "clr %C0"     CR_TAB
-                                "sbrc %B0,7"  CR_TAB
-                                "dec %C0", op, plen, 5);
-          else
-            return avr_asm_len ("clr %C0"     CR_TAB
-                                "sbrc %C1,7"  CR_TAB
-                                "dec %C0"     CR_TAB
-                                "mov %B0,%C1" CR_TAB
-                                "mov %A0,%B1", op, plen, 5);
-
-        case 16:
-          if (dest != src + 2)
-            avr_asm_len ("mov %A0,%C1", op, plen, 1);
-
-          return avr_asm_len ("clr %B0"     CR_TAB
-                              "sbrc %A0,7"  CR_TAB
-                              "com %B0"     CR_TAB
-                              "mov %C0,%B0", op, plen, 4);
-
-        default:
-          if (INTVAL (op[2]) < 24)
-            break;
-
-          /* fall through */
-
-        case 23:
-          return avr_asm_len ("lsl %C0"     CR_TAB
-                              "sbc %A0,%A0" CR_TAB
-                              "mov %B0,%A0" CR_TAB
-                              "mov %C0,%A0", op, plen, 4);
-        } /* switch */
+	{
+	case 8:
+	  if (dest <= src)
+	    return avr_asm_len ("mov %A0,%B1" CR_TAB
+				"mov %B0,%C1" CR_TAB
+				"clr %C0"     CR_TAB
+				"sbrc %B0,7"  CR_TAB
+				"dec %C0", op, plen, 5);
+	  else
+	    return avr_asm_len ("clr %C0"     CR_TAB
+				"sbrc %C1,7"  CR_TAB
+				"dec %C0"     CR_TAB
+				"mov %B0,%C1" CR_TAB
+				"mov %A0,%B1", op, plen, 5);
+
+	case 16:
+	  if (dest != src + 2)
+	    avr_asm_len ("mov %A0,%C1", op, plen, 1);
+
+	  return avr_asm_len ("clr %B0"     CR_TAB
+			      "sbrc %A0,7"  CR_TAB
+			      "com %B0"     CR_TAB
+			      "mov %C0,%B0", op, plen, 4);
+
+	default:
+	  if (INTVAL (op[2]) < 24)
+	    break;
+
+	  /* fall through */
+
+	case 23:
+	  return avr_asm_len ("lsl %C0"     CR_TAB
+			      "sbc %A0,%A0" CR_TAB
+			      "mov %B0,%A0" CR_TAB
+			      "mov %C0,%A0", op, plen, 4);
+	} /* switch */
     }
 
   out_shift_with_cnt ("asr %C0" CR_TAB
-                      "ror %B0" CR_TAB
-                      "ror %A0", insn, op, plen, 3);
+		      "ror %B0" CR_TAB
+		      "ror %A0", insn, op, plen, 3);
   return "";
 }
 
@@ -7521,9 +7521,9 @@ ashrsi3_out (rtx_insn *insn, rtx operands[], int *len)
       len = t;
     }
   out_shift_with_cnt ("asr %D0" CR_TAB
-                      "ror %C0" CR_TAB
-                      "ror %B0" CR_TAB
-                      "ror %A0", insn, operands, len, 4);
+		      "ror %C0" CR_TAB
+		      "ror %B0" CR_TAB
+		      "ror %A0", insn, operands, len, 4);
   return "";
 }
 
@@ -7618,7 +7618,7 @@ lshrqi3_out (rtx_insn *insn, rtx operands[], int *len)
     fatal_insn ("internal compiler error.  Incorrect shift:", insn);
 
   out_shift_with_cnt ("lsr %0",
-                      insn, operands, len, 1);
+		      insn, operands, len, 1);
   return "";
 }
 
@@ -7630,8 +7630,8 @@ lshrhi3_out (rtx_insn *insn, rtx operands[], int *len)
   if (CONST_INT_P (operands[2]))
     {
       int scratch = (GET_CODE (PATTERN (insn)) == PARALLEL
-                     && XVECLEN (PATTERN (insn), 0) == 3
-                     && REG_P (operands[3]));
+		     && XVECLEN (PATTERN (insn), 0) == 3
+		     && REG_P (operands[3]));
       int ldi_ok = test_hard_reg_class (LD_REGS, operands[0]);
       int k;
       int *t = len;
@@ -7876,14 +7876,14 @@ lshrhi3_out (rtx_insn *insn, rtx operands[], int *len)
       len = t;
     }
   out_shift_with_cnt ("lsr %B0" CR_TAB
-                      "ror %A0", insn, operands, len, 2);
+		      "ror %A0", insn, operands, len, 2);
   return "";
 }
 
 
 /* 24-bit logic shift right */
 
-const char*
+const char *
 avr_out_lshrpsi3 (rtx_insn *insn, rtx *op, int *plen)
 {
   int dest = REGNO (op[0]);
@@ -7892,45 +7892,45 @@ avr_out_lshrpsi3 (rtx_insn *insn, rtx *op, int *plen)
   if (CONST_INT_P (op[2]))
     {
       if (plen)
-        *plen = 0;
+	*plen = 0;
 
       switch (INTVAL (op[2]))
-        {
-        case 8:
-          if (dest <= src)
-            return avr_asm_len ("mov %A0,%B1" CR_TAB
-                                "mov %B0,%C1" CR_TAB
-                                "clr %C0", op, plen, 3);
-          else
-            return avr_asm_len ("clr %C0"     CR_TAB
-                                "mov %B0,%C1" CR_TAB
-                                "mov %A0,%B1", op, plen, 3);
-
-        case 16:
-          if (dest != src + 2)
-            avr_asm_len ("mov %A0,%C1", op, plen, 1);
-
-          return avr_asm_len ("clr %B0"  CR_TAB
-                              "clr %C0", op, plen, 2);
-
-        default:
-          if (INTVAL (op[2]) < 24)
-            break;
-
-          /* fall through */
-
-        case 23:
-          return avr_asm_len ("bst %C1,7" CR_TAB
-                              "clr %A0"   CR_TAB
-                              "clr %B0"   CR_TAB
-                              "clr %C0"   CR_TAB
-                              "bld %A0,0", op, plen, 5);
-        } /* switch */
+	{
+	case 8:
+	  if (dest <= src)
+	    return avr_asm_len ("mov %A0,%B1" CR_TAB
+				"mov %B0,%C1" CR_TAB
+				"clr %C0", op, plen, 3);
+	  else
+	    return avr_asm_len ("clr %C0"     CR_TAB
+				"mov %B0,%C1" CR_TAB
+				"mov %A0,%B1", op, plen, 3);
+
+	case 16:
+	  if (dest != src + 2)
+	    avr_asm_len ("mov %A0,%C1", op, plen, 1);
+
+	  return avr_asm_len ("clr %B0"  CR_TAB
+			      "clr %C0", op, plen, 2);
+
+	default:
+	  if (INTVAL (op[2]) < 24)
+	    break;
+
+	  /* fall through */
+
+	case 23:
+	  return avr_asm_len ("bst %C1,7" CR_TAB
+			      "clr %A0"   CR_TAB
+			      "clr %B0"   CR_TAB
+			      "clr %C0"   CR_TAB
+			      "bld %A0,0", op, plen, 5);
+	} /* switch */
     }
 
   out_shift_with_cnt ("lsr %C0" CR_TAB
-                      "ror %B0" CR_TAB
-                      "ror %A0", insn, op, plen, 3);
+		      "ror %B0" CR_TAB
+		      "ror %A0", insn, op, plen, 3);
   return "";
 }
 
@@ -8024,9 +8024,9 @@ lshrsi3_out (rtx_insn *insn, rtx operands[], int *len)
       len = t;
     }
   out_shift_with_cnt ("lsr %D0" CR_TAB
-                      "ror %C0" CR_TAB
-                      "ror %B0" CR_TAB
-                      "ror %A0", insn, operands, len, 4);
+		      "ror %C0" CR_TAB
+		      "ror %B0" CR_TAB
+		      "ror %A0", insn, operands, len, 4);
   return "";
 }
 
@@ -8059,7 +8059,7 @@ lshrsi3_out (rtx_insn *insn, rtx operands[], int *len)
 
 static void
 avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
-                enum rtx_code code_sat, int sign, bool out_label)
+		enum rtx_code code_sat, int sign, bool out_label)
 {
   /* MODE of the operation.  */
   machine_mode mode = GET_MODE (xop[0]);
@@ -8097,26 +8097,26 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
       *pcc = MINUS == code ? (int) CC_SET_CZN : (int) CC_CLOBBER;
 
       for (int i = 0; i < n_bytes; i++)
-        {
-          /* We operate byte-wise on the destination.  */
-          op[0] = simplify_gen_subreg (QImode, xop[0], mode, i);
-          op[1] = simplify_gen_subreg (QImode, xop[2], mode, i);
-
-          if (i == 0)
-            avr_asm_len (code == PLUS ? "add %0,%1" : "sub %0,%1",
-                         op, plen, 1);
-          else
-            avr_asm_len (code == PLUS ? "adc %0,%1" : "sbc %0,%1",
-                         op, plen, 1);
-        }
+	{
+	  /* We operate byte-wise on the destination.  */
+	  op[0] = simplify_gen_subreg (QImode, xop[0], mode, i);
+	  op[1] = simplify_gen_subreg (QImode, xop[2], mode, i);
+
+	  if (i == 0)
+	    avr_asm_len (code == PLUS ? "add %0,%1" : "sub %0,%1",
+			 op, plen, 1);
+	  else
+	    avr_asm_len (code == PLUS ? "adc %0,%1" : "sbc %0,%1",
+			 op, plen, 1);
+	}
 
       if (reg_overlap_mentioned_p (xop[0], xop[2]))
-        {
-          gcc_assert (REGNO (xop[0]) == REGNO (xop[2]));
+	{
+	  gcc_assert (REGNO (xop[0]) == REGNO (xop[2]));
 
-          if (MINUS == code)
-            return;
-        }
+	  if (MINUS == code)
+	    return;
+	}
 
       goto saturate;
     }
@@ -8145,19 +8145,19 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
   if (SS_PLUS == code_sat && MINUS == code
       && sign < 0
       && 0x80 == (INTVAL (simplify_gen_subreg (QImode, xval, imode, n_bytes-1))
-                  & GET_MODE_MASK (QImode)))
+		  & GET_MODE_MASK (QImode)))
     {
       /* We compute x + 0x80 by means of SUB instructions.  We negated the
-         constant subtrahend above and are left with  x - (-128)  so that we
-         need something like SUBI r,128 which does not exist because SUBI sets
-         V according to the sign of the subtrahend.  Notice the only case
-         where this must be done is when NEG overflowed in case [2s] because
-         the V computation needs the right sign of the subtrahend.  */
+	 constant subtrahend above and are left with  x - (-128)  so that we
+	 need something like SUBI r,128 which does not exist because SUBI sets
+	 V according to the sign of the subtrahend.  Notice the only case
+	 where this must be done is when NEG overflowed in case [2s] because
+	 the V computation needs the right sign of the subtrahend.  */
 
       rtx msb = simplify_gen_subreg (QImode, xop[0], mode, n_bytes - 1);
 
       avr_asm_len ("subi %0,128" CR_TAB
-                   "brmi 0f", &msb, plen, 2);
+		   "brmi 0f", &msb, plen, 2);
       out_brvc = false;
 
       goto saturate;
@@ -8181,100 +8181,100 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
       /* To get usable cc0 no low-bytes must have been skipped.  */
 
       if (i && !started)
-        *pcc = CC_CLOBBER;
+	*pcc = CC_CLOBBER;
 
       if (!started
-          && i % 2 == 0
-          && i + 2 <= n_bytes
-          && test_hard_reg_class (ADDW_REGS, reg8))
-        {
-          rtx xval16 = simplify_gen_subreg (HImode, xval, imode, i);
-          unsigned int val16 = UINTVAL (xval16) & GET_MODE_MASK (HImode);
-
-          /* Registers R24, X, Y, Z can use ADIW/SBIW with constants < 64
-             i.e. operate word-wise.  */
-
-          if (val16 < 64)
-            {
-              if (val16 != 0)
-                {
-                  started = true;
-                  avr_asm_len (code == PLUS ? "adiw %0,%1" : "sbiw %0,%1",
-                               op, plen, 1);
-
-                  if (n_bytes == 2 && PLUS == code)
-                    *pcc = CC_SET_CZN;
-                }
-
-              i++;
-              continue;
-            }
-        }
+	  && i % 2 == 0
+	  && i + 2 <= n_bytes
+	  && test_hard_reg_class (ADDW_REGS, reg8))
+	{
+	  rtx xval16 = simplify_gen_subreg (HImode, xval, imode, i);
+	  unsigned int val16 = UINTVAL (xval16) & GET_MODE_MASK (HImode);
 
-      if (val8 == 0)
-        {
-          if (started)
-            avr_asm_len (code == PLUS
-                         ? "adc %0,__zero_reg__" : "sbc %0,__zero_reg__",
-                         op, plen, 1);
-          continue;
-        }
+	  /* Registers R24, X, Y, Z can use ADIW/SBIW with constants < 64
+	     i.e. operate word-wise.  */
+
+	  if (val16 < 64)
+	    {
+	      if (val16 != 0)
+		{
+		  started = true;
+		  avr_asm_len (code == PLUS ? "adiw %0,%1" : "sbiw %0,%1",
+			       op, plen, 1);
+
+		  if (n_bytes == 2 && PLUS == code)
+		    *pcc = CC_SET_CZN;
+		}
+
+	      i++;
+	      continue;
+	    }
+	}
+
+      if (val8 == 0)
+	{
+	  if (started)
+	    avr_asm_len (code == PLUS
+			 ? "adc %0,__zero_reg__" : "sbc %0,__zero_reg__",
+			 op, plen, 1);
+	  continue;
+	}
       else if ((val8 == 1 || val8 == 0xff)
-               && UNKNOWN == code_sat
-               && !started
-               && i == n_bytes - 1)
-        {
-          avr_asm_len ((code == PLUS) ^ (val8 == 1) ? "dec %0" : "inc %0",
-                       op, plen, 1);
-          *pcc = CC_CLOBBER;
-          break;
-        }
+	       && UNKNOWN == code_sat
+	       && !started
+	       && i == n_bytes - 1)
+	{
+	  avr_asm_len ((code == PLUS) ^ (val8 == 1) ? "dec %0" : "inc %0",
+		       op, plen, 1);
+	  *pcc = CC_CLOBBER;
+	  break;
+	}
 
       switch (code)
-        {
-        case PLUS:
+	{
+	case PLUS:
 
-          gcc_assert (plen != NULL || (op[2] && REG_P (op[2])));
+	  gcc_assert (plen != NULL || (op[2] && REG_P (op[2])));
 
-          if (plen != NULL && UNKNOWN != code_sat)
-            {
-              /* This belongs to the x + 0x80 corner case.  The code with
-                 ADD instruction is not smaller, thus make this case
-                 expensive so that the caller won't pick it.  */
+	  if (plen != NULL && UNKNOWN != code_sat)
+	    {
+	      /* This belongs to the x + 0x80 corner case.  The code with
+		 ADD instruction is not smaller, thus make this case
+		 expensive so that the caller won't pick it.  */
 
-              *plen += 10;
-              break;
-            }
+	      *plen += 10;
+	      break;
+	    }
 
-          if (clobber_val != (int) val8)
-            avr_asm_len ("ldi %2,%1", op, plen, 1);
-          clobber_val = (int) val8;
+	  if (clobber_val != (int) val8)
+	    avr_asm_len ("ldi %2,%1", op, plen, 1);
+	  clobber_val = (int) val8;
 
-          avr_asm_len (started ? "adc %0,%2" : "add %0,%2", op, plen, 1);
+	  avr_asm_len (started ? "adc %0,%2" : "add %0,%2", op, plen, 1);
 
-          break; /* PLUS */
+	  break; /* PLUS */
 
-        case MINUS:
+	case MINUS:
 
-          if (ld_reg_p)
-            avr_asm_len (started ? "sbci %0,%1" : "subi %0,%1", op, plen, 1);
-          else
-            {
-              gcc_assert (plen != NULL || REG_P (op[2]));
+	  if (ld_reg_p)
+	    avr_asm_len (started ? "sbci %0,%1" : "subi %0,%1", op, plen, 1);
+	  else
+	    {
+	      gcc_assert (plen != NULL || REG_P (op[2]));
 
-              if (clobber_val != (int) val8)
-                avr_asm_len ("ldi %2,%1", op, plen, 1);
-              clobber_val = (int) val8;
+	      if (clobber_val != (int) val8)
+		avr_asm_len ("ldi %2,%1", op, plen, 1);
+	      clobber_val = (int) val8;
 
-              avr_asm_len (started ? "sbc %0,%2" : "sub %0,%2", op, plen, 1);
-            }
+	      avr_asm_len (started ? "sbc %0,%2" : "sub %0,%2", op, plen, 1);
+	    }
 
-          break; /* MINUS */
+	  break; /* MINUS */
 
-        default:
-          /* Unknown code */
-          gcc_unreachable();
-        }
+	default:
+	  /* Unknown code */
+	  gcc_unreachable();
+	}
 
       started = true;
 
@@ -8338,86 +8338,86 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
     case SS_MINUS:
 
       if (out_brvc)
-        avr_asm_len ("brvc 0f", op, plen, 1);
+	avr_asm_len ("brvc 0f", op, plen, 1);
 
       if (reg_overlap_mentioned_p (xop[0], xop[2]))
-        {
-          /* [1s,reg] */
-
-          if (n_bytes == 1)
-            avr_asm_len ("ldi %0,0x7f" CR_TAB
-                         "adc %0,__zero_reg__", op, plen, 2);
-          else
-            avr_asm_len ("ldi %0,0x7f" CR_TAB
-                         "ldi %1,0xff" CR_TAB
-                         "adc %1,__zero_reg__" CR_TAB
-                         "adc %0,__zero_reg__", op, plen, 4);
-        }
+	{
+	  /* [1s,reg] */
+
+	  if (n_bytes == 1)
+	    avr_asm_len ("ldi %0,0x7f" CR_TAB
+			 "adc %0,__zero_reg__", op, plen, 2);
+	  else
+	    avr_asm_len ("ldi %0,0x7f" CR_TAB
+			 "ldi %1,0xff" CR_TAB
+			 "adc %1,__zero_reg__" CR_TAB
+			 "adc %0,__zero_reg__", op, plen, 4);
+	}
       else if (sign == 0 && PLUS == code)
-        {
-          /* [1s,reg] */
-
-          op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
-
-          if (n_bytes == 1)
-            avr_asm_len ("ldi %0,0x80" CR_TAB
-                         "sbrs %2,7"   CR_TAB
-                         "dec %0", op, plen, 3);
-          else
-            avr_asm_len ("ldi %0,0x80" CR_TAB
-                         "cp %2,%0"    CR_TAB
-                         "sbc %1,%1"   CR_TAB
-                         "sbci %0,0", op, plen, 4);
-        }
+	{
+	  /* [1s,reg] */
+
+	  op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
+
+	  if (n_bytes == 1)
+	    avr_asm_len ("ldi %0,0x80" CR_TAB
+			 "sbrs %2,7"   CR_TAB
+			 "dec %0", op, plen, 3);
+	  else
+	    avr_asm_len ("ldi %0,0x80" CR_TAB
+			 "cp %2,%0"    CR_TAB
+			 "sbc %1,%1"   CR_TAB
+			 "sbci %0,0", op, plen, 4);
+	}
       else if (sign == 0 && MINUS == code)
-        {
-          /* [3s,reg] */
-
-          op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
-
-          if (n_bytes == 1)
-            avr_asm_len ("ldi %0,0x7f" CR_TAB
-                         "sbrs %2,7"   CR_TAB
-                         "inc %0", op, plen, 3);
-          else
-            avr_asm_len ("ldi %0,0x7f" CR_TAB
-                         "cp %0,%2"    CR_TAB
-                         "sbc %1,%1"   CR_TAB
-                         "sbci %0,-1", op, plen, 4);
-        }
+	{
+	  /* [3s,reg] */
+
+	  op[2] = simplify_gen_subreg (QImode, xop[2], mode, n_bytes-1);
+
+	  if (n_bytes == 1)
+	    avr_asm_len ("ldi %0,0x7f" CR_TAB
+			 "sbrs %2,7"   CR_TAB
+			 "inc %0", op, plen, 3);
+	  else
+	    avr_asm_len ("ldi %0,0x7f" CR_TAB
+			 "cp %0,%2"    CR_TAB
+			 "sbc %1,%1"   CR_TAB
+			 "sbci %0,-1", op, plen, 4);
+	}
       else if ((sign < 0) ^ (SS_MINUS == code_sat))
-        {
-          /* [1s,const,B < 0] [2s,B < 0] */
-          /* [3s,const,B > 0] [4s,B > 0] */
-
-          if (n_bytes == 8)
-            {
-              avr_asm_len ("%~call __clr_8", op, plen, len_call);
-              need_copy = false;
-            }
-
-          avr_asm_len ("ldi %0,0x80", op, plen, 1);
-          if (n_bytes > 1 && need_copy)
-            avr_asm_len ("clr %1", op, plen, 1);
-        }
+	{
+	  /* [1s,const,B < 0] [2s,B < 0] */
+	  /* [3s,const,B > 0] [4s,B > 0] */
+
+	  if (n_bytes == 8)
+	    {
+	      avr_asm_len ("%~call __clr_8", op, plen, len_call);
+	      need_copy = false;
+	    }
+
+	  avr_asm_len ("ldi %0,0x80", op, plen, 1);
+	  if (n_bytes > 1 && need_copy)
+	    avr_asm_len ("clr %1", op, plen, 1);
+	}
       else if ((sign > 0) ^ (SS_MINUS == code_sat))
-        {
-          /* [1s,const,B > 0] [2s,B > 0] */
-          /* [3s,const,B < 0] [4s,B < 0] */
-
-          if (n_bytes == 8)
-            {
-              avr_asm_len ("sec" CR_TAB
-                           "%~call __sbc_8", op, plen, 1 + len_call);
-              need_copy = false;
-            }
-
-          avr_asm_len ("ldi %0,0x7f", op, plen, 1);
-          if (n_bytes > 1 && need_copy)
-            avr_asm_len ("ldi %1,0xff", op, plen, 1);
-        }
+	{
+	  /* [1s,const,B > 0] [2s,B > 0] */
+	  /* [3s,const,B < 0] [4s,B < 0] */
+
+	  if (n_bytes == 8)
+	    {
+	      avr_asm_len ("sec" CR_TAB
+			   "%~call __sbc_8", op, plen, 1 + len_call);
+	      need_copy = false;
+	    }
+
+	  avr_asm_len ("ldi %0,0x7f", op, plen, 1);
+	  if (n_bytes > 1 && need_copy)
+	    avr_asm_len ("ldi %1,0xff", op, plen, 1);
+	}
       else
-        gcc_unreachable();
+	gcc_unreachable();
 
       break;
 
@@ -8427,22 +8427,22 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
       avr_asm_len (PLUS == code ? "brcc 0f" : "brcs 0f", op, plen, 1);
 
       if (n_bytes == 8)
-        {
-          if (MINUS == code)
-            avr_asm_len ("sec", op, plen, 1);
-          avr_asm_len ("%~call __sbc_8", op, plen, len_call);
+	{
+	  if (MINUS == code)
+	    avr_asm_len ("sec", op, plen, 1);
+	  avr_asm_len ("%~call __sbc_8", op, plen, len_call);
 
-          need_copy = false;
-        }
+	  need_copy = false;
+	}
       else
-        {
-          if (MINUS == code && !test_hard_reg_class (LD_REGS, op[0]))
-            avr_asm_len ("sec" CR_TAB
-                         "sbc %0,%0", op, plen, 2);
-          else
-            avr_asm_len (PLUS == code ? "sbc %0,%0" : "ldi %0,0xff",
-                         op, plen, 1);
-        }
+	{
+	  if (MINUS == code && !test_hard_reg_class (LD_REGS, op[0]))
+	    avr_asm_len ("sec" CR_TAB
+			 "sbc %0,%0", op, plen, 2);
+	  else
+	    avr_asm_len (PLUS == code ? "sbc %0,%0" : "ldi %0,0xff",
+			 op, plen, 1);
+	}
       break; /* US_PLUS */
 
     case US_MINUS:
@@ -8451,12 +8451,12 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
       avr_asm_len (PLUS == code ? "brcs 0f" : "brcc 0f", op, plen, 1);
 
       if (n_bytes == 8)
-        {
-          avr_asm_len ("%~call __clr_8", op, plen, len_call);
-          need_copy = false;
-        }
+	{
+	  avr_asm_len ("%~call __clr_8", op, plen, len_call);
+	  need_copy = false;
+	}
       else
-        avr_asm_len ("clr %0", op, plen, 1);
+	avr_asm_len ("clr %0", op, plen, 1);
 
       break;
     }
@@ -8467,37 +8467,37 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
   if (need_copy && n_bytes > 1)
     {
       if (US_MINUS == code_sat || US_PLUS == code_sat)
-        {
-          avr_asm_len ("mov %1,%0", op, plen, 1);
-
-          if (n_bytes > 2)
-            {
-              op[0] = xop[0];
-              if (AVR_HAVE_MOVW)
-                avr_asm_len ("movw %0,%1", op, plen, 1);
-              else
-                avr_asm_len ("mov %A0,%1" CR_TAB
-                             "mov %B0,%1", op, plen, 2);
-            }
-        }
+	{
+	  avr_asm_len ("mov %1,%0", op, plen, 1);
+
+	  if (n_bytes > 2)
+	    {
+	      op[0] = xop[0];
+	      if (AVR_HAVE_MOVW)
+		avr_asm_len ("movw %0,%1", op, plen, 1);
+	      else
+		avr_asm_len ("mov %A0,%1" CR_TAB
+			     "mov %B0,%1", op, plen, 2);
+	    }
+	}
       else if (n_bytes > 2)
-        {
-          op[0] = xop[0];
-          avr_asm_len ("mov %A0,%1" CR_TAB
-                       "mov %B0,%1", op, plen, 2);
-        }
+	{
+	  op[0] = xop[0];
+	  avr_asm_len ("mov %A0,%1" CR_TAB
+		       "mov %B0,%1", op, plen, 2);
+	}
     }
 
   if (need_copy && n_bytes == 8)
     {
       if (AVR_HAVE_MOVW)
-        avr_asm_len ("movw %r0+2,%0" CR_TAB
-                     "movw %r0+4,%0", xop, plen, 2);
+	avr_asm_len ("movw %r0+2,%0" CR_TAB
+		     "movw %r0+4,%0", xop, plen, 2);
       else
-        avr_asm_len ("mov %r0+2,%0" CR_TAB
-                     "mov %r0+3,%0" CR_TAB
-                     "mov %r0+4,%0" CR_TAB
-                     "mov %r0+5,%0", xop, plen, 4);
+	avr_asm_len ("mov %r0+2,%0" CR_TAB
+		     "mov %r0+3,%0" CR_TAB
+		     "mov %r0+4,%0" CR_TAB
+		     "mov %r0+5,%0", xop, plen, 4);
     }
 
   if (out_label)
@@ -8513,7 +8513,7 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
    This is a helper for the function below.  The only insns that need this
    are additions/subtraction for pointer modes, i.e. HImode and PSImode.  */
 
-static const char*
+static const char *
 avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc)
 {
   machine_mode mode = GET_MODE (xop[0]);
@@ -8525,14 +8525,14 @@ avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc)
   *pcc = MINUS == code ? (int) CC_SET_CZN : (int) CC_SET_N;
 
   avr_asm_len (PLUS == code
-               ? "subi %A0,lo8(-(%2))" CR_TAB "sbci %B0,hi8(-(%2))"
-               : "subi %A0,lo8(%2)"    CR_TAB "sbci %B0,hi8(%2)",
-               xop, plen, -2);
+	       ? "subi %A0,lo8(-(%2))" CR_TAB "sbci %B0,hi8(-(%2))"
+	       : "subi %A0,lo8(%2)"    CR_TAB "sbci %B0,hi8(%2)",
+	       xop, plen, -2);
 
   if (PSImode == mode)
     avr_asm_len (PLUS == code
-                 ? "sbci %C0,hlo8(-(%2))"
-                 : "sbci %C0,hlo8(%2)", xop, plen, 1);
+		 ? "sbci %C0,hlo8(-(%2))"
+		 : "sbci %C0,hlo8(%2)", xop, plen, 1);
   return "";
 }
 
@@ -8559,7 +8559,7 @@ avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc)
 
    Return ""  */
 
-const char*
+const char *
 avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label)
 {
   int cc_plus, cc_minus, cc_dummy;
@@ -8598,11 +8598,11 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label)
   else
     {
       if (!REG_P (xop[2])
-          && !CONST_INT_P (xop[2])
-          && !CONST_FIXED_P (xop[2]))
-        {
-          return avr_out_plus_symbol (xop, code, plen, pcc);
-        }
+	  && !CONST_INT_P (xop[2])
+	  && !CONST_FIXED_P (xop[2]))
+	{
+	  return avr_out_plus_symbol (xop, code, plen, pcc);
+	}
 
       op[0] = avr_to_int_mode (xop[0]);
       op[1] = avr_to_int_mode (xop[1]);
@@ -8653,7 +8653,7 @@ avr_out_plus (rtx insn, rtx *xop, int *plen, int *pcc, bool out_label)
    If PLEN == NULL, then output the instructions.
    If PLEN != NULL, then set *PLEN to the length of the sequence in words. */
 
-const char*
+const char *
 avr_out_plus_set_ZN (rtx *xop, int *plen)
 {
   if (plen)
@@ -8772,7 +8772,7 @@ avr_out_plus_set_ZN (rtx *xop, int *plen)
    register or SCRATCH if no clobber register is needed for the operation.
    INSN is an INSN_P or a pattern of an insn.  */
 
-const char*
+const char *
 avr_out_bitop (rtx insn, rtx *xop, int *plen)
 {
   /* CODE and MODE of the operation.  */
@@ -8820,94 +8820,94 @@ avr_out_bitop (rtx insn, rtx *xop, int *plen)
       op[1] = GEN_INT (val8);
 
       switch (code)
-        {
-        case IOR:
+	{
+	case IOR:
 
 	  if (pop8 == 0)
-            continue;
-          else if (ld_reg_p)
-            avr_asm_len ("ori %0,%1", op, plen, 1);
+	    continue;
+	  else if (ld_reg_p)
+	    avr_asm_len ("ori %0,%1", op, plen, 1);
 	  else if (pop8 == 1)
-            {
-              if (set_t != 1)
-                avr_asm_len ("set", op, plen, 1);
-              set_t = 1;
-
-              op[1] = GEN_INT (exact_log2 (val8));
-              avr_asm_len ("bld %0,%1", op, plen, 1);
-            }
+	    {
+	      if (set_t != 1)
+		avr_asm_len ("set", op, plen, 1);
+	      set_t = 1;
+
+	      op[1] = GEN_INT (exact_log2 (val8));
+	      avr_asm_len ("bld %0,%1", op, plen, 1);
+	    }
 	  else if (pop8 == 8)
-            {
-              if (op[3] != NULL_RTX)
-                avr_asm_len ("mov %0,%3", op, plen, 1);
-              else
-                avr_asm_len ("clr %0" CR_TAB
-                             "dec %0", op, plen, 2);
+	    {
+	      if (op[3] != NULL_RTX)
+		avr_asm_len ("mov %0,%3", op, plen, 1);
+	      else
+		avr_asm_len ("clr %0" CR_TAB
+			     "dec %0", op, plen, 2);
 
-              op[3] = op[0];
-            }
-          else
-            {
-              if (clobber_val != (int) val8)
-                avr_asm_len ("ldi %2,%1", op, plen, 1);
-              clobber_val = (int) val8;
+	      op[3] = op[0];
+	    }
+	  else
+	    {
+	      if (clobber_val != (int) val8)
+		avr_asm_len ("ldi %2,%1", op, plen, 1);
+	      clobber_val = (int) val8;
 
-              avr_asm_len ("or %0,%2", op, plen, 1);
-            }
+	      avr_asm_len ("or %0,%2", op, plen, 1);
+	    }
 
-          continue; /* IOR */
+	  continue; /* IOR */
 
-        case AND:
+	case AND:
 
 	  if (pop8 == 8)
-            continue;
+	    continue;
 	  else if (pop8 == 0)
-            avr_asm_len ("clr %0", op, plen, 1);
-          else if (ld_reg_p)
-            avr_asm_len ("andi %0,%1", op, plen, 1);
+	    avr_asm_len ("clr %0", op, plen, 1);
+	  else if (ld_reg_p)
+	    avr_asm_len ("andi %0,%1", op, plen, 1);
 	  else if (pop8 == 7)
-            {
-              if (set_t != 0)
-                avr_asm_len ("clt", op, plen, 1);
-              set_t = 0;
+	    {
+	      if (set_t != 0)
+		avr_asm_len ("clt", op, plen, 1);
+	      set_t = 0;
 
-              op[1] = GEN_INT (exact_log2 (GET_MODE_MASK (QImode) & ~val8));
-              avr_asm_len ("bld %0,%1", op, plen, 1);
-            }
-          else
-            {
-              if (clobber_val != (int) val8)
-                avr_asm_len ("ldi %2,%1", op, plen, 1);
-              clobber_val = (int) val8;
+	      op[1] = GEN_INT (exact_log2 (GET_MODE_MASK (QImode) & ~val8));
+	      avr_asm_len ("bld %0,%1", op, plen, 1);
+	    }
+	  else
+	    {
+	      if (clobber_val != (int) val8)
+		avr_asm_len ("ldi %2,%1", op, plen, 1);
+	      clobber_val = (int) val8;
 
-              avr_asm_len ("and %0,%2", op, plen, 1);
-            }
+	      avr_asm_len ("and %0,%2", op, plen, 1);
+	    }
 
-          continue; /* AND */
+	  continue; /* AND */
 
-        case XOR:
+	case XOR:
 
 	  if (pop8 == 0)
-            continue;
+	    continue;
 	  else if (pop8 == 8)
-            avr_asm_len ("com %0", op, plen, 1);
-          else if (ld_reg_p && val8 == (1 << 7))
-            avr_asm_len ("subi %0,%1", op, plen, 1);
-          else
-            {
-              if (clobber_val != (int) val8)
-                avr_asm_len ("ldi %2,%1", op, plen, 1);
-              clobber_val = (int) val8;
-
-              avr_asm_len ("eor %0,%2", op, plen, 1);
-            }
-
-          continue; /* XOR */
-
-        default:
-          /* Unknown rtx_code */
-          gcc_unreachable();
-        }
+	    avr_asm_len ("com %0", op, plen, 1);
+	  else if (ld_reg_p && val8 == (1 << 7))
+	    avr_asm_len ("subi %0,%1", op, plen, 1);
+	  else
+	    {
+	      if (clobber_val != (int) val8)
+		avr_asm_len ("ldi %2,%1", op, plen, 1);
+	      clobber_val = (int) val8;
+
+	      avr_asm_len ("eor %0,%2", op, plen, 1);
+	    }
+
+	  continue; /* XOR */
+
+	default:
+	  /* Unknown rtx_code */
+	  gcc_unreachable();
+	}
     } /* for all sub-bytes */
 
   return "";
@@ -8919,7 +8919,7 @@ avr_out_bitop (rtx insn, rtx *xop, int *plen)
    otherwise, set *PLEN to the length of the instruction sequence (in words)
    as printed with PLEN == NULL.  */
 
-const char*
+const char *
 avr_out_sign_extend (rtx_insn *insn, rtx *xop, int *plen)
 {
   // Size in bytes of source resp. destination operand.
@@ -8937,11 +8937,11 @@ avr_out_sign_extend (rtx_insn *insn, rtx *xop, int *plen)
       gcc_assert (n_src <= 2);
 
       if (n_src == 2)
-        avr_asm_len (AVR_HAVE_MOVW
-                     ? "movw %0,%1"
-                     : "mov %B0,%B1", xop, plen, 1);
+	avr_asm_len (AVR_HAVE_MOVW
+		     ? "movw %0,%1"
+		     : "mov %B0,%B1", xop, plen, 1);
       if (n_src == 1 || !AVR_HAVE_MOVW)
-        avr_asm_len ("mov %A0,%A1", xop, plen, 1);
+	avr_asm_len ("mov %A0,%A1", xop, plen, 1);
     }
 
   // Set Carry to the sign bit MSB.7...
@@ -8968,7 +8968,7 @@ avr_out_sign_extend (rtx_insn *insn, rtx *xop, int *plen)
    PLEN != NULL: Set *PLEN to the length of that sequence.
    Return "".  */
 
-const char*
+const char *
 avr_out_addto_sp (rtx *op, int *plen)
 {
   int pc_len = AVR_2_BYTE_PC ? 2 : 3;
@@ -8980,24 +8980,24 @@ avr_out_addto_sp (rtx *op, int *plen)
   if (addend < 0)
     {
       if (flag_verbose_asm || flag_print_asm_name)
-        avr_asm_len (ASM_COMMENT_START "SP -= %n0", op, plen, 0);
+	avr_asm_len (ASM_COMMENT_START "SP -= %n0", op, plen, 0);
 
       while (addend <= -pc_len)
-        {
-          addend += pc_len;
-          avr_asm_len ("rcall .", op, plen, 1);
-        }
+	{
+	  addend += pc_len;
+	  avr_asm_len ("rcall .", op, plen, 1);
+	}
 
       while (addend++ < 0)
-        avr_asm_len ("push __tmp_reg__", op, plen, 1);
+	avr_asm_len ("push __tmp_reg__", op, plen, 1);
     }
   else if (addend > 0)
     {
       if (flag_verbose_asm || flag_print_asm_name)
-        avr_asm_len (ASM_COMMENT_START "SP += %0", op, plen, 0);
+	avr_asm_len (ASM_COMMENT_START "SP += %0", op, plen, 0);
 
       while (addend-- > 0)
-        avr_asm_len ("pop __tmp_reg__", op, plen, 1);
+	avr_asm_len ("pop __tmp_reg__", op, plen, 1);
     }
 
   return "";
@@ -9010,57 +9010,57 @@ avr_out_addto_sp (rtx *op, int *plen)
    If PLEN != NULL then store the length of the sequence (in words) in *PLEN.
    Return "".  */
 
-const char*
+const char *
 avr_out_insert_notbit (rtx_insn *insn, rtx op[], int *plen)
 {
   if (INTVAL (op[1]) == 7
       && test_hard_reg_class (LD_REGS, op[0]))
     {
       /* If the inserted bit number is 7 and we have a d-reg, then invert
-         the bit after the insertion by means of SUBI *,0x80.  */
+	 the bit after the insertion by means of SUBI *,0x80.  */
 
       if (INTVAL (op[3]) == 7
-          && REGNO (op[0]) == REGNO (op[2]))
-        {
-          avr_asm_len ("subi %0,0x80", op, plen, -1);
-        }
+	  && REGNO (op[0]) == REGNO (op[2]))
+	{
+	  avr_asm_len ("subi %0,0x80", op, plen, -1);
+	}
       else
-        {
-          avr_asm_len ("bst %2,%3" CR_TAB
-                       "bld %0,%1" CR_TAB
-                       "subi %0,0x80", op, plen, -3);
-        }
+	{
+	  avr_asm_len ("bst %2,%3" CR_TAB
+		       "bld %0,%1" CR_TAB
+		       "subi %0,0x80", op, plen, -3);
+	}
     }
   else if (test_hard_reg_class (LD_REGS, op[0])
-           && (INTVAL (op[1]) != INTVAL (op[3])
-               || !reg_overlap_mentioned_p (op[0], op[2])))
+	   && (INTVAL (op[1]) != INTVAL (op[3])
+	       || !reg_overlap_mentioned_p (op[0], op[2])))
     {
       /* If the destination bit is in a d-reg we can jump depending
-         on the source bit and use ANDI / ORI.  This just applies if we
-         have not an early-clobber situation with the bit.  */
+	 on the source bit and use ANDI / ORI.  This just applies if we
+	 have not an early-clobber situation with the bit.  */
 
       avr_asm_len ("andi %0,~(1<<%1)" CR_TAB
-                   "sbrs %2,%3"       CR_TAB
-                   "ori %0,1<<%1", op, plen, -3);
+		   "sbrs %2,%3"       CR_TAB
+		   "ori %0,1<<%1", op, plen, -3);
     }
   else
     {
       /* Otherwise, invert the bit by means of COM before we store it with
-         BST and then undo the COM if needed.  */
+	 BST and then undo the COM if needed.  */
 
       avr_asm_len ("com %2" CR_TAB
-                   "bst %2,%3", op, plen, -2);
+		   "bst %2,%3", op, plen, -2);
 
       if (!reg_unused_after (insn, op[2])
-          // A simple 'reg_unused_after' is not enough because that function
-          // assumes that the destination register is overwritten completely
-          // and hence is in order for our purpose.  This is not the case
-          // with BLD which just changes one bit of the destination.
-          || reg_overlap_mentioned_p (op[0], op[2]))
-        {
-          /* Undo the COM from above.  */
-          avr_asm_len ("com %2", op, plen, 1);
-        }
+	  // A simple 'reg_unused_after' is not enough because that function
+	  // assumes that the destination register is overwritten completely
+	  // and hence is in order for our purpose.  This is not the case
+	  // with BLD which just changes one bit of the destination.
+	  || reg_overlap_mentioned_p (op[0], op[2]))
+	{
+	  /* Undo the COM from above.  */
+	  avr_asm_len ("com %2", op, plen, 1);
+	}
 
       avr_asm_len ("bld %0,%1", op, plen, 1);
     }
@@ -9076,7 +9076,7 @@ avr_out_insert_notbit (rtx_insn *insn, rtx op[], int *plen)
    PLEN != 0: Set *PLEN to the code length in words.  Don't output anything.
    PLEN == 0: Output instructions.  */
 
-const char*
+const char *
 avr_out_extr (rtx_insn *insn, rtx xop[], int *plen)
 {
   rtx dest = xop[0];
@@ -9143,8 +9143,8 @@ avr_out_extr (rtx_insn *insn, rtx xop[], int *plen)
    PLEN != 0: Set *PLEN to the code length in words.  Don't output anything.
    PLEN == 0: Output instructions.  */
 
-const char*
-avr_out_extr_not (rtx_insn* /* insn */, rtx xop[], int *plen)
+const char *
+avr_out_extr_not (rtx_insn * /* insn */, rtx xop[], int *plen)
 {
   rtx dest = xop[0];
   rtx src = xop[1];
@@ -9208,7 +9208,7 @@ avr_out_extr_not (rtx_insn* /* insn */, rtx xop[], int *plen)
    shifted by 1 bit.  When the destination is a signed fractional, the sign
    is stored in either the carry or T bit.  */
 
-const char*
+const char *
 avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
 {
   rtx xop[6];
@@ -9259,17 +9259,17 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       val[i]->regno_msb = REGNO (xop[i]) + val[i]->bytes - 1;
 
       if (SCALAR_INT_MODE_P (mode))
-        {
-          val[i]->sbit = intsigned;
-          val[i]->fbit = 0;
-        }
+	{
+	  val[i]->sbit = intsigned;
+	  val[i]->fbit = 0;
+	}
       else if (ALL_SCALAR_FIXED_POINT_MODE_P (mode))
-        {
-          val[i]->sbit = SIGNED_SCALAR_FIXED_POINT_MODE_P (mode);
-          val[i]->fbit = GET_MODE_FBIT (mode);
-        }
+	{
+	  val[i]->sbit = SIGNED_SCALAR_FIXED_POINT_MODE_P (mode);
+	  val[i]->fbit = GET_MODE_FBIT (mode);
+	}
       else
-        fatal_insn ("unsupported fixed-point conversion", insn);
+	fatal_insn ("unsupported fixed-point conversion", insn);
 
       val[i]->fbyte = (1 + val[i]->fbit) / BITS_PER_UNIT;
       val[i]->ibyte = val[i]->bytes - val[i]->fbyte;
@@ -9308,9 +9308,9 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       && !TARGET_FRACT_CONV_TRUNC)
     {
       bool overlap
-        = (src.regno <=
-           (offset ? dest.regno_msb - sign_bytes : dest.regno + zero_bytes - 1)
-           && dest.regno - offset -1 >= dest.regno);
+	= (src.regno <=
+	   (offset ? dest.regno_msb - sign_bytes : dest.regno + zero_bytes - 1)
+	   && dest.regno - offset -1 >= dest.regno);
       unsigned s0 = dest.regno - offset -1;
       bool use_src = true;
       unsigned sn;
@@ -9318,103 +9318,103 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       bool have_carry = false;
 
       if (src.ibyte > dest.ibyte)
-        copied_msb -= src.ibyte - dest.ibyte;
+	copied_msb -= src.ibyte - dest.ibyte;
 
       for (sn = s0; sn <= copied_msb; sn++)
-        if (!IN_RANGE (sn, dest.regno, dest.regno_msb)
-            && !reg_unused_after (insn, all_regs_rtx[sn]))
-          use_src = false;
+	if (!IN_RANGE (sn, dest.regno, dest.regno_msb)
+	    && !reg_unused_after (insn, all_regs_rtx[sn]))
+	  use_src = false;
       if (use_src && TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0))
-        {
-          avr_asm_len ("tst %0" CR_TAB "brpl 0f",
-                       &all_regs_rtx[src.regno_msb], plen, 2);
-          sn = src.regno;
-          if (sn < s0)
-            {
-              if (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], sn))
-                avr_asm_len ("cpi %0,1", &all_regs_rtx[sn], plen, 1);
-              else
-                avr_asm_len ("sec" CR_TAB
-                             "cpc %0,__zero_reg__",
-                             &all_regs_rtx[sn], plen, 2);
-              have_carry = true;
-            }
-          while (++sn < s0)
-            avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
-
-          avr_asm_len (have_carry ? "sbci %0,128" : "subi %0,129",
-                       &all_regs_rtx[s0], plen, 1);
-          for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
-            avr_asm_len ("sbci %0,255", &all_regs_rtx[sn], plen, 1);
-          avr_asm_len ("\n0:", NULL, plen, 0);
-          frac_rounded = true;
-        }
+	{
+	  avr_asm_len ("tst %0" CR_TAB "brpl 0f",
+		       &all_regs_rtx[src.regno_msb], plen, 2);
+	  sn = src.regno;
+	  if (sn < s0)
+	    {
+	      if (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], sn))
+		avr_asm_len ("cpi %0,1", &all_regs_rtx[sn], plen, 1);
+	      else
+		avr_asm_len ("sec" CR_TAB
+			     "cpc %0,__zero_reg__",
+			     &all_regs_rtx[sn], plen, 2);
+	      have_carry = true;
+	    }
+	  while (++sn < s0)
+	    avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
+
+	  avr_asm_len (have_carry ? "sbci %0,128" : "subi %0,129",
+		       &all_regs_rtx[s0], plen, 1);
+	  for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
+	    avr_asm_len ("sbci %0,255", &all_regs_rtx[sn], plen, 1);
+	  avr_asm_len ("\n0:", NULL, plen, 0);
+	  frac_rounded = true;
+	}
       else if (use_src && overlap)
-        {
-          avr_asm_len ("clr __tmp_reg__" CR_TAB
-                       "sbrc %1,0"       CR_TAB
-                       "dec __tmp_reg__", xop, plen, 1);
-          sn = src.regno;
-          if (sn < s0)
-            {
-              avr_asm_len ("add %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
-              have_carry = true;
-            }
-
-          while (++sn < s0)
-            avr_asm_len ("adc %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
-
-          if (have_carry)
-            avr_asm_len ("clt"                CR_TAB
-                         "bld __tmp_reg__,7"  CR_TAB
-                         "adc %0,__tmp_reg__",
-                         &all_regs_rtx[s0], plen, 1);
-          else
-            avr_asm_len ("lsr __tmp_reg" CR_TAB
-                         "add %0,__tmp_reg__",
-                         &all_regs_rtx[s0], plen, 2);
-          for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
-            avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
-          frac_rounded = true;
-        }
+	{
+	  avr_asm_len ("clr __tmp_reg__" CR_TAB
+		       "sbrc %1,0"       CR_TAB
+		       "dec __tmp_reg__", xop, plen, 1);
+	  sn = src.regno;
+	  if (sn < s0)
+	    {
+	      avr_asm_len ("add %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
+	      have_carry = true;
+	    }
+
+	  while (++sn < s0)
+	    avr_asm_len ("adc %0,__tmp_reg__", &all_regs_rtx[sn], plen, 1);
+
+	  if (have_carry)
+	    avr_asm_len ("clt"                CR_TAB
+			 "bld __tmp_reg__,7"  CR_TAB
+			 "adc %0,__tmp_reg__",
+			 &all_regs_rtx[s0], plen, 1);
+	  else
+	    avr_asm_len ("lsr __tmp_reg" CR_TAB
+			 "add %0,__tmp_reg__",
+			 &all_regs_rtx[s0], plen, 2);
+	  for (sn = src.regno + src.fbyte; sn <= copied_msb; sn++)
+	    avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
+	  frac_rounded = true;
+	}
       else if (overlap)
-        {
-          bool use_src
-            = (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0)
-               && (IN_RANGE (s0, dest.regno, dest.regno_msb)
-                   || reg_unused_after (insn, all_regs_rtx[s0])));
-          xop[2] = all_regs_rtx[s0];
-          unsigned sn = src.regno;
-          if (!use_src || sn == s0)
-            avr_asm_len ("mov __tmp_reg__,%2", xop, plen, 1);
-          /* We need to consider to-be-discarded bits
-             if the value is negative.  */
-          if (sn < s0)
-            {
-              avr_asm_len ("tst %0" CR_TAB
-                           "brpl 0f",
-                           &all_regs_rtx[src.regno_msb], plen, 2);
-              /* Test to-be-discarded bytes for any nozero bits.
-                 ??? Could use OR or SBIW to test two registers at once.  */
-              if (sn < s0)
-                avr_asm_len ("cp %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
-
-              while (++sn < s0)
-                avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
-              /* Set bit 0 in __tmp_reg__ if any of the lower bits was set.  */
-              if (use_src)
-                avr_asm_len ("breq 0f" CR_TAB
-                             "ori %2,1"
-                             "\n0:\t" "mov __tmp_reg__,%2",
-                             xop, plen, 3);
-              else
-                avr_asm_len ("breq 0f" CR_TAB
-                             "set"     CR_TAB
-                             "bld __tmp_reg__,0\n0:",
-                             xop, plen, 3);
-            }
-          lsb_in_tmp_reg = true;
-        }
+	{
+	  bool use_src
+	    = (TEST_HARD_REG_BIT (reg_class_contents[LD_REGS], s0)
+	       && (IN_RANGE (s0, dest.regno, dest.regno_msb)
+		   || reg_unused_after (insn, all_regs_rtx[s0])));
+	  xop[2] = all_regs_rtx[s0];
+	  unsigned sn = src.regno;
+	  if (!use_src || sn == s0)
+	    avr_asm_len ("mov __tmp_reg__,%2", xop, plen, 1);
+	  /* We need to consider to-be-discarded bits
+	     if the value is negative.  */
+	  if (sn < s0)
+	    {
+	      avr_asm_len ("tst %0" CR_TAB
+			   "brpl 0f",
+			   &all_regs_rtx[src.regno_msb], plen, 2);
+	      /* Test to-be-discarded bytes for any nozero bits.
+		 ??? Could use OR or SBIW to test two registers at once.  */
+	      if (sn < s0)
+		avr_asm_len ("cp %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
+
+	      while (++sn < s0)
+		avr_asm_len ("cpc %0,__zero_reg__", &all_regs_rtx[sn], plen, 1);
+	      /* Set bit 0 in __tmp_reg__ if any of the lower bits was set.  */
+	      if (use_src)
+		avr_asm_len ("breq 0f" CR_TAB
+			     "ori %2,1"
+			     "\n0:\t" "mov __tmp_reg__,%2",
+			     xop, plen, 3);
+	      else
+		avr_asm_len ("breq 0f" CR_TAB
+			     "set"     CR_TAB
+			     "bld __tmp_reg__,0\n0:",
+			     xop, plen, 3);
+	    }
+	  lsb_in_tmp_reg = true;
+	}
     }
 
   /* Step 1:  Clear bytes at the low end and copy payload bits from source
@@ -9447,85 +9447,85 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       int stepw = 0;
 
       if (clr0)
-        {
-          if (AVR_HAVE_MOVW && clr1 && clrw)
-            {
-              xop[2] = all_regs_rtx[d0 & ~1];
-              xop[3] = clrw;
-              code = "movw %2,%3";
-              stepw = step;
-            }
-          else
-            {
-              xop[2] = all_regs_rtx[d0];
-              code = "clr %2";
-
-              if (++clr_n >= 2
-                  && !clrw
-                  && d0 % 2 == (step > 0))
-                {
-                  clrw = all_regs_rtx[d0 & ~1];
-                }
-            }
-        }
+	{
+	  if (AVR_HAVE_MOVW && clr1 && clrw)
+	    {
+	      xop[2] = all_regs_rtx[d0 & ~1];
+	      xop[3] = clrw;
+	      code = "movw %2,%3";
+	      stepw = step;
+	    }
+	  else
+	    {
+	      xop[2] = all_regs_rtx[d0];
+	      code = "clr %2";
+
+	      if (++clr_n >= 2
+		  && !clrw
+		  && d0 % 2 == (step > 0))
+		{
+		  clrw = all_regs_rtx[d0 & ~1];
+		}
+	    }
+	}
       else if (offset && s0 <= (signed) src.regno_msb)
-        {
-          int movw = AVR_HAVE_MOVW && offset % 2 == 0
-            && d0 % 2 == (offset > 0)
-            && d1 <= dest.regno_msb && d1 >= dest.regno
-            && s1 <= (signed) src.regno_msb  && s1 >= (signed) src.regno;
-
-          xop[2] = all_regs_rtx[d0 & ~movw];
-          xop[3] = all_regs_rtx[s0 & ~movw];
-          code = movw ? "movw %2,%3" : "mov %2,%3";
-          stepw = step * movw;
-        }
+	{
+	  int movw = AVR_HAVE_MOVW && offset % 2 == 0
+	    && d0 % 2 == (offset > 0)
+	    && d1 <= dest.regno_msb && d1 >= dest.regno
+	    && s1 <= (signed) src.regno_msb  && s1 >= (signed) src.regno;
+
+	  xop[2] = all_regs_rtx[d0 & ~movw];
+	  xop[3] = all_regs_rtx[s0 & ~movw];
+	  code = movw ? "movw %2,%3" : "mov %2,%3";
+	  stepw = step * movw;
+	}
 
       if (code)
-        {
-          if (sign_extend && shift != ASHIFT && !sign_in_carry
-              && (d0 == src.regno_msb || d0 + stepw == src.regno_msb))
-            {
-              /* We are going to override the sign bit.  If we sign-extend,
-                 store the sign in the Carry flag.  This is not needed if
-                 the destination will be ASHIFT in the remainder because
-                 the ASHIFT will set Carry without extra instruction.  */
-
-              avr_asm_len ("lsl %0", &all_regs_rtx[src.regno_msb], plen, 1);
-              sign_in_carry = true;
-            }
-
-          unsigned src_msb = dest.regno_msb - sign_bytes - offset + 1;
-
-          if (!sign_extend && shift == ASHIFTRT && !msb_in_carry
-              && src.ibyte > dest.ibyte
-              && (d0 == src_msb || d0 + stepw == src_msb))
-            {
-              /* We are going to override the MSB.  If we shift right,
-                 store the MSB in the Carry flag.  This is only needed if
-                 we don't sign-extend becaue with sign-extension the MSB
-                 (the sign) will be produced by the sign extension.  */
-
-              avr_asm_len ("lsr %0", &all_regs_rtx[src_msb], plen, 1);
-              msb_in_carry = true;
-            }
-
-          unsigned src_lsb = dest.regno - offset -1;
-
-          if (shift == ASHIFT && src.fbyte > dest.fbyte && !lsb_in_carry
+	{
+	  if (sign_extend && shift != ASHIFT && !sign_in_carry
+	      && (d0 == src.regno_msb || d0 + stepw == src.regno_msb))
+	    {
+	      /* We are going to override the sign bit.  If we sign-extend,
+		 store the sign in the Carry flag.  This is not needed if
+		 the destination will be ASHIFT in the remainder because
+		 the ASHIFT will set Carry without extra instruction.  */
+
+	      avr_asm_len ("lsl %0", &all_regs_rtx[src.regno_msb], plen, 1);
+	      sign_in_carry = true;
+	    }
+
+	  unsigned src_msb = dest.regno_msb - sign_bytes - offset + 1;
+
+	  if (!sign_extend && shift == ASHIFTRT && !msb_in_carry
+	      && src.ibyte > dest.ibyte
+	      && (d0 == src_msb || d0 + stepw == src_msb))
+	    {
+	      /* We are going to override the MSB.  If we shift right,
+		 store the MSB in the Carry flag.  This is only needed if
+		 we don't sign-extend becaue with sign-extension the MSB
+		 (the sign) will be produced by the sign extension.  */
+
+	      avr_asm_len ("lsr %0", &all_regs_rtx[src_msb], plen, 1);
+	      msb_in_carry = true;
+	    }
+
+	  unsigned src_lsb = dest.regno - offset -1;
+
+	  if (shift == ASHIFT && src.fbyte > dest.fbyte && !lsb_in_carry
 	      && !lsb_in_tmp_reg
-              && (d0 == src_lsb || d0 + stepw == src_lsb))
-            {
-              /* We are going to override the new LSB; store it into carry.  */
+	      && (d0 == src_lsb || d0 + stepw == src_lsb))
+	    {
+	      /* We are going to override the new LSB; store it into carry.  */
 
-              avr_asm_len ("lsl %0", &all_regs_rtx[src_lsb], plen, 1);
-              code_ashift = "rol %0";
-              lsb_in_carry = true;
-            }
+	      avr_asm_len ("lsl %0", &all_regs_rtx[src_lsb], plen, 1);
+	      code_ashift = "rol %0";
+	      lsb_in_carry = true;
+	    }
 
-          avr_asm_len (code, xop, plen, 1);
-          d0 += stepw;
-        }
+	  avr_asm_len (code, xop, plen, 1);
+	  d0 += stepw;
+	}
     }
 
   /* Step 2:  Shift destination left by 1 bit position.  This might be needed
@@ -9553,7 +9553,7 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
 
 	  /* Overflow goes with set carry.  Clear carry otherwise.  */
 	  avr_asm_len ("brvs 0f" CR_TAB
-                       "clc\n0:", NULL, plen, 2);
+		       "clc\n0:", NULL, plen, 2);
 	}
       /* Likewise, when converting from accumulator types to integer, we
 	 need to round up negative values.  */
@@ -9603,32 +9603,32 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
 	      avr_asm_len ("dec __zero_reg__", NULL, plen, 1);
 	      if (have_carry)
 		avr_asm_len ("clt" CR_TAB
-                             "bld __zero_reg__,7", NULL, plen, 2);
+			     "bld __zero_reg__,7", NULL, plen, 2);
 	      else
 		avr_asm_len ("lsr __zero_reg__", NULL, plen, 1);
 	      avr_asm_len (have_carry && lsb_in_tmp_reg
-                           ? "adc __tmp_reg__,__zero_reg__"
-                           : have_carry ? "adc %2,__zero_reg__"
-                           : lsb_in_tmp_reg ? "add __tmp_reg__,__zero_reg__"
-                           : "add %2,__zero_reg__",
+			   ? "adc __tmp_reg__,__zero_reg__"
+			   : have_carry ? "adc %2,__zero_reg__"
+			   : lsb_in_tmp_reg ? "add __tmp_reg__,__zero_reg__"
+			   : "add %2,__zero_reg__",
 			   xop, plen, 1);
 	      avr_asm_len ("eor __zero_reg__,__zero_reg__", NULL, plen, 1);
 	    }
 
-          for (d0 = dest.regno + zero_bytes;
+	  for (d0 = dest.regno + zero_bytes;
 	       d0 <= dest.regno_msb - sign_bytes; d0++)
 	    avr_asm_len ("adc %0,__zero_reg__", &all_regs_rtx[d0], plen, 1);
 
-          avr_asm_len (lsb_in_tmp_reg
+	  avr_asm_len (lsb_in_tmp_reg
 		       ? "\n0:\t" "lsl __tmp_reg__"
-                       : "\n0:\t" "lsl %2",
+		       : "\n0:\t" "lsl %2",
 		       xop, plen, 1);
 	}
       else if (MAY_CLOBBER (s0))
-        avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
+	avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
       else
-        avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
-                     "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
+	avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
+		     "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
 
       code_ashift = "rol %0";
       lsb_in_carry = true;
@@ -9637,11 +9637,11 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
   if (shift == ASHIFT)
     {
       for (d0 = dest.regno + zero_bytes;
-           d0 <= dest.regno_msb - sign_bytes; d0++)
-        {
-          avr_asm_len (code_ashift, &all_regs_rtx[d0], plen, 1);
-          code_ashift = "rol %0";
-        }
+	   d0 <= dest.regno_msb - sign_bytes; d0++)
+	{
+	  avr_asm_len (code_ashift, &all_regs_rtx[d0], plen, 1);
+	  code_ashift = "rol %0";
+	}
 
       lsb_in_carry = false;
       sign_in_carry = true;
@@ -9656,10 +9656,10 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       unsigned s0 = dest.regno_msb - sign_bytes - offset + 1;
 
       if (MAY_CLOBBER (s0))
-        avr_asm_len ("lsr %0", &all_regs_rtx[s0], plen, 1);
+	avr_asm_len ("lsr %0", &all_regs_rtx[s0], plen, 1);
       else
-        avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
-                     "lsr __tmp_reg__", &all_regs_rtx[s0], plen, 2);
+	avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
+		     "lsr __tmp_reg__", &all_regs_rtx[s0], plen, 2);
 
       msb_in_carry = true;
     }
@@ -9672,10 +9672,10 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       unsigned s0 = src.regno_msb;
 
       if (MAY_CLOBBER (s0))
-        avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
+	avr_asm_len ("lsl %0", &all_regs_rtx[s0], plen, 1);
       else
-        avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
-                     "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
+	avr_asm_len ("mov __tmp_reg__,%0" CR_TAB
+		     "lsl __tmp_reg__", &all_regs_rtx[s0], plen, 2);
 
       sign_in_carry = true;
     }
@@ -9688,21 +9688,21 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
   for (d0 = dest.regno_msb - sign_bytes + 1; d0 <= dest.regno_msb; d0++)
     {
       if (AVR_HAVE_MOVW && movw
-          && d0 % 2 == 0 && d0 + 1 <= dest.regno_msb)
-        {
-          xop[2] = all_regs_rtx[d0];
-          xop[3] = movw;
-          avr_asm_len ("movw %2,%3", xop, plen, 1);
-          d0++;
-        }
+	  && d0 % 2 == 0 && d0 + 1 <= dest.regno_msb)
+	{
+	  xop[2] = all_regs_rtx[d0];
+	  xop[3] = movw;
+	  avr_asm_len ("movw %2,%3", xop, plen, 1);
+	  d0++;
+	}
       else
-        {
-          avr_asm_len (sign_extend ? "sbc %0,%0" : "clr %0",
-                       &all_regs_rtx[d0], plen, 1);
+	{
+	  avr_asm_len (sign_extend ? "sbc %0,%0" : "clr %0",
+		       &all_regs_rtx[d0], plen, 1);
 
-          if (++copies >= 2 && !movw && d0 % 2 == 1)
-            movw = all_regs_rtx[d0-1];
-        }
+	  if (++copies >= 2 && !movw && d0 % 2 == 1)
+	    movw = all_regs_rtx[d0-1];
+	}
     } /* for */
 
 
@@ -9714,17 +9714,17 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
       const char *code_ashiftrt = "lsr %0";
 
       if (sign_extend || msb_in_carry)
-        code_ashiftrt = "ror %0";
+	code_ashiftrt = "ror %0";
 
       if (src.sbit && src.ibyte == dest.ibyte)
-        code_ashiftrt = "asr %0";
+	code_ashiftrt = "asr %0";
 
       for (d0 = dest.regno_msb - sign_bytes;
-           d0 >= dest.regno + zero_bytes - 1 && d0 >= dest.regno; d0--)
-        {
-          avr_asm_len (code_ashiftrt, &all_regs_rtx[d0], plen, 1);
-          code_ashiftrt = "ror %0";
-        }
+	   d0 >= dest.regno + zero_bytes - 1 && d0 >= dest.regno; d0--)
+	{
+	  avr_asm_len (code_ashiftrt, &all_regs_rtx[d0], plen, 1);
+	  code_ashiftrt = "ror %0";
+	}
     }
 
 #undef MAY_CLOBBER
@@ -9739,7 +9739,7 @@ avr_out_fract (rtx_insn *insn, rtx operands[], bool intsigned, int *plen)
    of the sequence if PLEN != NULL.  Most of this function deals with
    preparing operands for calls to `avr_out_plus' and `avr_out_bitop'.  */
 
-const char*
+const char *
 avr_out_round (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *xop, int *plen)
 {
   scalar_mode mode = as_a <scalar_mode> (GET_MODE (xop[0]));
@@ -9771,7 +9771,7 @@ avr_out_round (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *xop, int *plen)
   avr_out_plus (xpattern, op, plen_add, NULL, false /* Don't print "0:" */);
 
   avr_asm_len ("rjmp 1f" CR_TAB
-               "0:", NULL, plen_add, 1);
+	       "0:", NULL, plen_add, 1);
 
   // Keep  all bits from RP and higher:   ... 2^(-RP)
   // Clear all bits from RP+1 and lower:              2^(-RP-1) ...
@@ -9843,101 +9843,101 @@ avr_rotate_bytes (rtx operands[])
       src = simplify_gen_subreg (move_mode, operands[1], mode, 0);
       dst = simplify_gen_subreg (move_mode, operands[0], mode, 1);
       if (!rtx_equal_p (dst, src))
-        {
-          emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
-          emit_move_insn (src, gen_rtx_XOR (QImode, src, dst));
-          emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
-        }
+	{
+	  emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
+	  emit_move_insn (src, gen_rtx_XOR (QImode, src, dst));
+	  emit_move_insn (dst, gen_rtx_XOR (QImode, dst, src));
+	}
     }
   else
     {
 #define MAX_SIZE 8 /* GET_MODE_SIZE (DImode) / GET_MODE_SIZE (QImode)  */
       /* Create linked list of moves to determine move order.  */
       struct {
-        rtx src, dst;
-        int links;
+	rtx src, dst;
+	int links;
       } move[MAX_SIZE + 8];
       int blocked, moves;
 
       gcc_assert (size <= MAX_SIZE);
       /* Generate list of subreg moves.  */
       for (int i = 0; i < size; i++)
-        {
-          int from = i;
-          int to = (from + offset) % size;
-          move[i].src = simplify_gen_subreg (move_mode, operands[1],
-                                             mode, from * move_size);
-          move[i].dst = simplify_gen_subreg (move_mode, operands[0],
-                                             mode, to * move_size);
-          move[i].links = -1;
-        }
+	{
+	  int from = i;
+	  int to = (from + offset) % size;
+	  move[i].src = simplify_gen_subreg (move_mode, operands[1],
+					     mode, from * move_size);
+	  move[i].dst = simplify_gen_subreg (move_mode, operands[0],
+					     mode, to * move_size);
+	  move[i].links = -1;
+	}
       /* Mark dependence where a dst of one move is the src of another move.
-         The first move is a conflict as it must wait until second is
-         performed.  We ignore moves to self - we catch this later.  */
+	 The first move is a conflict as it must wait until second is
+	 performed.  We ignore moves to self - we catch this later.  */
       if (overlapped)
-        for (int i = 0; i < size; i++)
-          if (reg_overlap_mentioned_p (move[i].dst, operands[1]))
-            for (int j = 0; j < size; j++)
-              if (j != i && rtx_equal_p (move[j].src, move[i].dst))
-                {
-                  /* The dst of move i is the src of move j.  */
-                  move[i].links = j;
-                  break;
-                }
+	for (int i = 0; i < size; i++)
+	  if (reg_overlap_mentioned_p (move[i].dst, operands[1]))
+	    for (int j = 0; j < size; j++)
+	      if (j != i && rtx_equal_p (move[j].src, move[i].dst))
+		{
+		  /* The dst of move i is the src of move j.  */
+		  move[i].links = j;
+		  break;
+		}
 
       blocked = -1;
       moves = 0;
       /* Go through move list and perform non-conflicting moves.  As each
-         non-overlapping move is made, it may remove other conflicts
-         so the process is repeated until no conflicts remain.  */
+	 non-overlapping move is made, it may remove other conflicts
+	 so the process is repeated until no conflicts remain.  */
       do
-        {
-          blocked = -1;
-          moves = 0;
-          /* Emit move where dst is not also a src or we have used that
-             src already.  */
-          for (int i = 0; i < size; i++)
-            if (move[i].src != NULL_RTX)
-              {
-                if (move[i].links == -1
-                    || move[move[i].links].src == NULL_RTX)
-                  {
-                    moves++;
-                    /* Ignore NOP moves to self.  */
-                    if (!rtx_equal_p (move[i].dst, move[i].src))
-                      emit_move_insn (move[i].dst, move[i].src);
-
-                    /* Remove  conflict from list.  */
-                    move[i].src = NULL_RTX;
-                  }
-                else
-                  blocked = i;
-              }
-
-          /* Check for deadlock. This is when no moves occurred and we have
-             at least one blocked move.  */
-          if (moves == 0 && blocked != -1)
-            {
-              /* Need to use scratch register to break deadlock.
-                 Add move to put dst of blocked move into scratch.
-                 When this move occurs, it will break chain deadlock.
-                 The scratch register is substituted for real move.  */
-
-              gcc_assert (SCRATCH != GET_CODE (scratch));
-
-              move[size].src = move[blocked].dst;
-              move[size].dst =  scratch;
-              /* Scratch move is never blocked.  */
-              move[size].links = -1;
-              /* Make sure we have valid link.  */
-              gcc_assert (move[blocked].links != -1);
-              /* Replace src of  blocking move with scratch reg.  */
-              move[move[blocked].links].src = scratch;
-              /* Make dependent on scratch move occurring.  */
-              move[blocked].links = size;
-              size=size+1;
-            }
-        }
+	{
+	  blocked = -1;
+	  moves = 0;
+	  /* Emit move where dst is not also a src or we have used that
+	     src already.  */
+	  for (int i = 0; i < size; i++)
+	    if (move[i].src != NULL_RTX)
+	      {
+		if (move[i].links == -1
+		    || move[move[i].links].src == NULL_RTX)
+		  {
+		    moves++;
+		    /* Ignore NOP moves to self.  */
+		    if (!rtx_equal_p (move[i].dst, move[i].src))
+		      emit_move_insn (move[i].dst, move[i].src);
+
+		    /* Remove  conflict from list.  */
+		    move[i].src = NULL_RTX;
+		  }
+		else
+		  blocked = i;
+	      }
+
+	  /* Check for deadlock. This is when no moves occurred and we have
+	     at least one blocked move.  */
+	  if (moves == 0 && blocked != -1)
+	    {
+	      /* Need to use scratch register to break deadlock.
+		 Add move to put dst of blocked move into scratch.
+		 When this move occurs, it will break chain deadlock.
+		 The scratch register is substituted for real move.  */
+
+	      gcc_assert (SCRATCH != GET_CODE (scratch));
+
+	      move[size].src = move[blocked].dst;
+	      move[size].dst =  scratch;
+	      /* Scratch move is never blocked.  */
+	      move[size].links = -1;
+	      /* Make sure we have valid link.  */
+	      gcc_assert (move[blocked].links != -1);
+	      /* Replace src of  blocking move with scratch reg.  */
+	      move[move[blocked].links].src = scratch;
+	      /* Make dependent on scratch move occurring.  */
+	      move[blocked].links = size;
+	      size=size+1;
+	    }
+	}
       while (blocked != -1);
     }
   return true;
@@ -9977,7 +9977,7 @@ avr_adjust_insn_length (rtx_insn *insn, int len)
   if (adjust_len == ADJUST_LEN_NO)
     {
       /* Nothing to adjust: The length from attribute "length" is fine.
-         This is the default.  */
+	 This is the default.  */
 
       return len;
     }
@@ -10205,10 +10205,10 @@ avr_assemble_integer (rtx x, unsigned int size, int aligned_p)
       /* varasm fails to handle big fixed modes that don't fit in hwi.  */
 
       for (unsigned n = 0; n < size; n++)
-        {
-          rtx xn = simplify_gen_subreg (QImode, x, GET_MODE (x), n);
-          default_assemble_integer (xn, 1, aligned_p);
-        }
+	{
+	  rtx xn = simplify_gen_subreg (QImode, x, GET_MODE (x), n);
+	  default_assemble_integer (xn, 1, aligned_p);
+	}
 
       return true;
     }
@@ -10244,18 +10244,18 @@ static bool
 avr_class_likely_spilled_p (reg_class_t c)
 {
   return (c != ALL_REGS &&
-           (AVR_TINY ? 1 : c != ADDW_REGS));
+	   (AVR_TINY ? 1 : c != ADDW_REGS));
 }
 
 
 /* Valid attributes:
-   progmem   -  Put data to program memory.
-   signal    -  Make a function to be hardware interrupt.
-                After function prologue interrupts remain disabled.
-   interrupt -  Make a function to be hardware interrupt. Before function
-                prologue interrupts are enabled by means of SEI.
-   naked     -  Don't generate function prologue/epilogue and RET
-                instruction.  */
+   progmem   -	Put data to program memory.
+   signal    -	Make a function to be hardware interrupt.
+		After function prologue interrupts remain disabled.
+   interrupt -	Make a function to be hardware interrupt. Before function
+		prologue interrupts are enabled by means of SEI.
+   naked     -	Don't generate function prologue/epilogue and RET
+		instruction.  */
 
 /* Handle a "progmem" attribute; arguments as in
    struct attribute_spec.handler.  */
@@ -10283,7 +10283,7 @@ avr_handle_progmem_attribute (tree *node, tree name,
 	}
       else if (TREE_STATIC (*node) || DECL_EXTERNAL (*node))
 	{
-          *no_add_attrs = false;
+	  *no_add_attrs = false;
 	}
       else
 	{
@@ -10317,9 +10317,9 @@ avr_handle_fndecl_attribute (tree *node, tree name,
 
 static tree
 avr_handle_fntype_attribute (tree *node, tree name,
-                             tree args ATTRIBUTE_UNUSED,
-                             int flags ATTRIBUTE_UNUSED,
-                             bool *no_add_attrs)
+			     tree args ATTRIBUTE_UNUSED,
+			     int flags ATTRIBUTE_UNUSED,
+			     bool *no_add_attrs)
 {
   if (TREE_CODE (*node) != FUNCTION_TYPE)
     {
@@ -10333,24 +10333,24 @@ avr_handle_fntype_attribute (tree *node, tree name,
 
 static tree
 avr_handle_absdata_attribute (tree *node, tree name, tree /* args */,
-                              int /* flags */, bool *no_add)
+			      int /* flags */, bool *no_add)
 {
   location_t loc = DECL_SOURCE_LOCATION (*node);
 
   if (AVR_TINY)
     {
       if (TREE_CODE (*node) != VAR_DECL
-          || (!TREE_STATIC (*node) && !DECL_EXTERNAL (*node)))
-        {
-          warning_at (loc, OPT_Wattributes, "%qE attribute only applies to"
-                      " variables in static storage", name);
-          *no_add = true;
-        }
+	  || (!TREE_STATIC (*node) && !DECL_EXTERNAL (*node)))
+	{
+	  warning_at (loc, OPT_Wattributes, "%qE attribute only applies to"
+		      " variables in static storage", name);
+	  *no_add = true;
+	}
     }
   else
     {
       warning_at (loc, OPT_Wattributes, "%qE attribute only supported"
-                  " for reduced Tiny cores", name);
+		  " for reduced Tiny cores", name);
       *no_add = true;
     }
 
@@ -10439,8 +10439,8 @@ avr_eval_addr_attrib (rtx x)
       if (SYMBOL_REF_FLAGS (x) & SYMBOL_FLAG_IO)
 	{
 	  attr = lookup_attribute ("io", DECL_ATTRIBUTES (decl));
-          if (!attr || !TREE_VALUE (attr))
-            attr = lookup_attribute ("io_low", DECL_ATTRIBUTES (decl));
+	  if (!attr || !TREE_VALUE (attr))
+	    attr = lookup_attribute ("io_low", DECL_ATTRIBUTES (decl));
 	}
       if (!attr || !TREE_VALUE (attr))
 	attr = lookup_attribute ("address", DECL_ATTRIBUTES (decl));
@@ -10491,16 +10491,16 @@ avr_addr_space_supported_p (addr_space_t as, location_t loc)
   if (AVR_TINY)
     {
       if (loc != UNKNOWN_LOCATION)
-        error_at (loc, "address spaces are not supported for reduced "
-                  "Tiny devices");
+	error_at (loc, "address spaces are not supported for reduced "
+		  "Tiny devices");
       return false;
     }
   else if (avr_addrspace[as].segment >= avr_n_flash)
     {
       if (loc != UNKNOWN_LOCATION)
-        error_at (loc, "address space %qs not supported for devices with "
-                  "flash size up to %d KiB", avr_addrspace[as].name,
-                  64 * avr_n_flash);
+	error_at (loc, "address space %qs not supported for devices with "
+		  "flash size up to %d KiB", avr_addrspace[as].name,
+		  64 * avr_n_flash);
       return false;
     }
 
@@ -10578,7 +10578,7 @@ static bool
 avr_decl_absdata_p (tree decl, tree attributes)
 {
   return (VAR_P (decl)
-          && NULL_TREE != lookup_attribute ("absdata", attributes));
+	  && NULL_TREE != lookup_attribute ("absdata", attributes));
 }
 
 
@@ -10601,23 +10601,23 @@ avr_nonconst_pointer_addrspace (tree typ)
       /* Pointer to function: Test the function's return type.  */
 
       if (FUNCTION_TYPE == TREE_CODE (target))
-        return avr_nonconst_pointer_addrspace (TREE_TYPE (target));
+	return avr_nonconst_pointer_addrspace (TREE_TYPE (target));
 
       /* "Ordinary" pointers... */
 
       while (TREE_CODE (target) == ARRAY_TYPE)
-        target = TREE_TYPE (target);
+	target = TREE_TYPE (target);
 
       /* Pointers to non-generic address space must be const.  */
 
       as = TYPE_ADDR_SPACE (target);
 
       if (!ADDR_SPACE_GENERIC_P (as)
-          && !TYPE_READONLY (target)
-          && avr_addr_space_supported_p (as))
-        {
-          return as;
-        }
+	  && !TYPE_READONLY (target)
+	  && avr_addr_space_supported_p (as))
+	{
+	  return as;
+	}
 
       /* Scan pointer's target type.  */
 
@@ -10651,40 +10651,40 @@ avr_pgm_check_var_decl (tree node)
 
     case VAR_DECL:
       if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
-        reason = _("variable");
+	reason = _("variable");
       break;
 
     case PARM_DECL:
       if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
-        reason = _("function parameter");
+	reason = _("function parameter");
       break;
 
     case FIELD_DECL:
       if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (node)), as)
-        reason = _("structure field");
+	reason = _("structure field");
       break;
 
     case FUNCTION_DECL:
       if (as = avr_nonconst_pointer_addrspace (TREE_TYPE (TREE_TYPE (node))),
-          as)
-        reason = _("return type of function");
+	  as)
+	reason = _("return type of function");
       break;
 
     case POINTER_TYPE:
       if (as = avr_nonconst_pointer_addrspace (node), as)
-        reason = _("pointer");
+	reason = _("pointer");
       break;
     }
 
   if (reason)
     {
       if (TYPE_P (node))
-        error ("pointer targeting address space %qs must be const in %qT",
-               avr_addrspace[as].name, node);
+	error ("pointer targeting address space %qs must be const in %qT",
+	       avr_addrspace[as].name, node);
       else
-        error ("pointer targeting address space %qs must be const"
-               " in %s %q+D",
-               avr_addrspace[as].name, reason, node);
+	error ("pointer targeting address space %qs must be const"
+	       " in %s %q+D",
+	       avr_addrspace[as].name, reason, node);
     }
 
   return reason == NULL;
@@ -10720,7 +10720,7 @@ avr_insert_attributes (tree node, tree *attributes)
       && NULL == lookup_attribute ("OS_task", *attributes))
     {
       *attributes = tree_cons (get_identifier ("OS_task"),
-                               NULL, *attributes);
+			       NULL, *attributes);
     }
 
   /* Add the section attribute if the variable is in progmem.  */
@@ -10733,31 +10733,31 @@ avr_insert_attributes (tree node, tree *attributes)
       tree node0 = node;
 
       /* For C++, we have to peel arrays in order to get correct
-         determination of readonlyness.  */
+	 determination of readonlyness.  */
 
       do
-        node0 = TREE_TYPE (node0);
+	node0 = TREE_TYPE (node0);
       while (TREE_CODE (node0) == ARRAY_TYPE);
 
       if (error_mark_node == node0)
-        return;
+	return;
 
       as = TYPE_ADDR_SPACE (TREE_TYPE (node));
 
       if (!TYPE_READONLY (node0)
-          && !TREE_READONLY (node))
-        {
-          const char *reason = "__attribute__((progmem))";
+	  && !TREE_READONLY (node))
+	{
+	  const char *reason = "__attribute__((progmem))";
 
-          if (!ADDR_SPACE_GENERIC_P (as))
-            reason = avr_addrspace[as].name;
+	  if (!ADDR_SPACE_GENERIC_P (as))
+	    reason = avr_addrspace[as].name;
 
-          if (avr_log.progmem)
-            avr_edump ("\n%?: %t\n%t\n", node, node0);
+	  if (avr_log.progmem)
+	    avr_edump ("\n%?: %t\n%t\n", node, node0);
 
-          error ("variable %q+D must be const in order to be put into"
-                 " read-only section by means of %qs", node, reason);
-        }
+	  error ("variable %q+D must be const in order to be put into"
+		 " read-only section by means of %qs", node, reason);
+	}
     }
 }
 
@@ -10966,12 +10966,12 @@ avr_asm_named_section (const char *name, unsigned int flags, tree decl)
       const char *new_prefix = avr_addrspace[as].section_name;
 
       if (startswith (name, old_prefix))
-        {
-          const char *sname = ACONCAT ((new_prefix,
-                                        name + strlen (old_prefix), NULL));
-          default_elf_asm_named_section (sname, flags, decl);
-          return;
-        }
+	{
+	  const char *sname = ACONCAT ((new_prefix,
+					name + strlen (old_prefix), NULL));
+	  default_elf_asm_named_section (sname, flags, decl);
+	  return;
+	}
 
       default_elf_asm_named_section (new_prefix, flags, decl);
       return;
@@ -11015,11 +11015,11 @@ avr_section_type_flags (tree decl, const char *name, int reloc)
       addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
 
       /* Attribute progmem puts data in generic address space.
-         Set section flags as if it was in __flash to get the right
-         section prefix in the remainder.  */
+	 Set section flags as if it was in __flash to get the right
+	 section prefix in the remainder.  */
 
       if (ADDR_SPACE_GENERIC_P (as))
-        as = ADDR_SPACE_FLASH;
+	as = ADDR_SPACE_FLASH;
 
       flags |= as * SECTION_MACH_DEP;
       flags &= ~SECTION_WRITE;
@@ -11059,7 +11059,7 @@ avr_decl_maybe_lds_p (tree node)
   while (ARRAY_TYPE == TREE_CODE (node));
 
   return (node != error_mark_node
-          && !TYPE_READONLY (node));
+	  && !TYPE_READONLY (node));
 }
 
 
@@ -11080,22 +11080,22 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p)
       && avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
     {
       if (!TREE_READONLY (decl))
-        {
-          // This might happen with C++ if stuff needs constructing.
-          error ("variable %q+D with dynamic initialization put "
-                 "into program memory area", decl);
-        }
+	{
+	  // This might happen with C++ if stuff needs constructing.
+	  error ("variable %q+D with dynamic initialization put "
+		 "into program memory area", decl);
+	}
       else if (NULL_TREE == DECL_INITIAL (decl))
-        {
-          // Don't warn for (implicit) aliases like in PR80462.
-          tree asmname = DECL_ASSEMBLER_NAME (decl);
-          varpool_node *node = varpool_node::get_for_asmname (asmname);
-          bool alias_p = node && node->alias;
-
-          if (!alias_p)
-            warning (OPT_Wuninitialized, "uninitialized variable %q+D put "
-                     "into program memory area", decl);
-        }
+	{
+	  // Don't warn for (implicit) aliases like in PR80462.
+	  tree asmname = DECL_ASSEMBLER_NAME (decl);
+	  varpool_node *node = varpool_node::get_for_asmname (asmname);
+	  bool alias_p = node && node->alias;
+
+	  if (!alias_p)
+	    warning (OPT_Wuninitialized, "uninitialized variable %q+D put "
+		     "into program memory area", decl);
+	}
     }
 
   default_encode_section_info (decl, rtl, new_decl_p);
@@ -11114,10 +11114,10 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p)
       addr_space_t as = TYPE_ADDR_SPACE (type);
 
       /* PSTR strings are in generic space but located in flash:
-         patch address space.  */
+	 patch address space.  */
 
       if (!AVR_TINY && avr_progmem_p (decl, attr) == -1)
-        as = ADDR_SPACE_FLASH;
+	as = ADDR_SPACE_FLASH;
 
       AVR_SYMBOL_SET_ADDR_SPACE (sym, as);
 
@@ -11136,9 +11136,9 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p)
 
       if (io_low_attr
 	  || (io_attr && addr_attr
-              && low_io_address_operand
-                  (GEN_INT (TREE_INT_CST_LOW
-                            (TREE_VALUE (TREE_VALUE (addr_attr)))), QImode)))
+	      && low_io_address_operand
+		  (GEN_INT (TREE_INT_CST_LOW
+			    (TREE_VALUE (TREE_VALUE (addr_attr)))), QImode)))
 	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_IO_LOW;
       if (io_attr || io_low_attr)
 	SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_IO;
@@ -11174,7 +11174,7 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p)
 		 using that section anyway, also use it in the public case.  */
 
 	      DECL_COMMON (decl) = 1;
-	      set_decl_section_name (decl, (const char*) nullptr);
+	      set_decl_section_name (decl, (const char *) nullptr);
 	      set_decl_tls_model (decl, (tls_model) 2);
 	    }
 	}
@@ -11190,30 +11190,30 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p)
       bool progmem_p = avr_progmem_p (decl, DECL_ATTRIBUTES (decl)) == -1;
 
       if (progmem_p)
-        {
-          // Tag symbols for addition of 0x4000 (avr_arch->flash_pm_offset).
-          SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_PM;
-        }
+	{
+	  // Tag symbols for addition of 0x4000 (avr_arch->flash_pm_offset).
+	  SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_PM;
+	}
 
       if (avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl))
-          || (TARGET_ABSDATA
-              && !progmem_p
-              && !addr_attr
-              && avr_decl_maybe_lds_p (decl))
-          || (addr_attr
-              // If addr_attr is non-null, it has an argument.  Peek into it.
-              && TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE (addr_attr))) < 0xc0))
-        {
-          // May be accessed by LDS / STS.
-          SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_ABSDATA;
-        }
+	  || (TARGET_ABSDATA
+	      && !progmem_p
+	      && !addr_attr
+	      && avr_decl_maybe_lds_p (decl))
+	  || (addr_attr
+	      // If addr_attr is non-null, it has an argument.  Peek into it.
+	      && TREE_INT_CST_LOW (TREE_VALUE (TREE_VALUE (addr_attr))) < 0xc0))
+	{
+	  // May be accessed by LDS / STS.
+	  SYMBOL_REF_FLAGS (sym) |= AVR_SYMBOL_FLAG_TINY_ABSDATA;
+	}
 
       if (progmem_p
-          && avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl)))
-        {
-          error ("%q+D has incompatible attributes %qs and %qs",
-                 decl, "progmem", "absdata");
-        }
+	  && avr_decl_absdata_p (decl, DECL_ATTRIBUTES (decl)))
+	{
+	  error ("%q+D has incompatible attributes %qs and %qs",
+		 decl, "progmem", "absdata");
+	}
     }
 }
 
@@ -11223,7 +11223,7 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p)
 static section *
 avr_asm_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
 {
-  section * sect = default_elf_select_section (decl, reloc, align);
+  section *sect = default_elf_select_section (decl, reloc, align);
 
   if (decl && DECL_P (decl)
       && avr_progmem_p (decl, DECL_ATTRIBUTES (decl)))
@@ -11231,33 +11231,33 @@ avr_asm_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
       addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (decl));
 
       /* __progmem__ goes in generic space but shall be allocated to
-         .progmem.data  */
+	 .progmem.data  */
 
       if (ADDR_SPACE_GENERIC_P (as))
-        as = ADDR_SPACE_FLASH;
+	as = ADDR_SPACE_FLASH;
 
       if (sect->common.flags & SECTION_NAMED)
-        {
-          const char * name = sect->named.name;
-          const char * old_prefix = ".rodata";
-          const char * new_prefix = avr_addrspace[as].section_name;
+	{
+	  const char *name = sect->named.name;
+	  const char *old_prefix = ".rodata";
+	  const char *new_prefix = avr_addrspace[as].section_name;
 
 	  if (startswith (name, old_prefix))
-            {
-              const char *sname = ACONCAT ((new_prefix,
-                                            name + strlen (old_prefix), NULL));
-              return get_section (sname,
-                                  sect->common.flags & ~SECTION_DECLARED,
-                                  sect->named.decl);
-            }
-        }
+	    {
+	      const char *sname = ACONCAT ((new_prefix,
+					    name + strlen (old_prefix), NULL));
+	      return get_section (sname,
+				  sect->common.flags & ~SECTION_DECLARED,
+				  sect->named.decl);
+	    }
+	}
 
       if (!progmem_section[as])
-        {
-          progmem_section[as]
-            = get_unnamed_section (0, avr_output_progmem_section_asm_op,
-                                   avr_addrspace[as].section_name);
-        }
+	{
+	  progmem_section[as]
+	    = get_unnamed_section (0, avr_output_progmem_section_asm_op,
+				   avr_addrspace[as].section_name);
+	}
 
       return progmem_section[as];
     }
@@ -11390,8 +11390,8 @@ avr_adjust_reg_alloc_order (void)
      so different allocation order should be used.  */
 
   const int *order = (TARGET_ORDER_1 ? (AVR_TINY ? tiny_order_1 : order_1)
-                      : TARGET_ORDER_2 ? (AVR_TINY ? tiny_order_0 : order_2)
-                      : (AVR_TINY ? tiny_order_0 : order_0));
+		      : TARGET_ORDER_2 ? (AVR_TINY ? tiny_order_0 : order_2)
+		      : (AVR_TINY ? tiny_order_0 : order_0));
 
   for (size_t i = 0; i < ARRAY_SIZE (order_0); ++i)
     reg_alloc_order[i] = order[i];
@@ -11402,11 +11402,11 @@ avr_adjust_reg_alloc_order (void)
 
 static int
 avr_register_move_cost (machine_mode mode ATTRIBUTE_UNUSED,
-                        reg_class_t from, reg_class_t to)
+			reg_class_t from, reg_class_t to)
 {
   return (from == STACK_REG ? 6
-          : to == STACK_REG ? 12
-          : 2);
+	  : to == STACK_REG ? 12
+	  : 2);
 }
 
 
@@ -11414,14 +11414,14 @@ avr_register_move_cost (machine_mode mode ATTRIBUTE_UNUSED,
 
 static int
 avr_memory_move_cost (machine_mode mode,
-                      reg_class_t rclass ATTRIBUTE_UNUSED,
-                      bool in ATTRIBUTE_UNUSED)
+		      reg_class_t rclass ATTRIBUTE_UNUSED,
+		      bool in ATTRIBUTE_UNUSED)
 {
   return (mode == QImode ? 2
-          : mode == HImode ? 4
-          : mode == SImode ? 8
-          : mode == SFmode ? 8
-          : 16);
+	  : mode == HImode ? 4
+	  : mode == SImode ? 8
+	  : mode == SFmode ? 8
+	  : 16);
 }
 
 
@@ -11438,14 +11438,14 @@ avr_mul_highpart_cost (rtx x, int)
     {
       // This is the wider mode.
       machine_mode mode = GET_MODE (x);
-  
+
       // The middle-end might still have PR81444, i.e. it is calling the cost
       // functions with strange modes.  Fix this now by also considering
       // PSImode (should actually be SImode instead).
       if (HImode == mode || PSImode == mode || SImode == mode)
-        {
-          return COSTS_N_INSNS (2);
-        }
+	{
+	  return COSTS_N_INSNS (2);
+	}
     }
 
   return 10000;
@@ -11544,7 +11544,7 @@ avr_operand_rtx_cost (rtx x, machine_mode mode, enum rtx_code outer,
 
 static bool
 avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
-                 int opno ATTRIBUTE_UNUSED, int *total, bool speed)
+		 int opno ATTRIBUTE_UNUSED, int *total, bool speed)
 {
   enum rtx_code code = GET_CODE (x);
   HOST_WIDE_INT val;
@@ -11573,11 +11573,11 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 	  *total = COSTS_N_INSNS (1);
 	  break;
 
-        case E_HImode:
-        case E_PSImode:
-        case E_SImode:
-          *total = COSTS_N_INSNS (2 * GET_MODE_SIZE (mode) - 1);
-          break;
+	case E_HImode:
+	case E_PSImode:
+	case E_SImode:
+	  *total = COSTS_N_INSNS (2 * GET_MODE_SIZE (mode) - 1);
+	  break;
 
 	default:
 	  return false;
@@ -11622,37 +11622,37 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
       switch (mode)
 	{
 	case E_QImode:
-          if (AVR_HAVE_MUL
-              && MULT == GET_CODE (XEXP (x, 0))
-              && register_operand (XEXP (x, 1), QImode))
-            {
-              /* multiply-add */
-              *total = COSTS_N_INSNS (speed ? 4 : 3);
-              /* multiply-add with constant: will be split and load constant. */
-              if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
-                *total = COSTS_N_INSNS (1) + *total;
-              return true;
-            }
+	  if (AVR_HAVE_MUL
+	      && MULT == GET_CODE (XEXP (x, 0))
+	      && register_operand (XEXP (x, 1), QImode))
+	    {
+	      /* multiply-add */
+	      *total = COSTS_N_INSNS (speed ? 4 : 3);
+	      /* multiply-add with constant: will be split and load constant. */
+	      if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
+		*total = COSTS_N_INSNS (1) + *total;
+	      return true;
+	    }
 	  *total = COSTS_N_INSNS (1);
 	  if (!CONST_INT_P (XEXP (x, 1)))
 	    *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1, speed);
 	  break;
 
 	case E_HImode:
-          if (AVR_HAVE_MUL
-              && (MULT == GET_CODE (XEXP (x, 0))
-                  || ASHIFT == GET_CODE (XEXP (x, 0)))
-              && register_operand (XEXP (x, 1), HImode)
-              && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))
-                  || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))))
-            {
-              /* multiply-add */
-              *total = COSTS_N_INSNS (speed ? 5 : 4);
-              /* multiply-add with constant: will be split and load constant. */
-              if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
-                *total = COSTS_N_INSNS (1) + *total;
-              return true;
-            }
+	  if (AVR_HAVE_MUL
+	      && (MULT == GET_CODE (XEXP (x, 0))
+		  || ASHIFT == GET_CODE (XEXP (x, 0)))
+	      && register_operand (XEXP (x, 1), HImode)
+	      && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))
+		  || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 0), 0))))
+	    {
+	      /* multiply-add */
+	      *total = COSTS_N_INSNS (speed ? 5 : 4);
+	      /* multiply-add with constant: will be split and load constant. */
+	      if (CONST_INT_P (XEXP (XEXP (x, 0), 1)))
+		*total = COSTS_N_INSNS (1) + *total;
+	      return true;
+	    }
 	  if (!CONST_INT_P (XEXP (x, 1)))
 	    {
 	      *total = COSTS_N_INSNS (2);
@@ -11665,18 +11665,18 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 	    *total = COSTS_N_INSNS (2);
 	  break;
 
-        case E_PSImode:
-          if (!CONST_INT_P (XEXP (x, 1)))
-            {
-              *total = COSTS_N_INSNS (3);
-              *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
-                                              speed);
-            }
-          else if (IN_RANGE (INTVAL (XEXP (x, 1)), -63, 63))
-            *total = COSTS_N_INSNS (2);
-          else
-            *total = COSTS_N_INSNS (3);
-          break;
+	case E_PSImode:
+	  if (!CONST_INT_P (XEXP (x, 1)))
+	    {
+	      *total = COSTS_N_INSNS (3);
+	      *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
+					      speed);
+	    }
+	  else if (IN_RANGE (INTVAL (XEXP (x, 1)), -63, 63))
+	    *total = COSTS_N_INSNS (2);
+	  else
+	    *total = COSTS_N_INSNS (3);
+	  break;
 
 	case E_SImode:
 	  if (!CONST_INT_P (XEXP (x, 1)))
@@ -11699,67 +11699,67 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 
     case MINUS:
       if (AVR_HAVE_MUL
-          && QImode == mode
-          && register_operand (XEXP (x, 0), QImode)
-          && MULT == GET_CODE (XEXP (x, 1)))
-        {
-          /* multiply-sub */
-          *total = COSTS_N_INSNS (speed ? 4 : 3);
-          /* multiply-sub with constant: will be split and load constant. */
-          if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
-            *total = COSTS_N_INSNS (1) + *total;
-          return true;
-        }
+	  && QImode == mode
+	  && register_operand (XEXP (x, 0), QImode)
+	  && MULT == GET_CODE (XEXP (x, 1)))
+	{
+	  /* multiply-sub */
+	  *total = COSTS_N_INSNS (speed ? 4 : 3);
+	  /* multiply-sub with constant: will be split and load constant. */
+	  if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
+	    *total = COSTS_N_INSNS (1) + *total;
+	  return true;
+	}
       if (AVR_HAVE_MUL
-          && HImode == mode
-          && register_operand (XEXP (x, 0), HImode)
-          && (MULT == GET_CODE (XEXP (x, 1))
-              || ASHIFT == GET_CODE (XEXP (x, 1)))
-          && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))
-              || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))))
-        {
-          /* multiply-sub */
-          *total = COSTS_N_INSNS (speed ? 5 : 4);
-          /* multiply-sub with constant: will be split and load constant. */
-          if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
-            *total = COSTS_N_INSNS (1) + *total;
-          return true;
-        }
+	  && HImode == mode
+	  && register_operand (XEXP (x, 0), HImode)
+	  && (MULT == GET_CODE (XEXP (x, 1))
+	      || ASHIFT == GET_CODE (XEXP (x, 1)))
+	  && (ZERO_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))
+	      || SIGN_EXTEND == GET_CODE (XEXP (XEXP (x, 1), 0))))
+	{
+	  /* multiply-sub */
+	  *total = COSTS_N_INSNS (speed ? 5 : 4);
+	  /* multiply-sub with constant: will be split and load constant. */
+	  if (CONST_INT_P (XEXP (XEXP (x, 1), 1)))
+	    *total = COSTS_N_INSNS (1) + *total;
+	  return true;
+	}
       /* FALLTHRU */
     case AND:
     case IOR:
       if (IOR == code
-          && HImode == mode
-          && ASHIFT == GET_CODE (XEXP (x, 0)))
-        {
-          *total = COSTS_N_INSNS (2);
-          // Just a rough estimate.  If we see no sign- or zero-extend,
-          // then increase the cost a little bit.
-          if (REG_P (XEXP (XEXP (x, 0), 0)))
-            *total += COSTS_N_INSNS (1);
-          if (REG_P (XEXP (x, 1)))
-            *total += COSTS_N_INSNS (1);
-          return true;
-        }
+	  && HImode == mode
+	  && ASHIFT == GET_CODE (XEXP (x, 0)))
+	{
+	  *total = COSTS_N_INSNS (2);
+	  // Just a rough estimate.  If we see no sign- or zero-extend,
+	  // then increase the cost a little bit.
+	  if (REG_P (XEXP (XEXP (x, 0), 0)))
+	    *total += COSTS_N_INSNS (1);
+	  if (REG_P (XEXP (x, 1)))
+	    *total += COSTS_N_INSNS (1);
+	  return true;
+	}
       if (IOR == code
-          && AND == GET_CODE (XEXP (x, 0))
-          && AND == GET_CODE (XEXP (x, 1))
-          && single_zero_operand (XEXP (XEXP (x, 0), 1), mode))
-        {
-          // Open-coded bit transfer.
-          *total = COSTS_N_INSNS (2);
-          return true;
-        }
+	  && AND == GET_CODE (XEXP (x, 0))
+	  && AND == GET_CODE (XEXP (x, 1))
+	  && single_zero_operand (XEXP (XEXP (x, 0), 1), mode))
+	{
+	  // Open-coded bit transfer.
+	  *total = COSTS_N_INSNS (2);
+	  return true;
+	}
       if (AND == code
-          && single_one_operand (XEXP (x, 1), mode)
-          && (ASHIFT == GET_CODE (XEXP (x, 0))
-              || ASHIFTRT == GET_CODE (XEXP (x, 0))
-              || LSHIFTRT == GET_CODE (XEXP (x, 0))))
-        {
-          // "*insv.any_shift.<mode>
-          *total = COSTS_N_INSNS (1 + GET_MODE_SIZE (mode));
-          return true;
-        }
+	  && single_one_operand (XEXP (x, 1), mode)
+	  && (ASHIFT == GET_CODE (XEXP (x, 0))
+	      || ASHIFTRT == GET_CODE (XEXP (x, 0))
+	      || LSHIFTRT == GET_CODE (XEXP (x, 0))))
+	{
+	  // "*insv.any_shift.<mode>
+	  *total = COSTS_N_INSNS (1 + GET_MODE_SIZE (mode));
+	  return true;
+	}
       *total = COSTS_N_INSNS (GET_MODE_SIZE (mode));
       *total += avr_operand_rtx_cost (XEXP (x, 0), mode, code, 0, speed);
       if (!CONST_INT_P (XEXP (x, 1)))
@@ -11786,81 +11786,81 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 
 	case E_HImode:
 	  if (AVR_HAVE_MUL)
-            {
-              rtx op0 = XEXP (x, 0);
-              rtx op1 = XEXP (x, 1);
-              enum rtx_code code0 = GET_CODE (op0);
-              enum rtx_code code1 = GET_CODE (op1);
-              bool ex0 = SIGN_EXTEND == code0 || ZERO_EXTEND == code0;
-              bool ex1 = SIGN_EXTEND == code1 || ZERO_EXTEND == code1;
-
-              if (ex0
-                  && (u8_operand (op1, HImode)
-                      || s8_operand (op1, HImode)))
-                {
-                  *total = COSTS_N_INSNS (!speed ? 4 : 6);
-                  return true;
-                }
-              if (ex0
-                  && register_operand (op1, HImode))
-                {
-                  *total = COSTS_N_INSNS (!speed ? 5 : 8);
-                  return true;
-                }
-              else if (ex0 || ex1)
-                {
-                  *total = COSTS_N_INSNS (!speed ? 3 : 5);
-                  return true;
-                }
-              else if (register_operand (op0, HImode)
-                       && (u8_operand (op1, HImode)
-                           || s8_operand (op1, HImode)))
-                {
-                  *total = COSTS_N_INSNS (!speed ? 6 : 9);
-                  return true;
-                }
-              else
-                *total = COSTS_N_INSNS (!speed ? 7 : 10);
-            }
+	    {
+	      rtx op0 = XEXP (x, 0);
+	      rtx op1 = XEXP (x, 1);
+	      enum rtx_code code0 = GET_CODE (op0);
+	      enum rtx_code code1 = GET_CODE (op1);
+	      bool ex0 = SIGN_EXTEND == code0 || ZERO_EXTEND == code0;
+	      bool ex1 = SIGN_EXTEND == code1 || ZERO_EXTEND == code1;
+
+	      if (ex0
+		  && (u8_operand (op1, HImode)
+		      || s8_operand (op1, HImode)))
+		{
+		  *total = COSTS_N_INSNS (!speed ? 4 : 6);
+		  return true;
+		}
+	      if (ex0
+		  && register_operand (op1, HImode))
+		{
+		  *total = COSTS_N_INSNS (!speed ? 5 : 8);
+		  return true;
+		}
+	      else if (ex0 || ex1)
+		{
+		  *total = COSTS_N_INSNS (!speed ? 3 : 5);
+		  return true;
+		}
+	      else if (register_operand (op0, HImode)
+		       && (u8_operand (op1, HImode)
+			   || s8_operand (op1, HImode)))
+		{
+		  *total = COSTS_N_INSNS (!speed ? 6 : 9);
+		  return true;
+		}
+	      else
+		*total = COSTS_N_INSNS (!speed ? 7 : 10);
+	    }
 	  else if (!speed)
 	    *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
 	  else
 	    return false;
 	  break;
 
-        case E_PSImode:
-          if (!speed)
-            *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
-          else
-            *total = 10;
-          break;
+	case E_PSImode:
+	  if (!speed)
+	    *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
+	  else
+	    *total = 10;
+	  break;
 
 	case E_SImode:
 	case E_DImode:
 	  if (AVR_HAVE_MUL)
-            {
-              if (!speed)
-                {
-                  /* Add some additional costs besides CALL like moves etc.  */
-
-                  *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
-                }
-              else
-                {
-                  /* Just a rough estimate.  Even with -O2 we don't want bulky
-                     code expanded inline.  */
-
-                  *total = COSTS_N_INSNS (25);
-                }
-            }
-          else
-            {
-              if (speed)
-                *total = COSTS_N_INSNS (300);
-              else
-                /* Add some additional costs besides CALL like moves etc.  */
-                *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
-            }
+	    {
+	      if (!speed)
+		{
+		  /* Add some additional costs besides CALL like moves etc.  */
+
+		  *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
+		}
+	      else
+		{
+		  /* Just a rough estimate.  Even with -O2 we don't want bulky
+		     code expanded inline.  */
+
+		  *total = COSTS_N_INSNS (25);
+		}
+	    }
+	  else
+	    {
+	      if (speed)
+		*total = COSTS_N_INSNS (300);
+	      else
+		/* Add some additional costs besides CALL like moves etc.  */
+		*total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 5 : 4);
+	    }
 
 	  if (mode == DImode)
 	    *total *= 2;
@@ -11879,14 +11879,14 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
     case UDIV:
     case UMOD:
       if (!speed)
-        *total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
+	*total = COSTS_N_INSNS (AVR_HAVE_JMP_CALL ? 2 : 1);
       else
-        *total = COSTS_N_INSNS (15 * GET_MODE_SIZE (mode));
+	*total = COSTS_N_INSNS (15 * GET_MODE_SIZE (mode));
       *total += avr_operand_rtx_cost (XEXP (x, 0), mode, code, 0, speed);
       /* For div/mod with const-int divisor we have at least the cost of
-         loading the divisor. */
+	 loading the divisor. */
       if (CONST_INT_P (XEXP (x, 1)))
-        *total += COSTS_N_INSNS (GET_MODE_SIZE (mode));
+	*total += COSTS_N_INSNS (GET_MODE_SIZE (mode));
       /* Add some overall penaly for clobbering and moving around registers */
       *total += COSTS_N_INSNS (2);
       return true;
@@ -11949,23 +11949,23 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 	  break;
 
 	case E_HImode:
-          if (AVR_HAVE_MUL)
-            {
-              if (const_2_to_7_operand (XEXP (x, 1), HImode)
-                  && (SIGN_EXTEND == GET_CODE (XEXP (x, 0))
-                      || ZERO_EXTEND == GET_CODE (XEXP (x, 0))))
-                {
-                  *total = COSTS_N_INSNS (!speed ? 4 : 6);
-                  return true;
-                }
-            }
-
-          if (const1_rtx == (XEXP (x, 1))
-              && SIGN_EXTEND == GET_CODE (XEXP (x, 0)))
-            {
-              *total = COSTS_N_INSNS (2);
-              return true;
-            }
+	  if (AVR_HAVE_MUL)
+	    {
+	      if (const_2_to_7_operand (XEXP (x, 1), HImode)
+		  && (SIGN_EXTEND == GET_CODE (XEXP (x, 0))
+		      || ZERO_EXTEND == GET_CODE (XEXP (x, 0))))
+		{
+		  *total = COSTS_N_INSNS (!speed ? 4 : 6);
+		  return true;
+		}
+	    }
+
+	  if (const1_rtx == (XEXP (x, 1))
+	      && SIGN_EXTEND == GET_CODE (XEXP (x, 0)))
+	    {
+	      *total = COSTS_N_INSNS (2);
+	      return true;
+	    }
 
 	  if (!CONST_INT_P (XEXP (x, 1)))
 	    {
@@ -12007,36 +12007,36 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 		*total = COSTS_N_INSNS (!speed ? 5 : 10);
 		break;
 	      default:
-	        *total = COSTS_N_INSNS (!speed ? 5 : 41);
-	        *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
+		*total = COSTS_N_INSNS (!speed ? 5 : 41);
+		*total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
 						speed);
 	      }
 	  break;
 
-        case E_PSImode:
-          if (!CONST_INT_P (XEXP (x, 1)))
-            {
-              *total = COSTS_N_INSNS (!speed ? 6 : 73);
-            }
-          else
-            switch (INTVAL (XEXP (x, 1)))
-              {
-              case 0:
-                *total = 0;
-                break;
-              case 1:
-              case 8:
-              case 16:
-                *total = COSTS_N_INSNS (3);
-                break;
-              case 23:
-                *total = COSTS_N_INSNS (5);
-                break;
-              default:
-                *total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
-                break;
-              }
-          break;
+	case E_PSImode:
+	  if (!CONST_INT_P (XEXP (x, 1)))
+	    {
+	      *total = COSTS_N_INSNS (!speed ? 6 : 73);
+	    }
+	  else
+	    switch (INTVAL (XEXP (x, 1)))
+	      {
+	      case 0:
+		*total = 0;
+		break;
+	      case 1:
+	      case 8:
+	      case 16:
+		*total = COSTS_N_INSNS (3);
+		break;
+	      case 23:
+		*total = COSTS_N_INSNS (5);
+		break;
+	      default:
+		*total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
+		break;
+	      }
+	  break;
 
 	case E_SImode:
 	  if (!CONST_INT_P (XEXP (x, 1)))
@@ -12123,57 +12123,57 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 		break;
 	      case 2:
 	      case 7:
-              case 8:
-              case 9:
+	      case 8:
+	      case 9:
 		*total = COSTS_N_INSNS (4);
 		break;
-              case 10:
+	      case 10:
 	      case 14:
 		*total = COSTS_N_INSNS (5);
 		break;
-              case 11:
-                *total = COSTS_N_INSNS (!speed ? 5 : 6);
+	      case 11:
+		*total = COSTS_N_INSNS (!speed ? 5 : 6);
 		break;
-              case 12:
-                *total = COSTS_N_INSNS (!speed ? 5 : 7);
+	      case 12:
+		*total = COSTS_N_INSNS (!speed ? 5 : 7);
 		break;
-              case 6:
+	      case 6:
 	      case 13:
-                *total = COSTS_N_INSNS (!speed ? 5 : 8);
+		*total = COSTS_N_INSNS (!speed ? 5 : 8);
 		break;
 	      default:
-	        *total = COSTS_N_INSNS (!speed ? 5 : 41);
-	        *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
+		*total = COSTS_N_INSNS (!speed ? 5 : 41);
+		*total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
 						speed);
 	      }
 	  break;
 
-        case E_PSImode:
-          if (!CONST_INT_P (XEXP (x, 1)))
-            {
-              *total = COSTS_N_INSNS (!speed ? 6 : 73);
-            }
-          else
-            switch (INTVAL (XEXP (x, 1)))
-              {
-              case 0:
-                *total = 0;
-                break;
-              case 1:
-                *total = COSTS_N_INSNS (3);
-                break;
-              case 16:
-              case 8:
-                *total = COSTS_N_INSNS (5);
-                break;
-              case 23:
-                *total = COSTS_N_INSNS (4);
-                break;
-              default:
-                *total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
-                break;
-              }
-          break;
+	case E_PSImode:
+	  if (!CONST_INT_P (XEXP (x, 1)))
+	    {
+	      *total = COSTS_N_INSNS (!speed ? 6 : 73);
+	    }
+	  else
+	    switch (INTVAL (XEXP (x, 1)))
+	      {
+	      case 0:
+		*total = 0;
+		break;
+	      case 1:
+		*total = COSTS_N_INSNS (3);
+		break;
+	      case 16:
+	      case 8:
+		*total = COSTS_N_INSNS (5);
+		break;
+	      case 23:
+		*total = COSTS_N_INSNS (4);
+		break;
+	      default:
+		*total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
+		break;
+	      }
+	  break;
 
 	case E_SImode:
 	  if (!CONST_INT_P (XEXP (x, 1)))
@@ -12217,10 +12217,10 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 
     case LSHIFTRT:
       if (outer_code == TRUNCATE)
-        {
-          *total = avr_mul_highpart_cost (x, speed);
-          return true;
-        }
+	{
+	  *total = avr_mul_highpart_cost (x, speed);
+	  return true;
+	}
 
       switch (mode)
 	{
@@ -12269,7 +12269,7 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 		*total = COSTS_N_INSNS (4);
 		break;
 	      case 7:
-              case 11:
+	      case 11:
 		*total = COSTS_N_INSNS (5);
 		break;
 	      case 3:
@@ -12286,36 +12286,36 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 		*total = COSTS_N_INSNS (!speed ? 5 : 9);
 		break;
 	      default:
-	        *total = COSTS_N_INSNS (!speed ? 5 : 41);
-	        *total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
+		*total = COSTS_N_INSNS (!speed ? 5 : 41);
+		*total += avr_operand_rtx_cost (XEXP (x, 1), mode, code, 1,
 						speed);
 	      }
 	  break;
 
-        case E_PSImode:
-          if (!CONST_INT_P (XEXP (x, 1)))
-            {
-              *total = COSTS_N_INSNS (!speed ? 6 : 73);
-            }
-          else
-            switch (INTVAL (XEXP (x, 1)))
-              {
-              case 0:
-                *total = 0;
-                break;
-              case 1:
-              case 8:
-              case 16:
-                *total = COSTS_N_INSNS (3);
-                break;
-              case 23:
-                *total = COSTS_N_INSNS (5);
-                break;
-              default:
-                *total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
-                break;
-              }
-          break;
+	case E_PSImode:
+	  if (!CONST_INT_P (XEXP (x, 1)))
+	    {
+	      *total = COSTS_N_INSNS (!speed ? 6 : 73);
+	    }
+	  else
+	    switch (INTVAL (XEXP (x, 1)))
+	      {
+	      case 0:
+		*total = 0;
+		break;
+	      case 1:
+	      case 8:
+	      case 16:
+		*total = COSTS_N_INSNS (3);
+		break;
+	      case 23:
+		*total = COSTS_N_INSNS (5);
+		break;
+	      default:
+		*total = COSTS_N_INSNS (!speed ? 5 : 3 * INTVAL (XEXP (x, 1)));
+		break;
+	      }
+	  break;
 
 	case E_SImode:
 	  if (!CONST_INT_P (XEXP (x, 1)))
@@ -12367,29 +12367,29 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 					    1, speed);
 	  break;
 
-        case E_HImode:
+	case E_HImode:
 	  *total = COSTS_N_INSNS (2);
 	  if (!CONST_INT_P (XEXP (x, 1)))
-            *total += avr_operand_rtx_cost (XEXP (x, 1), HImode, code,
+	    *total += avr_operand_rtx_cost (XEXP (x, 1), HImode, code,
 					    1, speed);
 	  else if (INTVAL (XEXP (x, 1)) != 0)
 	    *total += COSTS_N_INSNS (1);
-          break;
-
-        case E_PSImode:
-          *total = COSTS_N_INSNS (3);
-          if (CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) != 0)
-            *total += COSTS_N_INSNS (2);
-          break;
-
-        case E_SImode:
-          *total = COSTS_N_INSNS (4);
-          if (!CONST_INT_P (XEXP (x, 1)))
-            *total += avr_operand_rtx_cost (XEXP (x, 1), SImode, code,
+	  break;
+
+	case E_PSImode:
+	  *total = COSTS_N_INSNS (3);
+	  if (CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) != 0)
+	    *total += COSTS_N_INSNS (2);
+	  break;
+
+	case E_SImode:
+	  *total = COSTS_N_INSNS (4);
+	  if (!CONST_INT_P (XEXP (x, 1)))
+	    *total += avr_operand_rtx_cost (XEXP (x, 1), SImode, code,
 					    1, speed);
 	  else if (INTVAL (XEXP (x, 1)) != 0)
 	    *total += COSTS_N_INSNS (3);
-          break;
+	  break;
 
 	default:
 	  return false;
@@ -12400,10 +12400,10 @@ avr_rtx_costs_1 (rtx x, machine_mode mode, int outer_code,
 
     case TRUNCATE:
       if (LSHIFTRT == GET_CODE (XEXP (x, 0)))
-        {
-          *total = avr_mul_highpart_cost (XEXP (x, 0), speed);
-          return true;
-        }
+	{
+	  *total = avr_mul_highpart_cost (XEXP (x, 0), speed);
+	  return true;
+	}
       break;
 
     case IF_THEN_ELSE:
@@ -12433,7 +12433,7 @@ avr_rtx_costs (rtx x, machine_mode mode, int outer_code,
   if (avr_log.rtx_costs)
     {
       avr_edump ("\n%?=%b (%s) total=%d, outer=%C:\n%r\n",
-                 done, speed ? "speed" : "size", *total, outer_code, x);
+		 done, speed ? "speed" : "size", *total, outer_code, x);
     }
 
   return done;
@@ -12490,27 +12490,27 @@ avr_insn_cost (rtx_insn *insn, bool speed)
 
 static int
 avr_address_cost (rtx x, machine_mode mode ATTRIBUTE_UNUSED,
-                  addr_space_t as ATTRIBUTE_UNUSED,
-                  bool speed ATTRIBUTE_UNUSED)
+		  addr_space_t as ATTRIBUTE_UNUSED,
+		  bool speed ATTRIBUTE_UNUSED)
 {
   int cost = 4;
 
   if (GET_CODE (x) == PLUS
       && CONST_INT_P (XEXP (x, 1))
       && (REG_P (XEXP (x, 0))
-          || SUBREG_P (XEXP (x, 0))))
+	  || SUBREG_P (XEXP (x, 0))))
     {
       if (INTVAL (XEXP (x, 1)) > MAX_LD_OFFSET(mode))
-        cost = 18;
+	cost = 18;
     }
   else if (CONSTANT_ADDRESS_P (x))
     {
       if (io_address_operand (x, QImode))
-        cost = 2;
+	cost = 2;
 
       if (AVR_TINY
-          && avr_address_tiny_absdata_p (x, QImode))
-        cost = 2;
+	  && avr_address_tiny_absdata_p (x, QImode))
+	cost = 2;
     }
 
   if (avr_log.address_cost)
@@ -12538,16 +12538,16 @@ extra_constraint_Q (rtx x)
       int regno = REGNO (xx);
 
       ok = (/* allocate pseudos */
-            regno >= FIRST_PSEUDO_REGISTER
-            /* strictly check */
-            || regno == REG_Z || regno == REG_Y
-            /* XXX frame & arg pointer checks */
-            || xx == frame_pointer_rtx
-            || xx == arg_pointer_rtx);
+	    regno >= FIRST_PSEUDO_REGISTER
+	    /* strictly check */
+	    || regno == REG_Z || regno == REG_Y
+	    /* XXX frame & arg pointer checks */
+	    || xx == frame_pointer_rtx
+	    || xx == arg_pointer_rtx);
 
       if (avr_log.constraints)
-        avr_edump ("\n%?=%d reload_completed=%d reload_in_progress=%d\n %r\n",
-                   ok, reload_completed, reload_in_progress, x);
+	avr_edump ("\n%?=%d reload_completed=%d reload_in_progress=%d\n %r\n",
+		   ok, reload_completed, reload_in_progress, x);
     }
 
   return ok;
@@ -12615,8 +12615,8 @@ avr_libcall_value (machine_mode mode,
 
 static rtx
 avr_function_value (const_tree type,
-                    const_tree fn_decl_or_type ATTRIBUTE_UNUSED,
-                    bool outgoing ATTRIBUTE_UNUSED)
+		    const_tree fn_decl_or_type ATTRIBUTE_UNUSED,
+		    bool outgoing ATTRIBUTE_UNUSED)
 {
   unsigned int offs;
 
@@ -12668,24 +12668,24 @@ avr_2word_insn_p (rtx_insn *insn)
     case CODE_FOR_movuqq_insn:
     case CODE_FOR_movqq_insn:
       {
-        rtx set  = single_set (insn);
-        rtx src  = SET_SRC (set);
-        rtx dest = SET_DEST (set);
-
-        /* Factor out LDS and STS from movqi_insn.  */
-
-        if (MEM_P (dest)
-            && (REG_P (src) || src == CONST0_RTX (GET_MODE (dest))))
-          {
-            return CONSTANT_ADDRESS_P (XEXP (dest, 0));
-          }
-        else if (REG_P (dest)
-                 && MEM_P (src))
-          {
-            return CONSTANT_ADDRESS_P (XEXP (src, 0));
-          }
-
-        return false;
+	rtx set  = single_set (insn);
+	rtx src  = SET_SRC (set);
+	rtx dest = SET_DEST (set);
+
+	/* Factor out LDS and STS from movqi_insn.  */
+
+	if (MEM_P (dest)
+	    && (REG_P (src) || src == CONST0_RTX (GET_MODE (dest))))
+	  {
+	    return CONSTANT_ADDRESS_P (XEXP (dest, 0));
+	  }
+	else if (REG_P (dest)
+		 && MEM_P (src))
+	  {
+	    return CONSTANT_ADDRESS_P (XEXP (src, 0));
+	  }
+
+	return false;
       }
 
     case CODE_FOR_call_insn:
@@ -12706,8 +12706,8 @@ jump_over_one_insn_p (rtx_insn *insn, rtx dest)
   int jump_offset = dest_addr - jump_addr - get_attr_length (insn);
 
   return (jump_offset == 1
-          || (jump_offset == 2
-              && avr_2word_insn_p (next_active_insn (insn))));
+	  || (jump_offset == 2
+	      && avr_2word_insn_p (next_active_insn (insn))));
 }
 
 /* Implement TARGET_HARD_REGNO_NREGS. CCmode is four units for historical
@@ -12738,12 +12738,12 @@ avr_hard_regno_mode_ok (unsigned int regno, machine_mode mode)
     return mode == CCmode;
 
   /* NOTE: 8-bit values must not be disallowed for R28 or R29.
-        Disallowing QI et al. in these regs might lead to code like
-            (set (subreg:QI (reg:HI 28) n) ...)
-        which will result in wrong code because reload does not
-        handle SUBREGs of hard regsisters like this.
-        This could be fixed in reload.  However, it appears
-        that fixing reload is not wanted by reload people.  */
+	Disallowing QI et al. in these regs might lead to code like
+	    (set (subreg:QI (reg:HI 28) n) ...)
+	which will result in wrong code because reload does not
+	handle SUBREGs of hard regsisters like this.
+	This could be fixed in reload.  However, it appears
+	that fixing reload is not wanted by reload people.  */
 
   /* Any GENERAL_REGS register can hold 8-bit values.  */
 
@@ -12751,9 +12751,9 @@ avr_hard_regno_mode_ok (unsigned int regno, machine_mode mode)
     return true;
 
   /* FIXME: Ideally, the following test is not needed.
-        However, it turned out that it can reduce the number
-        of spill fails.  AVR and it's poor endowment with
-        address registers is extreme stress test for reload.  */
+	However, it turned out that it can reduce the number
+	of spill fails.  AVR and it's poor endowment with
+	address registers is extreme stress test for reload.  */
 
   if (GET_MODE_SIZE (mode) >= 4
       && regno >= REG_X)
@@ -12772,9 +12772,9 @@ avr_hard_regno_call_part_clobbered (unsigned, unsigned regno,
 				    machine_mode mode)
 {
   /* FIXME: This hook gets called with MODE:REGNO combinations that don't
-        represent valid hard registers like, e.g. HI:29.  Returning TRUE
-        for such registers can lead to performance degradation as mentioned
-        in PR53595.  Thus, report invalid hard registers as FALSE.  */
+	represent valid hard registers like, e.g. HI:29.  Returning TRUE
+	for such registers can lead to performance degradation as mentioned
+	in PR53595.  Thus, report invalid hard registers as FALSE.  */
 
   if (!avr_hard_regno_mode_ok (regno, mode))
     return 0;
@@ -12783,9 +12783,9 @@ avr_hard_regno_call_part_clobbered (unsigned, unsigned regno,
      17/18 or 19/20 (if AVR_TINY), 27/28 and 29/30.  */
 
   return ((regno <= LAST_CALLEE_SAVED_REG
-           && regno + GET_MODE_SIZE (mode) > 1 + LAST_CALLEE_SAVED_REG)
-          || (regno < REG_Y && regno + GET_MODE_SIZE (mode) > REG_Y)
-          || (regno < REG_Z && regno + GET_MODE_SIZE (mode) > REG_Z));
+	   && regno + GET_MODE_SIZE (mode) > 1 + LAST_CALLEE_SAVED_REG)
+	  || (regno < REG_Y && regno + GET_MODE_SIZE (mode) > REG_Y)
+	  || (regno < REG_Z && regno + GET_MODE_SIZE (mode) > REG_Z));
 }
 
 
@@ -12793,8 +12793,8 @@ avr_hard_regno_call_part_clobbered (unsigned, unsigned regno,
 
 enum reg_class
 avr_mode_code_base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
-                              addr_space_t as, RTX_CODE outer_code,
-                              RTX_CODE index_code ATTRIBUTE_UNUSED)
+			      addr_space_t as, RTX_CODE outer_code,
+			      RTX_CODE index_code ATTRIBUTE_UNUSED)
 {
   if (!ADDR_SPACE_GENERIC_P (as))
     {
@@ -12812,39 +12812,39 @@ avr_mode_code_base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
 
 bool
 avr_regno_mode_code_ok_for_base_p (int regno,
-                                   machine_mode mode ATTRIBUTE_UNUSED,
-                                   addr_space_t as ATTRIBUTE_UNUSED,
-                                   RTX_CODE outer_code,
-                                   RTX_CODE index_code ATTRIBUTE_UNUSED)
+				   machine_mode mode ATTRIBUTE_UNUSED,
+				   addr_space_t as ATTRIBUTE_UNUSED,
+				   RTX_CODE outer_code,
+				   RTX_CODE index_code ATTRIBUTE_UNUSED)
 {
   bool ok = false;
 
   if (!ADDR_SPACE_GENERIC_P (as))
     {
       if (regno < FIRST_PSEUDO_REGISTER
-          && regno == REG_Z)
-        {
-          return true;
-        }
+	  && regno == REG_Z)
+	{
+	  return true;
+	}
 
       if (reg_renumber)
-        {
-          regno = reg_renumber[regno];
+	{
+	  regno = reg_renumber[regno];
 
-          if (regno == REG_Z)
-            {
-              return true;
-            }
-        }
+	  if (regno == REG_Z)
+	    {
+	      return true;
+	    }
+	}
 
       return false;
     }
 
   if (regno < FIRST_PSEUDO_REGISTER
       && (regno == REG_X
-          || regno == REG_Y
-          || regno == REG_Z
-          || regno == ARG_POINTER_REGNUM))
+	  || regno == REG_Y
+	  || regno == REG_Z
+	  || regno == ARG_POINTER_REGNUM))
     {
       ok = true;
     }
@@ -12853,12 +12853,12 @@ avr_regno_mode_code_ok_for_base_p (int regno,
       regno = reg_renumber[regno];
 
       if (regno == REG_X
-          || regno == REG_Y
-          || regno == REG_Z
-          || regno == ARG_POINTER_REGNUM)
-        {
-          ok = true;
-        }
+	  || regno == REG_Y
+	  || regno == REG_Z
+	  || regno == ARG_POINTER_REGNUM)
+	{
+	  ok = true;
+	}
     }
 
   if (avr_strict_X
@@ -12877,7 +12877,7 @@ avr_regno_mode_code_ok_for_base_p (int regno,
    CLOBBER_REG is a QI clobber register or NULL_RTX.
    LEN == NULL: output instructions.
    LEN != NULL: set *LEN to the length of the instruction sequence
-                (in words) printed with LEN = NULL.
+		(in words) printed with LEN = NULL.
    If CLEAR_P is true, OP[0] had been cleard to Zero already.
    If CLEAR_P is false, nothing is known about OP[0].
 
@@ -12901,7 +12901,7 @@ output_reload_in_const (rtx *op, rtx clobber_reg, int *len, bool clear_p)
   int n_bytes = GET_MODE_SIZE (mode);
 
   gcc_assert (REG_P (dest)
-              && CONSTANT_P (src));
+	      && CONSTANT_P (src));
 
   if (len)
     *len = 0;
@@ -12922,11 +12922,11 @@ output_reload_in_const (rtx *op, rtx clobber_reg, int *len, bool clear_p)
   if (NULL_RTX == clobber_reg
       && !test_hard_reg_class (LD_REGS, dest)
       && (! (CONST_INT_P (src) || CONST_FIXED_P (src) || CONST_DOUBLE_P (src))
-          || !avr_popcount_each_byte (src, n_bytes,
-                                      (1 << 0) | (1 << 1) | (1 << 8))))
+	  || !avr_popcount_each_byte (src, n_bytes,
+				      (1 << 0) | (1 << 1) | (1 << 8))))
     {
       /* We have no clobber register but need one.  Cook one up.
-         That's cheaper than loading from constant pool.  */
+	 That's cheaper than loading from constant pool.  */
 
       cooked_clobber_p = true;
       clobber_reg = all_regs_rtx[REG_Z + 1];
@@ -12947,25 +12947,25 @@ output_reload_in_const (rtx *op, rtx clobber_reg, int *len, bool clear_p)
       ldreg_p = test_hard_reg_class (LD_REGS, xdest[n]);
 
       if (!CONST_INT_P (src)
-          && !CONST_FIXED_P (src)
-          && !CONST_DOUBLE_P (src))
-        {
-          static const char* const asm_code[][2] =
-            {
-              { "ldi %2,lo8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,lo8(%1)"  },
-              { "ldi %2,hi8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,hi8(%1)"  },
-              { "ldi %2,hlo8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hlo8(%1)" },
-              { "ldi %2,hhi8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hhi8(%1)" }
-            };
-
-          xop[0] = xdest[n];
-          xop[1] = src;
-          xop[2] = clobber_reg;
-
-          avr_asm_len (asm_code[n][ldreg_p], xop, len, ldreg_p ? 1 : 2);
-
-          continue;
-        }
+	  && !CONST_FIXED_P (src)
+	  && !CONST_DOUBLE_P (src))
+	{
+	  static const char *const asm_code[][2] =
+	    {
+	      { "ldi %2,lo8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,lo8(%1)"  },
+	      { "ldi %2,hi8(%1)"  CR_TAB "mov %0,%2",    "ldi %0,hi8(%1)"  },
+	      { "ldi %2,hlo8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hlo8(%1)" },
+	      { "ldi %2,hhi8(%1)" CR_TAB "mov %0,%2",    "ldi %0,hhi8(%1)" }
+	    };
+
+	  xop[0] = xdest[n];
+	  xop[1] = src;
+	  xop[2] = clobber_reg;
+
+	  avr_asm_len (asm_code[n][ldreg_p], xop, len, ldreg_p ? 1 : 2);
+
+	  continue;
+	}
 
       /* Crop the n-th source byte.  */
 
@@ -12975,107 +12975,107 @@ output_reload_in_const (rtx *op, rtx clobber_reg, int *len, bool clear_p)
       /* Look if we can reuse the low word by means of MOVW.  */
 
       if (n == 2
-          && n_bytes >= 4
-          && AVR_HAVE_MOVW)
-        {
-          rtx lo16 = simplify_gen_subreg (HImode, src, mode, 0);
-          rtx hi16 = simplify_gen_subreg (HImode, src, mode, 2);
-
-          if (INTVAL (lo16) == INTVAL (hi16))
-            {
+	  && n_bytes >= 4
+	  && AVR_HAVE_MOVW)
+	{
+	  rtx lo16 = simplify_gen_subreg (HImode, src, mode, 0);
+	  rtx hi16 = simplify_gen_subreg (HImode, src, mode, 2);
+
+	  if (INTVAL (lo16) == INTVAL (hi16))
+	    {
 	      if (INTVAL (lo16) != 0 || !clear_p)
 		avr_asm_len ("movw %C0,%A0", &op[0], len, 1);
 
-              break;
-            }
-        }
+	      break;
+	    }
+	}
 
       /* Don't use CLR so that cc0 is set as expected.  */
 
       if (ival[n] == 0)
-        {
-          if (!clear_p)
-            avr_asm_len (ldreg_p ? "ldi %0,0"
-                         : AVR_ZERO_REGNO == REGNO (xdest[n]) ? "clr %0"
-                         : "mov %0,__zero_reg__",
-                         &xdest[n], len, 1);
-          continue;
-        }
+	{
+	  if (!clear_p)
+	    avr_asm_len (ldreg_p ? "ldi %0,0"
+			 : AVR_ZERO_REGNO == REGNO (xdest[n]) ? "clr %0"
+			 : "mov %0,__zero_reg__",
+			 &xdest[n], len, 1);
+	  continue;
+	}
 
       if (clobber_val == ival[n]
-          && REGNO (clobber_reg) == REGNO (xdest[n]))
-        {
-          continue;
-        }
+	  && REGNO (clobber_reg) == REGNO (xdest[n]))
+	{
+	  continue;
+	}
 
       /* LD_REGS can use LDI to move a constant value */
 
       if (ldreg_p)
-        {
-          xop[0] = xdest[n];
-          xop[1] = xval;
-          avr_asm_len ("ldi %0,lo8(%1)", xop, len, 1);
-          continue;
-        }
+	{
+	  xop[0] = xdest[n];
+	  xop[1] = xval;
+	  avr_asm_len ("ldi %0,lo8(%1)", xop, len, 1);
+	  continue;
+	}
 
       /* Try to reuse value already loaded in some lower byte. */
 
       for (int j = 0; j < n; j++)
-        if (ival[j] == ival[n])
-          {
-            xop[0] = xdest[n];
-            xop[1] = xdest[j];
+	if (ival[j] == ival[n])
+	  {
+	    xop[0] = xdest[n];
+	    xop[1] = xdest[j];
 
-            avr_asm_len ("mov %0,%1", xop, len, 1);
-            done_byte = true;
-            break;
-          }
+	    avr_asm_len ("mov %0,%1", xop, len, 1);
+	    done_byte = true;
+	    break;
+	  }
 
       if (done_byte)
-        continue;
+	continue;
 
       /* Need no clobber reg for -1: Use CLR/DEC */
 
       if (ival[n] == -1)
-        {
-          if (!clear_p)
-            avr_asm_len ("clr %0", &xdest[n], len, 1);
+	{
+	  if (!clear_p)
+	    avr_asm_len ("clr %0", &xdest[n], len, 1);
 
-          avr_asm_len ("dec %0", &xdest[n], len, 1);
-          continue;
-        }
+	  avr_asm_len ("dec %0", &xdest[n], len, 1);
+	  continue;
+	}
       else if (ival[n] == 1)
-        {
-          if (!clear_p)
-            avr_asm_len ("clr %0", &xdest[n], len, 1);
+	{
+	  if (!clear_p)
+	    avr_asm_len ("clr %0", &xdest[n], len, 1);
 
-          avr_asm_len ("inc %0", &xdest[n], len, 1);
-          continue;
-        }
+	  avr_asm_len ("inc %0", &xdest[n], len, 1);
+	  continue;
+	}
 
       /* Use T flag or INC to manage powers of 2 if we have
-         no clobber reg.  */
+	 no clobber reg.  */
 
       if (NULL_RTX == clobber_reg
-          && single_one_operand (xval, QImode))
-        {
-          xop[0] = xdest[n];
-          xop[1] = GEN_INT (exact_log2 (ival[n] & GET_MODE_MASK (QImode)));
+	  && single_one_operand (xval, QImode))
+	{
+	  xop[0] = xdest[n];
+	  xop[1] = GEN_INT (exact_log2 (ival[n] & GET_MODE_MASK (QImode)));
 
-          gcc_assert (constm1_rtx != xop[1]);
+	  gcc_assert (constm1_rtx != xop[1]);
 
-          if (!set_p)
-            {
-              set_p = true;
-              avr_asm_len ("set", xop, len, 1);
-            }
+	  if (!set_p)
+	    {
+	      set_p = true;
+	      avr_asm_len ("set", xop, len, 1);
+	    }
 
-          if (!clear_p)
-            avr_asm_len ("clr %0", xop, len, 1);
+	  if (!clear_p)
+	    avr_asm_len ("clr %0", xop, len, 1);
 
-          avr_asm_len ("bld %0,%1", xop, len, 1);
-          continue;
-        }
+	  avr_asm_len ("bld %0,%1", xop, len, 1);
+	  continue;
+	}
 
       /* We actually need the LD_REGS clobber reg.  */
 
@@ -13087,7 +13087,7 @@ output_reload_in_const (rtx *op, rtx clobber_reg, int *len, bool clear_p)
       clobber_val = ival[n];
 
       avr_asm_len ("ldi %2,lo8(%1)" CR_TAB
-                   "mov %0,%2", xop, len, 2);
+		   "mov %0,%2", xop, len, 2);
     }
 
   /* If we cooked up a clobber reg above, restore it.  */
@@ -13106,11 +13106,11 @@ output_reload_in_const (rtx *op, rtx clobber_reg, int *len, bool clear_p)
 
    PLEN == NULL: Output instructions.
    PLEN != NULL: Output nothing.  Set *PLEN to number of words occupied
-                 by the insns printed.
+		 by the insns printed.
 
    Return "".  */
 
-const char*
+const char *
 output_reload_inhi (rtx *op, rtx clobber_reg, int *plen)
 {
   output_reload_in_const (op, clobber_reg, plen, false);
@@ -13126,7 +13126,7 @@ output_reload_inhi (rtx *op, rtx clobber_reg, int *plen)
    LEN == NULL: Output instructions.
 
    LEN != NULL: Output nothing.  Set *LEN to number of words occupied
-                by the insns printed.
+		by the insns printed.
 
    Return "".  */
 
@@ -13136,41 +13136,41 @@ output_reload_insisf (rtx *op, rtx clobber_reg, int *len)
   if (AVR_HAVE_MOVW
       && !test_hard_reg_class (LD_REGS, op[0])
       && (CONST_INT_P (op[1])
-          || CONST_FIXED_P (op[1])
-          || CONST_DOUBLE_P (op[1])))
+	  || CONST_FIXED_P (op[1])
+	  || CONST_DOUBLE_P (op[1])))
     {
       int len_clr, len_noclr;
 
       /* In some cases it is better to clear the destination beforehand, e.g.
 
-             CLR R2   CLR R3   MOVW R4,R2   INC R2
+	     CLR R2   CLR R3   MOVW R4,R2   INC R2
 
-         is shorther than
+	 is shorther than
 
-             CLR R2   INC R2   CLR  R3      CLR R4   CLR R5
+	     CLR R2   INC R2   CLR  R3      CLR R4   CLR R5
 
-         We find it too tedious to work that out in the print function.
-         Instead, we call the print function twice to get the lengths of
-         both methods and use the shortest one.  */
+	 We find it too tedious to work that out in the print function.
+	 Instead, we call the print function twice to get the lengths of
+	 both methods and use the shortest one.  */
 
       output_reload_in_const (op, clobber_reg, &len_clr, true);
       output_reload_in_const (op, clobber_reg, &len_noclr, false);
 
       if (len_noclr - len_clr == 4)
-        {
-          /* Default needs 4 CLR instructions: clear register beforehand.  */
+	{
+	  /* Default needs 4 CLR instructions: clear register beforehand.  */
 
-          avr_asm_len ("mov %A0,__zero_reg__" CR_TAB
-                       "mov %B0,__zero_reg__" CR_TAB
-                       "movw %C0,%A0", &op[0], len, 3);
+	  avr_asm_len ("mov %A0,__zero_reg__" CR_TAB
+		       "mov %B0,__zero_reg__" CR_TAB
+		       "movw %C0,%A0", &op[0], len, 3);
 
-          output_reload_in_const (op, clobber_reg, len, true);
+	  output_reload_in_const (op, clobber_reg, len, true);
 
-          if (len)
-            *len += 3;
+	  if (len)
+	    *len += 3;
 
-          return "";
-        }
+	  return "";
+	}
     }
 
   /* Default: destination not pre-cleared.  */
@@ -13179,7 +13179,7 @@ output_reload_insisf (rtx *op, rtx clobber_reg, int *len)
   return "";
 }
 
-const char*
+const char *
 avr_out_reload_inpsi (rtx *op, rtx clobber_reg, int *len)
 {
   output_reload_in_const (op, clobber_reg, len, false);
@@ -13237,7 +13237,7 @@ avr_output_addr_vec (rtx_insn *labl, rtx table)
       sec_name = ACONCAT ((sec_name, ".", fname, NULL));
 
       fprintf (stream, "\t.section\t%s,\"%s\",@progbits\n", sec_name,
-               AVR_HAVE_JMP_CALL ? "a" : "ax");
+	       AVR_HAVE_JMP_CALL ? "a" : "ax");
     }
 
   // Output the label that preceeds the table.
@@ -13254,9 +13254,9 @@ avr_output_addr_vec (rtx_insn *labl, rtx table)
       int value = CODE_LABEL_NUMBER (XEXP (XVECEXP (table, 0, idx), 0));
 
       if (AVR_HAVE_JMP_CALL)
-        fprintf (stream, "\t.word gs(.L%d)\n", value);
+	fprintf (stream, "\t.word gs(.L%d)\n", value);
       else
-        fprintf (stream, "\trjmp .L%d\n", value);
+	fprintf (stream, "\trjmp .L%d\n", value);
     }
 
   // Switch back to original section.  As we clobbered the section above,
@@ -13275,42 +13275,42 @@ avr_conditional_register_usage (void)
   if (AVR_TINY)
     {
       const int tiny_reg_alloc_order[] = {
-        24, 25,
-        22, 23,
-        30, 31,
-        26, 27,
-        28, 29,
-        21, 20, 19, 18,
-        16, 17,
-        32, 33, 34, 35,
-        15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+	24, 25,
+	22, 23,
+	30, 31,
+	26, 27,
+	28, 29,
+	21, 20, 19, 18,
+	16, 17,
+	32, 33, 34, 35,
+	15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
       };
 
       /* Set R0-R17 as fixed registers. Reset R0-R17 in call used register list
-         - R0-R15 are not available in Tiny Core devices
-         - R16 and R17 are fixed registers.  */
+	 - R0-R15 are not available in Tiny Core devices
+	 - R16 and R17 are fixed registers.  */
 
       for (size_t i = 0; i <= 17;  i++)
-        {
-          fixed_regs[i] = 1;
-          call_used_regs[i] = 1;
-        }
+	{
+	  fixed_regs[i] = 1;
+	  call_used_regs[i] = 1;
+	}
 
       /* Set R18 to R21 as callee saved registers
-         - R18, R19, R20 and R21 are the callee saved registers in
-           Tiny Core devices  */
+	 - R18, R19, R20 and R21 are the callee saved registers in
+	   Tiny Core devices  */
 
       for (size_t i = 18; i <= LAST_CALLEE_SAVED_REG; i++)
-        {
-          call_used_regs[i] = 0;
-        }
+	{
+	  call_used_regs[i] = 0;
+	}
 
       /* Update register allocation order for Tiny Core devices */
 
       for (size_t i = 0; i < ARRAY_SIZE (tiny_reg_alloc_order); i++)
-        {
-          reg_alloc_order[i] = tiny_reg_alloc_order[i];
-        }
+	{
+	  reg_alloc_order[i] = tiny_reg_alloc_order[i];
+	}
 
       CLEAR_HARD_REG_SET (reg_class_contents[(int) ADDW_REGS]);
       CLEAR_HARD_REG_SET (reg_class_contents[(int) NO_LD_REGS]);
@@ -13366,7 +13366,7 @@ avr_hard_regno_rename_ok (unsigned int old_reg,
 
   if ((!reload_completed || frame_pointer_needed)
       && (old_reg == REG_Y || old_reg == REG_Y + 1
-          || new_reg == REG_Y || new_reg == REG_Y + 1))
+	  || new_reg == REG_Y || new_reg == REG_Y + 1))
     {
       return 0;
     }
@@ -13382,7 +13382,7 @@ avr_hard_regno_rename_ok (unsigned int old_reg,
    Operand 2: bit number.
    Operand 3: label to jump to if the test is true.  */
 
-const char*
+const char *
 avr_out_sbxx_branch (rtx_insn *insn, rtx operands[])
 {
   enum rtx_code comp = GET_CODE (operands[0]);
@@ -13407,37 +13407,37 @@ avr_out_sbxx_branch (rtx_insn *insn, rtx operands[])
     case SYMBOL_REF:
 
       if (low_io_address_operand (operands[1], QImode))
-        {
-          if (comp == EQ)
-            output_asm_insn ("sbis %i1,%2", operands);
-          else
-            output_asm_insn ("sbic %i1,%2", operands);
-        }
+	{
+	  if (comp == EQ)
+	    output_asm_insn ("sbis %i1,%2", operands);
+	  else
+	    output_asm_insn ("sbic %i1,%2", operands);
+	}
       else
-        {
+	{
 	  gcc_assert (io_address_operand (operands[1], QImode));
-          output_asm_insn ("in __tmp_reg__,%i1", operands);
-          if (comp == EQ)
-            output_asm_insn ("sbrs __tmp_reg__,%2", operands);
-          else
-            output_asm_insn ("sbrc __tmp_reg__,%2", operands);
-        }
+	  output_asm_insn ("in __tmp_reg__,%i1", operands);
+	  if (comp == EQ)
+	    output_asm_insn ("sbrs __tmp_reg__,%2", operands);
+	  else
+	    output_asm_insn ("sbrc __tmp_reg__,%2", operands);
+	}
 
       break; /* CONST_INT */
 
     case REG:
 
       if (comp == EQ)
-        output_asm_insn ("sbrs %T1%T2", operands);
+	output_asm_insn ("sbrs %T1%T2", operands);
       else
-        output_asm_insn ("sbrc %T1%T2", operands);
+	output_asm_insn ("sbrc %T1%T2", operands);
 
       break; /* REG */
-    }        /* switch */
+    } /* switch */
 
   if (long_jump)
     return ("rjmp .+4" CR_TAB
-            "jmp %x3");
+	    "jmp %x3");
 
   if (!reverse)
     return "rjmp %x3";
@@ -13570,36 +13570,36 @@ avr_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
     case ADDR_SPACE_FLASH5:
 
       switch (GET_CODE (x))
-        {
-        case REG:
-          ok = avr_reg_ok_for_pgm_addr (x, strict);
-          break;
+	{
+	case REG:
+	  ok = avr_reg_ok_for_pgm_addr (x, strict);
+	  break;
 
-        case POST_INC:
-          ok = avr_reg_ok_for_pgm_addr (XEXP (x, 0), strict);
-          break;
+	case POST_INC:
+	  ok = avr_reg_ok_for_pgm_addr (XEXP (x, 0), strict);
+	  break;
 
-        default:
-          break;
-        }
+	default:
+	  break;
+	}
 
       break; /* FLASH */
 
     case ADDR_SPACE_MEMX:
       if (REG_P (x))
-        ok = (!strict
-              && can_create_pseudo_p());
+	ok = (!strict
+	      && can_create_pseudo_p());
 
       if (LO_SUM == GET_CODE (x))
-        {
-          rtx hi = XEXP (x, 0);
-          rtx lo = XEXP (x, 1);
+	{
+	  rtx hi = XEXP (x, 0);
+	  rtx lo = XEXP (x, 1);
 
-          ok = (REG_P (hi)
-                && (!strict || REGNO (hi) < FIRST_PSEUDO_REGISTER)
-                && REG_P (lo)
-                && REGNO (lo) == REG_Z);
-        }
+	  ok = (REG_P (hi)
+		&& (!strict || REGNO (hi) < FIRST_PSEUDO_REGISTER)
+		&& REG_P (lo)
+		&& REGNO (lo) == REG_Z);
+	}
 
       break; /* MEMX */
     }
@@ -13607,19 +13607,19 @@ avr_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
   if (avr_log.legitimate_address_p)
     {
       avr_edump ("\n%?: ret=%b, mode=%m strict=%d "
-                 "reload_completed=%d reload_in_progress=%d %s:",
-                 ok, mode, strict, reload_completed, reload_in_progress,
-                 reg_renumber ? "(reg_renumber)" : "");
+		 "reload_completed=%d reload_in_progress=%d %s:",
+		 ok, mode, strict, reload_completed, reload_in_progress,
+		 reg_renumber ? "(reg_renumber)" : "");
 
       if (GET_CODE (x) == PLUS
-          && REG_P (XEXP (x, 0))
-          && CONST_INT_P (XEXP (x, 1))
-          && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
-          && reg_renumber)
-        {
-          avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
-                     true_regnum (XEXP (x, 0)));
-        }
+	  && REG_P (XEXP (x, 0))
+	  && CONST_INT_P (XEXP (x, 1))
+	  && IN_RANGE (INTVAL (XEXP (x, 1)), 0, MAX_LD_OFFSET (mode))
+	  && reg_renumber)
+	{
+	  avr_edump ("(r%d ---> r%d)", REGNO (XEXP (x, 0)),
+		     true_regnum (XEXP (x, 0)));
+	}
 
       avr_edump ("\n%r\n", x);
     }
@@ -13632,7 +13632,7 @@ avr_addr_space_legitimate_address_p (machine_mode mode, rtx x, bool strict,
 
 static rtx
 avr_addr_space_legitimize_address (rtx x, rtx old_x,
-                                   machine_mode mode, addr_space_t as)
+				   machine_mode mode, addr_space_t as)
 {
   if (ADDR_SPACE_GENERIC_P (as))
     return avr_legitimize_address (x, old_x, mode);
@@ -13656,7 +13656,7 @@ avr_addr_space_convert (rtx src, tree type_from, tree type_to)
 
   if (avr_log.progmem)
     avr_edump ("\n%!: op = %r\nfrom = %t\nto = %t\n",
-               src, type_from, type_to);
+	       src, type_from, type_to);
 
   /* Up-casting from 16-bit to 24-bit pointer.  */
 
@@ -13668,31 +13668,31 @@ avr_addr_space_convert (rtx src, tree type_from, tree type_to)
       rtx reg = gen_reg_rtx (PSImode);
 
       while (CONST == GET_CODE (sym) || PLUS == GET_CODE (sym))
-        sym = XEXP (sym, 0);
+	sym = XEXP (sym, 0);
 
       /* Look at symbol flags:  avr_encode_section_info set the flags
-         also if attribute progmem was seen so that we get the right
-         promotion for, e.g. PSTR-like strings that reside in generic space
-         but are located in flash.  In that case we patch the incoming
-         address space.  */
+	 also if attribute progmem was seen so that we get the right
+	 promotion for, e.g. PSTR-like strings that reside in generic space
+	 but are located in flash.  In that case we patch the incoming
+	 address space.  */
 
       if (SYMBOL_REF_P (sym)
-          && ADDR_SPACE_FLASH == AVR_SYMBOL_GET_ADDR_SPACE (sym))
-        {
-          as_from = ADDR_SPACE_FLASH;
-        }
+	  && ADDR_SPACE_FLASH == AVR_SYMBOL_GET_ADDR_SPACE (sym))
+	{
+	  as_from = ADDR_SPACE_FLASH;
+	}
 
       /* Linearize memory: RAM has bit 23 set.  */
 
       msb = ADDR_SPACE_GENERIC_P (as_from)
-        ? 0x80
-        : avr_addrspace[as_from].segment;
+	? 0x80
+	: avr_addrspace[as_from].segment;
 
       src = force_reg (Pmode, src);
 
       emit_insn (msb == 0
-                 ? gen_zero_extendhipsi2 (reg, src)
-                 : gen_n_extendhipsi2 (reg, gen_int_mode (msb, QImode), src));
+		 ? gen_zero_extendhipsi2 (reg, src)
+		 : gen_n_extendhipsi2 (reg, gen_int_mode (msb, QImode), src));
 
       return reg;
     }
@@ -13707,7 +13707,7 @@ avr_addr_space_convert (rtx src, tree type_from, tree type_to)
       src = force_reg (PSImode, src);
 
       emit_move_insn (new_src,
-                      simplify_gen_subreg (Pmode, src, PSImode, 0));
+		      simplify_gen_subreg (Pmode, src, PSImode, 0));
       return new_src;
     }
 
@@ -13719,7 +13719,7 @@ avr_addr_space_convert (rtx src, tree type_from, tree type_to)
 
 static bool
 avr_addr_space_subset_p (addr_space_t subset ATTRIBUTE_UNUSED,
-                         addr_space_t superset ATTRIBUTE_UNUSED)
+			 addr_space_t superset ATTRIBUTE_UNUSED)
 {
   /* Allow any kind of pointer mess.  */
 
@@ -13737,23 +13737,23 @@ avr_convert_to_type (tree type, tree expr)
      provided -Waddr-space-convert is on.
 
      FIXME: Filter out cases where the target object is known to
-            be located in the right memory, like in
+	    be located in the right memory, like in
 
-                (const __flash*) PSTR ("text")
+		(const __flash*) PSTR ("text")
 
-            Also try to distinguish between explicit casts requested by
-            the user and implicit casts like
+	    Also try to distinguish between explicit casts requested by
+	    the user and implicit casts like
 
-                void f (const __flash char*);
+		void f (const __flash char*);
 
-                void g (const char *p)
-                {
-                    f ((const __flash*) p);
-                }
+		void g (const char *p)
+		{
+		    f ((const __flash*) p);
+		}
 
-            under the assumption that an explicit casts means that the user
-            knows what he is doing, e.g. interface with PSTR or old style
-            code with progmem and pgm_read_xxx.
+	    under the assumption that an explicit casts means that the user
+	    knows what he is doing, e.g. interface with PSTR or old style
+	    code with progmem and pgm_read_xxx.
   */
 
   if (avr_warn_addr_space_convert
@@ -13765,22 +13765,22 @@ avr_convert_to_type (tree type, tree expr)
       addr_space_t as_new = TYPE_ADDR_SPACE (TREE_TYPE (type));
 
       if (avr_log.progmem)
-        avr_edump ("%?: type = %t\nexpr = %t\n\n", type, expr);
+	avr_edump ("%?: type = %t\nexpr = %t\n\n", type, expr);
 
       if (as_new != ADDR_SPACE_MEMX
-          && as_new != as_old)
-        {
-          location_t loc = EXPR_LOCATION (expr);
-          const char *name_old = avr_addrspace[as_old].name;
-          const char *name_new = avr_addrspace[as_new].name;
+	  && as_new != as_old)
+	{
+	  location_t loc = EXPR_LOCATION (expr);
+	  const char *name_old = avr_addrspace[as_old].name;
+	  const char *name_new = avr_addrspace[as_new].name;
 
-          warning (OPT_Waddr_space_convert,
-                   "conversion from address space %qs to address space %qs",
-                   ADDR_SPACE_GENERIC_P (as_old) ? "generic" : name_old,
-                   ADDR_SPACE_GENERIC_P (as_new) ? "generic" : name_new);
+	  warning (OPT_Waddr_space_convert,
+		   "conversion from address space %qs to address space %qs",
+		   ADDR_SPACE_GENERIC_P (as_old) ? "generic" : name_old,
+		   ADDR_SPACE_GENERIC_P (as_new) ? "generic" : name_new);
 
-          return fold_build1_loc (loc, ADDR_SPACE_CONVERT_EXPR, type, expr);
-        }
+	  return fold_build1_loc (loc, ADDR_SPACE_CONVERT_EXPR, type, expr);
+	}
     }
 
   return NULL_TREE;
@@ -13803,12 +13803,12 @@ avr_legitimate_combined_insn (rtx_insn *insn)
       const_rtx op = *iter;
 
       if (SUBREG_P (op)
-          && MEM_P (SUBREG_REG (op))
-          && (GET_MODE_SIZE (GET_MODE (op))
-              > GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))))
-        {
-          return false;
-        }
+	  && MEM_P (SUBREG_REG (op))
+	  && (GET_MODE_SIZE (GET_MODE (op))
+	      > GET_MODE_SIZE (GET_MODE (SUBREG_REG (op)))))
+	{
+	  return false;
+	}
     }
 
   return true;
@@ -13826,7 +13826,7 @@ avr_legitimate_combined_insn (rtx_insn *insn)
    replace OP[n] with a newly created pseudo register
 
    HREG == 0:  Also emit a move insn that copies the contents of that
-               hard register into the new pseudo.
+	       hard register into the new pseudo.
 
    HREG != 0:  Also set HREG[n] to the hard register.  */
 
@@ -13838,23 +13838,23 @@ avr_fix_operands (rtx *op, rtx *hreg, unsigned opmask, unsigned rmask)
       rtx reg = *op;
 
       if (hreg)
-        *hreg = NULL_RTX;
+	*hreg = NULL_RTX;
 
       if ((opmask & 1)
-          && REG_P (reg)
-          && REGNO (reg) < FIRST_PSEUDO_REGISTER
-          // This hard-reg overlaps other prohibited hard regs?
-          && (rmask & regmask (GET_MODE (reg), REGNO (reg))))
-        {
-          *op = gen_reg_rtx (GET_MODE (reg));
-          if (hreg == NULL)
-            emit_move_insn (*op, reg);
-          else
-            *hreg = reg;
-        }
+	  && REG_P (reg)
+	  && REGNO (reg) < FIRST_PSEUDO_REGISTER
+	  // This hard-reg overlaps other prohibited hard regs?
+	  && (rmask & regmask (GET_MODE (reg), REGNO (reg))))
+	{
+	  *op = gen_reg_rtx (GET_MODE (reg));
+	  if (hreg == NULL)
+	    emit_move_insn (*op, reg);
+	  else
+	    *hreg = reg;
+	}
 
       if (hreg)
-        hreg++;
+	hreg++;
     }
 }
 
@@ -13875,7 +13875,7 @@ avr_move_fixed_operands (rtx *op, rtx *hreg, unsigned mask)
 {
   for (; mask; mask >>= 1, op++, hreg++)
     if ((mask & 1)
-        && *hreg)
+	&& *hreg)
       emit_move_insn (*hreg, *op);
 
   return true;
@@ -13897,7 +13897,7 @@ avr_move_fixed_operands (rtx *op, rtx *hreg, unsigned mask)
 
 bool
 avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op,
-                       unsigned opmask, unsigned rmask)
+		       unsigned opmask, unsigned rmask)
 {
   const int n = 3;
   rtx hreg[n];
@@ -13970,15 +13970,15 @@ avr_emit_cpymemhi (rtx *xop)
       int segment = avr_addrspace[as].segment;
 
       if (segment
-          && avr_n_flash > 1)
-        {
-          a_hi8 = GEN_INT (segment);
-          emit_move_insn (rampz_rtx, a_hi8 = copy_to_mode_reg (QImode, a_hi8));
-        }
+	  && avr_n_flash > 1)
+	{
+	  a_hi8 = GEN_INT (segment);
+	  emit_move_insn (rampz_rtx, a_hi8 = copy_to_mode_reg (QImode, a_hi8));
+	}
       else if (!ADDR_SPACE_GENERIC_P (as))
-        {
-          as = ADDR_SPACE_FLASH;
-        }
+	{
+	  as = ADDR_SPACE_FLASH;
+	}
 
       addr1 = a_src;
 
@@ -13989,35 +13989,35 @@ avr_emit_cpymemhi (rtx *xop)
   xas = GEN_INT (as);
 
   /* FIXME: Register allocator might come up with spill fails if it is left
-        on its own.  Thus, we allocate the pointer registers by hand:
-        Z = source address
-        X = destination address  */
+	on its own.  Thus, we allocate the pointer registers by hand:
+	Z = source address
+	X = destination address  */
 
   emit_move_insn (lpm_addr_reg_rtx, addr1);
   emit_move_insn (gen_rtx_REG (HImode, REG_X), a_dest);
 
   /* FIXME: Register allocator does a bad job and might spill address
-        register(s) inside the loop leading to additional move instruction
-        to/from stack which could clobber tmp_reg.  Thus, do *not* emit
-        load and store as separate insns.  Instead, we perform the copy
-        by means of one monolithic insn.  */
+	register(s) inside the loop leading to additional move instruction
+	to/from stack which could clobber tmp_reg.  Thus, do *not* emit
+	load and store as separate insns.  Instead, we perform the copy
+	by means of one monolithic insn.  */
 
   gcc_assert (TMP_REGNO == LPM_REGNO);
 
   if (as != ADDR_SPACE_MEMX)
     {
       /* Load instruction ([E]LPM or LD) is known at compile time:
-         Do the copy-loop inline.  */
+	 Do the copy-loop inline.  */
 
       rtx (*fun) (rtx, rtx, rtx)
-        = QImode == loop_mode ? gen_cpymem_qi : gen_cpymem_hi;
+	= QImode == loop_mode ? gen_cpymem_qi : gen_cpymem_hi;
 
       insn = fun (xas, loop_reg, loop_reg);
     }
   else
     {
       rtx (*fun) (rtx, rtx)
-        = QImode == loop_mode ? gen_cpymemx_qi : gen_cpymemx_hi;
+	= QImode == loop_mode ? gen_cpymemx_qi : gen_cpymemx_hi;
 
       emit_move_insn (gen_rtx_REG (QImode, 23), a_hi8);
 
@@ -14038,7 +14038,7 @@ avr_emit_cpymemhi (rtx *xop)
        X      : Destination address
 */
 
-const char*
+const char *
 avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
 {
   addr_space_t as = (addr_space_t) INTVAL (op[0]);
@@ -14072,10 +14072,10 @@ avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
     case ADDR_SPACE_FLASH:
 
       if (AVR_HAVE_LPMX)
-        avr_asm_len ("lpm %2,Z+", xop, plen, 1);
+	avr_asm_len ("lpm %2,Z+", xop, plen, 1);
       else
-        avr_asm_len ("lpm" CR_TAB
-                     "adiw r30,1", xop, plen, 2);
+	avr_asm_len ("lpm" CR_TAB
+		     "adiw r30,1", xop, plen, 2);
       break;
 
     case ADDR_SPACE_FLASH1:
@@ -14085,10 +14085,10 @@ avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
     case ADDR_SPACE_FLASH5:
 
       if (AVR_HAVE_ELPMX)
-        avr_asm_len ("elpm %2,Z+", xop, plen, 1);
+	avr_asm_len ("elpm %2,Z+", xop, plen, 1);
       else
-        avr_asm_len ("elpm" CR_TAB
-                     "adiw r30,1", xop, plen, 2);
+	avr_asm_len ("elpm" CR_TAB
+		     "adiw r30,1", xop, plen, 2);
       break;
     }
 
@@ -14109,7 +14109,7 @@ avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen)
   else
     {
       avr_asm_len ("subi %A1,1" CR_TAB
-                   "sbci %B1,0", xop, plen, 2);
+		   "sbci %B1,0", xop, plen, 2);
     }
 
   /* Loop until zero */
@@ -14141,7 +14141,7 @@ avr_expand_delay_cycles (rtx operands0)
       loop_count = ((cycles - 9) / 6) + 1;
       cycles_used = ((loop_count - 1) * 6) + 9;
       emit_insn (gen_delay_cycles_4 (gen_int_mode (loop_count, SImode),
-                                     avr_mem_clobber()));
+				     avr_mem_clobber()));
       cycles -= cycles_used;
     }
 
@@ -14149,10 +14149,10 @@ avr_expand_delay_cycles (rtx operands0)
     {
       loop_count = ((cycles - 7) / 5) + 1;
       if (loop_count > 0xFFFFFF)
-        loop_count = 0xFFFFFF;
+	loop_count = 0xFFFFFF;
       cycles_used = ((loop_count - 1) * 5) + 7;
       emit_insn (gen_delay_cycles_3 (gen_int_mode (loop_count, SImode),
-                                     avr_mem_clobber()));
+				     avr_mem_clobber()));
       cycles -= cycles_used;
     }
 
@@ -14160,10 +14160,10 @@ avr_expand_delay_cycles (rtx operands0)
     {
       loop_count = ((cycles - 5) / 4) + 1;
       if (loop_count > 0xFFFF)
-        loop_count = 0xFFFF;
+	loop_count = 0xFFFF;
       cycles_used = ((loop_count - 1) * 4) + 5;
       emit_insn (gen_delay_cycles_2 (gen_int_mode (loop_count, HImode),
-                                     avr_mem_clobber()));
+				     avr_mem_clobber()));
       cycles -= cycles_used;
     }
 
@@ -14171,10 +14171,10 @@ avr_expand_delay_cycles (rtx operands0)
     {
       loop_count = cycles / 3;
       if (loop_count > 255)
-        loop_count = 255;
+	loop_count = 255;
       cycles_used = loop_count * 3;
       emit_insn (gen_delay_cycles_1 (gen_int_mode (loop_count, QImode),
-                                     avr_mem_clobber()));
+				     avr_mem_clobber()));
       cycles -= cycles_used;
     }
 
@@ -14243,17 +14243,17 @@ avr_map_metric (unsigned int a, int mode)
       unsigned ai = avr_map (a, i);
 
       if (mode == MAP_FIXED_0_7)
-        metric += ai == i;
+	metric += ai == i;
       else if (mode == MAP_NONFIXED_0_7)
-        metric += ai < 8 && ai != i;
+	metric += ai < 8 && ai != i;
       else if (mode == MAP_MASK_FIXED_0_7)
-        metric |= ((unsigned) (ai == i)) << i;
+	metric |= ((unsigned) (ai == i)) << i;
       else if (mode == MAP_PREIMAGE_0_7)
-        metric += ai < 8;
+	metric += ai < 8;
       else if (mode == MAP_MASK_PREIMAGE_F)
-        metric |= ((unsigned) (ai == 0xf)) << i;
+	metric |= ((unsigned) (ai == 0xf)) << i;
       else
-        gcc_unreachable();
+	gcc_unreachable();
     }
 
   return metric;
@@ -14348,14 +14348,14 @@ avr_map_decompose (unsigned int f, const avr_map_op_t *g, bool val_const_p)
       int x = avr_map (f, i);
 
       if (x <= 7)
-        {
-          x = avr_map (ginv, x);
+	{
+	  x = avr_map (ginv, x);
 
-          /* The bit is no element of the image of G: no avail (cost = -1)  */
+	  /* The bit is no element of the image of G: no avail (cost = -1)  */
 
-          if (x > 7)
-            return f_ginv;
-        }
+	  if (x > 7)
+	    return f_ginv;
+	}
 
       f_ginv.map = (f_ginv.map << 4) + x;
     }
@@ -14375,8 +14375,8 @@ avr_map_decompose (unsigned int f, const avr_map_op_t *g, bool val_const_p)
       rtx xop[4];
 
       /* Get the cost of the insn by calling the output worker with some
-         fake values.  Mimic effect of reloading xop[3]: Unused operands
-         are mapped to 0 and used operands are reloaded to xop[0].  */
+	 fake values.  Mimic effect of reloading xop[3]: Unused operands
+	 are mapped to 0 and used operands are reloaded to xop[0].  */
 
       xop[0] = all_regs_rtx[24];
       xop[1] = gen_int_mode (f_ginv.map, SImode);
@@ -14416,28 +14416,28 @@ avr_move_bits (rtx *xop, unsigned int map, bool fixp_p, int *plen)
   for (int b = 0; b < 8; b++)
     for (int bit_dest = 0; bit_dest < 8; bit_dest++)
       {
-        int bit_src = avr_map (map, bit_dest);
+	int bit_src = avr_map (map, bit_dest);
 
-        if (b != bit_src
-            || bit_src >= 8
-            /* Same position: No need to copy as requested by FIXP_P.  */
-            || (bit_dest == bit_src && !fixp_p))
-          continue;
+	if (b != bit_src
+	    || bit_src >= 8
+	    /* Same position: No need to copy as requested by FIXP_P.  */
+	    || (bit_dest == bit_src && !fixp_p))
+	  continue;
 
-        if (t_bit_src != bit_src)
-          {
-            /* Source bit is not yet in T: Store it to T.  */
+	if (t_bit_src != bit_src)
+	  {
+	    /* Source bit is not yet in T: Store it to T.  */
 
-            t_bit_src = bit_src;
+	    t_bit_src = bit_src;
 
-            xop[3] = GEN_INT (bit_src);
-            avr_asm_len ("bst %T1%T3", xop, plen, 1);
-          }
+	    xop[3] = GEN_INT (bit_src);
+	    avr_asm_len ("bst %T1%T3", xop, plen, 1);
+	  }
 
-        /* Load destination bit with T.  */
+	/* Load destination bit with T.  */
 
-        xop[3] = GEN_INT (bit_dest);
-        avr_asm_len ("bld %T0%T3", xop, plen, 1);
+	xop[3] = GEN_INT (bit_dest);
+	avr_asm_len ("bld %T0%T3", xop, plen, 1);
       }
 }
 
@@ -14447,14 +14447,14 @@ avr_move_bits (rtx *xop, unsigned int map, bool fixp_p, int *plen)
 
    OP[0]:  Result
    OP[1]:  The mapping composed of nibbles. If nibble no. N is
-           0:   Bit N of result is copied from bit OP[2].0
-           ...  ...
-           7:   Bit N of result is copied from bit OP[2].7
-           0xf: Bit N of result is copied from bit OP[3].N
+	   0:   Bit N of result is copied from bit OP[2].0
+	   ...  ...
+	   7:   Bit N of result is copied from bit OP[2].7
+	   0xf: Bit N of result is copied from bit OP[3].N
    OP[2]:  Bits to be inserted
    OP[3]:  Target value  */
 
-const char*
+const char *
 avr_out_insert_bits (rtx *op, int *plen)
 {
   unsigned int map = UINTVAL (op[1]) & GET_MODE_MASK (SImode);
@@ -14496,30 +14496,30 @@ avr_out_insert_bits (rtx *op, int *plen)
       gcc_assert (REG_P (xop[2]));
 
       /* Get the code size of the bit insertions; once with all bits
-         moved and once with fixed points omitted.  */
+	 moved and once with fixed points omitted.  */
 
       avr_move_bits (xop, map, true, &n_fix);
       avr_move_bits (xop, map, false, &n_nofix);
 
       if (fixp_p && n_fix - n_nofix > 3)
-        {
-          xop[3] = gen_int_mode (~mask_fixed, QImode);
+	{
+	  xop[3] = gen_int_mode (~mask_fixed, QImode);
 
-          avr_asm_len ("eor %0,%1"   CR_TAB
-                       "andi %0,%3"  CR_TAB
-                       "eor %0,%1", xop, plen, 3);
-          fixp_p = false;
-        }
+	  avr_asm_len ("eor %0,%1"   CR_TAB
+		       "andi %0,%3"  CR_TAB
+		       "eor %0,%1", xop, plen, 3);
+	  fixp_p = false;
+	}
     }
   else
     {
       /* XOP[2] is unused */
 
       if (fixp_p && mask_fixed)
-        {
-          avr_asm_len ("mov %0,%1", xop, plen, 1);
-          fixp_p = false;
-        }
+	{
+	  avr_asm_len ("mov %0,%1", xop, plen, 1);
+	  fixp_p = false;
+	}
     }
 
   /* Move/insert remaining bits.  */
@@ -14597,47 +14597,47 @@ avr_init_builtins (void)
     = build_function_type_list (void_type_node, NULL_TREE);
   tree uchar_ftype_uchar
     = build_function_type_list (unsigned_char_type_node,
-                                unsigned_char_type_node,
-                                NULL_TREE);
+				unsigned_char_type_node,
+				NULL_TREE);
   tree uint_ftype_uchar_uchar
     = build_function_type_list (unsigned_type_node,
-                                unsigned_char_type_node,
-                                unsigned_char_type_node,
-                                NULL_TREE);
+				unsigned_char_type_node,
+				unsigned_char_type_node,
+				NULL_TREE);
   tree int_ftype_char_char
     = build_function_type_list (integer_type_node,
-                                char_type_node,
-                                char_type_node,
-                                NULL_TREE);
+				char_type_node,
+				char_type_node,
+				NULL_TREE);
   tree int_ftype_char_uchar
     = build_function_type_list (integer_type_node,
-                                char_type_node,
-                                unsigned_char_type_node,
-                                NULL_TREE);
+				char_type_node,
+				unsigned_char_type_node,
+				NULL_TREE);
   tree void_ftype_ulong
     = build_function_type_list (void_type_node,
-                                long_unsigned_type_node,
-                                NULL_TREE);
+				long_unsigned_type_node,
+				NULL_TREE);
 
   tree uchar_ftype_ulong_uchar_uchar
     = build_function_type_list (unsigned_char_type_node,
-                                long_unsigned_type_node,
-                                unsigned_char_type_node,
-                                unsigned_char_type_node,
-                                NULL_TREE);
+				long_unsigned_type_node,
+				unsigned_char_type_node,
+				unsigned_char_type_node,
+				NULL_TREE);
 
   tree const_memx_void_node
     = build_qualified_type (void_type_node,
-                            TYPE_QUAL_CONST
-                            | ENCODE_QUAL_ADDR_SPACE (ADDR_SPACE_MEMX));
+			    TYPE_QUAL_CONST
+			    | ENCODE_QUAL_ADDR_SPACE (ADDR_SPACE_MEMX));
 
   tree const_memx_ptr_type_node
     = build_pointer_type_for_mode (const_memx_void_node, PSImode, false);
 
   tree char_ftype_const_memx_ptr
     = build_function_type_list (char_type_node,
-                                const_memx_ptr_type_node,
-                                NULL);
+				const_memx_ptr_type_node,
+				NULL);
 
 #define ITYP(T)                                                         \
   lang_hooks.types.type_for_size (TYPE_PRECISION (T), TYPE_UNSIGNED (T))
@@ -14755,12 +14755,12 @@ avr_init_builtins (void)
   {                                                                     \
     int id = AVR_BUILTIN_ ## NAME;                                      \
     const char *Name = "__builtin_avr_" #NAME;                          \
-    char *name = (char*) alloca (1 + strlen (Name));                    \
+    char *name = (char *) alloca (1 + strlen (Name));                   \
                                                                         \
     gcc_assert (id < AVR_BUILTIN_COUNT);                                \
     avr_bdesc[id].fndecl                                                \
       = add_builtin_function (avr_tolower (name, Name), TYPE, id,       \
-                              BUILT_IN_MD, LIBNAME, NULL_TREE);         \
+			      BUILT_IN_MD, LIBNAME, NULL_TREE);         \
   }
 #include "builtins.def"
 #undef DEF_BUILTIN
@@ -14796,18 +14796,18 @@ avr_default_expand_builtin (enum insn_code icode, tree exp, rtx target)
       machine_mode mode = insn_data[icode].operand[n + 1].mode;
 
       if ((opmode == SImode || opmode == VOIDmode) && mode == HImode)
-        {
-          opmode = HImode;
-          op = gen_lowpart (HImode, op);
-        }
+	{
+	  opmode = HImode;
+	  op = gen_lowpart (HImode, op);
+	}
 
       /* In case the insn wants input operands in modes different from
-         the result, abort.  */
+	 the result, abort.  */
 
       gcc_assert (opmode == mode || opmode == VOIDmode);
 
       if (!insn_data[icode].operand[n + 1].predicate (op, mode))
-        op = copy_to_mode_reg (mode, op);
+	op = copy_to_mode_reg (mode, op);
 
       xop[n] = op;
     }
@@ -14840,9 +14840,9 @@ avr_default_expand_builtin (enum insn_code icode, tree exp, rtx target)
 
 static rtx
 avr_expand_builtin (tree exp, rtx target,
-                    rtx subtarget ATTRIBUTE_UNUSED,
-                    machine_mode mode ATTRIBUTE_UNUSED,
-                    int ignore)
+		    rtx subtarget ATTRIBUTE_UNUSED,
+		    machine_mode mode ATTRIBUTE_UNUSED,
+		    int ignore)
 {
   tree fndecl = TREE_OPERAND (CALL_EXPR_FN (exp), 0);
   const char *bname = IDENTIFIER_POINTER (DECL_NAME (fndecl));
@@ -14861,43 +14861,43 @@ avr_expand_builtin (tree exp, rtx target,
 
     case AVR_BUILTIN_DELAY_CYCLES:
       {
-        arg0 = CALL_EXPR_ARG (exp, 0);
-        op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
+	arg0 = CALL_EXPR_ARG (exp, 0);
+	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
 
-        if (!CONST_INT_P (op0))
-          error ("%s expects a compile time integer constant", bname);
-        else
-          avr_expand_delay_cycles (op0);
+	if (!CONST_INT_P (op0))
+	  error ("%s expects a compile time integer constant", bname);
+	else
+	  avr_expand_delay_cycles (op0);
 
-        return NULL_RTX;
+	return NULL_RTX;
       }
 
     case AVR_BUILTIN_NOPS:
       {
-        arg0 = CALL_EXPR_ARG (exp, 0);
-        op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
+	arg0 = CALL_EXPR_ARG (exp, 0);
+	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
 
-        if (!CONST_INT_P (op0))
-          error ("%s expects a compile time integer constant", bname);
-        else
-          avr_expand_nops (op0);
+	if (!CONST_INT_P (op0))
+	  error ("%s expects a compile time integer constant", bname);
+	else
+	  avr_expand_nops (op0);
 
-        return NULL_RTX;
+	return NULL_RTX;
       }
 
     case AVR_BUILTIN_INSERT_BITS:
       {
-        arg0 = CALL_EXPR_ARG (exp, 0);
-        op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
+	arg0 = CALL_EXPR_ARG (exp, 0);
+	op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
 
-        if (!CONST_INT_P (op0))
-          {
-            error ("%s expects a compile time long integer constant"
-                   " as first argument", bname);
-            return target;
-          }
+	if (!CONST_INT_P (op0))
+	  {
+	    error ("%s expects a compile time long integer constant"
+		   " as first argument", bname);
+	    return target;
+	  }
 
-        break;
+	break;
       }
 
     case AVR_BUILTIN_ROUNDHR:   case AVR_BUILTIN_ROUNDUHR:
@@ -14911,33 +14911,33 @@ avr_expand_builtin (tree exp, rtx target,
     case AVR_BUILTIN_ROUNDLLK:  case AVR_BUILTIN_ROUNDULLK:
 
       /* Warn about odd rounding.  Rounding points >= FBIT will have
-         no effect.  */
+	 no effect.  */
 
       if (TREE_CODE (CALL_EXPR_ARG (exp, 1)) != INTEGER_CST)
-        break;
+	break;
 
       int rbit = (int) TREE_INT_CST_LOW (CALL_EXPR_ARG (exp, 1));
 
       if (rbit >= (int) GET_MODE_FBIT (mode))
-        {
-          warning (OPT_Wextra, "rounding to %d bits has no effect for "
-                   "fixed-point value with %d fractional bits",
-                   rbit, GET_MODE_FBIT (mode));
-
-          return expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX, mode,
-                              EXPAND_NORMAL);
-        }
+	{
+	  warning (OPT_Wextra, "rounding to %d bits has no effect for "
+		   "fixed-point value with %d fractional bits",
+		   rbit, GET_MODE_FBIT (mode));
+
+	  return expand_expr (CALL_EXPR_ARG (exp, 0), NULL_RTX, mode,
+			      EXPAND_NORMAL);
+	}
       else if (rbit <= - (int) GET_MODE_IBIT (mode))
-        {
-          warning (0, "rounding result will always be 0");
-          return CONST0_RTX (mode);
-        }
+	{
+	  warning (0, "rounding result will always be 0");
+	  return CONST0_RTX (mode);
+	}
 
       /* The rounding points RP satisfies now:  -IBIT < RP < FBIT.
 
-         TR 18037 only specifies results for  RP > 0.  However, the
-         remaining cases of  -IBIT < RP <= 0  can easily be supported
-         without any additional overhead.  */
+	 TR 18037 only specifies results for  RP > 0.  However, the
+	 remaining cases of  -IBIT < RP <= 0  can easily be supported
+	 without any additional overhead.  */
 
       break; /* round */
     }
@@ -14996,7 +14996,7 @@ avr_fold_absfx (tree tval)
 
 static tree
 avr_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg,
-                  bool ignore ATTRIBUTE_UNUSED)
+		  bool ignore ATTRIBUTE_UNUSED)
 {
   unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl);
   tree val_type = TREE_TYPE (TREE_TYPE (fndecl));
@@ -15011,8 +15011,8 @@ avr_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg,
 
     case AVR_BUILTIN_SWAP:
       {
-        return fold_build2 (LROTATE_EXPR, val_type, arg[0],
-                            build_int_cst (val_type, 4));
+	return fold_build2 (LROTATE_EXPR, val_type, arg[0],
+			    build_int_cst (val_type, 4));
       }
 
     case AVR_BUILTIN_ABSHR:
@@ -15049,139 +15049,139 @@ avr_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg,
     case AVR_BUILTIN_BITSULLK:  case AVR_BUILTIN_ULLKBITS:
 
       gcc_assert (TYPE_PRECISION (val_type)
-                  == TYPE_PRECISION (TREE_TYPE (arg[0])));
+		  == TYPE_PRECISION (TREE_TYPE (arg[0])));
 
       return build1 (VIEW_CONVERT_EXPR, val_type, arg[0]);
 
     case AVR_BUILTIN_INSERT_BITS:
       {
-        tree tbits = arg[1];
-        tree tval = arg[2];
-        tree tmap;
-        tree map_type = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl)));
-        unsigned int map;
-        bool changed = false;
-        avr_map_op_t best_g;
-
-        if (TREE_CODE (arg[0]) != INTEGER_CST)
-          {
-            /* No constant as first argument: Don't fold this and run into
-               error in avr_expand_builtin.  */
-
-            break;
-          }
-
-        tmap = wide_int_to_tree (map_type, wi::to_wide (arg[0]));
-        map = TREE_INT_CST_LOW (tmap);
-
-        if (TREE_CODE (tval) != INTEGER_CST
+	tree tbits = arg[1];
+	tree tval = arg[2];
+	tree tmap;
+	tree map_type = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl)));
+	unsigned int map;
+	bool changed = false;
+	avr_map_op_t best_g;
+
+	if (TREE_CODE (arg[0]) != INTEGER_CST)
+	  {
+	    /* No constant as first argument: Don't fold this and run into
+	       error in avr_expand_builtin.  */
+
+	    break;
+	  }
+
+	tmap = wide_int_to_tree (map_type, wi::to_wide (arg[0]));
+	map = TREE_INT_CST_LOW (tmap);
+
+	if (TREE_CODE (tval) != INTEGER_CST
 	    && avr_map_metric (map, MAP_MASK_PREIMAGE_F) == 0)
-          {
-            /* There are no F in the map, i.e. 3rd operand is unused.
-               Replace that argument with some constant to render
-               respective input unused.  */
+	  {
+	    /* There are no F in the map, i.e. 3rd operand is unused.
+	       Replace that argument with some constant to render
+	       respective input unused.  */
 
-            tval = build_int_cst (val_type, 0);
-            changed = true;
-          }
+	    tval = build_int_cst (val_type, 0);
+	    changed = true;
+	  }
 
-        if (TREE_CODE (tbits) != INTEGER_CST
+	if (TREE_CODE (tbits) != INTEGER_CST
 	    && avr_map_metric (map, MAP_PREIMAGE_0_7) == 0)
-          {
-            /* Similar for the bits to be inserted. If they are unused,
-               we can just as well pass 0.  */
+	  {
+	    /* Similar for the bits to be inserted. If they are unused,
+	       we can just as well pass 0.  */
 
-            tbits = build_int_cst (val_type, 0);
-          }
+	    tbits = build_int_cst (val_type, 0);
+	  }
 
-        if (TREE_CODE (tbits) == INTEGER_CST)
-          {
-            /* Inserting bits known at compile time is easy and can be
-               performed by AND and OR with appropriate masks.  */
+	if (TREE_CODE (tbits) == INTEGER_CST)
+	  {
+	    /* Inserting bits known at compile time is easy and can be
+	       performed by AND and OR with appropriate masks.  */
 
-            int bits = TREE_INT_CST_LOW (tbits);
-            int mask_ior = 0, mask_and = 0xff;
+	    int bits = TREE_INT_CST_LOW (tbits);
+	    int mask_ior = 0, mask_and = 0xff;
 
-            for (size_t i = 0; i < 8; i++)
-              {
-                int mi = avr_map (map, i);
+	    for (size_t i = 0; i < 8; i++)
+	      {
+		int mi = avr_map (map, i);
 
-                if (mi < 8)
-                  {
-                    if (bits & (1 << mi))     mask_ior |=  (1 << i);
-                    else                      mask_and &= ~(1 << i);
-                  }
-              }
+		if (mi < 8)
+		  {
+		    if (bits & (1 << mi))     mask_ior |=  (1 << i);
+		    else		      mask_and &= ~(1 << i);
+		  }
+	      }
 
-            tval = fold_build2 (BIT_IOR_EXPR, val_type, tval,
-                                build_int_cst (val_type, mask_ior));
-            return fold_build2 (BIT_AND_EXPR, val_type, tval,
-                                build_int_cst (val_type, mask_and));
-          }
+	    tval = fold_build2 (BIT_IOR_EXPR, val_type, tval,
+				build_int_cst (val_type, mask_ior));
+	    return fold_build2 (BIT_AND_EXPR, val_type, tval,
+				build_int_cst (val_type, mask_and));
+	  }
 
-        if (changed)
-          return build_call_expr (fndecl, 3, tmap, tbits, tval);
+	if (changed)
+	  return build_call_expr (fndecl, 3, tmap, tbits, tval);
 
-        /* If bits don't change their position, we can use vanilla logic
-           to merge the two arguments...  */
+	/* If bits don't change their position, we can use vanilla logic
+	   to merge the two arguments...  */
 
-        if (avr_map_metric (map, MAP_NONFIXED_0_7) == 0
-            // ...except when we are copying just one bit. In that
-            // case, BLD/BST is better than XOR/AND/XOR, see PR90622.
-            && avr_map_metric (map, MAP_FIXED_0_7) != 1)
-          {
-            int mask_f = avr_map_metric (map, MAP_MASK_PREIMAGE_F);
-            tree tres, tmask = build_int_cst (val_type, mask_f ^ 0xff);
+	if (avr_map_metric (map, MAP_NONFIXED_0_7) == 0
+	    // ...except when we are copying just one bit. In that
+	    // case, BLD/BST is better than XOR/AND/XOR, see PR90622.
+	    && avr_map_metric (map, MAP_FIXED_0_7) != 1)
+	  {
+	    int mask_f = avr_map_metric (map, MAP_MASK_PREIMAGE_F);
+	    tree tres, tmask = build_int_cst (val_type, mask_f ^ 0xff);
 
-            tres = fold_build2 (BIT_XOR_EXPR, val_type, tbits, tval);
-            tres = fold_build2 (BIT_AND_EXPR, val_type, tres, tmask);
-            return fold_build2 (BIT_XOR_EXPR, val_type, tres, tval);
-          }
+	    tres = fold_build2 (BIT_XOR_EXPR, val_type, tbits, tval);
+	    tres = fold_build2 (BIT_AND_EXPR, val_type, tres, tmask);
+	    return fold_build2 (BIT_XOR_EXPR, val_type, tres, tval);
+	  }
 
-        /* Try to decomposing map to reduce overall cost.  */
+	/* Try to decomposing map to reduce overall cost.  */
 
-        if (avr_log.builtin)
-          avr_edump ("\n%?: %x\n%?: ROL cost: ", map);
+	if (avr_log.builtin)
+	  avr_edump ("\n%?: %x\n%?: ROL cost: ", map);
 
-        best_g = avr_map_op[0];
-        best_g.cost = 1000;
+	best_g = avr_map_op[0];
+	best_g.cost = 1000;
 
-        for (size_t i = 0; i < ARRAY_SIZE (avr_map_op); i++)
-          {
-            avr_map_op_t g
-              = avr_map_decompose (map, avr_map_op + i,
-                                   TREE_CODE (tval) == INTEGER_CST);
+	for (size_t i = 0; i < ARRAY_SIZE (avr_map_op); i++)
+	  {
+	    avr_map_op_t g
+	      = avr_map_decompose (map, avr_map_op + i,
+				   TREE_CODE (tval) == INTEGER_CST);
 
-            if (g.cost >= 0 && g.cost < best_g.cost)
-              best_g = g;
-          }
+	    if (g.cost >= 0 && g.cost < best_g.cost)
+	      best_g = g;
+	  }
 
-        if (avr_log.builtin)
-          avr_edump ("\n");
+	if (avr_log.builtin)
+	  avr_edump ("\n");
 
-        if (best_g.arg == 0)
-          /* No optimization found */
-          break;
+	if (best_g.arg == 0)
+	  /* No optimization found */
+	  break;
 
-        /* Apply operation G to the 2nd argument.  */
+	/* Apply operation G to the 2nd argument.  */
 
-        if (avr_log.builtin)
-          avr_edump ("%?: using OP(%s%d, %x) cost %d\n",
-                     best_g.str, best_g.arg, best_g.map, best_g.cost);
+	if (avr_log.builtin)
+	  avr_edump ("%?: using OP(%s%d, %x) cost %d\n",
+		     best_g.str, best_g.arg, best_g.map, best_g.cost);
 
-        /* Do right-shifts arithmetically: They copy the MSB instead of
-           shifting in a non-usable value (0) as with logic right-shift.  */
+	/* Do right-shifts arithmetically: They copy the MSB instead of
+	   shifting in a non-usable value (0) as with logic right-shift.  */
 
-        tbits = fold_convert (signed_char_type_node, tbits);
-        tbits = fold_build2 (best_g.code, signed_char_type_node, tbits,
-                             build_int_cst (val_type, best_g.arg));
-        tbits = fold_convert (val_type, tbits);
+	tbits = fold_convert (signed_char_type_node, tbits);
+	tbits = fold_build2 (best_g.code, signed_char_type_node, tbits,
+			     build_int_cst (val_type, best_g.arg));
+	tbits = fold_convert (val_type, tbits);
 
-        /* Use map o G^-1 instead of original map to undo the effect of G.  */
+	/* Use map o G^-1 instead of original map to undo the effect of G.  */
 
-        tmap = wide_int_to_tree (map_type, best_g.map);
+	tmap = wide_int_to_tree (map_type, best_g.map);
 
-        return build_call_expr (fndecl, 3, tmap, tbits, tval);
+	return build_call_expr (fndecl, 3, tmap, tbits, tval);
       } /* AVR_BUILTIN_INSERT_BITS */
     }
 
@@ -15194,10 +15194,10 @@ avr_fold_builtin (tree fndecl, int n_args ATTRIBUTE_UNUSED, tree *arg,
 
 static rtx_insn *
 avr_md_asm_adjust (vec<rtx> &/*outputs*/, vec<rtx> &/*inputs*/,
-                   vec<machine_mode> & /*input_modes*/,
-                   vec<const char *> &/*constraints*/,
+		   vec<machine_mode> & /*input_modes*/,
+		   vec<const char *> &/*constraints*/,
 		   vec<rtx> &/*uses*/,
-                   vec<rtx> &clobbers, HARD_REG_SET &clobbered_regs,
+		   vec<rtx> &clobbers, HARD_REG_SET &clobbered_regs,
 		   location_t /*loc*/)
 {
   clobbers.safe_push (cc_reg_rtx);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-01-31 10:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-31 10:42 [patch,avr,applied] Tabify avr.cc Georg-Johann Lay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).