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

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

?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品午夜春色av| 国产激情视频一区二区在线观看| 成人高清av在线| 久久久精品tv| 成人高清免费观看| 欧美国产精品久久| www.亚洲国产| 久草精品在线观看| 欧美精彩视频一区二区三区| 国产·精品毛片| 亚洲天天做日日做天天谢日日欢| av亚洲精华国产精华精华| 亚洲欧美激情一区二区| 欧洲国产伦久久久久久久| 午夜久久久久久久久| 欧美一区二区三区四区五区| 国产一区不卡在线| 亚洲欧美视频在线观看视频| 欧美日韩一级二级三级| 麻豆91在线播放免费| 成人欧美一区二区三区黑人麻豆 | 成人在线综合网站| 国产麻豆精品在线| 亚洲三级理论片| 日韩视频免费观看高清完整版 | 91视频国产观看| 免费观看久久久4p| 国产精品国产三级国产aⅴ中文| 欧美午夜片在线看| 国产成人高清在线| 日韩av成人高清| 国产精品沙发午睡系列990531| 欧美在线一二三四区| 国内外成人在线视频| 亚洲一级在线观看| 国产精品国产馆在线真实露脸| 欧美伦理视频网站| 国产欧美日韩综合精品一区二区| 欧美主播一区二区三区美女| 国产一区二区三区在线观看精品| 五月天一区二区| 亚洲欧美日韩一区二区三区在线观看| 2023国产精华国产精品| 3751色影院一区二区三区| 色视频一区二区| 在线一区二区观看| 在线免费亚洲电影| 色综合久久综合网97色综合 | 欧美肥大bbwbbw高潮| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产乱人伦精品一区二区在线观看 | 欧美r级电影在线观看| 欧美精品xxxxbbbb| 91精品婷婷国产综合久久性色| 欧美电影影音先锋| 欧美精品vⅰdeose4hd| 精品国产一二三| 久久久久9999亚洲精品| 国产三级精品在线| 日本一区二区成人| 有码一区二区三区| 亚洲动漫第一页| 久久精品免费看| 国产激情91久久精品导航| 99v久久综合狠狠综合久久| 色综合天天综合给合国产| 色婷婷狠狠综合| 精品日韩99亚洲| 国产精品三级av在线播放| 亚欧色一区w666天堂| 韩国成人在线视频| 91国模大尺度私拍在线视频| 欧美高清视频一二三区 | 成人福利视频在线| 欧美网站大全在线观看| 337p日本欧洲亚洲大胆精品 | 精品制服美女久久| 91玉足脚交白嫩脚丫在线播放| 欧美色大人视频| 国产欧美日韩在线| 午夜伦欧美伦电影理论片| 国产成人免费高清| 91精品国产色综合久久ai换脸| 1024国产精品| 国产精品自在欧美一区| 日韩毛片视频在线看| 国产精品久久久久婷婷| 日韩av午夜在线观看| 欧美日韩精品一区视频| ㊣最新国产の精品bt伙计久久| 激情综合色综合久久综合| 91麻豆精品国产91久久久 | 天堂成人免费av电影一区| 色94色欧美sute亚洲线路二| 一色桃子久久精品亚洲| av中文字幕一区| 亚洲三级电影全部在线观看高清| 成人免费看片app下载| 中文字幕免费在线观看视频一区| 国产一区二区免费看| 久久色视频免费观看| 国产成人精品亚洲日本在线桃色| 欧美国产一区二区| 一本久久a久久精品亚洲| 一区二区国产视频| 欧美三级日韩在线| 美女在线视频一区| 国产欧美1区2区3区| 在线观看免费视频综合| 轻轻草成人在线| 欧美国产一区二区| 欧美日韩情趣电影| 韩国午夜理伦三级不卡影院| 国产精品高潮呻吟久久| 欧美精品乱码久久久久久| 狠狠色狠狠色合久久伊人| 一区二区欧美精品| 久久久亚洲精华液精华液精华液| 91视频.com| 国产精品一线二线三线精华| 亚洲夂夂婷婷色拍ww47| 久久午夜色播影院免费高清| 91精品福利视频| 成人夜色视频网站在线观看| 婷婷成人激情在线网| 国产精品久久久久9999吃药| 精品久久一二三区| 欧美精品日日鲁夜夜添| 99久久国产免费看| 国产成人精品免费网站| 奇米888四色在线精品| 亚洲伊人色欲综合网| 国产精品久久久久婷婷| 2021久久国产精品不只是精品| 欧美精品在线一区二区三区| 91丨九色丨蝌蚪丨老版| 国产一区二区在线影院| 国产一区二区在线观看视频| 日本欧美一区二区三区| 亚洲成在人线在线播放| 亚洲www啪成人一区二区麻豆| 亚洲天堂久久久久久久| 自拍偷在线精品自拍偷无码专区| 国产色综合久久| 国产精品网站在线| 91精品国产综合久久久久久久 | 丝袜a∨在线一区二区三区不卡| 一区二区在线观看不卡| 亚洲精品免费电影| 亚洲福利一区二区| 日韩福利电影在线| 国产精选一区二区三区| aa级大片欧美| 欧美色倩网站大全免费| 日韩欧美一二区| 欧美韩日一区二区三区四区| 亚洲精品视频一区| 午夜成人免费视频| 国产一区在线观看视频| 9色porny自拍视频一区二区| 欧美影视一区在线| 欧美va在线播放| 伊人一区二区三区| 免费人成网站在线观看欧美高清| 久久国产生活片100| 91麻豆精品一区二区三区| 欧美精品电影在线播放| 国产精品三级电影| 日本午夜精品视频在线观看| 成人免费毛片嘿嘿连载视频| 欧美日本在线播放| 国产精品网站一区| 精品一区二区综合| 欧美日韩国产片| 18涩涩午夜精品.www| 国产精品综合网| 欧美精品久久一区二区三区| 一色屋精品亚洲香蕉网站| 黄色精品一二区| 日韩一区二区三区电影| 一区二区高清在线| 色综合久久中文综合久久牛| 欧美国产一区二区在线观看| 久久成人18免费观看| 欧美肥妇bbw| 日本系列欧美系列| 欧美一区二区三区精品| 亚洲综合无码一区二区| 99国产精品久久久久久久久久久| 精品毛片乱码1区2区3区| 免费成人在线播放| 91精品国产色综合久久不卡电影| 性欧美疯狂xxxxbbbb| 欧美日韩三级一区二区| 日韩av成人高清| 亚洲精品一区二区三区蜜桃下载 | 国产午夜一区二区三区| 蜜芽一区二区三区| 久久夜色精品国产噜噜av| 国产乱码字幕精品高清av|