亚洲欧美第一页_禁久久精品乱码_粉嫩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电影免费观看高清完整版在线观看| 久久综合五月天婷婷伊人| 538在线一区二区精品国产| 欧美三级日韩三级国产三级| 色婷婷狠狠综合| 欧美亚洲综合色| 欧美在线观看视频在线| 欧美视频自拍偷拍| 欧美日韩国产美女| 欧美一区二区三区在| 91精品国产福利| 欧美xxxx在线观看| 久久久久亚洲蜜桃| 国产精品三级av| 亚洲欧洲综合另类| 亚洲国产视频网站| 日本欧美大码aⅴ在线播放| 美腿丝袜亚洲综合| 国产在线一区二区| 成人国产在线观看| 91在线免费视频观看| 91福利在线观看| 在线播放中文字幕一区| 精品91自产拍在线观看一区| 国产亚洲精品福利| 亚洲欧美日韩国产综合| 亚洲午夜久久久久久久久电影网| 日韩电影一区二区三区| 国内精品国产三级国产a久久| 国产91丝袜在线18| 91久久精品网| 日韩亚洲欧美高清| 中文字幕av一区二区三区免费看| 亚洲美女免费在线| 免费观看日韩电影| 成人黄色综合网站| 欧美精品在欧美一区二区少妇| 欧美成人在线直播| 国产精品黄色在线观看| 午夜欧美视频在线观看| 国产一区二区三区日韩| 91福利国产精品| 精品日韩99亚洲| 亚洲欧洲精品一区二区三区| 三级欧美在线一区| 国产宾馆实践打屁股91| 欧美日韩电影在线| 国产日韩精品一区二区浪潮av| 亚洲精品成人悠悠色影视| 麻豆精品在线播放| 99精品国产热久久91蜜凸| 欧美一级生活片| 中文字幕制服丝袜一区二区三区| 午夜视频在线观看一区二区三区| 国产精品一级片| 欧美私模裸体表演在线观看| 久久精品亚洲精品国产欧美kt∨ | 欧美韩国日本综合| 亚洲a一区二区| 国产成人丝袜美腿| 欧美精品国产精品| 日韩毛片在线免费观看| 久久精品国产免费看久久精品| 91麻豆精品一区二区三区| 日韩美女在线视频| 夜夜嗨av一区二区三区网页 | 日韩欧美一区二区不卡| 综合网在线视频| 精品一区二区三区不卡| 欧美性高清videossexo| 日本一区二区不卡视频| 免费观看在线综合| 欧美吻胸吃奶大尺度电影| 国产精品久线在线观看| 韩国女主播成人在线| 欧美高清视频www夜色资源网| 亚洲欧洲精品成人久久奇米网| 九色综合狠狠综合久久| 精品视频全国免费看| 日韩理论在线观看| 国产精品66部| 欧美tickle裸体挠脚心vk| 香蕉久久夜色精品国产使用方法 | www.综合网.com| 久久久精品日韩欧美| 裸体健美xxxx欧美裸体表演| 色婷婷亚洲精品| 亚洲欧美综合色| 成人免费毛片app| 久久久电影一区二区三区| 蜜臀va亚洲va欧美va天堂| 欧美日韩精品二区第二页| 亚洲毛片av在线| 91蜜桃在线观看| 综合欧美一区二区三区| 成人国产精品免费观看| 国产精品美日韩| 丰满少妇在线播放bd日韩电影| 26uuu国产电影一区二区| 麻豆专区一区二区三区四区五区| 欧美日韩日日夜夜| 亚洲成人资源网| 欧美亚洲丝袜传媒另类| 夜夜嗨av一区二区三区中文字幕 | 94色蜜桃网一区二区三区| 亚洲国产成人自拍| 国产**成人网毛片九色| 国产亚洲女人久久久久毛片| 国产精品夜夜嗨| 国产亚洲一二三区| 成人动漫一区二区三区| 中文字幕一区二区不卡| 日本精品视频一区二区三区| 亚洲精品中文在线影院| 欧洲精品视频在线观看| 香蕉加勒比综合久久| 91麻豆精品国产91久久久资源速度 | 中文字幕一区二区在线观看| bt7086福利一区国产| 亚洲视频中文字幕| 欧美视频一区二区| 日本在线不卡一区| 26uuu成人网一区二区三区| 国产成人av电影在线观看| 国产精品久久久久久久久免费桃花| 99久久免费国产| 亚洲午夜精品一区二区三区他趣| 91.com在线观看| 日本在线不卡一区| 国产午夜亚洲精品午夜鲁丝片| 成人av网在线| 亚洲一区二区三区国产| 日韩一区二区三区在线观看| 国产黄色精品视频| 亚洲久本草在线中文字幕| 91麻豆精品国产91久久久久久久久| 狠狠色丁香久久婷婷综| 日韩伦理电影网| 3d动漫精品啪啪一区二区竹菊| 美腿丝袜亚洲三区| 亚洲欧洲日韩在线| 欧美日韩大陆一区二区| 国产一区二区网址| 亚洲乱码精品一二三四区日韩在线| 欧美蜜桃一区二区三区| 国产剧情在线观看一区二区| 亚洲男同1069视频| 日韩欧美在线综合网| www.一区二区| 青青草精品视频| 国产精品视频一二三区| 欧美精品三级日韩久久| 成人久久18免费网站麻豆 | 日韩高清在线不卡| 国产日韩欧美制服另类| 欧美日韩精品一区视频| 国产精品羞羞答答xxdd | 欧美精品自拍偷拍| 国产精品自在欧美一区| 亚洲福利国产精品| 国产精品三级av在线播放| 日韩一区二区三区av| 99久久精品情趣| 久久99精品久久久久久动态图| 亚洲人成在线观看一区二区| 欧美精品一区二区在线播放| 在线看一区二区| 懂色av一区二区三区免费观看| 日韩成人免费电影| 亚洲专区一二三| 亚洲国产电影在线观看| 日韩精品一区二区在线| 欧美综合一区二区| 波多野结衣在线一区| 久久精品99国产国产精| 亚洲第四色夜色| 综合久久综合久久| 欧美激情在线一区二区三区| 日韩一级片在线播放| 欧美中文字幕久久| 一本色道久久加勒比精品| 国产高清不卡一区二区| 毛片不卡一区二区| 日韩精品免费专区| 亚洲黄色小说网站| 日韩一区中文字幕| 国产欧美精品日韩区二区麻豆天美| 日韩三级中文字幕| 91精品国产一区二区三区香蕉| 色狠狠av一区二区三区| 在线观看91av| 99re热视频精品| 丰满白嫩尤物一区二区| 国产成人精品免费| 国产伦精品一区二区三区免费迷 | 精品国产一区久久| 欧美久久久久久久久| 欧美色精品在线视频| 在线中文字幕一区二区|