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

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

?? cpu.h

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? H
字號:
/* * ARM virtual CPU header * *  Copyright (c) 2003 Fabrice Bellard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef CPU_ARM_H#define CPU_ARM_H#define TARGET_LONG_BITS 32#define ELF_MACHINE	EM_ARM#include "cpu-defs.h"#include "softfloat.h"#define TARGET_HAS_ICE 1#define EXCP_UDEF            1   /* undefined instruction */#define EXCP_SWI             2   /* software interrupt */#define EXCP_PREFETCH_ABORT  3#define EXCP_DATA_ABORT      4#define EXCP_IRQ             5#define EXCP_FIQ             6#define EXCP_BKPT            7#define EXCP_EXCEPTION_EXIT  8   /* Return from v7M exception.  */#define ARMV7M_EXCP_RESET   1#define ARMV7M_EXCP_NMI     2#define ARMV7M_EXCP_HARD    3#define ARMV7M_EXCP_MEM     4#define ARMV7M_EXCP_BUS     5#define ARMV7M_EXCP_USAGE   6#define ARMV7M_EXCP_SVC     11#define ARMV7M_EXCP_DEBUG   12#define ARMV7M_EXCP_PENDSV  14#define ARMV7M_EXCP_SYSTICK 15typedef void ARMWriteCPFunc(void *opaque, int cp_info,                            int srcreg, int operand, uint32_t value);typedef uint32_t ARMReadCPFunc(void *opaque, int cp_info,                               int dstreg, int operand);#define NB_MMU_MODES 2/* We currently assume float and double are IEEE single and double   precision respectively.   Doing runtime conversions is tricky because VFP registers may contain   integer values (eg. as the result of a FTOSI instruction).   s<2n> maps to the least significant half of d<n>   s<2n+1> maps to the most significant half of d<n> */typedef struct CPUARMState {    /* Regs for current mode.  */    uint32_t regs[16];    /* Frequently accessed CPSR bits are stored separately for efficiently.       This contains all the other bits.  Use cpsr_{read,write} to access       the whole CPSR.  */    uint32_t uncached_cpsr;    uint32_t spsr;    /* Banked registers.  */    uint32_t banked_spsr[6];    uint32_t banked_r13[6];    uint32_t banked_r14[6];    /* These hold r8-r12.  */    uint32_t usr_regs[5];    uint32_t fiq_regs[5];    /* cpsr flag cache for faster execution */    uint32_t CF; /* 0 or 1 */    uint32_t VF; /* V is the bit 31. All other bits are undefined */    uint32_t NZF; /* N is bit 31. Z is computed from NZF */    uint32_t QF; /* 0 or 1 */    uint32_t GE; /* cpsr[19:16] */    int thumb; /* cprs[5]. 0 = arm mode, 1 = thumb mode. */    uint32_t condexec_bits; /* IT bits.  cpsr[15:10,26:25].  */    /* System control coprocessor (cp15) */    struct {        uint32_t c0_cpuid;        uint32_t c0_cachetype;        uint32_t c0_c1[8]; /* Feature registers.  */        uint32_t c0_c2[8]; /* Instruction set registers.  */        uint32_t c1_sys; /* System control register.  */        uint32_t c1_coproc; /* Coprocessor access register.  */        uint32_t c1_xscaleauxcr; /* XScale auxiliary control register.  */        uint32_t c2_base0; /* MMU translation table base 0.  */        uint32_t c2_base1; /* MMU translation table base 1.  */        uint32_t c2_mask; /* MMU translation table base mask.  */        uint32_t c2_data; /* MPU data cachable bits.  */        uint32_t c2_insn; /* MPU instruction cachable bits.  */        uint32_t c3; /* MMU domain access control register                        MPU write buffer control.  */        uint32_t c5_insn; /* Fault status registers.  */        uint32_t c5_data;        uint32_t c6_region[8]; /* MPU base/size registers.  */        uint32_t c6_insn; /* Fault address registers.  */        uint32_t c6_data;        uint32_t c9_insn; /* Cache lockdown registers.  */        uint32_t c9_data;        uint32_t c13_fcse; /* FCSE PID.  */        uint32_t c13_context; /* Context ID.  */        uint32_t c13_tls1; /* User RW Thread register.  */        uint32_t c13_tls2; /* User RO Thread register.  */        uint32_t c13_tls3; /* Privileged Thread register.  */        uint32_t c15_cpar; /* XScale Coprocessor Access Register */        uint32_t c15_ticonfig; /* TI925T configuration byte.  */        uint32_t c15_i_max; /* Maximum D-cache dirty line index.  */        uint32_t c15_i_min; /* Minimum D-cache dirty line index.  */        uint32_t c15_threadid; /* TI debugger thread-ID.  */    } cp15;    struct {        uint32_t other_sp;        uint32_t vecbase;        uint32_t basepri;        uint32_t control;        int current_sp;        int exception;        int pending_exception;        void *nvic;    } v7m;    /* Coprocessor IO used by peripherals */    struct {        ARMReadCPFunc *cp_read;        ARMWriteCPFunc *cp_write;        void *opaque;    } cp[15];    /* Internal CPU feature flags.  */    uint32_t features;    /* Callback for vectored interrupt controller.  */    int (*get_irq_vector)(struct CPUARMState *);    void *irq_opaque;    /* exception/interrupt handling */    jmp_buf jmp_env;    int exception_index;    int interrupt_request;    int user_mode_only;    int halted;    /* VFP coprocessor state.  */    struct {        float64 regs[32];        uint32_t xregs[16];        /* We store these fpcsr fields separately for convenience.  */        int vec_len;        int vec_stride;        /* Temporary variables if we don't have spare fp regs.  */        float32 tmp0s, tmp1s;        float64 tmp0d, tmp1d;        /* scratch space when Tn are not sufficient.  */        uint32_t scratch[8];        float_status fp_status;    } vfp;#if defined(CONFIG_USER_ONLY)    struct mmon_state *mmon_entry;#else    uint32_t mmon_addr;#endif    /* iwMMXt coprocessor state.  */    struct {        uint64_t regs[16];        uint64_t val;        uint32_t cregs[16];    } iwmmxt;#if defined(CONFIG_USER_ONLY)    /* For usermode syscall translation.  */    int eabi;#endif    CPU_COMMON    /* These fields after the common ones so they are preserved on reset.  */    int ram_size;    const char *kernel_filename;    const char *kernel_cmdline;    const char *initrd_filename;    int board_id;    target_phys_addr_t loader_start;} CPUARMState;CPUARMState *cpu_arm_init(const char *cpu_model);int cpu_arm_exec(CPUARMState *s);void cpu_arm_close(CPUARMState *s);void do_interrupt(CPUARMState *);void switch_mode(CPUARMState *, int);uint32_t do_arm_semihosting(CPUARMState *env);/* you can call this signal handler from your SIGBUS and SIGSEGV   signal handlers to inform the virtual CPU of exceptions. non zero   is returned if the signal was handled by the virtual CPU.  */int cpu_arm_signal_handler(int host_signum, void *pinfo,                           void *puc);void cpu_lock(void);void cpu_unlock(void);#define CPSR_M (0x1f)#define CPSR_T (1 << 5)#define CPSR_F (1 << 6)#define CPSR_I (1 << 7)#define CPSR_A (1 << 8)#define CPSR_E (1 << 9)#define CPSR_IT_2_7 (0xfc00)#define CPSR_GE (0xf << 16)#define CPSR_RESERVED (0xf << 20)#define CPSR_J (1 << 24)#define CPSR_IT_0_1 (3 << 25)#define CPSR_Q (1 << 27)#define CPSR_V (1 << 28)#define CPSR_C (1 << 29)#define CPSR_Z (1 << 30)#define CPSR_N (1 << 31)#define CPSR_NZCV (CPSR_N | CPSR_Z | CPSR_C | CPSR_V)#define CPSR_IT (CPSR_IT_0_1 | CPSR_IT_2_7)#define CACHED_CPSR_BITS (CPSR_T | CPSR_GE | CPSR_IT | CPSR_Q | CPSR_NZCV)/* Bits writable in user mode.  */#define CPSR_USER (CPSR_NZCV | CPSR_Q | CPSR_GE)/* Execution state bits.  MRS read as zero, MSR writes ignored.  */#define CPSR_EXEC (CPSR_T | CPSR_IT | CPSR_J)/* Return the current CPSR value.  */uint32_t cpsr_read(CPUARMState *env);/* Set the CPSR.  Note that some bits of mask must be all-set or all-clear.  */void cpsr_write(CPUARMState *env, uint32_t val, uint32_t mask);/* Return the current xPSR value.  */static inline uint32_t xpsr_read(CPUARMState *env){    int ZF;    ZF = (env->NZF == 0);    return (env->NZF & 0x80000000) | (ZF << 30)        | (env->CF << 29) | ((env->VF & 0x80000000) >> 3) | (env->QF << 27)        | (env->thumb << 24) | ((env->condexec_bits & 3) << 25)        | ((env->condexec_bits & 0xfc) << 8)        | env->v7m.exception;}/* Set the xPSR.  Note that some bits of mask must be all-set or all-clear.  */static inline void xpsr_write(CPUARMState *env, uint32_t val, uint32_t mask){    /* NOTE: N = 1 and Z = 1 cannot be stored currently */    if (mask & CPSR_NZCV) {        env->NZF = (val & 0xc0000000) ^ 0x40000000;        env->CF = (val >> 29) & 1;        env->VF = (val << 3) & 0x80000000;    }    if (mask & CPSR_Q)        env->QF = ((val & CPSR_Q) != 0);    if (mask & (1 << 24))        env->thumb = ((val & (1 << 24)) != 0);    if (mask & CPSR_IT_0_1) {        env->condexec_bits &= ~3;        env->condexec_bits |= (val >> 25) & 3;    }    if (mask & CPSR_IT_2_7) {        env->condexec_bits &= 3;        env->condexec_bits |= (val >> 8) & 0xfc;    }    if (mask & 0x1ff) {        env->v7m.exception = val & 0x1ff;    }}enum arm_cpu_mode {  ARM_CPU_MODE_USR = 0x10,  ARM_CPU_MODE_FIQ = 0x11,  ARM_CPU_MODE_IRQ = 0x12,  ARM_CPU_MODE_SVC = 0x13,  ARM_CPU_MODE_ABT = 0x17,  ARM_CPU_MODE_UND = 0x1b,  ARM_CPU_MODE_SYS = 0x1f};/* VFP system registers.  */#define ARM_VFP_FPSID   0#define ARM_VFP_FPSCR   1#define ARM_VFP_MVFR1   6#define ARM_VFP_MVFR0   7#define ARM_VFP_FPEXC   8#define ARM_VFP_FPINST  9#define ARM_VFP_FPINST2 10/* iwMMXt coprocessor control registers.  */#define ARM_IWMMXT_wCID		0#define ARM_IWMMXT_wCon		1#define ARM_IWMMXT_wCSSF	2#define ARM_IWMMXT_wCASF	3#define ARM_IWMMXT_wCGR0	8#define ARM_IWMMXT_wCGR1	9#define ARM_IWMMXT_wCGR2	10#define ARM_IWMMXT_wCGR3	11enum arm_features {    ARM_FEATURE_VFP,    ARM_FEATURE_AUXCR,  /* ARM1026 Auxiliary control register.  */    ARM_FEATURE_XSCALE, /* Intel XScale extensions.  */    ARM_FEATURE_IWMMXT, /* Intel iwMMXt extension.  */    ARM_FEATURE_V6,    ARM_FEATURE_V6K,    ARM_FEATURE_V7,    ARM_FEATURE_THUMB2,    ARM_FEATURE_MPU,    /* Only has Memory Protection Unit, not full MMU.  */    ARM_FEATURE_VFP3,    ARM_FEATURE_NEON,    ARM_FEATURE_DIV,    ARM_FEATURE_M, /* Microcontroller profile.  */    ARM_FEATURE_OMAPCP  /* OMAP specific CP15 ops handling.  */};static inline int arm_feature(CPUARMState *env, int feature){    return (env->features & (1u << feature)) != 0;}void arm_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));/* Interface between CPU and Interrupt controller.  */void armv7m_nvic_set_pending(void *opaque, int irq);int armv7m_nvic_acknowledge_irq(void *opaque);void armv7m_nvic_complete_irq(void *opaque, int irq);void cpu_arm_set_cp_io(CPUARMState *env, int cpnum,                       ARMReadCPFunc *cp_read, ARMWriteCPFunc *cp_write,                       void *opaque);/* Does the core conform to the the "MicroController" profile. e.g. Cortex-M3.   Note the M in older cores (eg. ARM7TDMI) stands for Multiply. These are   conventional cores (ie. Application or Realtime profile).  */#define IS_M(env) arm_feature(env, ARM_FEATURE_M)#define ARM_CPUID(env) (env->cp15.c0_cpuid)#define ARM_CPUID_ARM1026     0x4106a262#define ARM_CPUID_ARM926      0x41069265#define ARM_CPUID_ARM946      0x41059461#define ARM_CPUID_TI915T      0x54029152#define ARM_CPUID_TI925T      0x54029252#define ARM_CPUID_PXA250      0x69052100#define ARM_CPUID_PXA255      0x69052d00#define ARM_CPUID_PXA260      0x69052903#define ARM_CPUID_PXA261      0x69052d05#define ARM_CPUID_PXA262      0x69052d06#define ARM_CPUID_PXA270      0x69054110#define ARM_CPUID_PXA270_A0   0x69054110#define ARM_CPUID_PXA270_A1   0x69054111#define ARM_CPUID_PXA270_B0   0x69054112#define ARM_CPUID_PXA270_B1   0x69054113#define ARM_CPUID_PXA270_C0   0x69054114#define ARM_CPUID_PXA270_C5   0x69054117#define ARM_CPUID_ARM1136     0x4117b363#define ARM_CPUID_ARM11MPCORE 0x410fb022#define ARM_CPUID_CORTEXA8    0x410fc080#define ARM_CPUID_CORTEXM3    0x410fc231#define ARM_CPUID_ANY         0xffffffff#if defined(CONFIG_USER_ONLY)#define TARGET_PAGE_BITS 12#else/* The ARM MMU allows 1k pages.  *//* ??? Linux doesn't actually use these, and they're deprecated in recent   architecture revisions.  Maybe a configure option to disable them.  */#define TARGET_PAGE_BITS 10#endif#define CPUState CPUARMState#define cpu_init cpu_arm_init#define cpu_exec cpu_arm_exec#define cpu_gen_code cpu_arm_gen_code#define cpu_signal_handler cpu_arm_signal_handler#define cpu_list arm_cpu_list#define ARM_CPU_SAVE_VERSION 1/* MMU modes definitions */#define MMU_MODE0_SUFFIX _kernel#define MMU_MODE1_SUFFIX _user#define MMU_USER_IDX 1static inline int cpu_mmu_index (CPUState *env){    return (env->uncached_cpsr & CPSR_M) == ARM_CPU_MODE_USR ? 1 : 0;}#include "cpu-all.h"#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频每日更新| 国产精品拍天天在线| 亚洲国产aⅴ成人精品无吗| 欧美性感一类影片在线播放| 中文字幕二三区不卡| 国产乱对白刺激视频不卡| 精品国产乱码久久久久久久| 国产91丝袜在线播放九色| 欧美韩国日本一区| 欧美日韩国产一区| 国内久久婷婷综合| 亚洲精品视频一区| 制服.丝袜.亚洲.中文.综合| 久久国产婷婷国产香蕉| 欧美专区日韩专区| 精品午夜久久福利影院| 日本一区二区三区久久久久久久久不| 91麻豆蜜桃一区二区三区| 久久精品久久久精品美女| 中文字幕一区二区三区四区| 91精品国产麻豆国产自产在线| 狠狠狠色丁香婷婷综合激情| 精品一区二区三区在线播放视频| 精品国产乱码久久久久久久久| 欧美综合欧美视频| 国产91露脸合集magnet| 5566中文字幕一区二区电影| 成人国产亚洲欧美成人综合网| 亚洲综合清纯丝袜自拍| 中文字幕第一区第二区| 日韩欧美一卡二卡| 欧美吻胸吃奶大尺度电影| 99精品视频在线免费观看| 国产毛片精品视频| 久久疯狂做爰流白浆xx| 亚洲在线视频网站| 亚洲香肠在线观看| 亚洲超丰满肉感bbw| 亚洲国产精品一区二区www在线| 亚洲精品日韩一| 亚洲免费观看高清完整版在线观看熊| 欧美国产精品一区二区| 国产亚洲欧美中文| 国产成人精品亚洲日本在线桃色 | 久久久噜噜噜久久人人看| 欧美精品久久久久久久多人混战 | 99re视频精品| 欧美系列亚洲系列| 欧美精品一区二区三区久久久| 2欧美一区二区三区在线观看视频| 欧美大片拔萝卜| 国产精品日韩精品欧美在线| 精品视频免费看| 久久嫩草精品久久久精品一| av电影一区二区| 日韩三级.com| 精品福利在线导航| 亚洲日本va午夜在线电影| 免费高清在线视频一区·| 免费成人你懂的| 欧美日韩午夜影院| 中文字幕电影一区| 久久99精品久久久久久| 欧美少妇一区二区| 国产精品青草综合久久久久99| 一区二区三区欧美久久| 国产精品自拍av| 精品理论电影在线观看| 日本午夜精品一区二区三区电影| 成人性生交大片免费看中文| 91精品国产综合久久久久久久久久| 国产精品你懂的| 国产jizzjizz一区二区| 国产午夜精品福利| 成人免费毛片高清视频| 久久午夜羞羞影院免费观看| 久久不见久久见中文字幕免费| 欧美蜜桃一区二区三区| 依依成人精品视频| 欧美日韩免费一区二区三区| 亚洲三级在线观看| 欧美日韩国产一级二级| 亚洲高清免费视频| 精品国产亚洲一区二区三区在线观看 | 制服.丝袜.亚洲.中文.综合| 日本特黄久久久高潮| 亚洲精品一区在线观看| 国产成人精品在线看| 国产拍欧美日韩视频二区| 色婷婷精品久久二区二区蜜臂av | 大桥未久av一区二区三区中文| 久久久国产午夜精品| av在线播放不卡| 日韩电影免费在线看| wwwwww.欧美系列| 色综合久久久久网| 蜜臀久久久99精品久久久久久| 日韩你懂的电影在线观看| 国产a精品视频| 日本欧美一区二区| 中文字幕av在线一区二区三区| 色视频欧美一区二区三区| 日产国产欧美视频一区精品| 国产亚洲一区二区三区四区| 国产精品乡下勾搭老头1| 综合av第一页| 国产欧美日韩中文久久| 在线播放中文一区| 97久久人人超碰| 成人国产精品视频| 国产精品一区二区在线观看不卡| 一区二区三区精品在线| 国产精品女同一区二区三区| 日韩一区二区三区在线观看| 欧美怡红院视频| 91福利视频网站| 欧美在线观看视频在线| 91福利在线播放| 欧美午夜精品久久久久久超碰 | 亚洲免费观看高清完整版在线观看| 欧美成人bangbros| 欧美精品一区二区三区在线 | 日韩精品中文字幕在线不卡尤物| 欧美三级韩国三级日本一级| 欧美偷拍一区二区| 欧美性猛交xxxx黑人交| 欧美午夜电影一区| 欧美午夜精品理论片a级按摩| 在线观看免费一区| 欧美一级淫片007| 欧美国产日韩一二三区| 日韩美女视频一区| 日本欧美一区二区三区| 国产精品一线二线三线| 91视视频在线直接观看在线看网页在线看| 国产精品456露脸| 欧美揉bbbbb揉bbbbb| 欧美三级在线视频| 在线观看一区二区视频| 欧美一级电影网站| 亚洲色图欧洲色图婷婷| 婷婷亚洲久悠悠色悠在线播放| 国产在线观看免费一区| 日本道色综合久久| 久久精品亚洲麻豆av一区二区| 亚洲精品ww久久久久久p站| 国产一区二区中文字幕| 欧美在线一区二区| 国产精品乱子久久久久| 麻豆成人免费电影| 欧美日韩一级二级| 亚洲一区二区视频在线| 成人福利视频在线看| 中文字幕欧美日韩一区| 久久久五月婷婷| 国产精品毛片高清在线完整版| 首页综合国产亚洲丝袜| 99re热这里只有精品免费视频| 日韩免费视频线观看| 婷婷中文字幕一区三区| 欧美精品在线观看一区二区| 亚洲精品国产无套在线观| 99久久国产综合精品麻豆| 亚洲色图制服诱惑| 91精品福利视频| 亚洲国产精品视频| 欧美日本一区二区| 国产一区三区三区| 国产精品久久久久影院| 色一情一伦一子一伦一区| 亚洲激情男女视频| 制服丝袜成人动漫| 日本午夜一本久久久综合| 精品国产免费一区二区三区四区| 蜜桃av噜噜一区二区三区小说| 日韩三级在线观看| 成人美女在线观看| 午夜一区二区三区视频| 欧美一区二区美女| 99精品视频中文字幕| 蜜桃视频第一区免费观看| 一区免费观看视频| 91精品国产一区二区三区蜜臀| 国内精品不卡在线| 亚洲免费在线视频一区 二区| 日韩欧美你懂的| 白白色 亚洲乱淫| 美女视频黄 久久| 亚洲午夜久久久久久久久电影网| 日韩欧美国产麻豆| 99久久久久久| 亚洲激情自拍视频| 久久久久久一级片| 日韩一区二区高清| 色先锋久久av资源部| 成人免费看视频| 国产成人av一区二区三区在线| 亚洲成国产人片在线观看| 亚洲与欧洲av电影| 亚洲色图在线看|