aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJiong Wang <jiong.wang@arm.com>2015-07-22 11:41:10 +0000
committerJiong Wang <jiwang@gcc.gnu.org>2015-07-22 11:41:10 +0000
commit38996bc95735d0c912a4920fdcb2dbfc4ff88acb (patch)
tree28be1054a43a36049d3661bf9c779f383c73e162 /gcc
parent20ca17e480a904417bb96862752878192ebfa9db (diff)
downloadgcc-38996bc95735d0c912a4920fdcb2dbfc4ff88acb.zip
gcc-38996bc95735d0c912a4920fdcb2dbfc4ff88acb.tar.gz
gcc-38996bc95735d0c912a4920fdcb2dbfc4ff88acb.tar.bz2
[AArch64] PR target/63521 Define REG_ALLOC_ORDER
2015-07-22 Jiong Wang <jiong.wang@arm.com> gcc/ PR target/63521 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define. (HONOR_REG_ALLOC_ORDER): Define. From-SVN: r226064
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/aarch64.h25
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c1838ea..ad0fb04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-07-22 Jiong Wang <jiong.wang@arm.com>
+
+ PR target/63521
+ * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
+ (HONOR_REG_ALLOC_ORDER): Define.
+
2015-07-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/66952
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 3851564..4292fd2 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -344,6 +344,31 @@ extern unsigned long aarch64_isa_flags;
V_ALIASES(28), V_ALIASES(29), V_ALIASES(30), V_ALIASES(31) \
}
+#define REG_ALLOC_ORDER \
+ { \
+ /* Reverse order for argument registers. */ \
+ 7, 6, 5, 4, 3, 2, 1, 0, \
+ /* Other caller-saved registers. */ \
+ 8, 9, 10, 11, 12, 13, 14, 15, \
+ 16, 17, 18, 30, \
+ /* Callee-saved registers. */ \
+ 19, 20, 21, 22, 23, 24, 25, 26, \
+ 27, 28, \
+ /* All other registers. */ \
+ 29, 31, \
+ /* Reverse order for argument vregisters. */ \
+ 39, 38, 37, 36, 35, 34, 33, 32, \
+ /* Other caller-saved vregisters. */ \
+ 48, 49, 50, 51, 52, 53, 54, 55, \
+ 56, 57, 58, 59, 60, 61, 62, 63, \
+ /* Callee-saved vregisters. */ \
+ 40, 41, 42, 43, 44, 45, 46, 47, \
+ /* Other pseudo registers. */ \
+ 64, 65, 66 \
+}
+
+#define HONOR_REG_ALLOC_ORDER 1
+
/* Say that the epilogue uses the return address register. Note that
in the case of sibcalls, the values "used by the epilogue" are
considered live at the start of the called function. */