⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m68k.md

📁 这是完整的gcc源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
  "TARGET_68881"  "*{  if (REG_P (operands[2]))    return \"fadd%.x %2,%0\";  return \"fadd%.d %f2,%0\";}")(define_expand "addsf3"  [(set (match_operand:SF 0 "general_operand" "")	(plus:SF (match_operand:SF 1 "general_operand" "")		 (match_operand:SF 2 "general_operand" "")))]  "TARGET_68881 || TARGET_FPA"  "")(define_insn ""  [(set (match_operand:SF 0 "general_operand" "=x,y")	(plus:SF (match_operand:SF 1 "general_operand" "%xH,y")		 (match_operand:SF 2 "general_operand" "xH,rmF")))]  "TARGET_FPA"  "*{  if (rtx_equal_p (operands[0], operands[1]))    return \"fpadd%.s %w2,%0\";  if (rtx_equal_p (operands[0], operands[2]))    return \"fpadd%.s %w1,%0\";  if (which_alternative == 0)    return \"fpadd3%.s %w2,%w1,%0\";  return \"fpadd3%.s %2,%1,%0\";}")(define_insn ""  [(set (match_operand:SF 0 "general_operand" "=f")	(plus:SF (match_operand:SF 1 "general_operand" "%0")		 (match_operand:SF 2 "general_operand" "fdmF")))]  "TARGET_68881"  "*{  if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))    return \"fadd%.x %2,%0\";  return \"fadd%.s %f2,%0\";}");; subtract instructions(define_insn "subsi3"  [(set (match_operand:SI 0 "general_operand" "=m,r,!a,?d")	(minus:SI (match_operand:SI 1 "general_operand" "0,0,a,mrIKs")		  (match_operand:SI 2 "general_operand" "dIKs,mrIKs,J,0")))]  ""  "*{  if (! operands_match_p (operands[0], operands[1]))    {      if (operands_match_p (operands[0], operands[2]))	{#ifndef NO_ADDSUB_Q	  if (GET_CODE (operands[1]) == CONST_INT)	    {	      if (INTVAL (operands[1]) > 0		  && INTVAL (operands[1]) <= 8)		return \"subq%.l %1,%0\;neg%.l %0\";	    }#endif	  return \"sub%.l %1,%0\;neg%.l %0\";	}      /* This case is matched by J, but negating -0x8000         in an lea would give an invalid displacement.	 So do this specially.  */      if (INTVAL (operands[2]) == -0x8000)	return \"move%.l %1,%0\;sub%.l %2,%0\";#ifdef SGS      return \"lea %n2(%1),%0\";#else#ifdef MOTOROLA      return \"lea (%n2,%1),%0\";#else /* not MOTOROLA (MIT syntax) */      return \"lea %1@(%n2),%0\";#endif /* not MOTOROLA */#endif /* not SGS */    }  if (GET_CODE (operands[2]) == CONST_INT)    {#ifndef NO_ADDSUB_Q      if (INTVAL (operands[2]) > 0	  && INTVAL (operands[2]) <= 8)	return \"subq%.l %2,%0\";#endif      if (ADDRESS_REG_P (operands[0])	  && INTVAL (operands[2]) >= -0x8000	  && INTVAL (operands[2]) < 0x8000)	return \"sub%.w %2,%0\";    }  return \"sub%.l %2,%0\";}")(define_insn ""  [(set (match_operand:SI 0 "general_operand" "=a")	(minus:SI (match_operand:SI 1 "general_operand" "0")		  (sign_extend:SI (match_operand:HI 2 "general_operand" "rmn"))))]  ""  "sub%.w %2,%0")(define_insn "subhi3"  [(set (match_operand:HI 0 "general_operand" "=m,r")	(minus:HI (match_operand:HI 1 "general_operand" "0,0")		  (match_operand:HI 2 "general_operand" "dn,rmn")))]  ""  "sub%.w %2,%0")(define_insn ""  [(set (strict_low_part (match_operand:HI 0 "general_operand" "+m,d"))	(minus:HI (match_dup 0)		  (match_operand:HI 1 "general_operand" "dn,rmn")))]  ""  "sub%.w %1,%0")(define_insn "subqi3"  [(set (match_operand:QI 0 "general_operand" "=m,d")	(minus:QI (match_operand:QI 1 "general_operand" "0,0")		  (match_operand:QI 2 "general_operand" "dn,dmn")))]  ""  "sub%.b %2,%0")(define_insn ""  [(set (strict_low_part (match_operand:QI 0 "general_operand" "+m,d"))	(minus:QI (match_dup 0)		  (match_operand:QI 1 "general_operand" "dn,dmn")))]  ""  "sub%.b %1,%0")(define_expand "subdf3"  [(set (match_operand:DF 0 "general_operand" "")	(minus:DF (match_operand:DF 1 "general_operand" "")		  (match_operand:DF 2 "general_operand" "")))]  "TARGET_68881 || TARGET_FPA"  "")(define_insn ""  [(set (match_operand:DF 0 "general_operand" "=x,y,y")	(minus:DF (match_operand:DF 1 "general_operand" "xH,y,dmF")		  (match_operand:DF 2 "general_operand" "xH,dmF,0")))]  "TARGET_FPA"  "*{  if (rtx_equal_p (operands[0], operands[2]))    return \"fprsub%.d %y1,%0\";  if (rtx_equal_p (operands[0], operands[1]))    return \"fpsub%.d %y2,%0\";  if (which_alternative == 0)    return \"fpsub3%.d %w2,%w1,%0\";  return \"fpsub3%.d %x2,%x1,%0\";}")(define_insn ""  [(set (match_operand:DF 0 "general_operand" "=f")	(minus:DF (match_operand:DF 1 "general_operand" "0")		  (match_operand:DF 2 "general_operand" "fmG")))]  "TARGET_68881"  "*{  if (REG_P (operands[2]))    return \"fsub%.x %2,%0\";  return \"fsub%.d %f2,%0\";}")(define_expand "subsf3"  [(set (match_operand:SF 0 "general_operand" "")	(minus:SF (match_operand:SF 1 "general_operand" "")		  (match_operand:SF 2 "general_operand" "")))]  "TARGET_68881 || TARGET_FPA"  "")(define_insn ""  [(set (match_operand:SF 0 "general_operand" "=x,y,y")	(minus:SF (match_operand:SF 1 "general_operand" "xH,y,rmF")		  (match_operand:SF 2 "general_operand" "xH,rmF,0")))]  "TARGET_FPA"  "*{  if (rtx_equal_p (operands[0], operands[2]))    return \"fprsub%.s %w1,%0\";  if (rtx_equal_p (operands[0], operands[1]))    return \"fpsub%.s %w2,%0\";  if (which_alternative == 0)    return \"fpsub3%.s %w2,%w1,%0\";  return \"fpsub3%.s %2,%1,%0\";}")(define_insn ""  [(set (match_operand:SF 0 "general_operand" "=f")	(minus:SF (match_operand:SF 1 "general_operand" "0")		  (match_operand:SF 2 "general_operand" "fdmF")))]  "TARGET_68881"  "*{  if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))    return \"fsub%.x %2,%0\";  return \"fsub%.s %f2,%0\";}");; multiply instructions(define_insn "mulhi3"  [(set (match_operand:HI 0 "general_operand" "=d")	(mult:HI (match_operand:HI 1 "general_operand" "%0")		 (match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"muls.w %2,%0\";#else  return \"muls %2,%0\";#endif}")(define_insn "mulhisi3"  [(set (match_operand:SI 0 "general_operand" "=d")	(mult:SI (match_operand:HI 1 "general_operand" "%0")		 (match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"muls.w %2,%0\";#else  return \"muls %2,%0\";#endif}")(define_insn "mulsi3"  [(set (match_operand:SI 0 "general_operand" "=d")	(mult:SI (match_operand:SI 1 "general_operand" "%0")		 (match_operand:SI 2 "general_operand" "dmsK")))]  "TARGET_68020"  "muls%.l %2,%0")(define_insn "umulhi3"  [(set (match_operand:HI 0 "general_operand" "=d")	(umult:HI (match_operand:HI 1 "general_operand" "%0")		  (match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"mulu.w %2,%0\";#else  return \"mulu %2,%0\";#endif}")(define_insn "umulhisi3"  [(set (match_operand:SI 0 "general_operand" "=d")	(umult:SI (match_operand:HI 1 "general_operand" "%0")		  (match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"mulu.w %2,%0\";#else  return \"mulu %2,%0\";#endif}")(define_insn "umulsi3"  [(set (match_operand:SI 0 "general_operand" "=d")	(umult:SI (match_operand:SI 1 "general_operand" "%0")		  (match_operand:SI 2 "general_operand" "dmsK")))]  "TARGET_68020"  "mulu%.l %2,%0")(define_expand "muldf3"  [(set (match_operand:DF 0 "general_operand" "")	(mult:DF (match_operand:DF 1 "general_operand" "")		 (match_operand:DF 2 "general_operand" "")))]  "TARGET_68881 || TARGET_FPA"  "")(define_insn ""  [(set (match_operand:DF 0 "general_operand" "=x,y")	(mult:DF (match_operand:DF 1 "general_operand" "%xH,y")		 (match_operand:DF 2 "general_operand" "xH,rmF")))]  "TARGET_FPA"  "*{  if (rtx_equal_p (operands[1], operands[2]))    return \"fpsqr%.d %y1,%0\";  if (rtx_equal_p (operands[0], operands[1]))    return \"fpmul%.d %y2,%0\";  if (rtx_equal_p (operands[0], operands[2]))    return \"fpmul%.d %y1,%0\";  if (which_alternative == 0)    return \"fpmul3%.d %w2,%w1,%0\";   return \"fpmul3%.d %x2,%x1,%0\";}")(define_insn ""  [(set (match_operand:DF 0 "general_operand" "=f")	(mult:DF (match_operand:DF 1 "general_operand" "%0")		 (match_operand:DF 2 "general_operand" "fmG")))]  "TARGET_68881"  "*{  if (REG_P (operands[2]))    return \"fmul%.x %2,%0\";  return \"fmul%.d %f2,%0\";}")(define_expand "mulsf3"  [(set (match_operand:SF 0 "general_operand" "")	(mult:SF (match_operand:SF 1 "general_operand" "")		 (match_operand:SF 2 "general_operand" "")))]  "TARGET_68881 || TARGET_FPA"  "")(define_insn ""  [(set (match_operand:SF 0 "general_operand" "=x,y")	(mult:SF (match_operand:SF 1 "general_operand" "%xH,y")		 (match_operand:SF 2 "general_operand" "xH,rmF")))]  "TARGET_FPA"  "*{  if (rtx_equal_p (operands[1], operands[2]))    return \"fpsqr%.s %w1,%0\";  if (rtx_equal_p (operands[0], operands[1]))    return \"fpmul%.s %w2,%0\";  if (rtx_equal_p (operands[0], operands[2]))    return \"fpmul%.s %w1,%0\";  if (which_alternative == 0)    return \"fpmul3%.s %w2,%w1,%0\";  return \"fpmul3%.s %2,%1,%0\";}")(define_insn ""  [(set (match_operand:SF 0 "general_operand" "=f")	(mult:SF (match_operand:SF 1 "general_operand" "%0")		 (match_operand:SF 2 "general_operand" "fdmF")))]  "TARGET_68881"  "*{  if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))    return \"fsglmul%.x %2,%0\";  return \"fsglmul%.s %f2,%0\";}");; divide instructions(define_insn "divhi3"  [(set (match_operand:HI 0 "general_operand" "=d")	(div:HI (match_operand:HI 1 "general_operand" "0")		(match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"ext.l %0\;divs.w %2,%0\";#else  return \"extl %0\;divs %2,%0\";#endif}")(define_insn "divhisi3"  [(set (match_operand:HI 0 "general_operand" "=d")	(div:HI (match_operand:SI 1 "general_operand" "0")		(match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"divs.w %2,%0\";#else  return \"divs %2,%0\";#endif}")(define_insn "divsi3"  [(set (match_operand:SI 0 "general_operand" "=d")	(div:SI (match_operand:SI 1 "general_operand" "0")		(match_operand:SI 2 "general_operand" "dmsK")))]  "TARGET_68020"  "divs%.l %2,%0")(define_insn "udivhi3"  [(set (match_operand:HI 0 "general_operand" "=d")	(udiv:HI (match_operand:HI 1 "general_operand" "0")		 (match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"and.l %#0xFFFF,%0\;divu.w %2,%0\";#else  return \"andl %#0xFFFF,%0\;divu %2,%0\";#endif}")(define_insn "udivhisi3"  [(set (match_operand:HI 0 "general_operand" "=d")	(udiv:HI (match_operand:SI 1 "general_operand" "0")		 (match_operand:HI 2 "general_operand" "dmn")))]  ""  "*{#ifdef MOTOROLA  return \"divu.w %2,%0\";#else  return \"divu %2,%0\";#endif}")(define_insn "udivsi3"  [(set (match_operand:SI 0 "general_operand" "=d")	(udiv:SI (match_operand:SI 1 "general_operand" "0")		 (match_operand:SI 2 "general_operand" "dmsK")))]  "TARGET_68020"  "divu%.l %2,%0")(define_expand "divdf3"  [(set (match_operand:DF 0 "general_operand" "")	(div:DF (match_operand:DF 1 "general_operand" "")		(match_operand:DF 2 "general_operand" "")))]  "TARGET_68881 || TARGET_FPA"  "")(define_insn ""  [(set (match_operand:DF 0 "general_operand" "=x,y,y")	(div:DF (match_operand:DF 1 "general_operand" "xH,y,rmF")		(match_operand:DF 2 "general_operand" "xH,rmF,0")))]  "TARGET_FPA"  "*{  if (rtx_equal_p (operands[0], operands[2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -