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

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

?? translate.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*   SPARC translation   Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at>   Copyright (C) 2003-2005 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 *//*   TODO-list:   Rest of V9 instructions, VIS instructions   NPC/PC static optimisations (use JUMP_TB when possible)   Optimize synthetic instructions*/#include <stdarg.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <inttypes.h>#include "cpu.h"#include "exec-all.h"#include "disas.h"#define DEBUG_DISAS#define DYNAMIC_PC  1 /* dynamic pc value */#define JUMP_PC     2 /* dynamic pc value which takes only two values                         according to jump_pc[T2] */typedef struct DisasContext {    target_ulong pc;    /* current Program Counter: integer or DYNAMIC_PC */    target_ulong npc;   /* next PC: integer or DYNAMIC_PC or JUMP_PC */    target_ulong jump_pc[2]; /* used when JUMP_PC pc value is used */    int is_br;    int mem_idx;    int fpu_enabled;    struct TranslationBlock *tb;} DisasContext;typedef struct sparc_def_t sparc_def_t;struct sparc_def_t {    const unsigned char *name;    target_ulong iu_version;    uint32_t fpu_version;    uint32_t mmu_version;    uint32_t mmu_bm;};static const sparc_def_t *cpu_sparc_find_by_name(const unsigned char *name);static uint16_t *gen_opc_ptr;static uint32_t *gen_opparam_ptr;extern FILE *logfile;extern int loglevel;enum {#define DEF(s,n,copy_size) INDEX_op_ ## s,#include "opc.h"#undef DEF    NB_OPS};#include "gen-op.h"// This function uses non-native bit order#define GET_FIELD(X, FROM, TO) \  ((X) >> (31 - (TO)) & ((1 << ((TO) - (FROM) + 1)) - 1))// This function uses the order in the manuals, i.e. bit 0 is 2^0#define GET_FIELD_SP(X, FROM, TO) \    GET_FIELD(X, 31 - (TO), 31 - (FROM))#define GET_FIELDs(x,a,b) sign_extend (GET_FIELD(x,a,b), (b) - (a) + 1)#define GET_FIELD_SPs(x,a,b) sign_extend (GET_FIELD_SP(x,a,b), ((b) - (a) + 1))#ifdef TARGET_SPARC64#define DFPREG(r) (((r & 1) << 5) | (r & 0x1e))#define QFPREG(r) (((r & 1) << 5) | (r & 0x1c))#else#define DFPREG(r) (r & 0x1e)#define QFPREG(r) (r & 0x1c)#endif#ifdef USE_DIRECT_JUMP#define TBPARAM(x)#else#define TBPARAM(x) (long)(x)#endifstatic int sign_extend(int x, int len){    len = 32 - len;    return (x << len) >> len;}#define IS_IMM (insn & (1<<13))static void disas_sparc_insn(DisasContext * dc);static GenOpFunc * const gen_op_movl_TN_reg[2][32] = {    {     gen_op_movl_g0_T0,     gen_op_movl_g1_T0,     gen_op_movl_g2_T0,     gen_op_movl_g3_T0,     gen_op_movl_g4_T0,     gen_op_movl_g5_T0,     gen_op_movl_g6_T0,     gen_op_movl_g7_T0,     gen_op_movl_o0_T0,     gen_op_movl_o1_T0,     gen_op_movl_o2_T0,     gen_op_movl_o3_T0,     gen_op_movl_o4_T0,     gen_op_movl_o5_T0,     gen_op_movl_o6_T0,     gen_op_movl_o7_T0,     gen_op_movl_l0_T0,     gen_op_movl_l1_T0,     gen_op_movl_l2_T0,     gen_op_movl_l3_T0,     gen_op_movl_l4_T0,     gen_op_movl_l5_T0,     gen_op_movl_l6_T0,     gen_op_movl_l7_T0,     gen_op_movl_i0_T0,     gen_op_movl_i1_T0,     gen_op_movl_i2_T0,     gen_op_movl_i3_T0,     gen_op_movl_i4_T0,     gen_op_movl_i5_T0,     gen_op_movl_i6_T0,     gen_op_movl_i7_T0,     },    {     gen_op_movl_g0_T1,     gen_op_movl_g1_T1,     gen_op_movl_g2_T1,     gen_op_movl_g3_T1,     gen_op_movl_g4_T1,     gen_op_movl_g5_T1,     gen_op_movl_g6_T1,     gen_op_movl_g7_T1,     gen_op_movl_o0_T1,     gen_op_movl_o1_T1,     gen_op_movl_o2_T1,     gen_op_movl_o3_T1,     gen_op_movl_o4_T1,     gen_op_movl_o5_T1,     gen_op_movl_o6_T1,     gen_op_movl_o7_T1,     gen_op_movl_l0_T1,     gen_op_movl_l1_T1,     gen_op_movl_l2_T1,     gen_op_movl_l3_T1,     gen_op_movl_l4_T1,     gen_op_movl_l5_T1,     gen_op_movl_l6_T1,     gen_op_movl_l7_T1,     gen_op_movl_i0_T1,     gen_op_movl_i1_T1,     gen_op_movl_i2_T1,     gen_op_movl_i3_T1,     gen_op_movl_i4_T1,     gen_op_movl_i5_T1,     gen_op_movl_i6_T1,     gen_op_movl_i7_T1,     }};static GenOpFunc * const gen_op_movl_reg_TN[3][32] = {    {     gen_op_movl_T0_g0,     gen_op_movl_T0_g1,     gen_op_movl_T0_g2,     gen_op_movl_T0_g3,     gen_op_movl_T0_g4,     gen_op_movl_T0_g5,     gen_op_movl_T0_g6,     gen_op_movl_T0_g7,     gen_op_movl_T0_o0,     gen_op_movl_T0_o1,     gen_op_movl_T0_o2,     gen_op_movl_T0_o3,     gen_op_movl_T0_o4,     gen_op_movl_T0_o5,     gen_op_movl_T0_o6,     gen_op_movl_T0_o7,     gen_op_movl_T0_l0,     gen_op_movl_T0_l1,     gen_op_movl_T0_l2,     gen_op_movl_T0_l3,     gen_op_movl_T0_l4,     gen_op_movl_T0_l5,     gen_op_movl_T0_l6,     gen_op_movl_T0_l7,     gen_op_movl_T0_i0,     gen_op_movl_T0_i1,     gen_op_movl_T0_i2,     gen_op_movl_T0_i3,     gen_op_movl_T0_i4,     gen_op_movl_T0_i5,     gen_op_movl_T0_i6,     gen_op_movl_T0_i7,     },    {     gen_op_movl_T1_g0,     gen_op_movl_T1_g1,     gen_op_movl_T1_g2,     gen_op_movl_T1_g3,     gen_op_movl_T1_g4,     gen_op_movl_T1_g5,     gen_op_movl_T1_g6,     gen_op_movl_T1_g7,     gen_op_movl_T1_o0,     gen_op_movl_T1_o1,     gen_op_movl_T1_o2,     gen_op_movl_T1_o3,     gen_op_movl_T1_o4,     gen_op_movl_T1_o5,     gen_op_movl_T1_o6,     gen_op_movl_T1_o7,     gen_op_movl_T1_l0,     gen_op_movl_T1_l1,     gen_op_movl_T1_l2,     gen_op_movl_T1_l3,     gen_op_movl_T1_l4,     gen_op_movl_T1_l5,     gen_op_movl_T1_l6,     gen_op_movl_T1_l7,     gen_op_movl_T1_i0,     gen_op_movl_T1_i1,     gen_op_movl_T1_i2,     gen_op_movl_T1_i3,     gen_op_movl_T1_i4,     gen_op_movl_T1_i5,     gen_op_movl_T1_i6,     gen_op_movl_T1_i7,     },    {     gen_op_movl_T2_g0,     gen_op_movl_T2_g1,     gen_op_movl_T2_g2,     gen_op_movl_T2_g3,     gen_op_movl_T2_g4,     gen_op_movl_T2_g5,     gen_op_movl_T2_g6,     gen_op_movl_T2_g7,     gen_op_movl_T2_o0,     gen_op_movl_T2_o1,     gen_op_movl_T2_o2,     gen_op_movl_T2_o3,     gen_op_movl_T2_o4,     gen_op_movl_T2_o5,     gen_op_movl_T2_o6,     gen_op_movl_T2_o7,     gen_op_movl_T2_l0,     gen_op_movl_T2_l1,     gen_op_movl_T2_l2,     gen_op_movl_T2_l3,     gen_op_movl_T2_l4,     gen_op_movl_T2_l5,     gen_op_movl_T2_l6,     gen_op_movl_T2_l7,     gen_op_movl_T2_i0,     gen_op_movl_T2_i1,     gen_op_movl_T2_i2,     gen_op_movl_T2_i3,     gen_op_movl_T2_i4,     gen_op_movl_T2_i5,     gen_op_movl_T2_i6,     gen_op_movl_T2_i7,     }};static GenOpFunc1 * const gen_op_movl_TN_im[3] = {    gen_op_movl_T0_im,    gen_op_movl_T1_im,    gen_op_movl_T2_im};// Sign extending versionstatic GenOpFunc1 * const gen_op_movl_TN_sim[3] = {    gen_op_movl_T0_sim,    gen_op_movl_T1_sim,    gen_op_movl_T2_sim};#ifdef TARGET_SPARC64#define GEN32(func, NAME) \static GenOpFunc * const NAME ## _table [64] = {                              \NAME ## 0, NAME ## 1, NAME ## 2, NAME ## 3,                                   \NAME ## 4, NAME ## 5, NAME ## 6, NAME ## 7,                                   \NAME ## 8, NAME ## 9, NAME ## 10, NAME ## 11,                                 \NAME ## 12, NAME ## 13, NAME ## 14, NAME ## 15,                               \NAME ## 16, NAME ## 17, NAME ## 18, NAME ## 19,                               \NAME ## 20, NAME ## 21, NAME ## 22, NAME ## 23,                               \NAME ## 24, NAME ## 25, NAME ## 26, NAME ## 27,                               \NAME ## 28, NAME ## 29, NAME ## 30, NAME ## 31,                               \NAME ## 32, 0, NAME ## 34, 0, NAME ## 36, 0, NAME ## 38, 0,                   \NAME ## 40, 0, NAME ## 42, 0, NAME ## 44, 0, NAME ## 46, 0,                   \NAME ## 48, 0, NAME ## 50, 0, NAME ## 52, 0, NAME ## 54, 0,                   \NAME ## 56, 0, NAME ## 58, 0, NAME ## 60, 0, NAME ## 62, 0,                   \};                                                                            \static inline void func(int n)                                                \{                                                                             \    NAME ## _table[n]();                                                      \}#else#define GEN32(func, NAME) \static GenOpFunc *const NAME ## _table [32] = {                               \NAME ## 0, NAME ## 1, NAME ## 2, NAME ## 3,                                   \NAME ## 4, NAME ## 5, NAME ## 6, NAME ## 7,                                   \NAME ## 8, NAME ## 9, NAME ## 10, NAME ## 11,                                 \NAME ## 12, NAME ## 13, NAME ## 14, NAME ## 15,                               \NAME ## 16, NAME ## 17, NAME ## 18, NAME ## 19,                               \NAME ## 20, NAME ## 21, NAME ## 22, NAME ## 23,                               \NAME ## 24, NAME ## 25, NAME ## 26, NAME ## 27,                               \NAME ## 28, NAME ## 29, NAME ## 30, NAME ## 31,                               \};                                                                            \static inline void func(int n)                                                \{                                                                             \    NAME ## _table[n]();                                                      \}#endif/* floating point registers moves */GEN32(gen_op_load_fpr_FT0, gen_op_load_fpr_FT0_fprf);GEN32(gen_op_load_fpr_FT1, gen_op_load_fpr_FT1_fprf);GEN32(gen_op_store_FT0_fpr, gen_op_store_FT0_fpr_fprf);GEN32(gen_op_store_FT1_fpr, gen_op_store_FT1_fpr_fprf);GEN32(gen_op_load_fpr_DT0, gen_op_load_fpr_DT0_fprf);GEN32(gen_op_load_fpr_DT1, gen_op_load_fpr_DT1_fprf);GEN32(gen_op_store_DT0_fpr, gen_op_store_DT0_fpr_fprf);GEN32(gen_op_store_DT1_fpr, gen_op_store_DT1_fpr_fprf);#if defined(CONFIG_USER_ONLY)GEN32(gen_op_load_fpr_QT0, gen_op_load_fpr_QT0_fprf);GEN32(gen_op_load_fpr_QT1, gen_op_load_fpr_QT1_fprf);GEN32(gen_op_store_QT0_fpr, gen_op_store_QT0_fpr_fprf);GEN32(gen_op_store_QT1_fpr, gen_op_store_QT1_fpr_fprf);#endif/* moves */#ifdef CONFIG_USER_ONLY#define supervisor(dc) 0#ifdef TARGET_SPARC64#define hypervisor(dc) 0#endif#define gen_op_ldst(name)        gen_op_##name##_raw()#else#define supervisor(dc) (dc->mem_idx >= 1)#ifdef TARGET_SPARC64#define hypervisor(dc) (dc->mem_idx == 2)#define OP_LD_TABLE(width)                                              \    static GenOpFunc * const gen_op_##width[] = {                       \        &gen_op_##width##_user,                                         \        &gen_op_##width##_kernel,                                       \        &gen_op_##width##_hypv,                                         \    };#else#define OP_LD_TABLE(width)                                              \    static GenOpFunc * const gen_op_##width[] = {                       \        &gen_op_##width##_user,                                         \        &gen_op_##width##_kernel,                                       \    };#endif#define gen_op_ldst(name)        (*gen_op_##name[dc->mem_idx])()#endif#ifndef CONFIG_USER_ONLYOP_LD_TABLE(ld);OP_LD_TABLE(st);OP_LD_TABLE(ldub);OP_LD_TABLE(lduh);OP_LD_TABLE(ldsb);OP_LD_TABLE(ldsh);OP_LD_TABLE(stb);OP_LD_TABLE(sth);OP_LD_TABLE(std);OP_LD_TABLE(ldstub);OP_LD_TABLE(swap);OP_LD_TABLE(ldd);OP_LD_TABLE(stf);OP_LD_TABLE(stdf);OP_LD_TABLE(ldf);OP_LD_TABLE(lddf);#ifdef TARGET_SPARC64OP_LD_TABLE(lduw);OP_LD_TABLE(ldsw);OP_LD_TABLE(ldx);OP_LD_TABLE(stx);#endif#endif/* asi moves */#ifdef TARGET_SPARC64static inline void gen_ld_asi(int insn, int size, int sign){    int asi, offset;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日韩精品欧美在线| 成人av在线影院| 捆绑紧缚一区二区三区视频| 精品在线视频一区| 国产精品一区二区免费不卡| aaa亚洲精品| 欧美大片在线观看| 亚洲免费在线视频一区 二区| 亚洲不卡av一区二区三区| 另类综合日韩欧美亚洲| 91精品婷婷国产综合久久性色| 久久久影院官网| 婷婷成人综合网| 色爱区综合激月婷婷| 欧美不卡激情三级在线观看| 中文字幕在线观看一区| 精品一区二区免费看| 欧美日韩国产影片| 一区二区三区在线免费| 国产精品系列在线观看| 91精品国产日韩91久久久久久| 亚洲欧美视频在线观看| 国产一区二区毛片| 日韩一区二区电影在线| 亚洲成av人片www| 欧美最猛性xxxxx直播| 亚洲欧美在线另类| 91在线视频观看| 亚洲色大成网站www久久九九| 国精产品一区一区三区mba桃花| 7777精品伊人久久久大香线蕉经典版下载 | 不卡的av在线播放| 中文字幕高清不卡| 97se亚洲国产综合自在线观| 亚洲乱码精品一二三四区日韩在线| 岛国av在线一区| 136国产福利精品导航| 在线观看一区二区精品视频| 亚洲国产视频一区二区| 欧美美女直播网站| 美洲天堂一区二卡三卡四卡视频 | 亚洲一区二区三区视频在线| 欧美三片在线视频观看| 久久99精品久久久久久| 国产精品久久久久影院老司| 99久久精品99国产精品| 亚洲va中文字幕| 精品伦理精品一区| 99精品在线免费| 美腿丝袜亚洲三区| 最新不卡av在线| 91精品国产综合久久久久久久 | 欧美吻胸吃奶大尺度电影 | 欧美一区二区三区啪啪| 美国av一区二区| 国产精品免费av| 欧洲一区在线观看| 久久精品国产99国产精品| 中文在线免费一区三区高中清不卡| 99视频一区二区三区| 亚洲成av人片一区二区三区| 国产视频一区二区在线观看| 99精品国产一区二区三区不卡| 中文字幕中文乱码欧美一区二区| 91麻豆免费观看| 欧美aⅴ一区二区三区视频| 亚洲精品视频免费观看| 国产欧美一区二区三区网站 | 日本乱码高清不卡字幕| 国产尤物一区二区在线| 久久99热这里只有精品| 日韩一区精品视频| 久久精品噜噜噜成人av农村| 免费黄网站欧美| 精品一二三四区| 国产精品一区二区在线看| 国产成人亚洲精品狼色在线| 国产一级精品在线| 不卡一区二区三区四区| av不卡免费在线观看| 欧美在线视频全部完| 欧美影院一区二区| 蜜臀av国产精品久久久久| 国产一区二区影院| 日韩一区二区三区四区| 有坂深雪av一区二区精品| 国产成人av一区二区三区在线观看| 国产一级精品在线| 欧美精品三级日韩久久| 久久精品视频免费| 亚洲一二三四区不卡| 蜜桃视频在线一区| 波波电影院一区二区三区| 欧美日韩成人综合天天影院| 久久久亚洲高清| 亚洲va欧美va人人爽| av午夜精品一区二区三区| 欧美欧美欧美欧美| 一区精品在线播放| 六月婷婷色综合| 欧美日韩国产综合一区二区三区| 国产日产欧美一区| 日韩精品乱码免费| 成人少妇影院yyyy| 欧美精品一区二区三区高清aⅴ| 亚洲综合网站在线观看| k8久久久一区二区三区| 精品国产一区二区三区久久久蜜月| 亚洲婷婷综合色高清在线| 狠狠色狠狠色综合| 69精品人人人人| 午夜精品福利一区二区三区av| 99久久精品国产网站| 中文字幕在线播放不卡一区| 国产激情视频一区二区在线观看 | 波多野结衣欧美| 国产精品欧美精品| 成人在线视频一区二区| 日韩一区有码在线| 欧美伊人久久大香线蕉综合69| 一区二区三区四区亚洲| 欧美专区亚洲专区| 国产精品综合av一区二区国产馆| 亚洲国产成人午夜在线一区| 91成人网在线| 国产一区亚洲一区| 婷婷综合在线观看| 国产欧美日韩精品一区| 国产成人免费在线观看不卡| 精品成人私密视频| 福利一区二区在线| 一区二区三区在线观看视频| 欧美在线免费视屏| 国内精品不卡在线| 一区二区三区欧美日韩| 欧美大片在线观看一区二区| 国产成人在线看| 亚洲va欧美va天堂v国产综合| 欧美mv和日韩mv国产网站| 暴力调教一区二区三区| 亚洲第一搞黄网站| 国产丝袜美腿一区二区三区| 91一区一区三区| 精品中文字幕一区二区| 一区二区三区高清在线| 久久这里只精品最新地址| 色综合天天综合网天天狠天天 | 91国产丝袜在线播放| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲精品中文在线| 国产欧美va欧美不卡在线| 在线成人免费视频| 91丝袜国产在线播放| 国产91综合一区在线观看| 美腿丝袜亚洲一区| 亚洲一区二区三区国产| 国产精品国产三级国产aⅴ中文| 91精品国产色综合久久| 欧美日韩一区二区三区不卡| 成人激情黄色小说| 国产成人啪午夜精品网站男同| 久久精品免费观看| 蜜桃在线一区二区三区| 免费人成网站在线观看欧美高清| 国产一区二区电影| 国产成人啪午夜精品网站男同| 蜜桃精品在线观看| 美国十次综合导航| 国产精品亚洲专一区二区三区| 国产一区二区三区免费在线观看| 美女视频网站黄色亚洲| 美国三级日本三级久久99| 国产综合久久久久久久久久久久| 精品一区二区在线播放| 国产精品综合视频| 在线影视一区二区三区| 欧美在线短视频| 日韩欧美国产wwwww| 欧美精彩视频一区二区三区| 亚洲色大成网站www久久九九| 夜夜精品视频一区二区| 久久99久久久欧美国产| 成人中文字幕合集| 91精品欧美久久久久久动漫| 久久久夜色精品亚洲| 亚洲欧美一区二区视频| 美女网站一区二区| 91日韩在线专区| 久久久精品tv| 日韩av电影一区| k8久久久一区二区三区| 欧美tk—视频vk| 亚洲夂夂婷婷色拍ww47| 国产乱国产乱300精品| 欧美性一级生活| 日韩毛片一二三区| 久久99精品久久久久| 欧美少妇bbb| 国产精品免费免费| 国产·精品毛片|