static void vax_function_arg_advance (cumulative_args_t,
const function_arg_info &);
static rtx vax_struct_value_rtx (tree, int);
+static bool vax_lra_p (void);
static void vax_asm_trampoline_template (FILE *);
static void vax_trampoline_init (rtx, tree, rtx);
static poly_int64 vax_return_pops_args (tree, tree, poly_int64);
#define TARGET_STRUCT_VALUE_RTX vax_struct_value_rtx
#undef TARGET_LRA_P
-#define TARGET_LRA_P hook_bool_void_false
+#define TARGET_LRA_P vax_lra_p
#undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P vax_legitimate_address_p
return gen_rtx_REG (Pmode, VAX_STRUCT_VALUE_REGNUM);
}
+/* Return true if we use LRA instead of reload pass. */
+
+static bool
+vax_lra_p (void)
+{
+ return TARGET_LRA;
+}
+
/* Output integer move instructions. */
bool
Target RejectNegative Mask(UNIX_ASM)
Generate code for UNIX assembler.
+mlra
+Target Mask(LRA)
+Enable Local Register Allocation.
+
mvaxc-alignment
Target RejectNegative Mask(VAXC_ALIGNMENT)
Use VAXC structure conventions.
-mbig-switch}
@emph{VAX Options}
-@gccoptlist{-mg -mgnu -munix}
+@gccoptlist{-mg -mgnu -munix -mlra}
@emph{Visium Options}
@gccoptlist{-mdebug -msim -mfpu -mno-fpu -mhard-float -msoft-float @gol
@item -mg
@opindex mg
Output code for G-format floating-point numbers instead of D-format.
+
+@item -mlra
+@itemx -mno-lra
+@opindex mlra
+@opindex mno-lra
+Enable Local Register Allocation. This is still experimental for the VAX,
+so by default the compiler uses standard reload.
@end table
@node Visium Options