summaryrefslogtreecommitdiffstats
path: root/gcc/config/xtensa
diff options
context:
space:
mode:
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-03 20:23:24 +0000
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-02-03 20:23:24 +0000
commitbef09eef0b9585c3ad262cd7a609c0dd78049d4e (patch)
treee569fd5ca529c6e41321e45500edddcf225607fd /gcc/config/xtensa
parentaf2258d647d3f644acefb7365d01424e8506527c (diff)
downloadppe42-gcc-bef09eef0b9585c3ad262cd7a609c0dd78049d4e.tar.gz
ppe42-gcc-bef09eef0b9585c3ad262cd7a609c0dd78049d4e.zip
* config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
coprocessor registers before floating-point registers. * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers to account for a previously removed register. (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM): Delete unused macros. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62340 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/xtensa')
-rw-r--r--gcc/config/xtensa/xtensa.c8
-rw-r--r--gcc/config/xtensa/xtensa.h16
2 files changed, 8 insertions, 16 deletions
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index a05386cf4e5..cb7d7e5e9cb 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -2725,6 +2725,10 @@ order_regs_for_local_alloc ()
for (i = 0; i < num_arg_regs; i++)
reg_alloc_order[nxt++] = GP_ARG_FIRST + i;
+ /* list the coprocessor registers in order */
+ for (i = 0; i < BR_REG_NUM; i++)
+ reg_alloc_order[nxt++] = BR_REG_FIRST + i;
+
/* list the FP registers in order for now */
for (i = 0; i < 16; i++)
reg_alloc_order[nxt++] = FP_REG_FIRST + i;
@@ -2735,10 +2739,6 @@ order_regs_for_local_alloc ()
reg_alloc_order[nxt++] = 16; /* pseudo frame pointer */
reg_alloc_order[nxt++] = 17; /* pseudo arg pointer */
- /* list the coprocessor registers in order */
- for (i = 0; i < BR_REG_NUM; i++)
- reg_alloc_order[nxt++] = BR_REG_FIRST + i;
-
reg_alloc_order[nxt++] = ACC_REG_FIRST; /* MAC16 accumulator */
}
}
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index b11fa5e81a7..02675328584 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -345,7 +345,6 @@ extern unsigned xtensa_current_frame_size;
0 - 15 AR[0] - AR[15]
16 FRAME_POINTER (fake = initial sp)
17 ARG_POINTER (fake = initial sp + framesize)
- 18 LOOP_COUNT (loop count special register)
18 BR[0] for floating-point CC
19 - 34 FR[0] - FR[15]
35 MAC16 accumulator */
@@ -394,10 +393,11 @@ extern unsigned xtensa_current_frame_size;
have been exhausted. */
#define REG_ALLOC_ORDER \
-{ 8, 9, 10, 11, 12, 13, 14, 15, 7, 6, 5, 4, 3, 2, 19, \
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, \
+{ 8, 9, 10, 11, 12, 13, 14, 15, 7, 6, 5, 4, 3, 2, \
+ 18, \
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, \
0, 1, 16, 17, \
- 36, \
+ 35, \
}
#define ORDER_REGS_FOR_LOCAL_ALLOC order_regs_for_local_alloc ()
@@ -424,11 +424,6 @@ extern int leaf_function;
#define GP_REG_LAST 17
#define GP_REG_NUM (GP_REG_LAST - GP_REG_FIRST + 1)
-/* Special registers */
-#define SPEC_REG_FIRST 18
-#define SPEC_REG_LAST 18
-#define SPEC_REG_NUM (SPEC_REG_LAST - SPEC_REG_FIRST + 1)
-
/* Coprocessor registers */
#define BR_REG_FIRST 18
#define BR_REG_LAST 18
@@ -473,9 +468,6 @@ extern char xtensa_hard_regno_mode_ok[][FIRST_PSEUDO_REGISTER];
== (GET_MODE_CLASS (MODE2) == MODE_FLOAT || \
GET_MODE_CLASS (MODE2) == MODE_COMPLEX_FLOAT))
-/* Register to use for LCOUNT special register. */
-#define COUNT_REGISTER_REGNUM (SPEC_REG_FIRST + 0)
-
/* Register to use for pushing function arguments. */
#define STACK_POINTER_REGNUM (GP_REG_FIRST + 1)
OpenPOWER on IntegriCloud