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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? translate.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
    if (insn & ARM_CP_RW_BIT) {        gen_op_movl_T0_cp15(insn);        /* If the destination register is r15 then sets condition codes.  */        if (rd != 15)            gen_movl_reg_T0(s, rd);    } else {        gen_movl_T0_reg(s, rd);        gen_op_movl_cp15_T0(insn);        /* Normally we would always end the TB here, but Linux         * arch/arm/mach-pxa/sleep.S expects two instructions following         * an MMU enable to execute from cache.  Imitate this behaviour.  */        if (!arm_feature(env, ARM_FEATURE_XSCALE) ||                (insn & 0x0fff0fff) != 0x0e010f10)            gen_lookup_tb(s);    }    return 0;}#define VFP_REG_SHR(x, n) (((n) > 0) ? (x) >> (n) : (x) << -(n))#define VFP_SREG(insn, bigbit, smallbit) \  ((VFP_REG_SHR(insn, bigbit - 1) & 0x1e) | (((insn) >> (smallbit)) & 1))#define VFP_DREG(reg, insn, bigbit, smallbit) do { \    if (arm_feature(env, ARM_FEATURE_VFP3)) { \        reg = (((insn) >> (bigbit)) & 0x0f) \              | (((insn) >> ((smallbit) - 4)) & 0x10); \    } else { \        if (insn & (1 << (smallbit))) \            return 1; \        reg = ((insn) >> (bigbit)) & 0x0f; \    }} while (0)#define VFP_SREG_D(insn) VFP_SREG(insn, 12, 22)#define VFP_DREG_D(reg, insn) VFP_DREG(reg, insn, 12, 22)#define VFP_SREG_N(insn) VFP_SREG(insn, 16,  7)#define VFP_DREG_N(reg, insn) VFP_DREG(reg, insn, 16,  7)#define VFP_SREG_M(insn) VFP_SREG(insn,  0,  5)#define VFP_DREG_M(reg, insn) VFP_DREG(reg, insn,  0,  5)static inline intvfp_enabled(CPUState * env){    return ((env->vfp.xregs[ARM_VFP_FPEXC] & (1 << 30)) != 0);}/* Disassemble a VFP instruction.  Returns nonzero if an error occured   (ie. an undefined instruction).  */static int disas_vfp_insn(CPUState * env, DisasContext *s, uint32_t insn){    uint32_t rd, rn, rm, op, i, n, offset, delta_d, delta_m, bank_mask;    int dp, veclen;    if (!arm_feature(env, ARM_FEATURE_VFP))        return 1;    if (!vfp_enabled(env)) {        /* VFP disabled.  Only allow fmxr/fmrx to/from some control regs.  */        if ((insn & 0x0fe00fff) != 0x0ee00a10)            return 1;        rn = (insn >> 16) & 0xf;        if (rn != ARM_VFP_FPSID && rn != ARM_VFP_FPEXC            && rn != ARM_VFP_MVFR1 && rn != ARM_VFP_MVFR0)            return 1;    }    dp = ((insn & 0xf00) == 0xb00);    switch ((insn >> 24) & 0xf) {    case 0xe:        if (insn & (1 << 4)) {            /* single register transfer */            rd = (insn >> 12) & 0xf;            if (dp) {                int size;                int pass;                VFP_DREG_N(rn, insn);                if (insn & 0xf)                    return 1;                if (insn & 0x00c00060                    && !arm_feature(env, ARM_FEATURE_NEON))                    return 1;                pass = (insn >> 21) & 1;                if (insn & (1 << 22)) {                    size = 0;                    offset = ((insn >> 5) & 3) * 8;                } else if (insn & (1 << 5)) {                    size = 1;                    offset = (insn & (1 << 6)) ? 16 : 0;                } else {                    size = 2;                    offset = 0;                }                if (insn & ARM_CP_RW_BIT) {                    /* vfp->arm */                    switch (size) {                    case 0:                        NEON_GET_REG(T1, rn, pass);                        if (offset)                            gen_op_shrl_T1_im(offset);                        if (insn & (1 << 23))                            gen_op_uxtb_T1();                        else                            gen_op_sxtb_T1();                        break;                    case 1:                        NEON_GET_REG(T1, rn, pass);                        if (insn & (1 << 23)) {                            if (offset) {                                gen_op_shrl_T1_im(16);                            } else {                                gen_op_uxth_T1();                            }                        } else {                            if (offset) {                                gen_op_sarl_T1_im(16);                            } else {                                gen_op_sxth_T1();                            }                        }                        break;                    case 2:                        NEON_GET_REG(T1, rn, pass);                        break;                    }                    gen_movl_reg_T1(s, rd);                } else {                    /* arm->vfp */                    gen_movl_T0_reg(s, rd);                    if (insn & (1 << 23)) {                        /* VDUP */                        if (size == 0) {                            gen_op_neon_dup_u8(0);                        } else if (size == 1) {                            gen_op_neon_dup_low16();                        }                        NEON_SET_REG(T0, rn, 0);                        NEON_SET_REG(T0, rn, 1);                    } else {                        /* VMOV */                        switch (size) {                        case 0:                            NEON_GET_REG(T2, rn, pass);                            gen_op_movl_T1_im(0xff);                            gen_op_andl_T0_T1();                            gen_op_neon_insert_elt(offset, ~(0xff << offset));                            NEON_SET_REG(T2, rn, pass);                            break;                        case 1:                            NEON_GET_REG(T2, rn, pass);                            gen_op_movl_T1_im(0xffff);                            gen_op_andl_T0_T1();                            bank_mask = offset ? 0xffff : 0xffff0000;                            gen_op_neon_insert_elt(offset, bank_mask);                            NEON_SET_REG(T2, rn, pass);                            break;                        case 2:                            NEON_SET_REG(T0, rn, pass);                            break;                        }                    }                }            } else { /* !dp */                if ((insn & 0x6f) != 0x00)                    return 1;                rn = VFP_SREG_N(insn);                if (insn & ARM_CP_RW_BIT) {                    /* vfp->arm */                    if (insn & (1 << 21)) {                        /* system register */                        rn >>= 1;                        switch (rn) {                        case ARM_VFP_FPSID:                            /* VFP2 allows access for FSID from userspace.                               VFP3 restricts all id registers to privileged                               accesses.  */                            if (IS_USER(s)                                && arm_feature(env, ARM_FEATURE_VFP3))                                return 1;                            gen_op_vfp_movl_T0_xreg(rn);                            break;                        case ARM_VFP_FPEXC:                            if (IS_USER(s))                                return 1;                            gen_op_vfp_movl_T0_xreg(rn);                            break;                        case ARM_VFP_FPINST:                        case ARM_VFP_FPINST2:                            /* Not present in VFP3.  */                            if (IS_USER(s)                                || arm_feature(env, ARM_FEATURE_VFP3))                                return 1;                            gen_op_vfp_movl_T0_xreg(rn);                            break;                        case ARM_VFP_FPSCR:			    if (rd == 15)				gen_op_vfp_movl_T0_fpscr_flags();			    else				gen_op_vfp_movl_T0_fpscr();                            break;                        case ARM_VFP_MVFR0:                        case ARM_VFP_MVFR1:                            if (IS_USER(s)                                || !arm_feature(env, ARM_FEATURE_VFP3))                                return 1;                            gen_op_vfp_movl_T0_xreg(rn);                            break;                        default:                            return 1;                        }                    } else {                        gen_mov_F0_vreg(0, rn);                        gen_op_vfp_mrs();                    }                    if (rd == 15) {                        /* Set the 4 flag bits in the CPSR.  */                        gen_op_movl_cpsr_T0(0xf0000000);                    } else                        gen_movl_reg_T0(s, rd);                } else {                    /* arm->vfp */                    gen_movl_T0_reg(s, rd);                    if (insn & (1 << 21)) {                        rn >>= 1;                        /* system register */                        switch (rn) {                        case ARM_VFP_FPSID:                        case ARM_VFP_MVFR0:                        case ARM_VFP_MVFR1:                            /* Writes are ignored.  */                            break;                        case ARM_VFP_FPSCR:                            gen_op_vfp_movl_fpscr_T0();                            gen_lookup_tb(s);                            break;                        case ARM_VFP_FPEXC:                            if (IS_USER(s))                                return 1;                            gen_op_vfp_movl_xreg_T0(rn);                            gen_lookup_tb(s);                            break;                        case ARM_VFP_FPINST:                        case ARM_VFP_FPINST2:                            gen_op_vfp_movl_xreg_T0(rn);                            break;                        default:                            return 1;                        }                    } else {                        gen_op_vfp_msr();                        gen_mov_vreg_F0(0, rn);                    }                }            }        } else {            /* data processing */            /* The opcode is in bits 23, 21, 20 and 6.  */            op = ((insn >> 20) & 8) | ((insn >> 19) & 6) | ((insn >> 6) & 1);            if (dp) {                if (op == 15) {                    /* rn is opcode */                    rn = ((insn >> 15) & 0x1e) | ((insn >> 7) & 1);                } else {                    /* rn is register number */                    VFP_DREG_N(rn, insn);                }                if (op == 15 && (rn == 15 || rn > 17)) {                    /* Integer or single precision destination.  */                    rd = VFP_SREG_D(insn);                } else {                    VFP_DREG_D(rd, insn);                }                if (op == 15 && (rn == 16 || rn == 17)) {                    /* Integer source.  */                    rm = ((insn << 1) & 0x1e) | ((insn >> 5) & 1);                } else {                    VFP_DREG_M(rm, insn);                }            } else {                rn = VFP_SREG_N(insn);                if (op == 15 && rn == 15) {                    /* Double precision destination.  */                    VFP_DREG_D(rd, insn);                } else {                    rd = VFP_SREG_D(insn);                }                rm = VFP_SREG_M(insn);            }            veclen = env->vfp.vec_len;            if (op == 15 && rn > 3)                veclen = 0;            /* Shut up compiler warnings.  */            delta_m = 0;            delta_d = 0;            bank_mask = 0;            if (veclen > 0) {                if (dp)                    bank_mask = 0xc;                else                    bank_mask = 0x18;                /* Figure out what type of vector operation this is.  */                if ((rd & bank_mask) == 0) {                    /* scalar */                    veclen = 0;                } else {                    if (dp)                        delta_d = (env->vfp.vec_stride >> 1) + 1;                    else                        delta_d = env->vfp.vec_stride + 1;                    if ((rm & bank_mask) == 0) {                        /* mixed scalar/vector */                        delta_m = 0;                    } else {                        /* vector */                        delta_m = delta_d;                    }                }            }            /* Load the initial operands.  */            if (op == 15) {                switch (rn) {                case 16:                case 17:                    /* Integer source */                    gen_mov_F0_vreg(0, rm);                    break;                case 8:                case 9:                    /* Compare */                    gen_mov_F0_vreg(dp, rd);                    gen_mov_F1_vreg(dp, rm);                    break;                case 10:                case 11:                    /* Compare with zero */                    gen_mov_F0_vreg(dp, rd);                    gen_vfp_F1_ld0(dp);                    break;                case 20:                case 21:                case 22:                case 23:                    /* Source and destination the same.  */                    gen_mov_F0_vreg(dp, rd);                    break;                default:                    /* One source operand.  */                    gen_mov_F0_vreg(dp, rm);                    break;                }            } else {                /* Two source operands.  */                gen_mov_F0_vreg(dp, rn);                gen_mov_F1_vreg(dp, rm);            }            for (;;) {                /* Perform the calculation.  */                switch (op) {                case 0: /* mac: fd + (fn * fm) */                    gen_vfp_mul(dp);                    gen_mov_F1_vreg(dp, rd);                    gen_vfp_add(dp);                    break;                case 1: /* nmac: fd - (fn * fm) */                    gen_vfp_mul(dp);                    gen_vfp_neg(dp);                    gen_mov_F1_vreg(dp, rd);                    gen_vfp_add(dp);                    break;                case 2: /* msc: -fd + (fn * fm) */                    gen_vfp_mul(dp);                    gen_mov_F1_vreg(dp, rd);                    gen_vfp_sub(dp);                    break;                case 3: /* nmsc: -fd - (fn * fm)  */                    gen_vfp_mul(dp);                    gen_mov_F1_vreg(dp, rd);                    gen_vfp_add(dp);                    gen_vfp_neg(dp);                    break;                case 4: /* mul: fn * fm */                    gen_vfp_mul(dp);                    break;                case 5: /* nmul: -(fn * fm) */                    gen_vfp_mul(dp);                    gen_vfp_neg(dp);                    break;                case 6: /* add: fn + fm */                    gen_vfp_add(dp);                    break;                case 7: /* sub: fn - fm */                    gen_vfp_sub(dp);                    break;                case 8: /* div: fn / fm */                    gen_vfp_div(dp);                    break;                case 14: /* fconst */                    if (!arm_feature(env, ARM_FEATURE_VFP3))                      return 1;                    n = (insn << 12) & 0x80000000;                    i = ((insn >> 12) & 0x70) | (insn & 0xf);                    if (dp) {                        if (i & 0x40)                            i |= 0x3f80;                        else                            i |= 0x4000;                        n |= i << 16;                    } else {                        if (i & 0x40)                            i |= 0x780;                        else                            i |= 0x800;                        n |= i << 19;                    }                    gen_vfp_fconst(dp, n);                    break;                case 15: /* extension space */                    switch (rn) {                    case 0: /* cpy */                        /* no-op */                        break;                    case 1: /* abs */                        gen_vfp_abs(dp);                    

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合丁香婷婷六月香| 亚洲国产精品久久久久秋霞影院 | 国产精品亚洲视频| 国产精品久久久久婷婷二区次| 欧美丝袜自拍制服另类| 欧美喷水一区二区| 懂色av一区二区夜夜嗨| 日韩av网站在线观看| 一区二区三区小说| 亚洲国产精品成人久久综合一区| 日韩一区二区三区四区| 欧美在线播放高清精品| 豆国产96在线|亚洲| 久草中文综合在线| 午夜精品福利一区二区三区av | 播五月开心婷婷综合| 秋霞午夜鲁丝一区二区老狼| 一个色在线综合| 中文字幕中文字幕在线一区| 久久婷婷国产综合国色天香| 欧美一区二区视频在线观看| 在线观看日产精品| 91美女蜜桃在线| 99久久精品国产导航| 丁香婷婷综合色啪| 韩国视频一区二区| 麻豆精品久久精品色综合| 亚洲aⅴ怡春院| 亚洲一区二区三区在线| 一区二区三区四区高清精品免费观看| 中文字幕精品综合| 国产欧美综合在线观看第十页| 精品国产一区二区三区忘忧草| 日韩一区二区三区视频在线观看| 欧美一区日韩一区| 91精品国产综合久久精品图片| 欧美麻豆精品久久久久久| 欧美亚洲综合在线| 欧美另类变人与禽xxxxx| 欧美男男青年gay1069videost| 欧美无人高清视频在线观看| 欧美日韩国产综合一区二区三区| 在线观看亚洲专区| 欧美日韩成人一区| 日韩视频免费直播| 久久久精品免费网站| 欧美国产精品一区| 亚洲男人的天堂在线aⅴ视频| 亚洲色图另类专区| 亚洲一区二区三区在线播放| 天天色天天爱天天射综合| 日本欧美一区二区| 国产在线精品一区二区不卡了| 国产成人av福利| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲欧美怡红院| 国产精品网站在线观看| 亚洲情趣在线观看| 亚洲成人1区2区| 日本午夜精品一区二区三区电影| 蜜桃一区二区三区在线| 国产成人免费网站| 91丨porny丨国产| 欧美日韩国产美女| 精品国产免费一区二区三区四区| 国产片一区二区| 一区二区成人在线观看| 老司机精品视频在线| 国产sm精品调教视频网站| 色综合久久九月婷婷色综合| 欧美性大战久久久| 精品国产伦一区二区三区免费 | 色婷婷综合五月| 欧美男生操女生| 国产日韩欧美综合在线| 亚洲精品视频在线观看免费 | 琪琪一区二区三区| 成人免费黄色在线| 欧美日韩日日骚| 国产日韩欧美在线一区| 亚洲免费观看在线观看| 久久精品国产99久久6| 成人午夜又粗又硬又大| 91麻豆精品国产自产在线观看一区| 久久久国际精品| 午夜精品久久久久久久久| 国产精品888| 色嗨嗨av一区二区三区| 欧美精品一区二区三区高清aⅴ| 亚洲精品欧美综合四区| 国内精品久久久久影院薰衣草 | 亚洲小少妇裸体bbw| 国产一区二区三区免费| 欧美日韩不卡视频| 亚洲蜜桃精久久久久久久| 韩日av一区二区| 欧美高清hd18日本| 亚洲欧美成人一区二区三区| 国产原创一区二区| 欧美一区2区视频在线观看| 亚洲精品自拍动漫在线| 国产白丝网站精品污在线入口| 日韩一区二区三区精品视频| 亚洲精品菠萝久久久久久久| 国产精品 欧美精品| 欧美大胆人体bbbb| 日本亚洲三级在线| 色综合天天性综合| 国产精品视频一区二区三区不卡| 久久精品国产一区二区| 国产精品嫩草久久久久| 久久国产福利国产秒拍| 欧美日韩的一区二区| 樱花草国产18久久久久| jvid福利写真一区二区三区| 日本一区二区三级电影在线观看| 韩国精品在线观看| 欧美videos大乳护士334| 日韩中文字幕91| 欧美日韩国产区一| 偷窥国产亚洲免费视频| 欧美日韩国产免费一区二区| 亚洲国产乱码最新视频 | 国产.欧美.日韩| 久久丝袜美腿综合| 国产一区久久久| 精品国产自在久精品国产| 九九在线精品视频| 久久亚洲精品国产精品紫薇| 韩国精品主播一区二区在线观看| 精品久久一二三区| 国产乱码精品一品二品| 久久久久99精品国产片| 国产成人av资源| 亚洲天堂av一区| 欧美一a一片一级一片| 亚洲第一主播视频| 欧美一卡在线观看| 精品一区二区三区影院在线午夜| 精品福利av导航| 国产999精品久久久久久| 国产精品女人毛片| 91免费版pro下载短视频| 亚洲综合丝袜美腿| 欧美精品777| 国产麻豆视频一区| 国产精品全国免费观看高清| 99国产精品视频免费观看| 一区二区久久久| 欧美一区二区福利视频| 国产精品99久久久久久似苏梦涵 | 香蕉av福利精品导航| 91精品国产综合久久精品| 国产一区二区调教| 欧美—级在线免费片| 色一情一乱一乱一91av| 天天亚洲美女在线视频| 久久久综合网站| 色综合激情久久| 人人精品人人爱| 国产精品五月天| 欧美日韩精品一区视频| 经典一区二区三区| 亚洲精品日产精品乱码不卡| 日韩欧美国产综合| av午夜精品一区二区三区| 午夜精品久久久久久久| 久久久久久9999| 在线影视一区二区三区| 伦理电影国产精品| 《视频一区视频二区| 欧美一区二区啪啪| 成人高清av在线| 日本欧美一区二区三区乱码 | 日本女优在线视频一区二区| 久久久精品日韩欧美| 欧美性大战久久久久久久| 国产在线精品一区二区| 亚洲国产一区在线观看| 久久精品视频在线免费观看| 欧美日韩中文另类| 成人午夜激情片| 日韩成人午夜电影| 亚洲少妇中出一区| 2020国产成人综合网| 欧美午夜精品一区二区三区| 高清在线成人网| 免费成人在线观看视频| 亚洲日本护士毛茸茸| 久久精品夜色噜噜亚洲a∨| 欧美日韩的一区二区| 99久久久无码国产精品| 国产一区二区久久| 日韩电影一二三区| 亚洲综合激情网| 国产精品久久久久一区二区三区共| 日韩欧美一区二区在线视频| 色婷婷国产精品| 成人免费高清视频在线观看| 久久99精品国产.久久久久|