Beispiel #1
0
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();
}
Beispiel #2
0
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();
}