#include "wchar.h"
#ifndef TC_START_LABEL
-#define TC_START_LABEL(x,y,z) (x == ':')
+#define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR) (NEXT_CHAR == ':')
#endif
/* Set by the object-format or the target. */
symbol in the symbol table. */
if (!mri_line_macro
#ifdef TC_START_LABEL_WITHOUT_COLON
- && TC_START_LABEL_WITHOUT_COLON (next_char,
- input_line_pointer)
+ && TC_START_LABEL_WITHOUT_COLON (nul_char, next_char)
#endif
)
line_label = colon (line_start);
S points to the beginning of the symbol.
[In case of pseudo-op, s->'.'.]
Input_line_pointer->'\0' where NUL_CHAR was. */
- if (TC_START_LABEL (next_char, s, input_line_pointer))
+ if (TC_START_LABEL (s, nul_char, next_char))
{
if (flag_m68k_mri)
{
return;
} /* Too complex. */
- value |= ((~(-1 << width) & exp->X_add_number)
+ value |= ((~(-(1 << width)) & exp->X_add_number)
<< ((BITS_PER_CHAR * nbytes) - bits_available));
if ((bits_available -= width) == 0
}
/* Generate the appropriate fragments for a given expression to emit a
- leb128 value. */
+ leb128 value. SIGN is 1 for sleb, 0 for uleb. */
static void
emit_leb128_expr (expressionS *exp, int sign)
#ifndef NO_STRING_ESCAPES
case '\\':
- switch (c = *input_line_pointer++)
+ switch (c = *input_line_pointer++ & CHAR_MASK)
{
case 'b':
c = '\b';
number = number * 8 + c - '0';
}
- c = number & 0xff;
+ c = number & CHAR_MASK;
}
--input_line_pointer;
break;
number = number * 16 + c - 'a' + 10;
c = *input_line_pointer++;
}
- c = number & 0xff;
+ c = number & CHAR_MASK;
--input_line_pointer;
}
break;