diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-04-18 19:56:04 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-04-18 19:56:04 +0000 |
commit | 491c7ab2a084b22afa3215001cb1e4b9cfa215a4 (patch) | |
tree | d0909e40953f2917b033d19c8eae322d5ade1cc5 /gcc/config/m68k/m68k.h | |
parent | f3d97cbae9eb503c5c220c9997bfe43f89de9d7e (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.h | 7 |
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 \ |