Example #1
0
static void OutputLiteral (Literal* L)
/* Output one literal to the currently active data segment */
{
    /* Translate the literal into the target charset */
    TranslateLiteral (L);

    /* Define the label for the literal */
    g_defdatalabel (L->Label);

    /* Output the literal data */
    g_defbytes (SB_GetConstBuf (&L->Data), SB_GetLen (&L->Data));

    /* Mark the literal as output */
    L->Output = 1;
}
Example #2
0
void DumpLiteralPool (void)
/* Dump the literal pool */
{
    /* If nothing there, exit... */
    if (SB_GetLen (&LiteralPool) == 0) {
        return;
    }

    /* Switch to the data segment */
    if (IS_Get (&WritableStrings)) {
        g_usedata ();
    } else {
        g_userodata ();
    }

    /* Define the label */
    g_defdatalabel (LiteralPoolLabel);

    /* Translate the buffer contents into the target charset */
    TranslateLiteralPool (0);

    /* Output the buffer data */
    g_defbytes (SB_GetConstBuf (&LiteralPool), SB_GetLen (&LiteralPool));
}