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;