static segT d30v_current_align_seg;
/* The last seen label in the current section. This is used to auto-align
- labels preceeding instructions. */
+ labels preceding instructions. */
static symbolS *d30v_last_label;
/* Two nops. */
Allow either. */
min = -((unsigned long) 1 << (bits - 1));
max = ((unsigned long) 1 << bits) - 1;
- return (long)num < min || (long)num > max;
+ return (long) num < min || (long) num > max;
}
if (flags & OPERAND_SHIFT)
{
/* We know that all shifts are right by three bits. */
+ num >>= 3;
if (flags & OPERAND_SIGNED)
- num = (unsigned long) ((long) num >= 0)
- ? (((long) num) >> 3)
- : ((num >> 3) | ~(~(unsigned long) 0 >> 3));
- else
- num >>= 3;
+ {
+ unsigned long sign_bit = ((unsigned long) -1L >> 4) + 1;
+ num = (num ^ sign_bit) - sign_bit;
+ }
}
if (flags & OPERAND_SIGNED)
{
max = ((unsigned long) 1 << (bits - 1)) - 1;
min = - ((unsigned long) 1 << (bits - 1));
- return (long)num > max || (long)num < min;
+ return (long) num > max || (long) num < min;
}
else
{
max = ((unsigned long) 1 << bits) - 1;
- min = 0;
- return num > max || num < min;
+ return num > (unsigned long) max;
}
}
return 1;
}
- /* Note: we do not have to worry about subroutine calls occuring
+ /* Note: we do not have to worry about subroutine calls occurring
in the right hand container. The return address is always
aligned to the next 64 bit boundary, be that 64 or 32 bit away. */
switch (exec_type)
insn = build_insn (opcode, myops);
- /* Propigate multiply status. */
+ /* Propagate multiply status. */
if (insn != -1)
{
if (is_parallel && prev_mul32_p)
if (tmp > max)
as_bad_where (file, line, _("value too large to fit in %d bits"), bits);
-
- return;
}
/* d30v_frob_label() is called when after a label is recognized. */
/* Do not assume that if 'd30v_current_align >= n' and
'! switched_seg_p' that it is safe to avoid performing
- this alignement request. The alignment of the current frag
+ this alignment request. The alignment of the current frag
can be changed under our feet, for example by a .ascii
directive in the source code. cf testsuite/gas/d30v/reloc.s */
d30v_cleanup (FALSE);