aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1998-06-25 09:55:35 +0000
committerNick Clifton <nickc@gcc.gnu.org>1998-06-25 09:55:35 +0000
commitff73fb53083105400e8c5bac8cee17e2580c9e3c (patch)
tree63a7be9945cec3ed8be0a779eb79554dd1b37c35
parent79c11e3a376aace5b1aaaa2394d17994a35180ed (diff)
downloadgcc-ff73fb53083105400e8c5bac8cee17e2580c9e3c.zip
gcc-ff73fb53083105400e8c5bac8cee17e2580c9e3c.tar.gz
gcc-ff73fb53083105400e8c5bac8cee17e2580c9e3c.tar.bz2
Add ARG_POINTER_REGNUM to REG_ALLOC_ORDER
From-SVN: r20713
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.h12
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ca5d51..47ba745 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 25 09:54:55 1998 Nick Clifton <nickc@cygnus.com>
+
+ * config/arm/arm.h (REG_ALLOC_ORDER): Add ARG_POINTER_REGNUM,
+ noticed by grahams@rcp.co.uk.
+
Thu Jun 25 11:12:29 1998 Dave Brolley <brolley@cygnus.com>
* gcc.c (default_compilers): Use new | syntax to eliminate
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 4aeca61..2ac9a3a 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -759,12 +759,12 @@ extern int arm_arch4;
least likely to contain a function parameter; in addition results are
returned in r0.
*/
-#define REG_ALLOC_ORDER \
+#define REG_ALLOC_ORDER \
{ \
- 3, 2, 1, 0, 12, 14, 4, 5, \
- 6, 7, 8, 10, 9, 11, 13, 15, \
+ 3, 2, 1, 0, 12, 14, 4, 5, \
+ 6, 7, 8, 10, 9, 11, 13, 15, \
16, 17, 18, 19, 20, 21, 22, 23, \
- 24, 25 \
+ 24, 25, 26 \
}
/* Register and constant classes. */
@@ -1408,7 +1408,9 @@ do \
&& INTVAL (op) <= 31) \
goto LABEL; \
} \
- range = (MODE) == HImode ? (arm_arch4 ? 256 : 4095) : 4096; \
+ /* NASTY: Since this limits the addressing of unsigned byte loads */ \
+ range = ((MODE) == HImode || (MODE) == QImode) \
+ ? (arm_arch4 ? 256 : 4095) : 4096; \
if (code == CONST_INT && INTVAL (INDEX) < range \
&& INTVAL (INDEX) > -range) \
goto LABEL; \