Exemple #1
0
void set_lineno(IR * ir, UINT lineno, Region * ru)
{
    DbxAttachInfo * da;
    ASSERT0(ru);
    if (IR_ai(ir) == NULL) {
        IR_ai(ir) = ru->allocAIContainer();
        da = (DbxAttachInfo*)smpoolMalloc(
                 sizeof(DbxAttachInfo), ru->get_pool());
        ASSERT0(da);
        da->init();
        IR_ai(ir)->set((BaseAttachInfo*)da);
    } else {
        IR_ai(ir)->init();
        da = (DbxAttachInfo*)IR_ai(ir)->get(AI_DBX);
        if (da == NULL) {
            da = (DbxAttachInfo*)smpoolMalloc(
                     sizeof(DbxAttachInfo), ru->get_pool());
            ASSERT0(da);
            da->init();
            ASSERT0(da);
            IR_ai(ir)->set((BaseAttachInfo*)da);
        }
    }
    DBX_lineno(&da->dbx) = lineno;
}
Exemple #2
0
LabelInfo * allocLabel(SMemPool * pool)
{
    LabelInfo * p = (LabelInfo*)smpoolMalloc(sizeof(LabelInfo), pool);
    ASSERT0(p);
    ::memset(p, 0, sizeof(LabelInfo));
    return p;
}
Exemple #3
0
void * IR_EXPR_TAB::xmalloc(INT size)
{
    void * p = smpoolMalloc(size, m_pool);
    ASSERT0(p);
    memset(p, 0, size);
    return p;
}
Exemple #4
0
//Copy dbx from 'src' to 'tgt'.
void copyDbx(IR * tgt, IR const* src, Region * ru)
{
    ASSERT0(ru);
    if (IR_ai(src) == NULL) {
        return;
    }

    DbxAttachInfo * src_da = (DbxAttachInfo*)IR_ai(src)->get(AI_DBX);
    if (IR_ai(tgt) == NULL) {
        if (src_da == NULL) {
            return;
        }
        IR_ai(tgt) = ru->allocAIContainer();
    }
    ASSERT0(IR_ai(tgt));
    if (src_da == NULL) {
        IR_ai(tgt)->clean(AI_DBX);
        return;
    }

    DbxAttachInfo * tgt_da = (DbxAttachInfo*)IR_ai(tgt)->get(AI_DBX);
    if (tgt_da == NULL) {
        tgt_da = (DbxAttachInfo*)smpoolMalloc(
                     sizeof(DbxAttachInfo), ru->get_pool());
        ASSERT0(tgt_da);
        tgt_da->init();
        IR_ai(tgt)->set((BaseAttachInfo*)tgt_da);
    }
    tgt_da->dbx.copy(src_da->dbx);
}
Exemple #5
0
static void * xmalloc(size_t size)
{
    void * p = smpoolMalloc(size, g_pool_general_used);
    if (p == NULL) return NULL;
    memset(p, 0, size);
    return p;
}
Exemple #6
0
//Malloc memory for tmp used.
void * tlloc(LONG size)
{
    if (size < 0 || size == 0) return NULL;
    if (g_pool_tmp_used == NULL) {
        g_pool_tmp_used = smpoolCreate(8, MEM_COMM);
    }
    void * p = smpoolMalloc(size, g_pool_tmp_used);
    if (p == NULL) return NULL;
    memset(p, 0, size);
    return p;
}
Exemple #7
0
void* drLinearAlloc(size_t size)
{
    ASSERT0(g_d2d_used_pool);
    return smpoolMalloc(size, g_d2d_used_pool);
}