aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m68k/m68k.h
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-04-18 19:56:04 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-04-18 19:56:04 +0000
commit491c7ab2a084b22afa3215001cb1e4b9cfa215a4 (patch)
treed0909e40953f2917b033d19c8eae322d5ade1cc5 /gcc/config/m68k/m68k.h
parentf3d97cbae9eb503c5c220c9997bfe43f89de9d7e (diff)
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@783 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/m68k.h')
-rw-r--r--gcc/config/m68k/m68k.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 88997bcfe43..44a1b737002 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -1285,7 +1285,7 @@ __transfer_from_trampoline () \
of a switch statement. If the code is computed here,
return it with a return statement. Otherwise, break from the switch. */
-#define CONST_COSTS(RTX,CODE) \
+#define CONST_COSTS(RTX,CODE,OUTER_CODE) \
case CONST_INT: \
/* Constant zero is super cheap due to clr instruction. */ \
if (RTX == const0_rtx) return 0; \
@@ -1293,7 +1293,8 @@ __transfer_from_trampoline () \
if (INTVAL (RTX) >= -128 && INTVAL (RTX) <= 127) return 1; \
/* Constants between -136 and 254 are easily generated */ \
/* by intelligent uses of moveq, add[q], and subq */ \
- if (INTVAL (RTX) >= -136 && INTVAL (RTX) <= 254) return 2; \
+ if (OUTER_CODE == SET && INTVAL (RTX) >= -136 \
+ && INTVAL (RTX) <= 254) return 2; \
case CONST: \
case LABEL_REF: \
case SYMBOL_REF: \
@@ -1310,7 +1311,7 @@ __transfer_from_trampoline () \
#define MULL_COST (TARGET_68040 ? 5 : 13)
#define MULW_COST (TARGET_68040 ? 3 : 8)
-#define RTX_COSTS(X,CODE) \
+#define RTX_COSTS(X,CODE,OUTER_CODE) \
case PLUS: \
/* An lea costs about three times as much as a simple add. */ \
if (GET_MODE (X) == SImode \