aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2014-06-11 17:06:31 -0400
committerDJ Delorie <dj@gcc.gnu.org>2014-06-11 17:06:31 -0400
commit1cf1574dc98ce820b13858a0e0b9669f790316a4 (patch)
tree63775b4471191de52df4c1fbbaa227e74b4f57c8 /gcc
parent1704a72b46c0cccc9e257781a826d57c1cf37db9 (diff)
downloadgcc-1cf1574dc98ce820b13858a0e0b9669f790316a4.zip
gcc-1cf1574dc98ce820b13858a0e0b9669f790316a4.tar.gz
gcc-1cf1574dc98ce820b13858a0e0b9669f790316a4.tar.bz2
rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte cache lines.
* 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. From-SVN: r211481
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rx/rx.c12
-rw-r--r--gcc/config/rx/rx.h2
3 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ec2ee1d..f394ca4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2014-06-11 DJ Delorie <dj@redhat.com>
+ * 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.
+
* config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index d04e652..2a525f3 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -2792,11 +2792,11 @@ rx_option_override (void)
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);
}
@@ -3201,7 +3201,11 @@ rx_align_for_label (rtx lab, int uses_threshold)
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
diff --git a/gcc/config/rx/rx.h b/gcc/config/rx/rx.h
index d99b19a..209518c 100644
--- a/gcc/config/rx/rx.h
+++ b/gcc/config/rx/rx.h
@@ -142,7 +142,7 @@
/* 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