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

📄 ns32k.md

📁 这是完整的gcc源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
			  (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"bfs %l0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"bfc %l0\";  else return \"bne %l0\";}")(define_insn "bgt"  [(set (pc)	(if_then_else (gt (cc0)			  (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "bgt %l0")(define_insn "bgtu"  [(set (pc)	(if_then_else (gtu (cc0)			   (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "bhi %l0")(define_insn "blt"  [(set (pc)	(if_then_else (lt (cc0)			  (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "blt %l0")(define_insn "bltu"  [(set (pc)	(if_then_else (ltu (cc0)			   (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "blo %l0")(define_insn "bge"  [(set (pc)	(if_then_else (ge (cc0)			  (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "bge %l0")(define_insn "bgeu"  [(set (pc)	(if_then_else (geu (cc0)			   (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "bhs %l0")(define_insn "ble"  [(set (pc)	(if_then_else (le (cc0)			  (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "ble %l0")(define_insn "bleu"  [(set (pc)	(if_then_else (leu (cc0)			   (const_int 0))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "bls %l0")(define_insn ""  [(set (pc)	(if_then_else (eq (cc0)			  (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"bfs %l0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"bfc %l0\";  else return \"bne %l0\";}")(define_insn ""  [(set (pc)	(if_then_else (ne (cc0)			  (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"bfc %l0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"bfs %l0\";  else return \"beq %l0\";}")(define_insn ""  [(set (pc)	(if_then_else (gt (cc0)			  (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "ble %l0")(define_insn ""  [(set (pc)	(if_then_else (gtu (cc0)			   (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "bls %l0")(define_insn ""  [(set (pc)	(if_then_else (lt (cc0)			  (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "bge %l0")(define_insn ""  [(set (pc)	(if_then_else (ltu (cc0)			   (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "bhs %l0")(define_insn ""  [(set (pc)	(if_then_else (ge (cc0)			  (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "blt %l0")(define_insn ""  [(set (pc)	(if_then_else (geu (cc0)			   (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "blo %l0")(define_insn ""  [(set (pc)	(if_then_else (le (cc0)			  (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "bgt %l0")(define_insn ""  [(set (pc)	(if_then_else (leu (cc0)			   (const_int 0))		      (pc)		      (label_ref (match_operand 0 "" ""))))]  ""  "bhi %l0");; Subtract-and-jump and Add-and-jump insns.;; These can actually be used for adding numbers in the range -8 to 7(define_insn ""  [(set (pc)	(if_then_else	 (ne (minus:SI (match_operand:SI 0 "general_operand" "+g")		       (match_operand:SI 1 "general_operand" "i"))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))  (set (match_dup 0)       (minus:SI (match_dup 0)		 (match_dup 1)))]  "GET_CODE (operands[1]) == CONST_INT   && INTVAL (operands[1]) > -8 && INTVAL (operands[1]) <= 8"  "acbd %$%n1,%0,%l2")(define_insn ""  [(set (pc)	(if_then_else	 (ne (plus:SI (match_operand:SI 0 "general_operand" "+g")		      (match_operand:SI 1 "general_operand" "i"))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))  (set (match_dup 0)       (plus:SI (match_dup 0)		(match_dup 1)))]  "GET_CODE (operands[1]) == CONST_INT   && INTVAL (operands[1]) >= -8 && INTVAL (operands[1]) < 8"  "acbd %1,%0,%l2");; Reversed(define_insn ""  [(set (pc)	(if_then_else	 (eq (minus:SI (match_operand:SI 0 "general_operand" "+g")		       (match_operand:SI 1 "general_operand" "i"))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))  (set (match_dup 0)       (minus:SI (match_dup 0)		 (match_dup 1)))]  "GET_CODE (operands[1]) == CONST_INT   && INTVAL (operands[1]) > -8 && INTVAL (operands[1]) <= 8"  "acbd %$%n1,%0,%l2")(define_insn ""  [(set (pc)	(if_then_else	 (eq (plus:SI (match_operand:SI 0 "general_operand" "+g")		      (match_operand:SI 1 "general_operand" "i"))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))  (set (match_dup 0)       (plus:SI (match_dup 0)		(match_dup 1)))]  "GET_CODE (operands[1]) == CONST_INT   && INTVAL (operands[1]) >= -8 && INTVAL (operands[1]) < 8"  "acbd %1,%0,%l2")(define_insn "call"  [(call (match_operand:QI 0 "general_operand" "g")	 (match_operand:QI 1 "general_operand" "g"))]  ""  "*{#ifndef JSR_ALWAYS  if (GET_CODE (operands[0]) == MEM)    {      rtx temp = XEXP (operands[0], 0);      if (CONSTANT_ADDRESS_P (temp))	{#ifdef GAS_SYNTAX	  operands[0] = temp;	  return \"bsr %0\";#else#ifdef GNX_V3	  return \"bsr %0\";#else	  return \"bsr %?%a0\";#endif#endif	}      if (GET_CODE (XEXP (operands[0], 0)) == REG)#if defined(GNX_V3) || defined(GAS_SYNTAX)	return \"jsr %0\";#else        return \"jsr %a0\";#endif    }#endif /* not JSR_ALWAYS */  return \"jsr %0\";}")(define_insn "call_value"  [(set (match_operand 0 "" "=fg")	(call (match_operand:QI 1 "general_operand" "g")	      (match_operand:QI 2 "general_operand" "g")))]  ""  "*{#ifndef JSR_ALWAYS  if (GET_CODE (operands[1]) == MEM)    {      rtx temp = XEXP (operands[1], 0);      if (CONSTANT_ADDRESS_P (temp))	{#ifdef GAS_SYNTAX	  operands[1] = temp;	  return \"bsr %1\";#else#ifdef GNX_V3	  return \"bsr %1\";#else	  return \"bsr %?%a1\";#endif#endif	}      if (GET_CODE (XEXP (operands[1], 0)) == REG)#if defined(GNX_V3) || defined(GAS_SYNTAX)	return \"jsr %1\";#else        return \"jsr %a1\";#endif    }#endif /* not JSR_ALWAYS */  return \"jsr %1\";}")(define_insn "return"  [(return)]  "0"  "ret 0")(define_insn "abssf2"  [(set (match_operand:SF 0 "general_operand" "=fm<")	(abs:SF (match_operand:SF 1 "general_operand" "fmF")))]  "TARGET_32081"  "absf %1,%0")(define_insn "absdf2"  [(set (match_operand:DF 0 "general_operand" "=fm<")	(abs:DF (match_operand:DF 1 "general_operand" "fmF")))]  "TARGET_32081"  "absl %1,%0")(define_insn "abssi2"  [(set (match_operand:SI 0 "general_operand" "=g<")	(abs:SI (match_operand:SI 1 "general_operand" "rmn")))]  ""  "absd %1,%0")(define_insn "abshi2"  [(set (match_operand:HI 0 "general_operand" "=g<")	(abs:HI (match_operand:HI 1 "general_operand" "g")))]  ""  "absw %1,%0")(define_insn "absqi2"  [(set (match_operand:QI 0 "general_operand" "=g<")	(abs:QI (match_operand:QI 1 "general_operand" "g")))]  ""  "absb %1,%0")(define_insn "nop"  [(const_int 0)]  ""  "nop");;(define_insn "tablejump";;  [(set (pc);;	(plus:SI (match_operand:SI 0 "general_operand" "g");;		 (pc)))];;  "";;  "cased %0")(define_insn "tablejump"  [(set (pc)	(plus:SI (pc) (match_operand:HI 0 "general_operand" "g")))   (use (label_ref (match_operand 1 "" "")))]  ""  "*{  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LI\",			     CODE_LABEL_NUMBER (operands[1]));  return \"casew %0\";}");;(define_insn "";;  [(set (pc);;	(plus:SI (match_operand:QI 0 "general_operand" "g");;		 (pc)))];;  "";;  "caseb %0");; Scondi instructions(define_insn "seq"  [(set (match_operand:SI 0 "general_operand" "=g<")	(eq (cc0) (const_int 0)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"sfcd %0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"sfsd %0\";  else return \"seqd %0\";}")(define_insn ""  [(set (match_operand:HI 0 "general_operand" "=g<")	(eq (cc0) (const_int 0)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"sfcw %0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"sfsw %0\";  else return \"seqw %0\";}")(define_insn ""  [(set (match_operand:QI 0 "general_operand" "=g<")	(eq (cc0) (const_int 0)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"sfcb %0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"sfsb %0\";  else return \"seqb %0\";}")(define_insn "sne"  [(set (match_operand:SI 0 "general_operand" "=g<")	(ne (cc0) (const_int 0)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"sfsd %0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"sfcd %0\";  else return \"sned %0\";}")(define_insn ""  [(set (match_operand:HI 0 "general_operand" "=g<")	(ne (cc0) (const_int 0)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"sfsw %0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"sfcw %0\";  else return \"snew %0\";}")(define_insn ""  [(set (match_operand:QI 0 "general_operand" "=g<")	(ne (cc0) (const_int 0)))]  ""  "*{ if (cc_prev_status.flags & CC_Z_IN_F)    return \"sfsb %0\";  else if (cc_prev_status.flags & CC_Z_IN_NOT_F)    return \"sfcb %0\";  else return \"sneb %0\";}")(define_insn "sgt"  [(set (match_operand:SI 0 "general_operand" "=g<")	(gt (cc0) (const_int 0)))]  ""  "sgtd %0")(define_insn ""  [(set (match_operand:HI 0 "general_operand" "=g<")	(gt (cc0) (const_int 0)))]  ""  "sgtw %0")(define_insn ""  [(set (match_operand:QI 0 "general_operand" "=g<")	(gt (cc0) (const_int 0)))]  ""  "sgtb %0")(define_insn "sgtu"  [(set (match_operand:SI 0 "general_operand" "=g<")	(gtu (cc0) (const_int 0)))]  ""  "shid %0")(define_insn ""  [(set (match_operand:HI 0 "general_operand" "=g<")	(gtu (cc0) (const_int 0)))]  ""  "shiw %0")(define_insn ""  [(set (match_operand:QI 0 "general_operand" "=g<")	(gtu (cc0) (const_int 0)))]  ""  "shib %0")(define_insn "slt"  [(set (match_operand:SI 0 "general_operand" "=g<")	(lt (cc0) (const_int 0)))]  ""  "sltd %0")(define_insn ""  [(set (match_operand:HI 0 "general_operand" "=g<")	(lt (cc0) (const_int 0)))]

⌨️ 快捷键说明

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