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

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

?? alliant.md

?? 這是完整的gcc源代碼
?? MD
?? 第 1 頁 / 共 5 頁
字號:
;;- Machine description for GNU C compiler for Alliant FX systems;;   Copyright (C) 1989 Free Software Foundation, Inc.;;   Adapted from m68k.md by Paul Petersen (petersen@uicsrd.csrd.uiuc.edu);;   and Joe Weening (weening@gang-of-four.stanford.edu).;; This file is part of GNU CC.;; GNU CC is free software; you can redistribute it and/or modify;; it under the terms of the GNU General Public License as published by;; the Free Software Foundation; either version 1, or (at your option);; any later version.;; GNU CC 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 General Public License for more details.;; You should have received a copy of the GNU General Public License;; along with GNU CC; see the file COPYING.  If not, write to;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.;;- instruction definitions;;- @@The original PO technology requires these to be ordered by speed,;;- @@    so that assigner will pick the fastest.;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.;;- When naming insn's (operand 0 of define_insn) be careful about using;;- names from other targets machine descriptions.;;- cpp macro #define NOTICE_UPDATE_CC in file tm.h handles condition code;;- updates for most instructions.;;- Operand classes for the register allocator:;;- 'a' one of the address registers can be used.;;- 'd' one of the data registers can be used.;;- 'f' one of the CE floating point registers can be used;;- 'r' either a data or an address register can be used.;;- Immediate integer operand constraints:;;- 'I'  1 .. 8;;- 'J'  -32768 .. 32767;;- 'K'  -128 .. 127;;- 'L'  -8 .. -1;;- Some remnants of constraint codes for the m68k ('x','y','G','H');;- may remain in the insn definitions.;;- Some of these insn's are composites of several Alliant op codes.;;- The assembler (or final @@??) insures that the appropriate one is;;- selected.;; Put tstsi first among test insns so it matches a CONST_INT operand.(define_insn "tstsi"  [(set (cc0)	(match_operand:SI 0 "general_operand" "rm"))]  ""  "*{  if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))    return \"tst%.l %0\";  /* If you think that the 68020 does not support tstl a0,     reread page B-167 of the 68020 manual more carefully.  */  /* On an address reg, cmpw may replace cmpl.  */  return \"cmp%.w %#0,%0\";}")(define_insn "tsthi"  [(set (cc0)	(match_operand:HI 0 "general_operand" "rm"))]  ""  "*{  if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))    return \"tst%.w %0\";  return \"cmp%.w %#0,%0\";}")(define_insn "tstqi"  [(set (cc0)	(match_operand:QI 0 "general_operand" "dm"))]  ""  "tst%.b %0")(define_insn "tstsf"  [(set (cc0)	(match_operand:SF 0 "nonimmediate_operand" "fm"))]  "TARGET_CE"  "*{  cc_status.flags = CC_IN_FP;  return \"ftest%.s %0\";}")(define_insn "tstdf"  [(set (cc0)	(match_operand:DF 0 "nonimmediate_operand" "fm"))]  "TARGET_CE"  "*{  cc_status.flags = CC_IN_FP;  return \"ftest%.d %0\";}");; compare instructions.;; Put cmpsi first among compare insns so it matches two CONST_INT operands.;; A composite of the cmp, cmpa, & cmpi m68000 op codes.(define_insn "cmpsi"  [(set (cc0)	(compare (match_operand:SI 0 "general_operand" "rKs,mr,>")		 (match_operand:SI 1 "general_operand" "mr,Ksr,>")))]  ""  "*{  if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)    return \"cmpm%.l %1,%0\";  if (REG_P (operands[1])      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))    {      cc_status.flags |= CC_REVERSED;      return \"cmp%.l %d0,%d1\";     }  return \"cmp%.l %d1,%d0\";}")(define_insn "cmphi"  [(set (cc0)	(compare (match_operand:HI 0 "general_operand" "rnm,d,n,m")		 (match_operand:HI 1 "general_operand" "d,rnm,m,n")))]  ""  "*{  if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)    return \"cmpm%.w %1,%0\";  if ((REG_P (operands[1]) && !ADDRESS_REG_P (operands[1]))      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))    { cc_status.flags |= CC_REVERSED;      return \"cmp%.w %d0,%d1\";     }  return \"cmp%.w %d1,%d0\";}")(define_insn "cmpqi"  [(set (cc0)	(compare (match_operand:QI 0 "general_operand" "dn,md,>")		 (match_operand:QI 1 "general_operand" "dm,nd,>")))]  ""  "*{  if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)    return \"cmpm%.b %1,%0\";  if (REG_P (operands[1])      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))    {      cc_status.flags |= CC_REVERSED;      return \"cmp%.b %d0,%d1\";    }  return \"cmp%.b %d1,%d0\";}")(define_insn "cmpdf"  [(set (cc0)	(compare (match_operand:DF 0 "nonimmediate_operand" "f,m")		 (match_operand:DF 1 "nonimmediate_operand" "fm,f")))]  "TARGET_CE"  "*{  cc_status.flags = CC_IN_FP;  if (FP_REG_P (operands[0]))    return \"fcmp%.d %1,%0\";  cc_status.flags |= CC_REVERSED;  return \"fcmp%.d %0,%1\";}")(define_insn "cmpsf"  [(set (cc0)	(compare (match_operand:SF 0 "nonimmediate_operand" "f,m")		 (match_operand:SF 1 "nonimmediate_operand" "fm,f")))]  "TARGET_CE"  "*{  cc_status.flags = CC_IN_FP;  if (FP_REG_P (operands[0]))    return \"fcmp%.s %1,%0\";  cc_status.flags |= CC_REVERSED;  return \"fcmp%.s %0,%1\";}");; Recognizers for btst instructions.(define_insn ""  [(set (cc0) (zero_extract (match_operand:QI 0 "nonimmediate_operand" "do")			    (const_int 1)			    (minus:SI (const_int 7)				      (match_operand:SI 1 "general_operand" "di"))))]  ""  "* { return output_btst (operands, operands[1], operands[0], insn, 7); }")(define_insn ""  [(set (cc0) (zero_extract (match_operand:SI 0 "nonimmediate_operand" "d")			    (const_int 1)			    (minus:SI (const_int 31)				      (match_operand:SI 1 "general_operand" "di"))))]  ""  "* { return output_btst (operands, operands[1], operands[0], insn, 31); }");; The following two patterns are like the previous two;; except that they use the fact that bit-number operands;; are automatically masked to 3 or 5 bits.(define_insn ""  [(set (cc0) (zero_extract (match_operand:QI 0 "nonimmediate_operand" "do")			    (const_int 1)			    (minus:SI (const_int 7)				      (and:SI				       (match_operand:SI 1 "general_operand" "d")				       (const_int 7)))))]  ""  "* { return output_btst (operands, operands[1], operands[0], insn, 7); }")(define_insn ""  [(set (cc0) (zero_extract (match_operand:SI 0 "nonimmediate_operand" "d")			    (const_int 1)			    (minus:SI (const_int 31)				      (and:SI				       (match_operand:SI 1 "general_operand" "d")				       (const_int 31)))))]  ""  "* { return output_btst (operands, operands[1], operands[0], insn, 31); }");; Nonoffsettable mem refs are ok in this one pattern;; since we don't try to adjust them.(define_insn ""  [(set (cc0) (zero_extract (match_operand:QI 0 "nonimmediate_operand" "md")			    (const_int 1)			    (match_operand:SI 1 "general_operand" "i")))]  "GET_CODE (operands[1]) == CONST_INT   && (unsigned) INTVAL (operands[1]) < 8"  "*{  operands[1] = gen_rtx (CONST_INT, VOIDmode, 7 - INTVAL (operands[1]));  return output_btst (operands, operands[1], operands[0], insn, 7);}")(define_insn ""  ;; The constraint "o,d" here means that a nonoffsettable memref  ;; will match the first alternative, and its address will be reloaded.  ;; Copying the memory contents into a reg would be incorrect if the  ;; bit position is over 7.  [(set (cc0) (zero_extract (match_operand:HI 0 "nonimmediate_operand" "o,d")			    (const_int 1)			    (match_operand:SI 1 "general_operand" "i,i")))]  "GET_CODE (operands[1]) == CONST_INT"  "*{  if (GET_CODE (operands[0]) == MEM)    {      operands[0] = adj_offsettable_operand (operands[0],					     INTVAL (operands[1]) / 8);      operands[1] = gen_rtx (CONST_INT, VOIDmode, 			     7 - INTVAL (operands[1]) % 8);      return output_btst (operands, operands[1], operands[0], insn, 7);    }  operands[1] = gen_rtx (CONST_INT, VOIDmode,			 15 - INTVAL (operands[1]));  return output_btst (operands, operands[1], operands[0], insn, 15);}")(define_insn ""  [(set (cc0) (zero_extract (match_operand:SI 0 "nonimmediate_operand" "do")			    (const_int 1)			    (match_operand:SI 1 "general_operand" "i")))]  "GET_CODE (operands[1]) == CONST_INT"  "*{  if (GET_CODE (operands[0]) == MEM)    {      operands[0] = adj_offsettable_operand (operands[0],					     INTVAL (operands[1]) / 8);      operands[1] = gen_rtx (CONST_INT, VOIDmode, 			     7 - INTVAL (operands[1]) % 8);      return output_btst (operands, operands[1], operands[0], insn, 7);    }  operands[1] = gen_rtx (CONST_INT, VOIDmode,			 31 - INTVAL (operands[1]));  return output_btst (operands, operands[1], operands[0], insn, 31);}")(define_insn ""  [(set (cc0) (subreg:SI (lshiftrt:QI (match_operand:QI 0 "nonimmediate_operand" "dm")				      (const_int 7))			 0))]  ""  "*{  cc_status.flags = CC_Z_IN_NOT_N | CC_NOT_NEGATIVE;  return \"tst%.b %0\";}")(define_insn ""  [(set (cc0) (and:SI (sign_extend:SI (sign_extend:HI (match_operand:QI 0 "nonimmediate_operand" "dm")))		      (match_operand:SI 1 "general_operand" "i")))]  "(GET_CODE (operands[1]) == CONST_INT    && (unsigned) INTVAL (operands[1]) < 0x100    && exact_log2 (INTVAL (operands[1])) >= 0)"  "*{ register int log = exact_log2 (INTVAL (operands[1]));  operands[1] = gen_rtx (CONST_INT, VOIDmode, log);  return output_btst (operands, operands[1], operands[0], insn, 7);}");; move instructions;; A special case in which it is not desirable;; to reload the constant into a data register.(define_insn ""  [(set (match_operand:SI 0 "push_operand" "=m")	(match_operand:SI 1 "general_operand" "J"))]  "GET_CODE (operands[1]) == CONST_INT   && INTVAL (operands[1]) >= -0x8000   && INTVAL (operands[1]) < 0x8000"  "*{  if (operands[1] == const0_rtx)    return \"clr%.l %0\";  return \"pea %a1\";}");This is never used.;(define_insn "swapsi";  [(set (match_operand:SI 0 "general_operand" "r");	(match_operand:SI 1 "general_operand" "r"));   (set (match_dup 1) (match_dup 0))];  "";  "exg %1,%0");; Special case of fullword move when source is zero.;; The reason this is special is to avoid loading a zero;; into a data reg with moveq in order to store it elsewhere.   (define_insn ""  [(set (match_operand:SI 0 "general_operand" "=g")	(const_int 0))]  ""  "*{  if (ADDRESS_REG_P (operands[0]))    return \"sub%.l %0,%0\";  return \"clr%.l %0\";}");; General case of fullword move.  The register constraints;; force integer constants in range for a moveq to be reloaded;; if they are headed for memory.(define_insn "movsi"  ;; Notes: make sure no alternative allows g vs g.  ;; We don't allow f-regs since fixed point cannot go in them.  ;; We do allow y and x regs since fixed point is allowed in them.  [(set (match_operand:SI 0 "general_operand" "=g,da,y,!*x*r*m")	(match_operand:SI 1 "general_operand" "daymKs,i,g,*x*r*m"))]  ""  "*{  if (GET_CODE (operands[1]) == CONST_INT)    {      if (operands[1] == const0_rtx	  && (DATA_REG_P (operands[0])	      || GET_CODE (operands[0]) == MEM))	return \"clr%.l %0\";      else if (DATA_REG_P (operands[0])	       && INTVAL (operands[1]) < 128	       && INTVAL (operands[1]) >= -128)	return \"moveq %1,%0\";      else if (ADDRESS_REG_P (operands[0])	       && INTVAL (operands[1]) < 0x8000	       && INTVAL (operands[1]) >= -0x8000)	return \"mov%.w %1,%0\";      else if (push_operand (operands[0], SImode)	       && INTVAL (operands[1]) < 0x8000	       && INTVAL (operands[1]) >= -0x8000)        return \"pea %a1\";    }  else if ((GET_CODE (operands[1]) == SYMBOL_REF	    || GET_CODE (operands[1]) == CONST)	   && push_operand (operands[0], SImode))    return \"pea %a1\";  else if ((GET_CODE (operands[1]) == SYMBOL_REF	    || GET_CODE (operands[1]) == CONST)	   && ADDRESS_REG_P (operands[0]))    return \"lea %a1,%0\";  return \"mov%.l %1,%0\";}")(define_insn "movhi"  [(set (match_operand:HI 0 "general_operand" "=g")	(match_operand:HI 1 "general_operand" "g"))]  ""  "*{  if (GET_CODE (operands[1]) == CONST_INT)    {      if (operands[1] == const0_rtx	  && (DATA_REG_P (operands[0])	      || GET_CODE (operands[0]) == MEM))	return \"clr%.w %0\";      else if (DATA_REG_P (operands[0])	       && INTVAL (operands[1]) < 128	       && INTVAL (operands[1]) >= -128)        {	  return \"moveq %1,%0\";	}      else if (INTVAL (operands[1]) < 0x8000	       && INTVAL (operands[1]) >= -0x8000)	return \"mov%.w %1,%0\";    }  else if (CONSTANT_P (operands[1]))    return \"mov%.l %1,%0\";  /* Recognize the insn before a tablejump, one that refers     to a table of offsets.  Such an insn will need to refer     to a label on the insn.  So output one.  Use the label-number     of the table of offsets to generate this label.  */  if (GET_CODE (operands[1]) == MEM      && GET_CODE (XEXP (operands[1], 0)) == PLUS      && (GET_CODE (XEXP (XEXP (operands[1], 0), 0)) == LABEL_REF	  || GET_CODE (XEXP (XEXP (operands[1], 0), 1)) == LABEL_REF)      && GET_CODE (XEXP (XEXP (operands[1], 0), 0)) != PLUS      && GET_CODE (XEXP (XEXP (operands[1], 0), 1)) != PLUS)    {      rtx labelref;      if (GET_CODE (XEXP (XEXP (operands[1], 0), 0)) == LABEL_REF)	labelref = XEXP (XEXP (operands[1], 0), 0);      else	labelref = XEXP (XEXP (operands[1], 0), 1);      ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LI\",				 CODE_LABEL_NUMBER (XEXP (labelref, 0)));    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费看黄网站| 国产成人免费视频精品含羞草妖精| 蜜桃av一区二区三区| 高清国产一区二区| 欧美成人福利视频| 国产精品一区二区男女羞羞无遮挡 | 久久成人久久鬼色| 欧美写真视频网站| 中文字幕色av一区二区三区| 免费观看在线综合色| 欧美三级韩国三级日本一级| 国产精品久久久久久久久免费桃花| 久久国产精品色婷婷| 欧美美女一区二区在线观看| 亚洲精品一二三| 成人精品电影在线观看| 久久美女艺术照精彩视频福利播放 | 狠狠色狠狠色合久久伊人| 欧美男同性恋视频网站| 一区二区三区四区激情| 成人免费视频国产在线观看| 亚洲精品一区二区三区蜜桃下载| 日韩av电影免费观看高清完整版| 一本大道综合伊人精品热热| 亚洲色大成网站www久久九九| 国产精品一区在线观看乱码 | 精彩视频一区二区| 日韩美女在线视频| 蜜臀av性久久久久蜜臀aⅴ| 欧美专区亚洲专区| 亚洲一区二区在线视频| 欧美午夜片在线看| 亚洲风情在线资源站| 欧美肥胖老妇做爰| 欧美aaaaaa午夜精品| 日韩欧美一级二级| 国产精品自在在线| 国产欧美一区二区精品性| 国产精品一区三区| 亚洲国产精品激情在线观看| 成人在线视频一区| 亚洲精品第1页| 欧美日本免费一区二区三区| 日韩中文字幕一区二区三区| 欧美一卡2卡3卡4卡| 久久99精品久久久久久动态图| 精品捆绑美女sm三区| 国产综合色视频| 国产精品美女久久久久高潮 | 国产成人在线观看免费网站| 国产精品免费av| 欧美在线不卡视频| 午夜精品久久久久久不卡8050| 欧美精品一卡二卡| 国产在线精品一区二区三区不卡| 国产精品久久午夜夜伦鲁鲁| 在线视频综合导航| 免费成人结看片| 中文字幕高清一区| 欧美午夜一区二区| 国产原创一区二区三区| 中文字幕一区二区三| 337p亚洲精品色噜噜狠狠| 国产一区二区三区黄视频| 亚洲同性同志一二三专区| 51精品视频一区二区三区| 国产综合久久久久影院| 亚洲精品久久久蜜桃| 欧美一区二区精美| 99视频在线观看一区三区| 日韩电影在线观看网站| 国产精品欧美综合在线| 欧美日韩国产成人在线免费| 国产成人综合亚洲网站| 视频一区视频二区中文字幕| 国产精品每日更新在线播放网址| 欧美日本视频在线| 97超碰欧美中文字幕| 久久99精品国产.久久久久 | 中文字幕视频一区| 日韩精品专区在线| 欧美色偷偷大香| 国产成人av电影免费在线观看| 亚洲国产日韩a在线播放| 欧美韩国日本一区| 欧美一区二区三区在线看| 99re66热这里只有精品3直播| 麻豆一区二区三| 亚洲成av人影院在线观看网| 亚洲欧洲一区二区三区| 精品久久久久久综合日本欧美 | 婷婷一区二区三区| 亚洲欧美在线aaa| 久久久久97国产精华液好用吗| 日本韩国欧美一区二区三区| 成人av电影在线网| 极品少妇一区二区| 蜜臀av一区二区在线免费观看| 亚洲码国产岛国毛片在线| 国产欧美日韩精品在线| 精品久久国产老人久久综合| 欧美精品vⅰdeose4hd| 色婷婷精品大在线视频| 成人免费观看男女羞羞视频| 经典三级视频一区| 欧美视频在线观看一区| 色综合一个色综合亚洲| 成a人片国产精品| 成人精品一区二区三区中文字幕| 国内精品久久久久影院薰衣草| 日本视频在线一区| 久久精品国产99国产精品| 看电影不卡的网站| 日本美女一区二区三区| 日本不卡一区二区三区高清视频| 午夜伦理一区二区| 日韩综合小视频| 老司机精品视频线观看86| 精品一区二区三区影院在线午夜| 精品一二线国产| 国产精品一区二区无线| 不卡视频在线观看| 色综合久久天天| 欧美亚洲动漫精品| 欧美高清www午色夜在线视频| 欧美精品第1页| 欧美mv日韩mv亚洲| 久久久久久97三级| 18欧美亚洲精品| 亚洲影院理伦片| 麻豆精品精品国产自在97香蕉| 韩国女主播一区二区三区| 国产成人综合网站| 色婷婷av一区二区三区之一色屋| 欧美少妇性性性| 亚洲精品在线网站| 亚洲视频在线观看一区| 午夜不卡在线视频| 国产一区二区在线视频| 国产成人精品影视| 欧美性猛交一区二区三区精品 | 精品一区二区三区免费毛片爱| 国产乱码精品一区二区三区忘忧草| 懂色av一区二区三区蜜臀| 在线免费观看一区| 欧美电影免费观看高清完整版| 中文字幕精品一区| 亚洲成人在线免费| 国内精品伊人久久久久av影院| 91蜜桃网址入口| 3d动漫精品啪啪| 成人欧美一区二区三区1314| 午夜激情久久久| 国产iv一区二区三区| 欧美午夜精品久久久久久孕妇| 欧美精品一区二区三区在线播放| 国产精品美女久久久久久久久| 午夜精品久久久久久久久久| 成人免费视频视频| 日韩一区二区高清| 亚洲美腿欧美偷拍| 国产成人日日夜夜| 欧美一区二区三区免费大片 | 日本v片在线高清不卡在线观看| 国产99久久精品| 7777精品伊人久久久大香线蕉的| 欧美激情自拍偷拍| 日本三级亚洲精品| 欧美专区在线观看一区| 久久精子c满五个校花| 日韩一区欧美二区| 色88888久久久久久影院野外| 久久精品一区二区三区av| 欧美aⅴ一区二区三区视频| 91丨九色丨尤物| 亚洲国产成人自拍| 国产专区综合网| 日韩色视频在线观看| 亚洲一区影音先锋| 色综合久久综合网97色综合| 国产精品美女久久久久av爽李琼| 黄色资源网久久资源365| 欧美一卡2卡3卡4卡| 亚洲成av人片观看| 欧美视频在线一区| 亚洲一区二区在线观看视频| 91在线视频网址| 亚洲欧美一区二区三区国产精品| 成人网在线免费视频| 国产日韩欧美一区二区三区乱码 | 国产一区二区三区四 | 91精品国产综合久久蜜臀| 亚洲精品乱码久久久久久| 97久久精品人人爽人人爽蜜臀| 中文字幕免费不卡| 懂色av中文一区二区三区| 久久久精品日韩欧美| 精品一区二区成人精品| 精品成人在线观看| 国产老肥熟一区二区三区|