亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? helper.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 2 頁
字號:
#if !defined(CONFIG_USER_ONLY)static const char * const excp_names[EXCP_LAST + 1] = {    [EXCP_RESET] = "reset",    [EXCP_SRESET] = "soft reset",    [EXCP_DSS] = "debug single step",    [EXCP_DINT] = "debug interrupt",    [EXCP_NMI] = "non-maskable interrupt",    [EXCP_MCHECK] = "machine check",    [EXCP_EXT_INTERRUPT] = "interrupt",    [EXCP_DFWATCH] = "deferred watchpoint",    [EXCP_DIB] = "debug instruction breakpoint",    [EXCP_IWATCH] = "instruction fetch watchpoint",    [EXCP_AdEL] = "address error load",    [EXCP_AdES] = "address error store",    [EXCP_TLBF] = "TLB refill",    [EXCP_IBE] = "instruction bus error",    [EXCP_DBp] = "debug breakpoint",    [EXCP_SYSCALL] = "syscall",    [EXCP_BREAK] = "break",    [EXCP_CpU] = "coprocessor unusable",    [EXCP_RI] = "reserved instruction",    [EXCP_OVERFLOW] = "arithmetic overflow",    [EXCP_TRAP] = "trap",    [EXCP_FPE] = "floating point",    [EXCP_DDBS] = "debug data break store",    [EXCP_DWATCH] = "data watchpoint",    [EXCP_LTLBL] = "TLB modify",    [EXCP_TLBL] = "TLB load",    [EXCP_TLBS] = "TLB store",    [EXCP_DBE] = "data bus error",    [EXCP_DDBL] = "debug data break load",    [EXCP_THREAD] = "thread",    [EXCP_MDMX] = "MDMX",    [EXCP_C2E] = "precise coprocessor 2",    [EXCP_CACHE] = "cache error",};#endifvoid do_interrupt (CPUState *env){#if !defined(CONFIG_USER_ONLY)    target_ulong offset;    int cause = -1;    const char *name;    if (logfile && env->exception_index != EXCP_EXT_INTERRUPT) {        if (env->exception_index < 0 || env->exception_index > EXCP_LAST)            name = "unknown";        else            name = excp_names[env->exception_index];        fprintf(logfile, "%s enter: PC " TARGET_FMT_lx " EPC " TARGET_FMT_lx " %s exception\n",                __func__, env->PC[env->current_tc], env->CP0_EPC, name);    }    if (env->exception_index == EXCP_EXT_INTERRUPT &&        (env->hflags & MIPS_HFLAG_DM))        env->exception_index = EXCP_DINT;    offset = 0x180;    switch (env->exception_index) {    case EXCP_DSS:        env->CP0_Debug |= 1 << CP0DB_DSS;        /* Debug single step cannot be raised inside a delay slot and         * resume will always occur on the next instruction         * (but we assume the pc has always been updated during         *  code translation).         */        env->CP0_DEPC = env->PC[env->current_tc];        goto enter_debug_mode;    case EXCP_DINT:        env->CP0_Debug |= 1 << CP0DB_DINT;        goto set_DEPC;    case EXCP_DIB:        env->CP0_Debug |= 1 << CP0DB_DIB;        goto set_DEPC;    case EXCP_DBp:        env->CP0_Debug |= 1 << CP0DB_DBp;        goto set_DEPC;    case EXCP_DDBS:        env->CP0_Debug |= 1 << CP0DB_DDBS;        goto set_DEPC;    case EXCP_DDBL:        env->CP0_Debug |= 1 << CP0DB_DDBL;    set_DEPC:        if (env->hflags & MIPS_HFLAG_BMASK) {            /* If the exception was raised from a delay slot,               come back to the jump.  */            env->CP0_DEPC = env->PC[env->current_tc] - 4;            env->hflags &= ~MIPS_HFLAG_BMASK;        } else {            env->CP0_DEPC = env->PC[env->current_tc];        }    enter_debug_mode:        env->hflags |= MIPS_HFLAG_DM | MIPS_HFLAG_64 | MIPS_HFLAG_CP0;        env->hflags &= ~(MIPS_HFLAG_KSU);        /* EJTAG probe trap enable is not implemented... */        if (!(env->CP0_Status & (1 << CP0St_EXL)))            env->CP0_Cause &= ~(1 << CP0Ca_BD);        env->PC[env->current_tc] = (int32_t)0xBFC00480;        break;    case EXCP_RESET:        cpu_reset(env);        break;    case EXCP_SRESET:        env->CP0_Status |= (1 << CP0St_SR);        memset(env->CP0_WatchLo, 0, sizeof(*env->CP0_WatchLo));        goto set_error_EPC;    case EXCP_NMI:        env->CP0_Status |= (1 << CP0St_NMI);    set_error_EPC:        if (env->hflags & MIPS_HFLAG_BMASK) {            /* If the exception was raised from a delay slot,               come back to the jump.  */            env->CP0_ErrorEPC = env->PC[env->current_tc] - 4;            env->hflags &= ~MIPS_HFLAG_BMASK;        } else {            env->CP0_ErrorEPC = env->PC[env->current_tc];        }        env->CP0_Status |= (1 << CP0St_ERL) | (1 << CP0St_BEV);        env->hflags |= MIPS_HFLAG_64 | MIPS_HFLAG_CP0;        env->hflags &= ~(MIPS_HFLAG_KSU);        if (!(env->CP0_Status & (1 << CP0St_EXL)))            env->CP0_Cause &= ~(1 << CP0Ca_BD);        env->PC[env->current_tc] = (int32_t)0xBFC00000;        break;    case EXCP_EXT_INTERRUPT:        cause = 0;        if (env->CP0_Cause & (1 << CP0Ca_IV))            offset = 0x200;        goto set_EPC;    case EXCP_LTLBL:        cause = 1;        goto set_EPC;    case EXCP_TLBL:        cause = 2;        if (env->error_code == 1 && !(env->CP0_Status & (1 << CP0St_EXL))) {#if defined(TARGET_MIPS64)            int R = env->CP0_BadVAddr >> 62;            int UX = (env->CP0_Status & (1 << CP0St_UX)) != 0;            int SX = (env->CP0_Status & (1 << CP0St_SX)) != 0;            int KX = (env->CP0_Status & (1 << CP0St_KX)) != 0;            if ((R == 0 && UX) || (R == 1 && SX) || (R == 3 && KX))                offset = 0x080;            else#endif                offset = 0x000;        }        goto set_EPC;    case EXCP_TLBS:        cause = 3;        if (env->error_code == 1 && !(env->CP0_Status & (1 << CP0St_EXL))) {#if defined(TARGET_MIPS64)            int R = env->CP0_BadVAddr >> 62;            int UX = (env->CP0_Status & (1 << CP0St_UX)) != 0;            int SX = (env->CP0_Status & (1 << CP0St_SX)) != 0;            int KX = (env->CP0_Status & (1 << CP0St_KX)) != 0;            if ((R == 0 && UX) || (R == 1 && SX) || (R == 3 && KX))                offset = 0x080;            else#endif                offset = 0x000;        }        goto set_EPC;    case EXCP_AdEL:        cause = 4;        goto set_EPC;    case EXCP_AdES:        cause = 5;        goto set_EPC;    case EXCP_IBE:        cause = 6;        goto set_EPC;    case EXCP_DBE:        cause = 7;        goto set_EPC;    case EXCP_SYSCALL:        cause = 8;        goto set_EPC;    case EXCP_BREAK:        cause = 9;        goto set_EPC;    case EXCP_RI:        cause = 10;        goto set_EPC;    case EXCP_CpU:        cause = 11;        env->CP0_Cause = (env->CP0_Cause & ~(0x3 << CP0Ca_CE)) |                         (env->error_code << CP0Ca_CE);        goto set_EPC;    case EXCP_OVERFLOW:        cause = 12;        goto set_EPC;    case EXCP_TRAP:        cause = 13;        goto set_EPC;    case EXCP_FPE:        cause = 15;        goto set_EPC;    case EXCP_C2E:        cause = 18;        goto set_EPC;    case EXCP_MDMX:        cause = 22;        goto set_EPC;    case EXCP_DWATCH:        cause = 23;        /* XXX: TODO: manage defered watch exceptions */        goto set_EPC;    case EXCP_MCHECK:        cause = 24;        goto set_EPC;    case EXCP_THREAD:        cause = 25;        goto set_EPC;    case EXCP_CACHE:        cause = 30;        if (env->CP0_Status & (1 << CP0St_BEV)) {            offset = 0x100;        } else {            offset = 0x20000100;        }    set_EPC:        if (!(env->CP0_Status & (1 << CP0St_EXL))) {            if (env->hflags & MIPS_HFLAG_BMASK) {                /* If the exception was raised from a delay slot,                   come back to the jump.  */                env->CP0_EPC = env->PC[env->current_tc] - 4;                env->CP0_Cause |= (1 << CP0Ca_BD);            } else {                env->CP0_EPC = env->PC[env->current_tc];                env->CP0_Cause &= ~(1 << CP0Ca_BD);            }            env->CP0_Status |= (1 << CP0St_EXL);            env->hflags |= MIPS_HFLAG_64 | MIPS_HFLAG_CP0;            env->hflags &= ~(MIPS_HFLAG_KSU);        }        env->hflags &= ~MIPS_HFLAG_BMASK;        if (env->CP0_Status & (1 << CP0St_BEV)) {            env->PC[env->current_tc] = (int32_t)0xBFC00200;        } else {            env->PC[env->current_tc] = (int32_t)(env->CP0_EBase & ~0x3ff);        }        env->PC[env->current_tc] += offset;        env->CP0_Cause = (env->CP0_Cause & ~(0x1f << CP0Ca_EC)) | (cause << CP0Ca_EC);        break;    default:        if (logfile) {            fprintf(logfile, "Invalid MIPS exception %d. Exiting\n",                    env->exception_index);        }        printf("Invalid MIPS exception %d. Exiting\n", env->exception_index);        exit(1);    }    if (logfile && env->exception_index != EXCP_EXT_INTERRUPT) {        fprintf(logfile, "%s: PC " TARGET_FMT_lx " EPC " TARGET_FMT_lx " cause %d\n"                "    S %08x C %08x A " TARGET_FMT_lx " D " TARGET_FMT_lx "\n",                __func__, env->PC[env->current_tc], env->CP0_EPC, cause,                env->CP0_Status, env->CP0_Cause, env->CP0_BadVAddr,                env->CP0_DEPC);    }#endif /* !defined(CONFIG_USER_ONLY) */    env->exception_index = EXCP_NONE;}void r4k_invalidate_tlb (CPUState *env, int idx, int use_extra){    r4k_tlb_t *tlb;    target_ulong addr;    target_ulong end;    uint8_t ASID = env->CP0_EntryHi & 0xFF;    target_ulong mask;    tlb = &env->tlb->mmu.r4k.tlb[idx];    /* The qemu TLB is flushed when the ASID changes, so no need to       flush these entries again.  */    if (tlb->G == 0 && tlb->ASID != ASID) {        return;    }    if (use_extra && env->tlb->tlb_in_use < MIPS_TLB_MAX) {        /* For tlbwr, we can shadow the discarded entry into	   a new (fake) TLB entry, as long as the guest can not	   tell that it's there.  */        env->tlb->mmu.r4k.tlb[env->tlb->tlb_in_use] = *tlb;        env->tlb->tlb_in_use++;        return;    }    /* 1k pages are not supported. */    mask = tlb->PageMask | ~(TARGET_PAGE_MASK << 1);    if (tlb->V0) {        addr = tlb->VPN & ~mask;#if defined(TARGET_MIPS64)        if (addr >= (0xFFFFFFFF80000000ULL & env->SEGMask)) {            addr |= 0x3FFFFF0000000000ULL;        }#endif        end = addr | (mask >> 1);        while (addr < end) {            tlb_flush_page (env, addr);            addr += TARGET_PAGE_SIZE;        }    }    if (tlb->V1) {        addr = (tlb->VPN & ~mask) | ((mask >> 1) + 1);#if defined(TARGET_MIPS64)        if (addr >= (0xFFFFFFFF80000000ULL & env->SEGMask)) {            addr |= 0x3FFFFF0000000000ULL;        }#endif        end = addr | mask;        while (addr < end) {            tlb_flush_page (env, addr);            addr += TARGET_PAGE_SIZE;        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一卡二卡三卡日韩欧美| 4438x成人网最大色成网站| 成人黄色777网| 在线这里只有精品| 欧美日韩在线一区二区| 91精品国产综合久久福利| 精品国产91亚洲一区二区三区婷婷| 日韩欧美在线影院| 国产精品电影院| 亚洲男女一区二区三区| 亚洲成人黄色小说| 成人av免费观看| 亚洲精品一区二区三区在线观看 | 精品无人区卡一卡二卡三乱码免费卡| 国产一区二区按摩在线观看| 成人国产在线观看| 亚洲欧美日韩电影| 日韩三级视频在线观看| 精品在线免费观看| 精品免费日韩av| 成人免费毛片片v| 亚洲美女淫视频| 欧美一区二区网站| 波多野结衣欧美| 亚洲电影欧美电影有声小说| 欧美日本韩国一区| 国内不卡的二区三区中文字幕 | 日韩欧美成人一区二区| 国产亚洲一区二区在线观看| 国产麻豆91精品| 欧美日本一区二区三区| 五月婷婷另类国产| 777欧美精品| 视频一区二区欧美| 欧美大片国产精品| 色噜噜狠狠成人中文综合| 亚洲视频网在线直播| 一区二区在线观看av| 欧美日韩的一区二区| 福利视频网站一区二区三区| 亚洲精品欧美二区三区中文字幕| 久久夜色精品一区| 国产精品99久久久久久宅男| 国产精品国产三级国产普通话蜜臀 | 在线观看视频一区二区欧美日韩| 精品毛片乱码1区2区3区 | 91精品中文字幕一区二区三区| 国产精品久久久一本精品 | 久久午夜色播影院免费高清| 九色|91porny| 国产精品全国免费观看高清| 粉嫩高潮美女一区二区三区| 亚洲欧洲日韩综合一区二区| 91亚洲精品乱码久久久久久蜜桃 | 国产成人av电影| 亚洲免费观看高清在线观看| 欧美午夜在线观看| 麻豆91免费看| 亚洲精品免费在线观看| 8v天堂国产在线一区二区| 国内精品写真在线观看| 亚洲视频狠狠干| 欧美精品一区二区三区四区 | 国产精品久久久久影院老司| 成人国产在线观看| 亚洲成年人影院| 国产欧美日韩三区| 日韩欧美中文字幕制服| 色噜噜狠狠成人中文综合| 久久电影网电视剧免费观看| 一区二区三区资源| 日本一区二区三区在线观看| 在线不卡中文字幕播放| 91网站最新网址| 国产成人鲁色资源国产91色综| 亚洲三级电影网站| 久久久精品中文字幕麻豆发布| 91精品国产丝袜白色高跟鞋| 一本大道久久a久久综合婷婷| 久久99精品网久久| 亚洲日本成人在线观看| 日韩视频免费观看高清完整版在线观看 | 五月天丁香久久| 一区二区三区不卡视频在线观看| 中文字幕第一区| 中文字幕第一区综合| 久久精品一区四区| 国产精品天天看| 中文字幕一区二区三区乱码在线| 亚洲精品一区二区三区四区高清| 日韩一区二区在线看| 日韩色在线观看| 久久久久久久久久久黄色| 精品国产青草久久久久福利| www国产精品av| 夜夜嗨av一区二区三区四季av| 国产精品嫩草99a| 中文字幕一区二区三区蜜月| 亚洲久本草在线中文字幕| 亚洲综合视频网| 国产在线视频精品一区| 成人一区二区三区中文字幕| 成人短视频下载| 欧美日韩成人综合| 久久综合国产精品| 亚洲一本大道在线| 国产原创一区二区| 色乱码一区二区三区88| 91精品国产入口| 国产精品理伦片| 狠狠久久亚洲欧美| 在线观看视频一区| 中文字幕在线视频一区| 亚洲成人av福利| 一本大道久久a久久综合| 2020国产精品| 奇米一区二区三区| 色婷婷亚洲精品| 国产精品天干天干在线综合| 亚洲国产精品久久久久婷婷884 | 老司机精品视频导航| 9l国产精品久久久久麻豆| 日韩一区二区在线观看| 亚洲精品国产成人久久av盗摄| 国产乱对白刺激视频不卡| 6080午夜不卡| 日本亚洲欧美天堂免费| 欧美中文字幕久久| 亚洲免费视频成人| 北岛玲一区二区三区四区| 国产日韩欧美电影| 国产精品18久久久久久久久久久久| 欧美久久久一区| 日本特黄久久久高潮| 日韩欧美电影在线| 国内精品国产成人国产三级粉色| 欧美一级日韩一级| 日本最新不卡在线| 欧美成人一区二区三区片免费| 青青草成人在线观看| 欧美不卡一二三| 国产a视频精品免费观看| 亚洲欧洲国产日韩| 国产午夜精品一区二区三区视频 | 欧美一区二区三区视频免费| 五月天丁香久久| 中文字幕av不卡| 色欧美片视频在线观看在线视频| 国产精品护士白丝一区av| 99久久伊人久久99| 91精品欧美一区二区三区综合在| 麻豆精品一区二区综合av| 精品成人a区在线观看| 午夜精品福利一区二区蜜股av| 欧美日韩激情一区| 经典三级视频一区| 日韩伦理免费电影| 精品999在线播放| 91在线精品一区二区三区| 亚洲动漫第一页| 久久婷婷色综合| 9191成人精品久久| 国产**成人网毛片九色 | 精品国产免费久久| 久久精品国产网站| 26uuu亚洲婷婷狠狠天堂| 国产成人综合亚洲91猫咪| 久久久午夜精品理论片中文字幕| 国产最新精品免费| 亚洲国产综合在线| 久久午夜色播影院免费高清 | 一区二区高清视频在线观看| 日韩美女主播在线视频一区二区三区| 国产精品一二三四区| 日韩av一区二区三区| 亚洲三级免费电影| 精品久久久三级丝袜| 高清在线观看日韩| 国产成人福利片| 美女mm1313爽爽久久久蜜臀| 亚洲一二三区视频在线观看| 久久久91精品国产一区二区三区| 7799精品视频| 欧美精品色综合| 成人av资源在线| 国产精一品亚洲二区在线视频| 免费成人小视频| 一区二区三区四区av| 国产精品视频第一区| 国产欧美视频在线观看| 2021国产精品久久精品| 欧美xxxxx裸体时装秀| 日韩午夜av电影| 欧美一级一区二区| 久久久久久久久久美女| 久久久欧美精品sm网站| 国产欧美日韩精品在线| 国产日韩精品一区| 国产精品网站在线播放| 精品动漫一区二区三区在线观看|