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

📄 ns32k.md

📁 这是完整的gcc源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
  ""  "movb %1,%0")(define_insn "extendhisi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(sign_extend:SI (match_operand:HI 1 "general_operand" "g")))]  ""  "movxwd %1,%0")(define_insn "extendqihi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(sign_extend:HI (match_operand:QI 1 "general_operand" "g")))]  ""  "movxbw %1,%0")(define_insn "extendqisi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(sign_extend:SI (match_operand:QI 1 "general_operand" "g")))]  ""  "movxbd %1,%0")(define_insn "extendsfdf2"  [(set (match_operand:DF 0 "general_operand" "=fm<")	(float_extend:DF (match_operand:SF 1 "general_operand" "fmF")))]  "TARGET_32081"  "movfl %1,%0")(define_insn "truncdfsf2"  [(set (match_operand:SF 0 "general_operand" "=fm<")	(float_truncate:SF (match_operand:DF 1 "general_operand" "fmF")))]  "TARGET_32081"  "movlf %1,%0")(define_insn "zero_extendhisi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(zero_extend:SI (match_operand:HI 1 "general_operand" "g")))]  ""  "movzwd %1,%0")(define_insn "zero_extendqihi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(zero_extend:HI (match_operand:QI 1 "general_operand" "g")))]  ""  "movzbw %1,%0")(define_insn "zero_extendqisi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(zero_extend:SI (match_operand:QI 1 "general_operand" "g")))]  ""  "movzbd %1,%0");; Fix-to-float conversion insns.;; Note that the ones that start with SImode come first.;; That is so that an operand that is a CONST_INT;; (and therefore lacks a specific machine mode).;; will be recognized as SImode (which is always valid);; rather than as QImode or HImode.;; Rumor has it that the National part does not correctly convert;; constant ints to floats.  This conversion is therefore disabled.;; A register must be used to perform the conversion.(define_insn "floatsisf2"  [(set (match_operand:SF 0 "general_operand" "=fm<")	(float:SF (match_operand:SI 1 "general_operand" "rm")))]  "TARGET_32081"  "movdf %1,%0")(define_insn "floatsidf2"  [(set (match_operand:DF 0 "general_operand" "=fm<")	(float:DF (match_operand:SI 1 "general_operand" "rm")))]  "TARGET_32081"  "movdl %1,%0")(define_insn "floathisf2"  [(set (match_operand:SF 0 "general_operand" "=fm<")	(float:SF (match_operand:HI 1 "general_operand" "rm")))]  "TARGET_32081"  "movwf %1,%0")(define_insn "floathidf2"  [(set (match_operand:DF 0 "general_operand" "=fm<")	(float:DF (match_operand:HI 1 "general_operand" "rm")))]  "TARGET_32081"  "movwl %1,%0")(define_insn "floatqisf2"  [(set (match_operand:SF 0 "general_operand" "=fm<")	(float:SF (match_operand:QI 1 "general_operand" "rm")))]  "TARGET_32081"  "movbf %1,%0"); Some assemblers warn that this insn doesn't work.; Maybe they know something we don't.;(define_insn "floatqidf2";  [(set (match_operand:DF 0 "general_operand" "=fm<");	(float:DF (match_operand:QI 1 "general_operand" "rm")))];  "TARGET_32081";  "movbl %1,%0");; Float-to-fix conversion insns.;; The sequent compiler always generates "trunc" insns.(define_insn "fixsfqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(fix:QI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncfb %1,%0")(define_insn "fixsfhi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(fix:HI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncfw %1,%0")(define_insn "fixsfsi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(fix:SI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncfd %1,%0")(define_insn "fixdfqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(fix:QI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]  "TARGET_32081"  "trunclb %1,%0")(define_insn "fixdfhi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(fix:HI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]  "TARGET_32081"  "trunclw %1,%0")(define_insn "fixdfsi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(fix:SI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncld %1,%0");; Unsigned(define_insn "fixunssfqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(unsigned_fix:QI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncfb %1,%0")(define_insn "fixunssfhi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(unsigned_fix:HI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncfw %1,%0")(define_insn "fixunssfsi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(unsigned_fix:SI (fix:SF (match_operand:SF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncfd %1,%0")(define_insn "fixunsdfqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(unsigned_fix:QI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]  "TARGET_32081"  "trunclb %1,%0")(define_insn "fixunsdfhi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(unsigned_fix:HI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]  "TARGET_32081"  "trunclw %1,%0")(define_insn "fixunsdfsi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(unsigned_fix:SI (fix:DF (match_operand:DF 1 "general_operand" "fm"))))]  "TARGET_32081"  "truncld %1,%0");;; These are not yet used by GCC(define_insn "fix_truncsfqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(fix:QI (match_operand:SF 1 "general_operand" "fm")))]  "TARGET_32081"  "truncfb %1,%0")(define_insn "fix_truncsfhi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(fix:HI (match_operand:SF 1 "general_operand" "fm")))]  "TARGET_32081"  "truncfw %1,%0")(define_insn "fix_truncsfsi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(fix:SI (match_operand:SF 1 "general_operand" "fm")))]  "TARGET_32081"  "truncfd %1,%0")(define_insn "fix_truncdfqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(fix:QI (match_operand:DF 1 "general_operand" "fm")))]  "TARGET_32081"  "trunclb %1,%0")(define_insn "fix_truncdfhi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(fix:HI (match_operand:DF 1 "general_operand" "fm")))]  "TARGET_32081"  "trunclw %1,%0")(define_insn "fix_truncdfsi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(fix:SI (match_operand:DF 1 "general_operand" "fm")))]  "TARGET_32081"  "truncld %1,%0");;- All kinds of add instructions.(define_insn "adddf3"  [(set (match_operand:DF 0 "general_operand" "=fm")	(plus:DF (match_operand:DF 1 "general_operand" "%0")		 (match_operand:DF 2 "general_operand" "fmF")))]  "TARGET_32081"  "addl %2,%0")(define_insn "addsf3"  [(set (match_operand:SF 0 "general_operand" "=fm")	(plus:SF (match_operand:SF 1 "general_operand" "%0")		 (match_operand:SF 2 "general_operand" "fmF")))]  "TARGET_32081"  "addf %2,%0")(define_insn ""  [(set (reg:SI 17)	(plus:SI (reg:SI 17)		 (match_operand:SI 0 "immediate_operand" "i")))]  "GET_CODE (operands[0]) == CONST_INT"  "*{#ifndef SEQUENT_ADJUST_STACK  if (INTVAL (operands[0]) == 8)    return \"cmpd tos,tos\";  if (INTVAL (operands[0]) == 4)    return \"cmpqd %$0,tos\";#endif  if (INTVAL (operands[0]) < 64 && INTVAL (operands[0]) > -64)    return \"adjspb %$%n0\";  else if (INTVAL (operands[0]) < 8192 && INTVAL (operands[0]) >= -8192)    return \"adjspw %$%n0\";  return \"adjspd %$%n0\";}")(define_insn ""  [(set (match_operand:SI 0 "general_operand" "=g<")	(plus:SI (reg:SI 16)		 (match_operand:SI 1 "immediate_operand" "i")))]  "GET_CODE (operands[1]) == CONST_INT"  "addr %c1(fp),%0")(define_insn ""  [(set (match_operand:SI 0 "general_operand" "=g<")	(plus:SI (reg:SI 17)		 (match_operand:SI 1 "immediate_operand" "i")))]  "GET_CODE (operands[1]) == CONST_INT"  "addr %c1(sp),%0")(define_insn "addsi3"  [(set (match_operand:SI 0 "general_operand" "=g,=g<")	(plus:SI (match_operand:SI 1 "general_operand" "%0,%r")		 (match_operand:SI 2 "general_operand" "rmn,n")))]  ""  "*{  if (which_alternative == 1)    {      int i = INTVAL (operands[2]);      if ( i < 0x40000000 && i >= -0x40000000 )	  return \"addr %c2(%1),%0\";      else	  return \"movd %1,%0\;addd %2,%0\";    }  if (GET_CODE (operands[2]) == CONST_INT)    {      int i = INTVAL (operands[2]);      if (i <= 7 && i >= -8)	return \"addqd %2,%0\";      else if (GET_CODE (operands[0]) == REG	       && i < 0x4000 && i >= -0x4000)	return \"addr %c2(%0),%0\";    }  return \"addd %2,%0\";}")(define_insn "addhi3"  [(set (match_operand:HI 0 "general_operand" "=g")	(plus:HI (match_operand:HI 1 "general_operand" "%0")		 (match_operand:HI 2 "general_operand" "g")))]  ""  "*{ if (GET_CODE (operands[2]) == CONST_INT)    {      int i = INTVAL (operands[2]);      if (i <= 7 && i >= -8)	return \"addqw %2,%0\";    }  return \"addw %2,%0\";}")(define_insn ""  [(set (strict_low_part (match_operand:HI 0 "general_operand" "=r"))	(plus:HI (match_operand:HI 1 "general_operand" "0")		 (match_operand:HI 2 "general_operand" "g")))]  ""  "*{  if (GET_CODE (operands[1]) == CONST_INT      && INTVAL (operands[1]) >-9 && INTVAL(operands[1]) < 8)    return \"addqw %1,%0\";  return \"addw %1,%0\";}")(define_insn "addqi3"  [(set (match_operand:QI 0 "general_operand" "=g")	(plus:QI (match_operand:QI 1 "general_operand" "%0")		 (match_operand:QI 2 "general_operand" "g")))]  ""  "*{ if (GET_CODE (operands[2]) == CONST_INT)    {      int i = INTVAL (operands[2]);      if (i <= 7 && i >= -8)	return \"addqb %2,%0\";    }  return \"addb %2,%0\";}")(define_insn ""  [(set (strict_low_part (match_operand:QI 0 "general_operand" "=r"))	(plus:QI (match_operand:QI 1 "general_operand" "0")		 (match_operand:QI 2 "general_operand" "g")))]  ""  "*{  if (GET_CODE (operands[1]) == CONST_INT      && INTVAL (operands[1]) >-9 && INTVAL(operands[1]) < 8)    return \"addqb %1,%0\";  return \"addb %1,%0\";}");;- All kinds of subtract instructions.(define_insn "subdf3"  [(set (match_operand:DF 0 "general_operand" "=fm")	(minus:DF (match_operand:DF 1 "general_operand" "0")		  (match_operand:DF 2 "general_operand" "fmF")))]  "TARGET_32081"  "subl %2,%0")(define_insn "subsf3"  [(set (match_operand:SF 0 "general_operand" "=fm")	(minus:SF (match_operand:SF 1 "general_operand" "0")		  (match_operand:SF 2 "general_operand" "fmF")))]  "TARGET_32081"  "subf %2,%0")(define_insn ""  [(set (reg:SI 17)	(minus:SI (reg:SI 17)		  (match_operand:SI 0 "immediate_operand" "i")))]  "GET_CODE (operands[0]) == CONST_INT"  "*{  if (GET_CODE(operands[0]) == CONST_INT && INTVAL(operands[0]) < 64      && INTVAL(operands[0]) > -64)    return \"adjspb %0\";  return \"adjspd %0\";}")(define_insn "subsi3"  [(set (match_operand:SI 0 "general_operand" "=g")	(minus:SI (match_operand:SI 1 "general_operand" "0")		  (match_operand:SI 2 "general_operand" "rmn")))]  ""  "*{ if (GET_CODE (operands[2]) == CONST_INT)    {      int i = INTVAL (operands[2]);      if (i <= 8 && i >= -7)        return \"addqd %$%n2,%0\";    }  return \"subd %2,%0\";}")(define_insn "subhi3"  [(set (match_operand:HI 0 "general_operand" "=g")	(minus:HI (match_operand:HI 1 "general_operand" "0")		  (match_operand:HI 2 "general_operand" "g")))]  ""  "*{ if (GET_CODE (operands[2]) == CONST_INT)    {      int i = INTVAL (operands[2]);      if (i <= 8 && i >= -7)        return \"addqw %$%n2,%0\";    }  return \"subw %2,%0\";}")(define_insn ""  [(set (strict_low_part (match_operand:HI 0 "general_operand" "=r"))	(minus:HI (match_operand:HI 1 "general_operand" "0")		  (match_operand:HI 2 "general_operand" "g")))]  ""  "*{  if (GET_CODE (operands[1]) == CONST_INT      && INTVAL (operands[1]) >-8 && INTVAL(operands[1]) < 9)    return \"addqw %$%n1,%0\";  return \"subw %1,%0\";}")(define_insn "subqi3"  [(set (match_operand:QI 0 "general_operand" "=g")	(minus:QI (match_operand:QI 1 "general_operand" "0")		  (match_operand:QI 2 "general_operand" "g")))]  ""  "*{ if (GET_CODE (operands[2]) == CONST_INT)    {      int i = INTVAL (operands[2]);      if (i <= 8 && i >= -7)	return \"addqb %$%n2,%0\";    }  return \"subb %2,%0\";}")(define_insn ""  [(set (strict_low_part (match_operand:QI 0 "general_operand" "=r"))	(minus:QI (match_operand:QI 1 "general_operand" "0")		  (match_operand:QI 2 "general_operand" "g")))]  ""  "*{  if (GET_CODE (operands[1]) == CONST_INT      && INTVAL (operands[1]) >-8 && INTVAL(operands[1]) < 9)    return \"addqb %$%n1,%0\";  return \"subb %1,%0\";}");;- Multiply instructions.(define_insn "muldf3"  [(set (match_operand:DF 0 "general_operand" "=fm")	(mult:DF (match_operand:DF 1 "general_operand" "%0")		 (match_operand:DF 2 "general_operand" "fmF")))]  "TARGET_32081"  "mull %2,%0")(define_insn "mulsf3"  [(set (match_operand:SF 0 "general_operand" "=fm")	(mult:SF (match_operand:SF 1 "general_operand" "%0")		 (match_operand:SF 2 "general_operand" "fmF")))]  "TARGET_32081"  "mulf %2,%0")(define_insn "mulsi3"  [(set (match_operand:SI 0 "general_operand" "=g")	(mult:SI (match_operand:SI 1 "general_operand" "%0")		 (match_operand:SI 2 "general_operand" "rmn")))]  ""  "muld %2,%0")(define_insn "mulhi3"  [(set (match_operand:HI 0 "general_operand" "=g")	(mult:HI (match_operand:HI 1 "general_operand" "%0")		 (match_operand:HI 2 "general_operand" "g")))]  ""  "mulw %2,%0")(define_insn "mulqi3"  [(set (match_operand:QI 0 "general_operand" "=g")	(mult:QI (match_operand:QI 1 "general_operand" "%0")		 (match_operand:QI 2 "general_operand" "g")))]  ""  "mulb %2,%0")(define_insn "umulsi3"  [(set (match_operand:SI 0 "general_operand" "=g")	(umult:SI (match_operand:SI 1 "general_operand" "%0")		  (match_operand:SI 2 "general_operand" "rmn")))]  ""  "muld %2,%0")(define_insn "umulhi3"  [(set (match_operand:HI 0 "general_operand" "=g")	(umult:HI (match_operand:HI 1 "general_operand" "%0")		  (match_operand:HI 2 "general_operand" "g")))]  ""  "mulw %2,%0")(define_insn "umulqi3"  [(set (match_operand:QI 0 "general_operand" "=g")	(umult:QI (match_operand:QI 1 "general_operand" "%0")

⌨️ 快捷键说明

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