From 054ef90540950efb272a2e18e39bb0ca43d373d6 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Fri, 8 Mar 2002 16:51:08 +0000 Subject: [PATCH] h8300.c (h8300_adjust_insn_length): Tighten insn length for memory load/store. * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten insn length for memory load/store. From-SVN: r50445 --- gcc/ChangeLog | 5 +++++ gcc/config/h8300/h8300.c | 17 ++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1302bc2e888..de93f0e36a9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-03-08 Kazu Hirata + + * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten + insn length for memory load/store. + 2002-03-08 Craig Rodrigues * doc/install.texi (--with-libiconv-prefix): Document. diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 456577a7a76..b5fcf25688b 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -3549,9 +3549,20 @@ h8300_adjust_insn_length (insn, length) && INTVAL (XEXP (addr, 1)) < 32767) return -4; - /* @aa:16 is 2 bytes shorter than the longest. */ - if (GET_CODE (addr) == SYMBOL_REF - && TINY_DATA_NAME_P (XSTR (addr, 0))) + /* @aa:8 is 6 bytes shorter than the longest. */ + if (GET_MODE (SET_SRC (pat)) == QImode + && ((GET_CODE (addr) == SYMBOL_REF && SYMBOL_REF_FLAG (addr)) + || EIGHTBIT_CONSTANT_ADDRESS_P (addr))) + return -6; + + /* @aa:16 is 4 bytes shorter than the longest. */ + if ((GET_CODE (addr) == SYMBOL_REF + && TINY_DATA_NAME_P (XSTR (addr, 0))) + || TINY_CONSTANT_ADDRESS_P (addr)) + return -4; + + /* @aa:24 is 2 bytes shorter than the longest. */ + if (GET_CODE (addr) == CONST_INT) return -2; } } -- 2.30.2