From acd39194c7dfaf3f3a1906595c519215062d615e Mon Sep 17 00:00:00 2001 From: law Date: Sun, 22 Nov 1998 02:09:49 +0000 Subject: [PATCH] * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP addressing modes. (v850_reorg): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23747 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/config/v850/v850.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7253ffa..5f2ef26 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com) + * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP + addressing modes. + (v850_reorg): Similarly. + * loop.c (check_dbra_loop): Avoid using gen_add2_insn. Sat Nov 21 02:18:38 1998 J"orn Rennecke diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index 319b6ab..cda00f0 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -944,6 +944,7 @@ ep_memory_operand (op, mode, unsigned_load) op1 = XEXP (addr, 1); if (GET_CODE (op1) == CONST_INT && INTVAL (op1) < max_offset + && INTVAL (op1) >= 0 && (INTVAL (op1) & mask) == 0) { if (GET_CODE (op0) == REG && REGNO (op0) == EP_REGNUM) @@ -1149,7 +1150,8 @@ Saved %d bytes (%d uses of register %s) in function %s, starting as insn %d, end && GET_CODE (XEXP (addr, 1)) == CONST_INT && ((INTVAL (XEXP (addr, 1))) < ep_memory_offset (GET_MODE (*p_mem), - unsignedp))) + unsignedp)) + && ((INTVAL (XEXP (addr, 1))) >= 0)) *p_mem = change_address (*p_mem, VOIDmode, gen_rtx (PLUS, Pmode, *p_ep, XEXP (addr, 1))); @@ -1300,7 +1302,8 @@ void v850_reorg (start_insn) && GET_CODE (XEXP (addr, 0)) == REG && GET_CODE (XEXP (addr, 1)) == CONST_INT && ((INTVAL (XEXP (addr, 1))) - < ep_memory_offset (GET_MODE (mem), unsignedp))) + < ep_memory_offset (GET_MODE (mem), unsignedp)) + && ((INTVAL (XEXP (addr, 1))) >= 0)) { short_p = TRUE; regno = REGNO (XEXP (addr, 0)); -- 2.7.4