The RX100/200 families have 4 byte cache lines, vs 8 bytes for the RX600 family. Applied.
* config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte cache lines. * config/rx/rx.c (rx_option_override): Likewise. (rx_align_for_label): Likewise. Index: config/rx/rx.h =================================================================== --- config/rx/rx.h (revision 211479) +++ config/rx/rx.h (working copy) @@ -139,13 +139,13 @@ #endif #define DEFAULT_SIGNED_CHAR 0 /* RX load/store instructions can handle unaligned addresses. */ #define STRICT_ALIGNMENT 0 -#define FUNCTION_BOUNDARY 8 +#define FUNCTION_BOUNDARY ((rx_cpu_type == RX100 || rx_cpu_type == RX200) ? 4 : 8) #define BIGGEST_ALIGNMENT 32 #define STACK_BOUNDARY 32 #define PARM_BOUNDARY 8 #define STACK_GROWS_DOWNWARD 1 #define FRAME_GROWS_DOWNWARD 0 Index: config/rx/rx.c =================================================================== --- config/rx/rx.c (revision 211480) +++ config/rx/rx.c (working copy) @@ -2789,17 +2789,17 @@ rx_option_override (void) if (flag_strict_volatile_bitfields < 0 && abi_version_at_least(2)) flag_strict_volatile_bitfields = 1; rx_override_options_after_change (); if (align_jumps == 0 && ! optimize_size) - align_jumps = 3; + align_jumps = ((rx_cpu_type == RX100 || rx_cpu_type == RX200) ? 2 : 3); if (align_loops == 0 && ! optimize_size) - align_loops = 3; + align_loops = ((rx_cpu_type == RX100 || rx_cpu_type == RX200) ? 2 : 3); if (align_labels == 0 && ! optimize_size) - align_labels = 3; + align_labels = ((rx_cpu_type == RX100 || rx_cpu_type == RX200) ? 2 : 3); } static bool rx_allocate_stack_slots_for_args (void) { @@ -3198,13 +3198,17 @@ rx_align_for_label (rtx lab, int uses_th because the delay due to the inserted NOPs would be greater than the delay due to the misaligned branch. If uses_threshold is zero then the alignment is always useful. */ if (LABEL_P (lab) && LABEL_NUSES (lab) < uses_threshold) return 0; - return optimize_size ? 1 : 3; + if (optimize_size) + return 0; + if (rx_cpu_type == RX100 || rx_cpu_type == RX200) + return 2; + return 2; } static int rx_max_skip_for_label (rtx lab) { int opsize;