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

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

?? ppc-opc.c

?? 優龍2410linux2.6.8內核源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* ppc-opc.c -- PowerPC opcode list   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003   Free Software Foundation, Inc.   Written by Ian Lance Taylor, Cygnus Support   This file is part of GDB, GAS, and the GNU binutils.   GDB, GAS, and the GNU binutils are free software; you can redistribute   them and/or modify them under the terms of the GNU General Public   License as published by the Free Software Foundation; either version   2, or (at your option) any later version.   GDB, GAS, and the GNU binutils are distributed in the hope that they   will be useful, but WITHOUT ANY WARRANTY; without even the implied   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See   the GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this file; see the file COPYING.  If not, write to the Free   Software Foundation, 59 Temple Place - Suite 330, Boston, MA   02111-1307, USA.  */#include "nonstdio.h"#include "ppc.h"#define ATTRIBUTE_UNUSED#define _(x)	x/* This file holds the PowerPC opcode table.  The opcode table   includes almost all of the extended instruction mnemonics.  This   permits the disassembler to use them, and simplifies the assembler   logic, at the cost of increasing the table size.  The table is   strictly constant data, so the compiler should be able to put it in   the .text section.   This file also holds the operand table.  All knowledge about   inserting operands into instructions and vice-versa is kept in this   file.  *//* Local insertion and extraction functions.  */static unsigned long insert_bat (unsigned long, long, int, const char **);static long extract_bat (unsigned long, int, int *);static unsigned long insert_bba (unsigned long, long, int, const char **);static long extract_bba (unsigned long, int, int *);static unsigned long insert_bd (unsigned long, long, int, const char **);static long extract_bd (unsigned long, int, int *);static unsigned long insert_bdm (unsigned long, long, int, const char **);static long extract_bdm (unsigned long, int, int *);static unsigned long insert_bdp (unsigned long, long, int, const char **);static long extract_bdp (unsigned long, int, int *);static unsigned long insert_bo (unsigned long, long, int, const char **);static long extract_bo (unsigned long, int, int *);static unsigned long insert_boe (unsigned long, long, int, const char **);static long extract_boe (unsigned long, int, int *);static unsigned long insert_dq (unsigned long, long, int, const char **);static long extract_dq (unsigned long, int, int *);static unsigned long insert_ds (unsigned long, long, int, const char **);static long extract_ds (unsigned long, int, int *);static unsigned long insert_de (unsigned long, long, int, const char **);static long extract_de (unsigned long, int, int *);static unsigned long insert_des (unsigned long, long, int, const char **);static long extract_des (unsigned long, int, int *);static unsigned long insert_fxm (unsigned long, long, int, const char **);static long extract_fxm (unsigned long, int, int *);static unsigned long insert_li (unsigned long, long, int, const char **);static long extract_li (unsigned long, int, int *);static unsigned long insert_mbe (unsigned long, long, int, const char **);static long extract_mbe (unsigned long, int, int *);static unsigned long insert_mb6 (unsigned long, long, int, const char **);static long extract_mb6 (unsigned long, int, int *);static unsigned long insert_nb (unsigned long, long, int, const char **);static long extract_nb (unsigned long, int, int *);static unsigned long insert_nsi (unsigned long, long, int, const char **);static long extract_nsi (unsigned long, int, int *);static unsigned long insert_ral (unsigned long, long, int, const char **);static unsigned long insert_ram (unsigned long, long, int, const char **);static unsigned long insert_raq (unsigned long, long, int, const char **);static unsigned long insert_ras (unsigned long, long, int, const char **);static unsigned long insert_rbs (unsigned long, long, int, const char **);static long extract_rbs (unsigned long, int, int *);static unsigned long insert_rsq (unsigned long, long, int, const char **);static unsigned long insert_rtq (unsigned long, long, int, const char **);static unsigned long insert_sh6 (unsigned long, long, int, const char **);static long extract_sh6 (unsigned long, int, int *);static unsigned long insert_spr (unsigned long, long, int, const char **);static long extract_spr (unsigned long, int, int *);static unsigned long insert_tbr (unsigned long, long, int, const char **);static long extract_tbr (unsigned long, int, int *);static unsigned long insert_ev2 (unsigned long, long, int, const char **);static long extract_ev2 (unsigned long, int, int *);static unsigned long insert_ev4 (unsigned long, long, int, const char **);static long extract_ev4 (unsigned long, int, int *);static unsigned long insert_ev8 (unsigned long, long, int, const char **);static long extract_ev8 (unsigned long, int, int *);/* The operands table.   The fields are bits, shift, insert, extract, flags.   We used to put parens around the various additions, like the one   for BA just below.  However, that caused trouble with feeble   compilers with a limit on depth of a parenthesized expression, like   (reportedly) the compiler in Microsoft Developer Studio 5.  So we   omit the parens, since the macros are never used in a context where   the addition will be ambiguous.  */const struct powerpc_operand powerpc_operands[] ={  /* The zero index is used to indicate the end of the list of     operands.  */#define UNUSED 0  { 0, 0, 0, 0, 0 },  /* The BA field in an XL form instruction.  */#define BA UNUSED + 1#define BA_MASK (0x1f << 16)  { 5, 16, 0, 0, PPC_OPERAND_CR },  /* The BA field in an XL form instruction when it must be the same     as the BT field in the same instruction.  */#define BAT BA + 1  { 5, 16, insert_bat, extract_bat, PPC_OPERAND_FAKE },  /* The BB field in an XL form instruction.  */#define BB BAT + 1#define BB_MASK (0x1f << 11)  { 5, 11, 0, 0, PPC_OPERAND_CR },  /* The BB field in an XL form instruction when it must be the same     as the BA field in the same instruction.  */#define BBA BB + 1  { 5, 11, insert_bba, extract_bba, PPC_OPERAND_FAKE },  /* The BD field in a B form instruction.  The lower two bits are     forced to zero.  */#define BD BBA + 1  { 16, 0, insert_bd, extract_bd, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },  /* The BD field in a B form instruction when absolute addressing is     used.  */#define BDA BD + 1  { 16, 0, insert_bd, extract_bd, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },  /* The BD field in a B form instruction when the - modifier is used.     This sets the y bit of the BO field appropriately.  */#define BDM BDA + 1  { 16, 0, insert_bdm, extract_bdm,      PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },  /* The BD field in a B form instruction when the - modifier is used     and absolute address is used.  */#define BDMA BDM + 1  { 16, 0, insert_bdm, extract_bdm,      PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },  /* The BD field in a B form instruction when the + modifier is used.     This sets the y bit of the BO field appropriately.  */#define BDP BDMA + 1  { 16, 0, insert_bdp, extract_bdp,      PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },  /* The BD field in a B form instruction when the + modifier is used     and absolute addressing is used.  */#define BDPA BDP + 1  { 16, 0, insert_bdp, extract_bdp,      PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },  /* The BF field in an X or XL form instruction.  */#define BF BDPA + 1  { 3, 23, 0, 0, PPC_OPERAND_CR },  /* An optional BF field.  This is used for comparison instructions,     in which an omitted BF field is taken as zero.  */#define OBF BF + 1  { 3, 23, 0, 0, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL },  /* The BFA field in an X or XL form instruction.  */#define BFA OBF + 1  { 3, 18, 0, 0, PPC_OPERAND_CR },  /* The BI field in a B form or XL form instruction.  */#define BI BFA + 1#define BI_MASK (0x1f << 16)  { 5, 16, 0, 0, PPC_OPERAND_CR },  /* The BO field in a B form instruction.  Certain values are     illegal.  */#define BO BI + 1#define BO_MASK (0x1f << 21)  { 5, 21, insert_bo, extract_bo, 0 },  /* The BO field in a B form instruction when the + or - modifier is     used.  This is like the BO field, but it must be even.  */#define BOE BO + 1  { 5, 21, insert_boe, extract_boe, 0 },  /* The BT field in an X or XL form instruction.  */#define BT BOE + 1  { 5, 21, 0, 0, PPC_OPERAND_CR },  /* The condition register number portion of the BI field in a B form     or XL form instruction.  This is used for the extended     conditional branch mnemonics, which set the lower two bits of the     BI field.  This field is optional.  */#define CR BT + 1  { 3, 18, 0, 0, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL },  /* The CRB field in an X form instruction.  */#define CRB CR + 1  { 5, 6, 0, 0, 0 },  /* The CRFD field in an X form instruction.  */#define CRFD CRB + 1  { 3, 23, 0, 0, PPC_OPERAND_CR },  /* The CRFS field in an X form instruction.  */#define CRFS CRFD + 1  { 3, 0, 0, 0, PPC_OPERAND_CR },  /* The CT field in an X form instruction.  */#define CT CRFS + 1  { 5, 21, 0, 0, PPC_OPERAND_OPTIONAL },  /* The D field in a D form instruction.  This is a displacement off     a register, and implies that the next operand is a register in     parentheses.  */#define D CT + 1  { 16, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },  /* The DE field in a DE form instruction.  This is like D, but is 12     bits only.  */#define DE D + 1  { 14, 0, insert_de, extract_de, PPC_OPERAND_PARENS },  /* The DES field in a DES form instruction.  This is like DS, but is 14     bits only (12 stored.)  */#define DES DE + 1  { 14, 0, insert_des, extract_des, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },  /* The DQ field in a DQ form instruction.  This is like D, but the     lower four bits are forced to zero. */#define DQ DES + 1  { 16, 0, insert_dq, extract_dq,      PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },  /* The DS field in a DS form instruction.  This is like D, but the     lower two bits are forced to zero.  */#define DS DQ + 1  { 16, 0, insert_ds, extract_ds,      PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },  /* The E field in a wrteei instruction.  */#define E DS + 1  { 1, 15, 0, 0, 0 },  /* The FL1 field in a POWER SC form instruction.  */#define FL1 E + 1  { 4, 12, 0, 0, 0 },  /* The FL2 field in a POWER SC form instruction.  */#define FL2 FL1 + 1  { 3, 2, 0, 0, 0 },  /* The FLM field in an XFL form instruction.  */#define FLM FL2 + 1  { 8, 17, 0, 0, 0 },  /* The FRA field in an X or A form instruction.  */#define FRA FLM + 1#define FRA_MASK (0x1f << 16)  { 5, 16, 0, 0, PPC_OPERAND_FPR },  /* The FRB field in an X or A form instruction.  */#define FRB FRA + 1#define FRB_MASK (0x1f << 11)  { 5, 11, 0, 0, PPC_OPERAND_FPR },  /* The FRC field in an A form instruction.  */#define FRC FRB + 1#define FRC_MASK (0x1f << 6)  { 5, 6, 0, 0, PPC_OPERAND_FPR },  /* The FRS field in an X form instruction or the FRT field in a D, X     or A form instruction.  */#define FRS FRC + 1#define FRT FRS  { 5, 21, 0, 0, PPC_OPERAND_FPR },  /* The FXM field in an XFX instruction.  */#define FXM FRS + 1#define FXM_MASK (0xff << 12)  { 8, 12, insert_fxm, extract_fxm, 0 },  /* Power4 version for mfcr.  */#define FXM4 FXM + 1  { 8, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },  /* The L field in a D or X form instruction.  */#define L FXM4 + 1  { 1, 21, 0, 0, PPC_OPERAND_OPTIONAL },  /* The LEV field in a POWER SC form instruction.  */#define LEV L + 1  { 7, 5, 0, 0, 0 },  /* The LI field in an I form instruction.  The lower two bits are     forced to zero.  */#define LI LEV + 1  { 26, 0, insert_li, extract_li, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },  /* The LI field in an I form instruction when used as an absolute     address.  */#define LIA LI + 1  { 26, 0, insert_li, extract_li, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },  /* The LS field in an X (sync) form instruction.  */#define LS LIA + 1  { 2, 21, 0, 0, PPC_OPERAND_OPTIONAL },  /* The MB field in an M form instruction.  */#define MB LS + 1#define MB_MASK (0x1f << 6)  { 5, 6, 0, 0, 0 },  /* The ME field in an M form instruction.  */#define ME MB + 1#define ME_MASK (0x1f << 1)  { 5, 1, 0, 0, 0 },  /* The MB and ME fields in an M form instruction expressed a single     operand which is a bitmask indicating which bits to select.  This     is a two operand form using PPC_OPERAND_NEXT.  See the     description in opcode/ppc.h for what this means.  */#define MBE ME + 1  { 5, 6, 0, 0, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },  { 32, 0, insert_mbe, extract_mbe, 0 },  /* The MB or ME field in an MD or MDS form instruction.  The high     bit is wrapped to the low end.  */#define MB6 MBE + 2#define ME6 MB6#define MB6_MASK (0x3f << 5)  { 6, 5, insert_mb6, extract_mb6, 0 },  /* The MO field in an mbar instruction.  */#define MO MB6 + 1  { 5, 21, 0, 0, 0 },  /* The NB field in an X form instruction.  The value 32 is stored as     0.  */#define NB MO + 1  { 6, 11, insert_nb, extract_nb, 0 },  /* The NSI field in a D form instruction.  This is the same as the     SI field, only negated.  */#define NSI NB + 1  { 16, 0, insert_nsi, extract_nsi,      PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },  /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction.  */#define RA NSI + 1#define RA_MASK (0x1f << 16)  { 5, 16, 0, 0, PPC_OPERAND_GPR },  /* The RA field in the DQ form lq instruction, which has special     value restrictions.  */#define RAQ RA + 1  { 5, 16, insert_raq, 0, PPC_OPERAND_GPR },  /* The RA field in a D or X form instruction which is an updating     load, which means that the RA field may not be zero and may not     equal the RT field.  */#define RAL RAQ + 1  { 5, 16, insert_ral, 0, PPC_OPERAND_GPR },  /* The RA field in an lmw instruction, which has special value     restrictions.  */#define RAM RAL + 1  { 5, 16, insert_ram, 0, PPC_OPERAND_GPR },  /* The RA field in a D or X form instruction which is an updating     store or an updating floating point load, which means that the RA     field may not be zero.  */#define RAS RAM + 1  { 5, 16, insert_ras, 0, PPC_OPERAND_GPR },  /* The RB field in an X, XO, M, or MDS form instruction.  */#define RB RAS + 1#define RB_MASK (0x1f << 11)  { 5, 11, 0, 0, PPC_OPERAND_GPR },  /* The RB field in an X form instruction when it must be the same as     the RS field in the instruction.  This is used for extended     mnemonics like mr.  */#define RBS RB + 1  { 5, 1, insert_rbs, extract_rbs, PPC_OPERAND_FAKE },  /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form     instruction or the RT field in a D, DS, X, XFX or XO form

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久搜平片| 日本高清不卡在线观看| 日韩欧美卡一卡二| 久久99国产精品久久| 精品国产乱码久久久久久影片| 精品一区二区三区日韩| 久久久久久9999| 处破女av一区二区| 亚洲男人天堂一区| 在线观看91视频| 欧美日韩专区在线| 三级欧美韩日大片在线看| 日韩一卡二卡三卡| 国产精品123区| 亚洲激情第一区| 欧美日本免费一区二区三区| 日本va欧美va瓶| 国产欧美一区二区三区网站| 91亚洲精品久久久蜜桃网站| 亚洲国产一区二区三区| 日韩免费福利电影在线观看| 国产高清久久久| 一区二区三区精品在线观看| 欧美一区二区三区电影| 国产精品一级在线| 亚洲国产综合人成综合网站| 精品久久国产字幕高潮| 成人美女视频在线看| 亚瑟在线精品视频| 久久精品一区二区三区不卡牛牛| 99久久综合精品| 日韩成人免费在线| 国产精品初高中害羞小美女文| 在线国产亚洲欧美| 久99久精品视频免费观看| 成人欧美一区二区三区白人| 51午夜精品国产| 成人av在线网站| 日本女人一区二区三区| 国产清纯白嫩初高生在线观看91 | av中文字幕在线不卡| 亚洲午夜精品网| 久久久99久久| 宅男噜噜噜66一区二区66| 国产99久久久国产精品免费看| 亚洲成a人片在线不卡一二三区| 久久一区二区三区四区| 欧美三级日韩在线| av不卡在线播放| 激情久久五月天| 性感美女极品91精品| 中文字幕一区在线观看视频| 精品国产亚洲在线| 宅男在线国产精品| 欧美艳星brazzers| av电影一区二区| 国产在线播放一区三区四| 亚洲一二三四在线| 亚洲色图欧美偷拍| 国产三级欧美三级| 久久久亚洲国产美女国产盗摄| 欧美色爱综合网| 色综合久久88色综合天天6| 丁香六月久久综合狠狠色| 精品综合免费视频观看| 天天综合日日夜夜精品| 一区二区三区视频在线看| 中文字幕在线不卡一区二区三区| 久久综合色婷婷| 久久婷婷久久一区二区三区| 日韩丝袜美女视频| 91精品国产综合久久精品图片 | 亚洲影视在线播放| 亚洲视频狠狠干| 成人欧美一区二区三区黑人麻豆 | 91麻豆免费视频| av爱爱亚洲一区| 91网站在线播放| 99re这里只有精品首页| 成人激情开心网| 国产91精品免费| 风间由美性色一区二区三区| 国产精品1区2区3区在线观看| 国产一区二区成人久久免费影院| 毛片不卡一区二区| 日本不卡高清视频| 蜜桃av一区二区三区电影| 六月丁香婷婷久久| 精品一区二区三区视频| 国产91色综合久久免费分享| 成人激情小说网站| 91麻豆免费看| 欧美日韩国产天堂| 日韩欧美中文一区| 久久久久久久网| 久久精品夜色噜噜亚洲aⅴ| 国产免费成人在线视频| 国产精品沙发午睡系列990531| 国产精品视频九色porn| 亚洲免费伊人电影| 日韩成人精品视频| 国产九九视频一区二区三区| 成人开心网精品视频| 91久久精品一区二区三| 欧美美女直播网站| 精品电影一区二区| 国产精品美女一区二区| 亚洲综合视频在线| 久久99精品久久只有精品| 国产69精品久久久久毛片 | 精品一区二区在线观看| 成人丝袜18视频在线观看| 色婷婷综合在线| 欧美成人性福生活免费看| 亚洲欧美综合另类在线卡通| 亚洲成人激情综合网| 国产福利一区二区三区视频| 色综合视频一区二区三区高清| 欧美电影一区二区三区| 国产精品卡一卡二| 蜜桃视频在线观看一区二区| 成人性生交大片| 欧美日韩一卡二卡| 久久这里只有精品首页| 一区二区三区精品久久久| 精品一区二区免费看| 色噜噜久久综合| 精品第一国产综合精品aⅴ| 亚洲综合免费观看高清完整版| 另类小说色综合网站| 日本精品视频一区二区| 欧美成人乱码一区二区三区| 亚洲精品成人少妇| 国产精品123| 欧美一区二区三区啪啪| 亚洲欧美一区二区三区极速播放| 久久99国产精品久久99| 欧美日本在线一区| 亚洲精品视频在线观看网站| 国产一区二区三区在线看麻豆| 欧美日韩在线三区| 国产精品萝li| 黄色精品一二区| 欧美高清精品3d| 樱花影视一区二区| 成人av网站在线| 久久网站热最新地址| 青青草国产成人av片免费| 欧美自拍偷拍一区| 中文字幕人成不卡一区| 国产老肥熟一区二区三区| 日韩免费电影网站| 免费在线视频一区| 6080日韩午夜伦伦午夜伦| 亚洲免费观看视频| 成人毛片老司机大片| 国产亚洲精品aa| 国产综合色视频| 日韩精品专区在线| 午夜国产精品一区| 欧美日韩一区二区三区免费看| 国产精品国产精品国产专区不片| 国产一区啦啦啦在线观看| 日韩一级视频免费观看在线| 日韩成人免费在线| 日韩欧美激情一区| 老司机午夜精品| 亚洲精品在线观看视频| 国模无码大尺度一区二区三区| 精品日韩av一区二区| 麻豆精品精品国产自在97香蕉| 51精品久久久久久久蜜臀| 无吗不卡中文字幕| 日韩一区二区在线看| 久久精品国产秦先生| 亚洲精品一区二区三区在线观看 | 国产色爱av资源综合区| 国产91精品一区二区麻豆亚洲| 日本一区二区三区dvd视频在线| 国产高清精品网站| 综合激情成人伊人| 日本精品视频一区二区三区| 亚洲成人激情综合网| 日韩一区二区免费电影| 国产在线播放一区| 国产精品乱人伦| 91极品美女在线| 亚洲成av人片一区二区梦乃| 69久久99精品久久久久婷婷| 激情成人综合网| 中文字幕一区二区视频| 91福利视频网站| 日韩国产成人精品| 久久综合av免费| 99精品一区二区三区| 一区二区欧美视频| 日韩精品一区二区三区三区免费| 国产高清在线观看免费不卡| 一区二区三区小说| 欧美一区二区三级|