diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 12 |
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; \ |