aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-vax.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-vax.c')
-rw-r--r--gas/config/tc-vax.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c
index 36a0afe..dced489 100644
--- a/gas/config/tc-vax.c
+++ b/gas/config/tc-vax.c
@@ -1,5 +1,5 @@
/* tc-vax.c - vax-specific -
- Copyright (C) 1987, 1991, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1991, 1992, 1994 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -257,7 +257,7 @@ md_begin ()
FLONUM_TYPE *fP;
int i;
- if (errtxt = vip_begin (1, "$", "*", "`"))
+ if ((errtxt = vip_begin (1, "$", "*", "`")) != 0)
{
as_fatal ("VIP_BEGIN error:%s", errtxt);
}
@@ -362,7 +362,7 @@ md_assemble (instruction_string)
* and we can safely flush it, without causing interpass symbol phase
* errors. That is, without changing label values in different passes.
*/
- if (goofed = (*v.vit_error))
+ if ((goofed = (*v.vit_error)) != 0)
{
as_warn ("Ignoring statement due to \"%s\"", v.vit_error);
}
@@ -587,8 +587,8 @@ md_assemble (instruction_string)
}
else
{
- as_warn ("A bignum/flonum may not be a displacement: 0x%x used",
- expP->X_add_number = 0x80000000);
+ as_warn ("A bignum/flonum may not be a displacement: 0x%lx used",
+ (expP->X_add_number = 0x80000000L));
/* Chosen so luser gets the most offset bits to patch later. */
}
expP->X_add_number = floatP->low[0]
@@ -909,7 +909,8 @@ md_assemble (instruction_string)
{
if (this_add_number < 0 || this_add_number >= 64)
{
- as_warn ("Short literal overflow(%d.), immediate mode assumed.", this_add_number);
+ as_warn ("Short literal overflow(%ld.), immediate mode assumed.",
+ (long) this_add_number);
operandP->vop_short = 'i';
operandP->vop_mode = 8;
operandP->vop_reg = 0xF;
@@ -1022,7 +1023,7 @@ md_assemble (instruction_string)
{
/* # or S^# or I^# */
if (length == 0
- && to_seg == SEG_ABSOLUTE
+ && to_seg == SEG_ABSOLUTE && (expP->X_op != O_big)
&& operandP->vop_mode == 8 /* No '@'. */
&& this_add_number < 64
&& this_add_number >= 0)
@@ -1040,7 +1041,7 @@ md_assemble (instruction_string)
p = frag_more (nbytes + 1);
know (operandP->vop_reg == 0xF);
p[0] = (operandP->vop_mode << 4) | 0xF;
- if (to_seg == SEG_ABSOLUTE)
+ if ((to_seg == SEG_ABSOLUTE) && (expP->X_op != O_big))
{
/*
* If nbytes > 4, then we are scrod. We
@@ -1669,7 +1670,7 @@ static const struct vot
/* CASEx has no branch addresses in our conception of it. */
/* You should use ".word ..." statements after the "case ...". */
- {"", ""} /* empty is end sentinel */
+ {"", {"", 0}} /* empty is end sentinel */
}; /* synthetic_votstrs */
@@ -1823,7 +1824,7 @@ vip (vitP, instring)
*/
*q = 0;
operandp->vop_width = p[1];
- operandp->vop_nbytes = vax_operand_width_size[p[1]];
+ operandp->vop_nbytes = vax_operand_width_size[(unsigned) p[1]];
operandp->vop_access = p[0];
vip_op (instring, operandp);
*q = c; /* Restore input text. */
@@ -2187,7 +2188,7 @@ vip_op_1 (bit, syms)
{
unsigned char t;
- while (t = *syms++)
+ while ((t = *syms++) != 0)
vip_metacharacters[t] |= bit;
}
@@ -2324,7 +2325,7 @@ vip_op (optext, vopP)
if (*p == ' ') /* Expect all whitespace reduced to ' '. */
p++; /* skip over whitespace */
- if (at = INDIRECTP (*p))
+ if ((at = INDIRECTP (*p)) != 0)
{ /* 1 if *p=='@'(or '*' for Un*x) */
p++; /* at is determined */
if (*p == ' ') /* Expect all whitespace reduced to ' '. */
@@ -2351,7 +2352,7 @@ vip_op (optext, vopP)
if (*p == ' ') /* Expect all whitespace reduced to ' '. */
p++; /* skip over whitespace */
- if (hash = IMMEDIATEP (*p)) /* 1 if *p=='#' ('$' for Un*x) */
+ if ((hash = IMMEDIATEP (*p)) != 0) /* 1 if *p=='#' ('$' for Un*x) */
p++; /* hash is determined */
/*
@@ -3098,7 +3099,7 @@ md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
}
#ifdef OBJ_VMS
-CONST char *md_shortopts = "d:STt:V+1h:Hv:";
+CONST char *md_shortopts = "d:STt:V+1h:Hv::";
#else
CONST char *md_shortopts = "d:STt:V";
#endif
@@ -3158,6 +3159,8 @@ md_parse_option (c, arg)
case 'v':
{
extern char *compiler_version_string;
+ if (!arg || !*arg || access (arg, 0) == 0)
+ return 0; /* have caller show the assembler version */
compiler_version_string = arg;
}
break;
@@ -3184,12 +3187,13 @@ VAX options:\n\
-V ignored\n");
#ifdef OBJ_VMS
fprintf (stream, "\
--+ hash names longer than 31 characters\n\
--1 don't do const thing\n\
+VMS options:\n\
+-+ hash encode names longer than 31 characters\n\
+-1 `const' handling compatible with gcc 1.x\n\
-H show new symbol after hash truncation\n\
-h NUM don't hash mixed-case names, and adjust case:\n\
0 = upper, 2 = lower, 3 = preserve case\n\
--vVERSION compiler version is VERSION\n");
+-v\"VERSION\" code being assembled was produced by compiler \"VERSION\"\n");
#endif
}