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

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

?? ppc-opc.c

?? 《嵌入式系統設計與實例開發實驗教材二源碼》Linux內核移植與編譯實驗
?? C
?? 第 1 頁 / 共 5 頁
字號:
  unsigned long uval;  int mb, me;  uval = value;  if (uval == 0)    {      if (errmsg != (const char **) NULL)	*errmsg = "illegal bitmask";      return insn;    }  me = 31;  while ((uval & 1) == 0)    {      uval >>= 1;      --me;    }  mb = me;  uval >>= 1;  while ((uval & 1) != 0)    {      uval >>= 1;      --mb;    }  if (uval != 0)    {      if (errmsg != (const char **) NULL)	*errmsg = "illegal bitmask";    }  return insn | (mb << 6) | (me << 1);}static longextract_mbe (insn, invalid)     unsigned long insn;     int *invalid;{  long ret;  int mb, me;  int i;  if (invalid != (int *) NULL)    *invalid = 1;  ret = 0;  mb = (insn >> 6) & 0x1f;  me = (insn >> 1) & 0x1f;  for (i = mb; i < me; i++)    ret |= 1 << (31 - i);  return ret;}/* The MB or ME field in an MD or MDS form instruction.  The high bit   is wrapped to the low end.  *//*ARGSUSED*/static unsigned longinsert_mb6 (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  return insn | ((value & 0x1f) << 6) | (value & 0x20);}/*ARGSUSED*/static longextract_mb6 (insn, invalid)     unsigned long insn;     int *invalid;{  return ((insn >> 6) & 0x1f) | (insn & 0x20);}/* The NB field in an X form instruction.  The value 32 is stored as   0.  */static unsigned longinsert_nb (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  if (value < 0 || value > 32)    *errmsg = "value out of range";  if (value == 32)    value = 0;  return insn | ((value & 0x1f) << 11);}/*ARGSUSED*/static longextract_nb (insn, invalid)     unsigned long insn;     int *invalid;{  long ret;  ret = (insn >> 11) & 0x1f;  if (ret == 0)    ret = 32;  return ret;}/* The NSI field in a D form instruction.  This is the same as the SI   field, only negated.  The extraction function always marks it as   invalid, since we never want to recognize an instruction which uses   a field of this type.  *//*ARGSUSED*/static unsigned longinsert_nsi (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  return insn | ((- value) & 0xffff);}static longextract_nsi (insn, invalid)     unsigned long insn;     int *invalid;{  if (invalid != (int *) NULL)    *invalid = 1;  if ((insn & 0x8000) != 0)    return - ((insn & 0xffff) - 0x10000);  else    return - (insn & 0xffff);}/* 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.  */static unsigned longinsert_ral (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  if (value == 0      || value == ((insn >> 21) & 0x1f))    *errmsg = "invalid register operand when updating";  return insn | ((value & 0x1f) << 16);}/* The RA field in an lmw instruction, which has special value   restrictions.  */static unsigned longinsert_ram (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  if (value >= ((insn >> 21) & 0x1f))    *errmsg = "index register in load range";  return insn | ((value & 0x1f) << 16);}/* 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.  */static unsigned longinsert_ras (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  if (value == 0)    *errmsg = "invalid register operand when updating";  return insn | ((value & 0x1f) << 16);}/* 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.  This operand is marked FAKE.  The insertion   function just copies the BT field into the BA field, and the   extraction function just checks that the fields are the same.  *//*ARGSUSED*/static unsigned long insert_rbs (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  return insn | (((insn >> 21) & 0x1f) << 11);}static longextract_rbs (insn, invalid)     unsigned long insn;     int *invalid;{  if (invalid != (int *) NULL      && ((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))    *invalid = 1;  return 0;}/* The SH field in an MD form instruction.  This is split.  *//*ARGSUSED*/static unsigned longinsert_sh6 (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);}/*ARGSUSED*/static longextract_sh6 (insn, invalid)     unsigned long insn;     int *invalid;{  return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);}/* The SPR field in an XFX form instruction.  This is flipped--the   lower 5 bits are stored in the upper 5 and vice- versa.  */static unsigned longinsert_spr (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);}static longextract_spr (insn, invalid)     unsigned long insn;     int *invalid;{  return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);}/* The TBR field in an XFX instruction.  This is just like SPR, but it   is optional.  When TBR is omitted, it must be inserted as 268 (the   magic number of the TB register).  These functions treat 0   (indicating an omitted optional operand) as 268.  This means that   ``mftb 4,0'' is not handled correctly.  This does not matter very   much, since the architecture manual does not define mftb as   accepting any values other than 268 or 269.  */#define TB (268)static unsigned longinsert_tbr (insn, value, errmsg)     unsigned long insn;     long value;     const char **errmsg;{  if (value == 0)    value = TB;  return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);}static longextract_tbr (insn, invalid)     unsigned long insn;     int *invalid;{  long ret;  ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);  if (ret == TB)    ret = 0;  return ret;}/* Macros used to form opcodes.  *//* The main opcode.  */#define OP(x) (((x) & 0x3f) << 26)#define OP_MASK OP (0x3f)/* The main opcode combined with a trap code in the TO field of a D   form instruction.  Used for extended mnemonics for the trap   instructions.  */#define OPTO(x,to) (OP (x) | (((to) & 0x1f) << 21))#define OPTO_MASK (OP_MASK | TO_MASK)/* The main opcode combined with a comparison size bit in the L field   of a D form or X form instruction.  Used for extended mnemonics for   the comparison instructions.  */#define OPL(x,l) (OP (x) | (((l) & 1) << 21))#define OPL_MASK OPL (0x3f,1)/* An A form instruction.  */#define A(op, xop, rc) (OP (op) | (((xop) & 0x1f) << 1) | ((rc) & 1))#define A_MASK A (0x3f, 0x1f, 1)/* An A_MASK with the FRB field fixed.  */#define AFRB_MASK (A_MASK | FRB_MASK)/* An A_MASK with the FRC field fixed.  */#define AFRC_MASK (A_MASK | FRC_MASK)/* An A_MASK with the FRA and FRC fields fixed.  */#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)/* A B form instruction.  */#define B(op, aa, lk) (OP (op) | (((aa) & 1) << 1) | ((lk) & 1))#define B_MASK B (0x3f, 1, 1)/* A B form instruction setting the BO field.  */#define BBO(op, bo, aa, lk) (B ((op), (aa), (lk)) | (((bo) & 0x1f) << 21))#define BBO_MASK BBO (0x3f, 0x1f, 1, 1)/* A BBO_MASK with the y bit of the BO field removed.  This permits   matching a conditional branch regardless of the setting of the y   bit.  */#define Y_MASK (1 << 21)#define BBOY_MASK (BBO_MASK &~ Y_MASK)/* A B form instruction setting the BO field and the condition bits of   the BI field.  */#define BBOCB(op, bo, cb, aa, lk) \  (BBO ((op), (bo), (aa), (lk)) | (((cb) & 0x3) << 16))#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)/* A BBOCB_MASK with the y bit of the BO field removed.  */#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)/* A BBOYCB_MASK in which the BI field is fixed.  */#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)/* The main opcode mask with the RA field clear.  */#define DRA_MASK (OP_MASK | RA_MASK)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久综合精品竹菊| 日韩一区二区精品葵司在线| 666欧美在线视频| 中文字幕不卡在线播放| 日日夜夜精品视频免费| 成人精品电影在线观看| 日韩欧美www| 亚洲小说欧美激情另类| 99久久久无码国产精品| 久久久精品免费免费| 日韩激情视频网站| 欧美日韩精品一区二区三区四区| 国产精品欧美一区喷水| 国产一区二区三区美女| 日韩精品一区二区三区四区视频| 亚洲va韩国va欧美va| 色av成人天堂桃色av| 亚洲免费观看高清| av中文字幕亚洲| 国产精品久久久久久福利一牛影视| 国产在线精品免费| 精品美女被调教视频大全网站| 日韩精品电影在线观看| 欧美日韩成人综合| 午夜久久久影院| 欧美日韩成人在线一区| 亚洲电影一区二区三区| 欧美在线视频全部完| 一区二区激情小说| 欧美综合亚洲图片综合区| 亚洲精品中文在线观看| 色婷婷激情一区二区三区| 亚洲视频在线观看一区| 一本久久综合亚洲鲁鲁五月天| 亚洲色图.com| 欧美四级电影在线观看| 日本免费新一区视频| 欧美一级电影网站| 国产在线一区观看| 国产精品卡一卡二卡三| 色婷婷av一区二区三区软件| 亚洲一区二区欧美| 日韩视频永久免费| 国产成人午夜高潮毛片| 综合网在线视频| 欧美巨大另类极品videosbest | 成人av在线资源| 亚洲桃色在线一区| 在线免费亚洲电影| 日韩二区在线观看| 国产欧美一二三区| 91丨九色丨蝌蚪丨老版| 日日摸夜夜添夜夜添国产精品| 精品少妇一区二区三区日产乱码 | 午夜精品久久久久久久99水蜜桃| 4438成人网| 国产成人精品在线看| 亚洲欧美综合网| 欧美精品三级日韩久久| 国产一区二区三区在线观看精品| 欧美国产激情一区二区三区蜜月| 91免费版pro下载短视频| 偷拍自拍另类欧美| 国产欧美视频一区二区三区| 一本大道综合伊人精品热热| 青青草精品视频| 国产精品天干天干在线综合| 欧美高清视频一二三区 | 精品国产精品一区二区夜夜嗨| 成人午夜视频网站| 日韩有码一区二区三区| 国产日韩欧美电影| 欧美日本高清视频在线观看| 国产成a人无v码亚洲福利| 亚洲bt欧美bt精品777| 欧美国产亚洲另类动漫| 欧美一区二区三区日韩| 色狠狠一区二区| 国产大片一区二区| 三级欧美韩日大片在线看| 国产精品乱码久久久久久| 欧美一区二区私人影院日本| 99视频有精品| 国产一区三区三区| 日本强好片久久久久久aaa| 亚洲色图欧洲色图婷婷| 久久精品免视看| 欧美第一区第二区| 欧美午夜理伦三级在线观看| www.欧美色图| 国产不卡高清在线观看视频| 欧美a一区二区| 亚洲午夜激情网站| 亚洲欧洲日韩一区二区三区| 久久久亚洲高清| 欧美一级高清片在线观看| 欧美日韩国产影片| 91久久精品午夜一区二区| 91一区在线观看| 成人aaaa免费全部观看| 激情综合色播激情啊| 久久成人久久鬼色| 日韩福利视频导航| 天天综合色天天| 五月婷婷综合网| 亚洲123区在线观看| 一区二区在线观看视频在线观看| 亚洲欧美日韩一区| 亚洲人123区| 亚洲免费观看高清完整版在线观看| 国产精品三级电影| 中文字幕日韩精品一区| 1024成人网| 亚洲精品视频在线观看免费| 日韩美女精品在线| 亚洲免费观看高清完整版在线观看| 亚洲欧美偷拍三级| 亚洲一区二区三区四区五区黄 | 国产精品原创巨作av| 激情图片小说一区| 国产一区啦啦啦在线观看| 国产精品99久久久久| 成人精品视频一区| 91浏览器打开| 欧美日韩一卡二卡| 日韩一区国产二区欧美三区| 日韩欧美国产综合| 欧美韩日一区二区三区四区| 综合婷婷亚洲小说| 婷婷开心激情综合| 国产最新精品精品你懂的| 国产精品66部| 91久久免费观看| 日韩精品中文字幕一区| 中文子幕无线码一区tr| 亚洲综合色成人| 老司机午夜精品| 成人app网站| 欧美一区二区视频在线观看| 久久亚洲春色中文字幕久久久| 国产精品久久久久婷婷| 亚洲一区二区三区在线看| 激情图片小说一区| 欧美中文字幕一区二区三区亚洲| 91精品国产色综合久久不卡电影| 亚洲精品一区二区在线观看| 亚洲免费伊人电影| 老司机精品视频导航| 99久久99久久精品国产片果冻 | 欧美日本国产一区| 久久久一区二区| 亚洲h在线观看| 粉嫩在线一区二区三区视频| 欧美四级电影在线观看| 国产日韩成人精品| 亚洲.国产.中文慕字在线| 懂色av一区二区三区免费看| 欧美日韩高清在线播放| 日本一区二区三级电影在线观看| 亚洲成人在线网站| 成人视屏免费看| 欧美一区二区三区人| 一区二区三区免费网站| 国产成人免费视频精品含羞草妖精| 在线观看中文字幕不卡| 国产欧美综合色| 日本sm残虐另类| 欧美三电影在线| 亚洲欧洲日韩女同| 国产91精品久久久久久久网曝门| 欧美久久一二区| 一区二区成人在线观看| 成人永久aaa| 日韩一区二区视频| 亚洲18影院在线观看| 91官网在线免费观看| 国产农村妇女毛片精品久久麻豆| 久久成人免费电影| 3d成人动漫网站| 亚洲一卡二卡三卡四卡无卡久久| 大陆成人av片| 国产精品毛片无遮挡高清| 国产呦萝稀缺另类资源| 欧美mv日韩mv国产网站| 日韩精品亚洲专区| 欧美午夜精品一区二区蜜桃| 一区二区在线观看免费视频播放 | 欧美精品电影在线播放| 玉足女爽爽91| 在线观看成人小视频| 亚洲欧美日韩在线不卡| 91亚洲精品久久久蜜桃网站 | 777xxx欧美| 日韩电影在线免费看| 欧美美女一区二区| 日韩综合一区二区| 欧美一区二区观看视频| 日本va欧美va欧美va精品| 日韩免费看的电影| 精品一区精品二区高清|