extern const char* avr_out_lpm (rtx_insn *, rtx*, int*);
extern const char* avr_out_cmp_lsr (rtx_insn *, rtx*, int*);
extern void avr_maybe_cmp_lsr (rtx *);
-extern int reg_unused_after (rtx_insn *insn, rtx reg);
+extern bool reg_unused_after (rtx_insn *insn, rtx reg);
extern int avr_jump_mode (rtx x, rtx_insn *insn, int = 0);
-extern int test_hard_reg_class (enum reg_class rclass, rtx x);
-extern int jump_over_one_insn_p (rtx_insn *insn, rtx dest);
+extern bool test_hard_reg_class (enum reg_class rclass, rtx x);
+extern bool jump_over_one_insn_p (rtx_insn *insn, rtx dest);
extern void avr_final_prescan_insn (rtx_insn *insn, rtx *operand,
int num_operands);
/* Don't print the above diagnostics more than once. */
- cfun->machine->attributes_checked_p = 1;
+ cfun->machine->attributes_checked_p = true;
}
avr_regs_to_save (HARD_REG_SET *set)
{
int count = 0;
- int int_or_sig_p = cfun->machine->is_interrupt || cfun->machine->is_signal;
+ bool int_or_sig_p = cfun->machine->is_interrupt || cfun->machine->is_signal;
if (set)
CLEAR_HARD_REG_SET (*set);
else
r = gen_rtx_SYMBOL_REF (Pmode, ".L__stack_usage+1");
- cfun->machine->use_L__stack_usage = 1;
+ cfun->machine->use_L__stack_usage = true;
r = gen_rtx_PLUS (Pmode, tem, r);
r = gen_frame_mem (Pmode, memory_address (Pmode, r));
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;
+ cfun->machine->gasisr.yes = true;
// 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.
{
cum->nregs = AVR_TINY ? 1 + REG_25 - REG_20 : 1 + REG_25 - REG_8;
cum->regno = FIRST_CUM_REG;
- cum->has_stack_args = 0;
+ cum->has_stack_args = false;
if (!libname && stdarg_p (fntype))
cum->nregs = 0;
/* Assume the calle may be tail called */
- cfun->machine->sibcall_fails = 0;
+ cfun->machine->sibcall_fails = false;
}
if (cum->nregs && bytes <= cum->nregs)
return gen_rtx_REG (arg.mode, cum->regno - bytes);
- cum->has_stack_args = 1;
+ cum->has_stack_args = true;
return NULL_RTX;
}
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;
+ cfun->machine->sibcall_fails = true;
}
/* Test if all registers needed by the ABI are actually available. If the
/* Return nonzero if register REG dead after INSN. */
-int
+bool
reg_unused_after (rtx_insn *insn, rtx reg)
{
return (dead_or_set_p (insn, reg)
return gen_rtx_REG (BLKmode, avr_ret_register () + 2 - offs);
}
-int
+bool
test_hard_reg_class (reg_class rclass, rtx x)
{
int regno = true_regnum (x);
if (regno < 0)
- return 0;
+ return false;
if (TEST_HARD_REG_CLASS (rclass, regno))
- return 1;
+ return true;
- return 0;
+ return false;
}
}
-int
+bool
jump_over_one_insn_p (rtx_insn *insn, rtx dest)
{
int uid = INSN_UID (GET_CODE (dest) == LABEL_REF
/* Whether some of the arguments are passed on the stack,
and hence an arg pointer is needed. */
- int has_stack_args;
+ bool has_stack_args;
} CUMULATIVE_ARGS;
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
struct GTY(()) machine_function
{
/* 'true' - if current function is a naked function. */
- int is_naked;
+ bool is_naked;
/* 0 when no "interrupt" attribute is present.
1 when an "interrupt" attribute without arguments is present (and
/* 'true' - if current function is a non-blocking interrupt service
routine as specified by the "isr_noblock" attribute. */
- int is_noblock;
+ bool is_noblock;
/* 'true' - if current function is a 'task' function
as specified by the "OS_task" attribute. */
- int is_OS_task;
+ bool is_OS_task;
/* 'true' - if current function is a 'main' function
as specified by the "OS_main" attribute. */
- int is_OS_main;
+ bool is_OS_main;
/* Current function stack size. */
int stack_usage;
/* 'true' if a callee might be tail called */
- int sibcall_fails;
+ bool sibcall_fails;
/* 'true' if the above is_foo predicates are sanity-checked to avoid
multiple diagnose for the same function. */
- int attributes_checked_p;
+ bool attributes_checked_p;
/* 'true' - if current function shall not use '__gcc_isr' pseudo
instructions as specified by the "no_gccisr" attribute. */
- int is_no_gccisr;
+ bool is_no_gccisr;
/* Used for `__gcc_isr' pseudo instruction handling of
non-naked ISR prologue / epilogue(s). */
struct
{
/* 'true' if this function actually uses "*gasisr" insns. */
- int yes;
+ bool yes;
/* 'true' if this function is allowed to use "*gasisr" insns. */
- int maybe;
+ bool maybe;
/* The register numer as printed by the Done chunk. */
int regno;
} gasisr;
/* 'true' if this function references .L__stack_usage like with
__builtin_return_address. */
- int use_L__stack_usage;
+ bool use_L__stack_usage;
};
/* AVR does not round pushes, but the existence of this macro is