Exemplo n.º 1
0
/* ========================================================================== */
VOID ILDJIT_startSimulation(THREADID tid, ADDRINT ip) {
    CODECACHE_FlushCache();

    lk_lock(&ildjit_lock, 1);

    /* We are stopping thread creation here, beacuse we can capture the real
     * thread creation in Pin only on starting the thread (first insn), which
     * happens after the actual syscalls.
     * XXX: This way we can capture the creation of some compiler threads,
     * but this is generally fine, since they won't get executed */
    ILDJIT_executorCreation = false;

    ILDJIT_executionStarted = true;

    ILDJIT_executorTID = tid;

    cerr << "Starting execution, TID: " << tid << endl;

    lk_unlock(&ildjit_lock);

    if (reached_warm_invocation) {
        cerr << "Do Early!" << endl;
        doLateILDJITInstrumentation();
        cerr << "Done Early!" << endl;
    }
}
Exemplo n.º 2
0
void fork_func(THREADID threadid, const CONTEXT * ctxt, VOID * v)
{
    /*
     * The function: "CODECACHE_FlushCache()" requires from the calling thread to hold the VM lock.
     */
    CODECACHE_FlushCache(); 
}
Exemplo n.º 3
0
static VOID OnDoFlush()
{
    FlushHappened = FALSE;
    CODECACHE_FlushCache();
}
Exemplo n.º 4
0
static ADDRINT IfFunc ()
{
    CODECACHE_FlushCache();
    return 1;
}