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

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

?? i386.md

?? 這是完整的gcc源代碼
?? MD
?? 第 1 頁 / 共 4 頁
字號:
;; GCC machine description for Intel 80386.;; Copyright (C) 1988 Free Software Foundation, Inc.;; Mostly by William Schelter.;; 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' for eax;;- 'd' for edx;;- 'c' for ecx;;- 'b' for ebx;;- 'f' for anything in FLOAT_REGS;;- 'r' any (non-floating-point) register;;- 'q' regs that allow byte operations (A, B, C and D);;- 'A' A and D registers;; the special asm out single letter directives following a '%' are:;; 'z' mov%z1 would be movl, movw, or movb depending on the mode of operands[1];; 's' output a '*';; 'w' If the operand is a REG, it uses the mode size to determine the;;      printing of the reg;; 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"))]  ""  "*{  operands[1] = const0_rtx;  if (REG_P (operands[0]))    return AS2 (test%L0,%0,%0);  return AS2 (cmp%L0,%1,%0);}")(define_insn "tsthi"  [(set (cc0)	(match_operand:HI 0 "general_operand" "rm"))]  ""  "*{  operands[1] = const0_rtx;  if (REG_P (operands[0]))    return AS2 (test%W0,%0,%0);  return AS2 (cmp%W0,%1,%0);}")(define_insn "tstqi"  [(set (cc0)	(match_operand:QI 0 "general_operand" "qm"))]  ""  "*{  operands[1] = const0_rtx;  if (REG_P (operands[0]))    return AS2 (test%B0,%0,%0);  return AS2 (cmp%B0,%1,%0);}")(define_insn "tstsf"  [(set (cc0)	(match_operand:SF 0 "general_operand" "rm,f"))   (clobber (reg:SI 0))]  "TARGET_80387"  "*{  rtx xops[1];  if (!FP_REG_P (operands[0]))    fp_push_sf (operands[0]);/*  fp_pop_level--; */  xops[0] = FP_TOP;  cc_status.flags |= CC_IN_80387;  if (FP_REG_P (operands[0]) && ! top_dead_p (insn))    output_asm_insn (\"ftst\;fnstsw %R0ax\;sahf\", xops);  else    output_asm_insn (\"ftst\;fstp %0(0)\;fnstsw %R0ax\;sahf\", xops);  RETCOM (testsf);}")(define_insn "tstdf"  [(set (cc0)	(match_operand:DF 0 "general_operand" "rm,f"))   (clobber (reg:SI 0))   ]  "TARGET_80387"  "*{  rtx xops[1];  if (!FP_REG_P (operands[0]))    fp_push_df (operands[0]);/*  fp_pop_level--; */  xops[0] = FP_TOP;  cc_status.flags |= CC_IN_80387;  if (FP_REG_P (operands[0]) && ! top_dead_p (insn))    output_asm_insn (\"ftst\;fnstsw %R0ax\;sahf\", xops);  else    output_asm_insn (\"ftst\;fstp %0(0)\;fnstsw %R0ax\;sahf\", xops);  RETCOM (testdf);}");;- compare instructions;; Put cmpsi first among compare insns so it matches two CONST_INT operands.(define_insn "cmpsi"  [(set (cc0)	(compare (match_operand:SI 0 "general_operand" "mr,ri")		 (match_operand:SI 1 "general_operand" "ri,mr")))]  ""  "*{  if (REG_P (operands[1])      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))    {      cc_status.flags |= CC_REVERSED;      return AS2 (cmp%L0,%0,%1);    }  return AS2 (cmp%L0,%1,%0);}")(define_insn "cmphi"  [(set (cc0)	(compare (match_operand:HI 0 "general_operand" "mr,ri")		 (match_operand:HI 1 "general_operand" "ri,mr")))]  ""  "*{  if (REG_P (operands[1])      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))    {      cc_status.flags |= CC_REVERSED;      return AS2 (cmp%W0,%0,%1);    }  return AS2 (cmp%W0,%1,%0);}")(define_insn "cmpqi"  [(set (cc0)	(compare (match_operand:QI 0 "general_operand" "qn,mq")		 (match_operand:QI 1 "general_operand" "qm,nq")))]  ""  "*{  if (REG_P (operands[1])      || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))    {      cc_status.flags |= CC_REVERSED;      return AS2 (cmp%B0,%0,%1);    }  return AS2 (cmp%B0,%1,%0);}")(define_insn "cmpdf"  [(set (cc0)	(compare (match_operand:DF 0 "general_operand" "m,f*r,m,f,r,!*r")		 (match_operand:DF 1 "general_operand" "m,m,f*r,r,f,*r")))      (clobber (reg:SI 0))]  "TARGET_80387"  "*{  if (FP_REG_P (operands[0]))    {      rtx tem = operands[1];      operands[1] = operands[0];      operands[0] = tem;      cc_status.flags |= CC_REVERSED;    }  if (! FP_REG_P (operands[1]))    output_movdf (FP_TOP, operands[1]);  output_movdf (FP_TOP, operands[0]);/*  fp_pop_level--;  fp_pop_level--; */  cc_status.flags |= CC_IN_80387;  return \"fcompp\;fnstsw %R0ax\;sahf\";}")(define_insn "cmpsf"  [(set (cc0)	(compare (match_operand:SF 0 "general_operand" "m,f*r,m,f,r,!*r")		 (match_operand:SF 1 "general_operand" "m,m,f*r,r,f,*r")))   (clobber (reg:SI 0))]  "TARGET_80387"  "*{  if (FP_REG_P (operands[0]))    {      rtx tem = operands[1];      operands[1] = operands[0];      operands[0] = tem;      cc_status.flags |= CC_REVERSED;    }  if (! FP_REG_P (operands[1]))    output_movsf (FP_TOP, operands[1]);  output_movsf (FP_TOP, operands[0]);/*  fp_pop_level--;  fp_pop_level--; */  cc_status.flags |= CC_IN_80387;  return \"fcompp\;fnstsw %R0ax\;sahf\";}");; logical compare(define_insn ""  [(set (cc0)	(and:SI (match_operand:SI 0 "general_operand" "rm,ri")		(match_operand:SI 1 "general_operand" "ri,rm")))]  ""  "*{  if (CONSTANT_P (operands[1]) || GET_CODE (operands[0]) == MEM)    return AS2 (test%L0,%1,%0);  return AS2 (test%L0,%0,%1);}")(define_insn ""  [(set (cc0)	(and:HI (match_operand:HI 0 "general_operand" "rm,ri")		(match_operand:HI 1 "general_operand" "ri,rm")))]  ""  "*{  if (CONSTANT_P (operands[1]) || GET_CODE (operands[0]) == MEM)    return AS2 (test%W0,%1,%0);  return AS2 (test%W0,%0,%1);}")(define_insn ""  [(set (cc0)	(and:QI (match_operand:QI 0 "general_operand" "qm,qi")		(match_operand:QI 1 "general_operand" "qi,qm")))]  ""  "*{  if (CONSTANT_P (operands[1]) || GET_CODE (operands[0]) == MEM)    return AS2 (test%B0,%1,%0);  return AS2 (test%B0,%0,%1);}");; move instructions.;; There is one for each machine mode,;; and each is preceded by a corresponding push-insn pattern;; (since pushes are not general_operands on the 386).(define_insn ""  [(set (match_operand:SI 0 "push_operand" "=<")	(match_operand:SI 1 "general_operand" "g"))]  ""  "push%L0 %1");; General case of fullword move.(define_insn "movsi"  [(set (match_operand:SI 0 "general_operand" "=g,r")	(match_operand:SI 1 "general_operand" "ri,m"))]  ""  "*{  rtx link;  if (operands[1] == const0_rtx && REG_P (operands[0]))    return \"xor%L0 %0,%0\";  if (operands[1] == const1_rtx      && (link = find_reg_note (insn, REG_WAS_0, 0))      /* Make sure the insn that stored the 0 is still present.  */      && ! XEXP (link, 0)->volatil      && GET_CODE (XEXP (link, 0)) != NOTE      /* Make sure cross jumping didn't happen here.  */      && no_labels_between_p (XEXP (link, 0), insn))    /* Fastest way to change a 0 to a 1.  */    return \"inc%L0 %0\";  return \"mov%L0 %1,%0\";}")(define_insn ""  [(set (match_operand:HI 0 "push_operand" "=<")	(match_operand:HI 1 "general_operand" "g"))]  ""  "push%W0 %1")(define_insn "movhi"  [(set (match_operand:HI 0 "general_operand" "=g,r")	(match_operand:HI 1 "general_operand" "ri,m"))]  ""  "*{  rtx link;  if (operands[1] == const0_rtx && REG_P (operands[0]))    return \"xor%W0 %0,%0\";  if (operands[1] == const1_rtx      && (link = find_reg_note (insn, REG_WAS_0, 0))      /* Make sure the insn that stored the 0 is still present.  */      && ! XEXP (link, 0)->volatil      && GET_CODE (XEXP (link, 0)) != NOTE      /* Make sure cross jumping didn't happen here.  */      && no_labels_between_p (XEXP (link, 0), insn))    /* Fastest way to change a 0 to a 1.  */    return \"inc%W0 %0\";  return \"mov%W0 %1,%0\";}");; emit_push_insn when it calls move_by_pieces;; requires an insn to "push a byte".;; But actually we use pushw, which has the effect of rounding;; the amount pushed up to a halfword.(define_insn ""  [(set (match_operand:QI 0 "push_operand" "=<")	(match_operand:QI 1 "general_operand" "q"))]  ""  "*{  operands[1] = gen_rtx (REG, HImode, REGNO (operands[1]));  return \"push%W0 %1\";}")(define_insn "movqi"  [(set (match_operand:QI 0 "general_operand" "=q,*r,m")	(match_operand:QI 1 "general_operand" "*g,q,qi"))]  ""  "*{  rtx link;  if (operands[1] == const0_rtx && REG_P (operands[0]))    return \"xor%B0 %0,%0\";  if (operands[1] == const1_rtx      && (link = find_reg_note (insn, REG_WAS_0, 0))      /* Make sure the insn that stored the 0 is still present.  */      && ! XEXP (link, 0)->volatil      && GET_CODE (XEXP (link, 0)) != NOTE      /* Make sure cross jumping didn't happen here.  */      && no_labels_between_p (XEXP (link, 0), insn))    /* Fastest way to change a 0 to a 1.  */    return \"inc%B0 %0\";  /* If mov%B0 isn't allowed for one of these regs, use mov%W0.  */  if (NON_QI_REG_P (operands[0]) || NON_QI_REG_P (operands[1]))    return (AS2 (mov%W0,%w1,%w0));  return (AS2 (mov%B0,%1,%0));}"); I suspect nothing can ever match this ???;(define_insn "";  [(set (match_operand:SF 0 "general_operand" "rm");	(match_operand:SF 1 "general_operand" "f"));   (clobber (reg:SF 8))];  "";  "*;{;  output_asm_insn ("???", operands);;  fpop_sf (operands[0]);;  RETCOM (movsf_clobber);;}")(define_insn ""  [(set (match_operand:SF 0 "push_operand" "=<,<")	(match_operand:SF 1 "general_operand" "gF,f"))]  ""  "*{  if (FP_REG_P (operands[1]))    {      rtx xops[3];      xops[0] = AT_SP (SFmode);      xops[1] = gen_rtx (CONST_INT, VOIDmode, 4);      xops[2] = stack_pointer_rtx;/*      fp_pop_level--; */      output_asm_insn (AS2 (sub%L0,%1,%2), xops);      if (top_dead_p (insn))        output_asm_insn (\"fstp%S0 %0\", xops);      else        output_asm_insn (\"fst%S0 %0\", xops);      RET;    }  return \"push%L0 %1\";}")(define_insn "movsf"  ;; `rf' is duplicated in the second alternative  ;; to make sure an optional reload is generated  ;; for the memref in operand 0.  Otherwise  ;; we could use too many hard regs.  [(set (match_operand:SF 0 "general_operand" "=rf,mrf,!rm")	(match_operand:SF 1 "general_operand" "mrf,rf,F"))]  ""  "*{  if (FP_REG_P (operands[1])      && !FP_REG_P (operands[0])      && !top_dead_p (insn))    fp_store_sf (operands[0]);  else    output_movsf (operands[0], operands[1]);  RETCOM (movsf);}");;should change to handle the memory operands[1] without doing df push..(define_insn ""  [(set (match_operand:DF 0 "push_operand" "=<,<")	(match_operand:DF 1 "general_operand" "gF,f"))]  ""  "*{  if (FP_REG_P (operands[1]))    {      rtx xops[3];      xops[0] = AT_SP (DFmode);      xops[1] = gen_rtx (CONST_INT, VOIDmode, 8);      xops[2] = stack_pointer_rtx;/*      fp_pop_level--; */      output_asm_insn (AS2 (sub%L0,%1,%2), xops);      if (top_dead_p(insn))        output_asm_insn (\"fstp%Q0 %0\", xops);      else        output_asm_insn (\"fst%Q0 %0\", xops);      RETCOM (pushdf);    }  else    return output_move_double (operands);}")(define_insn "movdf"  [(set (match_operand:DF 0 "general_operand" "=rmf,&fr,!rm")	;; `rf' is duplicated in the second alternative	;; to make sure that optional reloads are generated	;; for the memory reference in operand 1.	(match_operand:DF 1 "general_operand" "fr,mrf,F"))]  ""  "*{  if (FP_REG_P (operands[1])      && ! FP_REG_P (operands[0])      && ! top_dead_p (insn))    fp_store_df (operands[0]);  else    output_movdf (operands[0], operands[1]);  RETCOM (movdf);}")(define_insn ""  [(set (match_operand:DI 0 "push_operand" "=<")	(match_operand:DI 1 "general_operand" "roiF"))]  ""  "*{  return output_move_double (operands);}")(define_insn "movdi"  [(set (match_operand:DI 0 "general_operand" "=&r,rm")	(match_operand:DI 1 "general_operand" "m,riF"))]  ""  "*{   return output_move_double (operands);}");; These go after the move instructions;; because the move instructions are better (require no spilling);; when they can apply.  But these go before the add and subtract insns;; because it is often shorter to use these when both apply.;Lennart Augustsson <augustss@cs.chalmers.se>;says this pattern just makes slower code:;	pushl	%ebp;	addl	$-80,(%esp);instead of;	leal	-80(%ebp),%eax;	pushl	%eax;;(define_insn "";  [(set (match_operand:SI 0 "push_operand" "=<");	(plus:SI (match_operand:SI 1 "general_operand" "%r");		 (match_operand:SI 2 "general_operand" "ri")))];  "";  "*;{;  rtx xops[4];;  xops[0] = operands[0];;  xops[1] = operands[1];;  xops[2] = operands[2];;  xops[3] = gen_rtx (MEM, SImode, stack_pointer_rtx);;  output_asm_insn (\"push%z1 %1\", xops);;  output_asm_insn (AS2 (add%z3,%2,%3), xops);;  RET;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色欲色欲www在线观看| 99国产精品久久久久久久久久| 国产一区二区福利| 大白屁股一区二区视频| 在线观看亚洲专区| 日韩一级在线观看| 国产精品理论在线观看| 亚洲电影中文字幕在线观看| 精品制服美女久久| 91麻豆视频网站| 日韩一区二区三区高清免费看看 | 日韩和欧美一区二区| 国产一区二三区| 91亚洲国产成人精品一区二区三| 884aa四虎影成人精品一区| 国产亚洲人成网站| 亚洲电影中文字幕在线观看| 国产成人精品亚洲777人妖 | 裸体歌舞表演一区二区| gogo大胆日本视频一区| 日韩一区二区三区免费看| 日韩毛片精品高清免费| 久久99精品久久久久婷婷| 99国产一区二区三精品乱码| 欧美一级欧美一级在线播放| 18成人在线观看| 精品中文字幕一区二区| 欧美日韩一区成人| 国产精品久久久久天堂| 久久福利资源站| 日本韩国一区二区| 亚洲国产精品成人综合色在线婷婷| 石原莉奈一区二区三区在线观看| www.亚洲在线| 久久久三级国产网站| 青青草原综合久久大伊人精品| 99久久精品情趣| 久久久99精品免费观看不卡| 首页国产丝袜综合| 91久久精品一区二区三| 国产精品久久综合| 国产成人午夜片在线观看高清观看| 717成人午夜免费福利电影| 一区二区在线观看不卡| 国产不卡视频在线观看| 欧美成人精品3d动漫h| 一区二区久久久久| av在线播放成人| 日本一区二区电影| 国产精品77777竹菊影视小说| 欧美一二三四区在线| 亚洲6080在线| 色视频成人在线观看免| 日韩久久一区二区| 成人免费va视频| 国产欧美日韩不卡免费| 国产乱码精品一区二区三| 26uuu精品一区二区| 久久精品国内一区二区三区| 色偷偷久久一区二区三区| 国产精品丝袜91| 成人午夜视频在线| 国产精品久久久久天堂| 成人综合婷婷国产精品久久 | 麻豆一区二区三| 在线不卡一区二区| 亚洲成av人片在www色猫咪| 欧美性三三影院| 亚洲一区日韩精品中文字幕| 色8久久人人97超碰香蕉987| 亚洲欧美色一区| 色综合天天在线| 亚洲裸体在线观看| 91福利在线看| 亚洲成人7777| 日韩女优视频免费观看| 激情国产一区二区 | www.日本不卡| 日韩理论电影院| 91成人国产精品| 亚洲免费在线观看| 成人禁用看黄a在线| 国产精品久久久久久久裸模| 成人app软件下载大全免费| 亚洲特级片在线| 色8久久人人97超碰香蕉987| 亚洲观看高清完整版在线观看 | 石原莉奈在线亚洲三区| 日韩视频免费直播| 国产美女精品在线| 欧美—级在线免费片| 91在线porny国产在线看| 亚洲欧美aⅴ...| 欧美性xxxxxx少妇| 久热成人在线视频| 国产精品久久久久影视| 91黄视频在线观看| 蜜臀精品一区二区三区在线观看| 久久综合网色—综合色88| 大白屁股一区二区视频| 亚洲一区在线播放| 日韩欧美久久一区| 成人av网在线| 亚洲妇女屁股眼交7| 久久综合久久综合亚洲| 99国产麻豆精品| 免费精品99久久国产综合精品| 久久老女人爱爱| 91热门视频在线观看| 婷婷久久综合九色综合绿巨人| 欧美va亚洲va| jlzzjlzz亚洲女人18| 日韩在线观看一区二区| 国产日韩欧美一区二区三区乱码 | 一级特黄大欧美久久久| 日韩欧美国产电影| av不卡在线观看| 日本成人在线电影网| 国产精品久久久久影院亚瑟| 91麻豆精品国产自产在线| 大陆成人av片| 日本成人在线网站| 日韩毛片精品高清免费| 日韩女同互慰一区二区| 色婷婷综合久久久久中文一区二区 | 国产精品一区二区果冻传媒| 亚洲乱码中文字幕| 精品国产在天天线2019| 欧美午夜理伦三级在线观看| 国产一区二区三区黄视频 | 欧美性生交片4| 国产成人午夜精品影院观看视频 | 日韩欧美资源站| 99久久精品99国产精品| 久久精品免费看| 亚洲一区二区综合| 欧美国产日韩亚洲一区| 91精品黄色片免费大全| 91蜜桃视频在线| 国产精品一区一区| 石原莉奈在线亚洲三区| 亚洲精品中文在线| 国产日韩av一区| 日韩一级精品视频在线观看| 色综合一个色综合亚洲| 国产成人免费视频| 精品在线免费视频| 天天影视色香欲综合网老头| 亚洲欧美日韩一区| 国产精品天干天干在线综合| 久久影院视频免费| 91精品国产综合久久精品麻豆| 色视频欧美一区二区三区| 波多野结衣亚洲| 成人午夜av电影| 国内精品久久久久影院薰衣草| 天堂成人国产精品一区| 亚洲综合在线观看视频| 国产精品久久久久久久久久免费看| 欧美tk丨vk视频| 日韩精品一区二区三区在线| 欧美精品一二三四| 欧美午夜片在线观看| 色婷婷一区二区| av不卡在线观看| www.激情成人| 成人av在线一区二区三区| 国产不卡视频在线播放| 国产精品系列在线观看| 国产精品一级片在线观看| 捆绑紧缚一区二区三区视频| 青青青伊人色综合久久| 日韩国产高清影视| 日韩精品91亚洲二区在线观看| 亚洲成人av一区二区| 亚洲第一激情av| 亚洲成a人片在线不卡一二三区 | 欧美日韩国产成人在线91| 在线免费一区三区| 欧美日韩亚洲综合在线| 欧美三级电影一区| 欧美日韩高清在线播放| 欧美另类变人与禽xxxxx| 欧美日韩精品专区| 欧美高清视频在线高清观看mv色露露十八 | 久久一夜天堂av一区二区三区 | 成人精品国产免费网站| 成人免费高清在线| 91丨九色丨蝌蚪丨老版| 91女人视频在线观看| 色综合一区二区| 欧美视频中文字幕| 91精品国产色综合久久ai换脸| 日韩一区二区三区精品视频| 久久亚洲一区二区三区四区| 欧美激情一区不卡| 亚洲精品成人精品456| 亚洲一二三区不卡| 人人超碰91尤物精品国产| 久久精品久久综合|