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

📄 pa.md

📁 gcc3.2.1源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "*{  return output_bb (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 0, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:DI (match_operand:DI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:DI 1 "uint32_operand" ""))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  "TARGET_64BIT"  "*{  return output_bb (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 0, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:SI (match_operand:SI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:SI 1 "uint5_operand" ""))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "*{  return output_bb (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 1, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:DI (match_operand:DI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:DI 1 "uint32_operand" ""))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))]  "TARGET_64BIT"  "*{  return output_bb (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 1, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))]);; Branch on Variable Bit patterns.(define_insn ""  [(set (pc)	(if_then_else	 (ne (zero_extract:SI (match_operand:SI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:SI 1 "register_operand" "q"))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 0, insn, 0);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (ne (zero_extract:DI (match_operand:DI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:DI 1 "register_operand" "q"))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  "TARGET_64BIT"  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 0, insn, 0);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (ne (zero_extract:SI (match_operand:SI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:SI 1 "register_operand" "q"))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 1, insn, 0);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (ne (zero_extract:DI (match_operand:DI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:DI 1 "register_operand" "q"))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))]  "TARGET_64BIT"  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 1, insn, 0);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:SI (match_operand:SI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:SI 1 "register_operand" "q"))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 0, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:DI (match_operand:DI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:DI 1 "register_operand" "q"))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  "TARGET_64BIT"  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 0, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:SI (match_operand:SI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:SI 1 "register_operand" "q"))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 1, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))])(define_insn ""  [(set (pc)	(if_then_else	 (eq (zero_extract:DI (match_operand:DI 0 "register_operand" "r")			      (const_int 1)			      (match_operand:DI 1 "register_operand" "q"))	     (const_int 0))	 (pc)	 (label_ref (match_operand 2 "" ""))))]  "TARGET_64BIT"  "*{  return output_bvb (operands, INSN_ANNULLED_BRANCH_P (insn),		     get_attr_length (insn), 1, insn, 1);}"[(set_attr "type" "cbranch") (set (attr "length")    (if_then_else (lt (abs (minus (match_dup 2) (plus (pc) (const_int 8))))		      (const_int 8184))           (const_int 4)	   (const_int 8)))]);; Floating point branches(define_insn ""  [(set (pc) (if_then_else (ne (reg:CCFP 0) (const_int 0))			   (label_ref (match_operand 0 "" ""))			   (pc)))]  "! TARGET_SOFT_FLOAT"  "*{  if (INSN_ANNULLED_BRANCH_P (insn))    return \"ftest\;b,n %0\";  else    return \"ftest\;b%* %0\";}"  [(set_attr "type" "fbranch")   (set_attr "length" "8")])(define_insn ""  [(set (pc) (if_then_else (ne (reg:CCFP 0) (const_int 0))			   (pc)			   (label_ref (match_operand 0 "" ""))))]  "! TARGET_SOFT_FLOAT"  "*{  if (INSN_ANNULLED_BRANCH_P (insn))    return \"ftest\;add,tr %%r0,%%r0,%%r0\;b,n %0\";  else    return \"ftest\;add,tr %%r0,%%r0,%%r0\;b%* %0\";}"  [(set_attr "type" "fbranch")   (set_attr "length" "12")]);; Move instructions(define_expand "movsi"  [(set (match_operand:SI 0 "general_operand" "")	(match_operand:SI 1 "general_operand" ""))]  ""  "{  if (emit_move_sequence (operands, SImode, 0))    DONE;}");; Reloading an SImode or DImode value requires a scratch register if;; going in to or out of float point registers.(define_expand "reload_insi"  [(set (match_operand:SI 0 "register_operand" "=Z")	(match_operand:SI 1 "non_hard_reg_operand" ""))   (clobber (match_operand:SI 2 "register_operand" "=&r"))]  ""  "{  if (emit_move_sequence (operands, SImode, operands[2]))    DONE;  /* We don't want the clobber emitted, so handle this ourselves.  */  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));  DONE;}")(define_expand "reload_outsi"  [(set (match_operand:SI 0 "non_hard_reg_operand" "")	(match_operand:SI 1  "register_operand" "Z"))   (clobber (match_operand:SI 2 "register_operand" "=&r"))]  ""  "{  if (emit_move_sequence (operands, SImode, operands[2]))    DONE;  /* We don't want the clobber emitted, so handle this ourselves.  */  emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));  DONE;}")(define_insn ""  [(set (match_operand:SI 0 "reg_or_nonsymb_mem_operand"				"=r,r,r,r,r,r,Q,*q,!f,f,*TR")	(match_operand:SI 1 "move_operand"				"A,r,J,N,K,RQ,rM,rM,!fM,*RT,f"))]  "(register_operand (operands[0], SImode)    || reg_or_0_operand (operands[1], SImode))   && ! TARGET_SOFT_FLOAT"  "@   ldw RT'%A1,%0   copy %1,%0   ldi %1,%0   ldil L'%1,%0   {zdepi|depwi,z} %Z1,%0   ldw%M1 %1,%0   stw%M0 %r1,%0   mtsar %r1   fcpy,sgl %f1,%0   fldw%F1 %1,%0   fstw%F0 %1,%0"  [(set_attr "type" "load,move,move,move,shift,load,store,move,fpalu,fpload,fpstore")   (set_attr "pa_combine_type" "addmove")   (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4")])(define_insn ""  [(set (match_operand:SI 0 "reg_or_nonsymb_mem_operand"				"=r,r,r,r,r,r,Q,*q")	(match_operand:SI 1 "move_operand"				"A,r,J,N,K,RQ,rM,rM"))]  "(register_operand (operands[0], SImode)    || reg_or_0_operand (operands[1], SImode))   && TARGET_SOFT_FLOAT"  "@   ldw RT'%A1,%0   copy %1,%0   ldi %1,%0   ldil L'%1,%0   {zdepi|depwi,z} %Z1,%0   ldw%M1 %1,%0   stw%M0 %r1,%0   mtsar %r1"  [(set_attr "type" "load,move,move,move,move,load,store,move")   (set_attr "pa_combine_type" "addmove")   (set_attr "length" "4,4,4,4,4,4,4,4")])(define_insn ""  [(set (match_operand:SI 0 "register_operand" "=r")	(mem:SI (plus:SI (match_operand:SI 1 "basereg_operand" "r")			 (match_operand:SI 2 "register_operand" "r"))))]  "! TARGET_DISABLE_INDEXING"  "{ldwx|ldw} %2(%1),%0"  [(set_attr "type" "load")   (set_attr "length" "4")])(define_insn ""  [(set (match_operand:SI 0 "register_operand" "=r")	(mem:SI (plus:SI (match_operand:SI 1 "register_operand" "r")			 (match_operand:SI 2 "basereg_operand" "r"))))]  "! TARGET_DISABLE_INDEXING"  "{ldwx|ldw} %1(%2),%0"  [(set_attr "type" "load")   (set_attr "length" "4")]);; Load or store with base-register modification.(define_expand "pre_load"  [(parallel [(set (match_operand:SI 0 "register_operand" "")	      (mem (plus (match_operand 1 "register_operand" "")			       (match_operand 2 "pre_cint_operand" ""))))	      (set (match_dup 1)		   (plus (match_dup 1) (match_dup 2)))])]  ""  "{  if (TARGET_64BIT)    {      emit_insn (gen_pre_ldd (operands[0], operands[1], operands[2]));      DONE;    }  emit_insn (gen_pre_ldw (operands[0], operands[1], operands[2]));  DONE;}")(define_insn "pre_ldw"  [(set (match_operand:SI 0 "register_operand" "=r")	(mem:SI (plus:SI (match_operand:SI 1 "register_operand" "+r")			 (match_operand:SI 2 "pre_cint_operand" ""))))   (set (match_dup 1)	(plus:SI (match_dup 1) (match_dup 2)))]  ""  "*{  if (INTVAL (operands[2]) < 0)    return \"{ldwm|ldw,mb} %2(%1),%0\";  return \"{ldws|ldw},mb %2(%1),%0\";}"  [(set_attr "type" "load")   (set_attr "length" "4")])(define_insn "pre_ldd"  [(set (match_operand:DI 0 "register_operand" "=r")	(mem:D

⌨️ 快捷键说明

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