core/kernel_linux/clients/umbra/instrument.c
/* 
 * # addr alignment code 
 * # map check code
 * # map search code 
 * # clean call 
 */
# addr alignment code
# map check code
# map search code
# clean call
# addr alignment code # map check code # map search code # clean call
static app_pc
emit_fast_lookup_with_reg(void        *drcontext, 
                          umbra_info_t *info, 
                          app_pc       pc, 
                          reg_id_t     reg)
{
    int pos;
    UMBRA_REG_TO_POS(reg, pos);
    pc = emit_addr_alignment_code(drcontext, info, pc, reg);
    info->map_check_pc[pos]  = pc;
    pc = emit_map_check_code(drcontext, info, pc, reg);
    info->map_search_pc[pos] = pc;
    pc = emit_map_search_code(drcontext, info, pc, reg);
    info->clean_call_pc[pos] = pc;
    pc = emit_clean_call_code(drcontext, info, pc, reg);
    return pc;
}
static app_pc emit_fast_lookup_with_reg ( void * drcontext , umbra_info_t * info , app_pc pc , reg_id_t reg ) { int pos ; UMBRA_REG_TO_POS ( reg , pos ) ; pc = emit_addr_alignment_code ( drcontext , info , pc , reg ) ; info -> map_check_pc [ pos ] = pc ; pc = emit_map_check_code ( drcontext , info , pc , reg ) ; info -> map_search_pc [ pos ] = pc ; pc = emit_map_search_code ( drcontext , info , pc , reg ) ; info -> clean_call_pc [ pos ] = pc ; pc = emit_clean_call_code ( drcontext , info , pc , reg ) ; return pc ; }
# addr alignment code
 # map check code
 # map search code
 # clean call
# addr alignment code # map check code # map search code # clean call