From bf3ad1397654a3469e8481066d4d7a6b3ac2286e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 18 Jun 1998 11:44:52 +0000 Subject: [PATCH] Imported fixes for testsuite failures from psion branch. From-SVN: r20560 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/thumb.h | 13 ++++++++++--- gcc/config/arm/thumb.md | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0127adfeb9..a170d27ac49 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Thu Jun 18 11:43:54 1998 Nick Clifton + + * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Disallow REG+REG + addressing when one register is the frame pointer or stack + pointer. Disallow REG+CONST addressing in HI mode. + Thu Jun 18 17:30:39 1998 J"orn Rennecke * reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to diff --git a/gcc/config/arm/thumb.h b/gcc/config/arm/thumb.h index 0d3051cf0a1..976fe787830 100644 --- a/gcc/config/arm/thumb.h +++ b/gcc/config/arm/thumb.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for ARM/Thumb. - Copyright (C) 19996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. The basis of this contribution was generated by Richard Earnshaw, Advanced RISC Machines Ltd @@ -900,8 +900,12 @@ int thumb_shiftable_const (); if (GET_MODE_SIZE (MODE) <= 4 \ && GET_CODE (XEXP (X, 0)) == REG \ && GET_CODE (XEXP (X, 1)) == REG \ - && XEXP (X, 0) != frame_pointer_rtx \ - && XEXP (X, 1) != frame_pointer_rtx \ + && XEXP (X, 0) != frame_pointer_rtx \ + && XEXP (X, 1) != frame_pointer_rtx \ + /* CYGNUS LOCAL nickc */ \ + && XEXP (X, 0) != virtual_stack_vars_rtx \ + && XEXP (X, 1) != virtual_stack_vars_rtx \ + /* END CYGNUS LOCAL */ \ && REG_OK_FOR_INDEX_P (XEXP (X, 0)) \ && REG_OK_FOR_INDEX_P (XEXP (X, 1))) \ goto WIN; \ @@ -909,6 +913,9 @@ int thumb_shiftable_const (); else if (GET_CODE (XEXP (X, 0)) == REG \ && (REG_OK_FOR_INDEX_P (XEXP (X, 0)) \ || XEXP (X, 0) == arg_pointer_rtx) \ + /* CYGNUS LOCAL nickc */ \ + && GET_MODE_SIZE (MODE) != 2 \ + /* END CYGNUS LOCAL */ \ && GET_CODE (XEXP (X, 1)) == CONST_INT \ && LEGITIMATE_OFFSET (MODE, INTVAL (XEXP (X, 1)))) \ goto WIN; \ diff --git a/gcc/config/arm/thumb.md b/gcc/config/arm/thumb.md index 2334aa1b10c..65b92cec3e9 100644 --- a/gcc/config/arm/thumb.md +++ b/gcc/config/arm/thumb.md @@ -1,5 +1,5 @@ ;; thumb.md Machine description for ARM/Thumb processors -;; Copyright (C) 19996, 1997, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. ;; The basis of this contribution was generated by ;; Richard Earnshaw, Advanced RISC Machines Ltd