void frm_emu_init(void) { /* Register architecture */ frm_emu_arch = arch_list_register("Fermi", "frm"); frm_emu_arch->sim_kind = frm_emu_sim_kind; /* Allocate */ frm_emu = xcalloc(1, sizeof(struct frm_emu_t)); if (!frm_emu) fatal("%s: out of memory", __FUNCTION__); /* Initialize */ frm_emu->const_mem = mem_create(); frm_emu->const_mem->safe = 0; frm_emu->global_mem = mem_create(); frm_emu->global_mem->safe = 0; frm_emu->total_global_mem_size = 1 << 31; /* 2GB */ frm_emu->free_global_mem_size = frm_emu->total_global_mem_size; frm_emu->global_mem_top = 0; frm_disasm_init(); frm_isa_init(); /* Create device */ frm_cuda_object_list = linked_list_create(); frm_cuda_device_create(); }
void frm_emu_init(void) { /* Classes */ CLASS_REGISTER(FrmEmu); /* Open report file */ if (*frm_emu_report_file_name) { frm_emu_report_file = file_open_for_write(frm_emu_report_file_name); if (!frm_emu_report_file) fatal("%s: cannot open report for Fermi emulator", frm_emu_report_file_name); } /* Create emulator */ frm_emu = new(FrmEmu); /* Initialize disassembler (decoding tables...) */ frm_disasm_init(); /* Initialize ISA (instruction execution tables...) */ frm_isa_init(); }