static char* GetLabelName (unsigned flags, unsigned long label, long offs)
{
- static char lbuf [128]; /* Label name */
+ static char lbuf [256]; /* Label name */
/* Create the correct label name */
switch (flags & CF_ADDRMASK) {
case CF_STATIC:
/* Static memory cell */
- sprintf (lbuf, "%s%+ld", LocalLabelName (label), offs);
+ xsprintf (lbuf, sizeof (lbuf), "%s%+ld", LocalLabelName (label), offs);
break;
case CF_EXTERNAL:
/* External label */
- sprintf (lbuf, "_%s%+ld", (char*) label, offs);
+ xsprintf (lbuf, sizeof (lbuf), "_%s%+ld", (char*) label, offs);
break;
case CF_ABSOLUTE:
/* Absolute address */
- sprintf (lbuf, "$%04X", (unsigned)((label+offs) & 0xFFFF));
+ xsprintf (lbuf, sizeof (lbuf), "$%04X", (unsigned)((label+offs) & 0xFFFF));
break;
case CF_REGVAR:
/* Variable in register bank */
- sprintf (lbuf, "regbank+%u", (unsigned)((label+offs) & 0xFFFF));
+ xsprintf (lbuf, sizeof (lbuf), "regbank+%u", (unsigned)((label+offs) & 0xFFFF));
break;
default:
}
-
+
unsigned g_typecast (unsigned lhs, unsigned rhs)
/* Cast the value in the primary register to the operand size that is flagged
* by the lhs value. Return the result value.
g_getstatic (flags, label, offs);
g_add (flags, 0);
break;
-
+
default:
typeerror (flags);