void X86ContextDump(Object *self, FILE *f) { X86Context *context = asX86Context(self); char state_str[MAX_STRING_SIZE]; /* Title */ fprintf(f, "------------\n"); fprintf(f, "Context %d\n", context->pid); fprintf(f, "------------\n\n"); str_map_flags(&x86_context_state_map, context->state, state_str, sizeof state_str); fprintf(f, "State = %s\n", state_str); if (!context->parent) fprintf(f, "Parent = None\n"); else fprintf(f, "Parent = %d\n", context->parent->pid); fprintf(f, "Heap break: 0x%x\n", context->mem->heap_break); /* Bit masks */ fprintf(f, "BlockedSignalMask = 0x%llx ", context->signal_mask_table->blocked); x86_sigset_dump(context->signal_mask_table->blocked, f); fprintf(f, "\nPendingSignalMask = 0x%llx ", context->signal_mask_table->pending); x86_sigset_dump(context->signal_mask_table->pending, f); fprintf(f, "\nAffinity = "); bit_map_dump(context->affinity, 0, x86_cpu_num_cores * x86_cpu_num_threads, f); fprintf(f, "\n"); /* End */ fprintf(f, "\n\n"); }
/* Called before and ALU clause starts for a wavefront */ void evg_isa_alu_clause_start(struct evg_wavefront_t *wavefront) { /* Copy 'active' mask at the top of the stack to 'pred' mask */ bit_map_copy(wavefront->pred, 0, wavefront->active_stack, wavefront->stack_top * wavefront->work_item_count, wavefront->work_item_count); if (debug_status(evg_isa_debug_category)) { evg_isa_debug(" %s:pred=", wavefront->name); bit_map_dump(wavefront->pred, 0, wavefront->work_item_count, debug_file(evg_isa_debug_category)); } /* Flag 'push_before_done' will be set by the first PRED_SET* inst */ wavefront->push_before_done = 0; /* Stats */ wavefront->alu_clause_count++; }