aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/vax
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2004-12-28 07:51:17 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2004-12-28 07:51:17 +0000
commit76335fefffd0708a102ae66e67b8d5e8c0ae6dac (patch)
tree9e9f425e99237648c78a8836866bd571eb8cf073 /gcc/config/vax
parent685c2171c1b55fdac1bd276c54d9bea41d872373 (diff)
downloadgcc-76335fefffd0708a102ae66e67b8d5e8c0ae6dac.zip
gcc-76335fefffd0708a102ae66e67b8d5e8c0ae6dac.tar.gz
gcc-76335fefffd0708a102ae66e67b8d5e8c0ae6dac.tar.bz2
vax.c (vax_address_cost, [...]): Correct casts.
* vax.c (vax_address_cost, vax_rtx_cost): Correct casts. (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. From-SVN: r92667
Diffstat (limited to 'gcc/config/vax')
-rw-r--r--gcc/config/vax/vax.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index da1b481..ca5fb6a 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -474,7 +474,7 @@ vax_address_cost_1 (register rtx addr)
case CONST_INT:
/* byte offsets cost nothing (on a VAX 2, they cost 1 cycle) */
if (offset == 0)
- offset = (unsigned)(INTVAL(addr)+128) > 256;
+ offset = (unsigned HOST_WIDE_INT)(INTVAL(addr)+128) > 256;
break;
case CONST:
case SYMBOL_REF:
@@ -644,13 +644,13 @@ vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code)
fmt = "e"; /* all constant rotate counts are short */
break;
case PLUS:
- /* Check for small negative integer operand: subl2 can be used with
- a short positive constant instead. */
- if (GET_CODE (XEXP (x, 1)) == CONST_INT)
- if ((unsigned)(INTVAL (XEXP (x, 1)) + 63) < 127)
- fmt = "e";
case MINUS:
c = (mode == DFmode) ? 13 : 8; /* 6/8 on VAX 9000, 16/15 on VAX 2 */
+ /* Small integer operands can use subl2 and addl2. */
+ if ((GET_CODE (XEXP (x, 1)) == CONST_INT)
+ && (unsigned HOST_WIDE_INT)(INTVAL (XEXP (x, 1)) + 63) < 127)
+ fmt = "e";
+ break;
case IOR:
case XOR:
c = 3;
@@ -660,7 +660,7 @@ vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code)
c = 3;
if (GET_CODE (XEXP (x, 0)) == CONST_INT)
{
- if ((unsigned)~INTVAL (XEXP (x, 0)) > 63)
+ if ((unsigned HOST_WIDE_INT)~INTVAL (XEXP (x, 0)) > 63)
c = 4;
fmt = "e";
i = 1;
@@ -713,7 +713,8 @@ vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code)
switch (code)
{
case CONST_INT:
- if ((unsigned)INTVAL (op) > 63 && GET_MODE (x) != QImode)
+ if ((unsigned HOST_WIDE_INT)INTVAL (op) > 63
+ && GET_MODE (x) != QImode)
c += 1; /* 2 on VAX 2 */
break;
case CONST: