static bool avr_rtx_costs (rtx, int, int, int *);
static int avr_address_cost (rtx);
-/* Allocate registers from r25 to r8 for parameters for function calls */
+/* Allocate registers from r25 to r8 for parameters for function calls. */
#define FIRST_CUM_REG 26
/* Temporary register RTX (gen_rtx (REG,QImode,TMP_REGNO)) */
zero_reg_rtx = gen_rtx_REG (QImode, ZERO_REGNO);
}
-/* return register class from register number */
+/* return register class from register number. */
static const int reg_class_tab[]={
GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,GENERAL_REGS,
STACK_REG,STACK_REG /* SPL,SPH */
};
-/* Return register class for register R */
+/* Return register class for register R. */
enum reg_class
avr_regno_reg_class (int r)
return count;
}
-/* Compute offset between arg_pointer and frame_pointer */
+/* Compute offset between arg_pointer and frame_pointer. */
int
initial_elimination_offset (int from, int to)
&& ! TREE_THIS_VOLATILE (current_function_decl));
}
-/* This function checks sequence of live registers */
+/* This function checks sequence of live registers. */
static int
sequent_regs_live (void)
}
-/* Output function prologue */
+/* Output function prologue. */
static void
avr_output_function_prologue (FILE *file, HOST_WIDE_INT size)
fprintf (file, "/* prologue end (size=%d) */\n", prologue_size);
}
-/* Output function epilogue */
+/* Output function epilogue. */
static void
avr_output_function_epilogue (FILE *file, HOST_WIDE_INT size)
}
-/* Return a pointer register name as a string */
+/* Return a pointer register name as a string. */
static const char *
ptrreg_to_str (int regno)
}
}
-/* Output ADDR to FILE as address */
+/* Output ADDR to FILE as address. */
void
print_operand_address (FILE *file, rtx addr)
}
-/* Output X as assembler operand to file FILE */
+/* Output X as assembler operand to file FILE. */
void
print_operand (FILE *file, rtx x, int code)
print_operand_address (file, x);
}
-/* Recognize operand OP of mode MODE used in call instructions */
+/* Recognize operand OP of mode MODE used in call instructions. */
int
call_insn_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
}
/* Controls whether a function argument is passed
- in a register, and which register. */
+ in a register, and which register. */
rtx
function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
return "";
}
-/* Return 1 if frame pointer for current function required */
+/* Return 1 if frame pointer for current function required. */
int
frame_pointer_required_p (void)
}
-/* Output test instruction for HImode */
+/* Output test instruction for HImode. */
const char *
out_tsthi (rtx insn, int *l)
if (reg_unused_after (insn, SET_SRC (PATTERN (insn)))
&& compare_eq_p (insn))
{
- /* faster than sbiw if we can clobber the operand */
+ /* Faster than sbiw if we can clobber the operand. */
if (l) *l = 1;
return AS2 (or,%A0,%B0);
}
}
-/* Output test instruction for SImode */
+/* Output test instruction for SImode. */
const char *
out_tstsi (rtx insn, int *l)
return len;
}
-/* Return nonzero if register REG dead after INSN */
+/* Return nonzero if register REG dead after INSN. */
int
reg_unused_after (rtx insn, rtx reg)
return default_assemble_integer (x, size, aligned_p);
}
-/* Sets section name for declaration DECL */
+/* Sets section name for declaration DECL. */
static void
avr_unique_section (tree decl, int reloc ATTRIBUTE_UNUSED)
}
}
-/* Calculate the cost of a memory address */
+/* Calculate the cost of a memory address. */
static int
avr_address_cost (rtx x)
return 0;
}
-/* Convert condition code CONDITION to the valid AVR condition code */
+/* Convert condition code CONDITION to the valid AVR condition code. */
RTX_CODE
avr_normalize_condition (RTX_CODE condition)
{
if (GET_CODE (SET_SRC (pattern)) == COMPARE)
{
- /* Now we work under compare insn */
+ /* Now we work under compare insn. */
pattern = SET_SRC (pattern);
if (true_regnum (XEXP (pattern,0)) >= 0