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

📄 pa.md

📁 gcc3.2.1源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
(define_expand "bgtu"  [(set (pc)	(if_then_else (gtu (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type != CMP_SI)    FAIL;  operands[1] = hppa_compare_op0;  operands[2] = hppa_compare_op1;}")(define_expand "bltu"  [(set (pc)	(if_then_else (ltu (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type != CMP_SI)    FAIL;  operands[1] = hppa_compare_op0;  operands[2] = hppa_compare_op1;}")(define_expand "bgeu"  [(set (pc)	(if_then_else (geu (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type != CMP_SI)    FAIL;  operands[1] = hppa_compare_op0;  operands[2] = hppa_compare_op1;}")(define_expand "bleu"  [(set (pc)	(if_then_else (leu (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type != CMP_SI)    FAIL;  operands[1] = hppa_compare_op0;  operands[2] = hppa_compare_op1;}")(define_expand "bltgt"  [(set (pc)	(if_then_else (ltgt (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (LTGT, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "bunle"  [(set (pc)	(if_then_else (unle (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (UNLE, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "bunlt"  [(set (pc)	(if_then_else (unlt (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (UNLT, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "bunge"  [(set (pc)	(if_then_else (unge (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (UNGE, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "bungt"  [(set (pc)	(if_then_else (ungt (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (UNGT, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "buneq"  [(set (pc)	(if_then_else (uneq (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (UNEQ, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "bunordered"  [(set (pc)	(if_then_else (unordered (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (UNORDERED, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}")(define_expand "bordered"  [(set (pc)	(if_then_else (ordered (match_dup 1) (match_dup 2))		      (label_ref (match_operand 0 "" ""))		      (pc)))]  ""  "{  if (hppa_branch_type == CMP_SI)    FAIL;  emit_insn (gen_cmp_fp (ORDERED, hppa_compare_op0, hppa_compare_op1));  emit_bcond_fp (NE, operands[0]);  DONE;}");; Match the branch patterns.;; Note a long backward conditional branch with an annulled delay slot;; has a length of 12.(define_insn ""  [(set (pc)	(if_then_else	 (match_operator 3 "comparison_operator"			 [(match_operand:SI 1 "reg_or_0_operand" "rM")			  (match_operand:SI 2 "arith5_operand" "rL")])	 (label_ref (match_operand 0 "" ""))	 (pc)))]  ""  "*{  return output_cbranch (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 0, insn);}"[(set_attr "type" "cbranch") (set (attr "length")    (cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 8184))	   (const_int 4)	   (lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 262100))	   (const_int 8)	   (eq (symbol_ref "flag_pic") (const_int 0))	   (const_int 20)]	  (const_int 28)))]);; Match the negated branch.(define_insn ""  [(set (pc)	(if_then_else	 (match_operator 3 "comparison_operator"			 [(match_operand:SI 1 "reg_or_0_operand" "rM")			  (match_operand:SI 2 "arith5_operand" "rL")])	 (pc)	 (label_ref (match_operand 0 "" ""))))]  ""  "*{  return output_cbranch (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 1, insn);}"[(set_attr "type" "cbranch") (set (attr "length")    (cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 8184))	   (const_int 4)	   (lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 262100))	   (const_int 8)	   (eq (symbol_ref "flag_pic") (const_int 0))	   (const_int 20)]	  (const_int 28)))])(define_insn ""  [(set (pc)	(if_then_else	 (match_operator 3 "comparison_operator"			 [(match_operand:DI 1 "reg_or_0_operand" "rM")			  (match_operand:DI 2 "reg_or_0_operand" "rM")])	 (label_ref (match_operand 0 "" ""))	 (pc)))]  "TARGET_64BIT"  "*{  return output_cbranch (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 0, insn);}"[(set_attr "type" "cbranch") (set (attr "length")    (cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 8184))	   (const_int 4)	   (lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 262100))	   (const_int 8)	   (eq (symbol_ref "flag_pic") (const_int 0))	   (const_int 20)]	  (const_int 28)))]);; Match the negated branch.(define_insn ""  [(set (pc)	(if_then_else	 (match_operator 3 "comparison_operator"			 [(match_operand:DI 1 "reg_or_0_operand" "rM")			  (match_operand:DI 2 "reg_or_0_operand" "rM")])	 (pc)	 (label_ref (match_operand 0 "" ""))))]  "TARGET_64BIT"  "*{  return output_cbranch (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 1, insn);}"[(set_attr "type" "cbranch") (set (attr "length")    (cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 8184))	   (const_int 4)	   (lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 262100))	   (const_int 8)	   (eq (symbol_ref "flag_pic") (const_int 0))	   (const_int 20)]	  (const_int 28)))])(define_insn ""  [(set (pc)	(if_then_else	 (match_operator 3 "cmpib_comparison_operator"			 [(match_operand:DI 1 "reg_or_0_operand" "rM")			  (match_operand:DI 2 "arith5_operand" "rL")])	 (label_ref (match_operand 0 "" ""))	 (pc)))]  "TARGET_64BIT"  "*{  return output_cbranch (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 0, insn);}"[(set_attr "type" "cbranch") (set (attr "length")    (cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 8184))	   (const_int 4)	   (lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 262100))	   (const_int 8)	   (eq (symbol_ref "flag_pic") (const_int 0))	   (const_int 20)]	  (const_int 28)))]);; Match the negated branch.(define_insn ""  [(set (pc)	(if_then_else	 (match_operator 3 "cmpib_comparison_operator"			 [(match_operand:DI 1 "reg_or_0_operand" "rM")			  (match_operand:DI 2 "arith5_operand" "rL")])	 (pc)	 (label_ref (match_operand 0 "" ""))))]  "TARGET_64BIT"  "*{  return output_cbranch (operands, INSN_ANNULLED_BRANCH_P (insn),			 get_attr_length (insn), 1, insn);}"[(set_attr "type" "cbranch") (set (attr "length")    (cond [(lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 8184))	   (const_int 4)	   (lt (abs (minus (match_dup 0) (plus (pc) (const_int 8))))	       (const_int 262100))	   (const_int 8)	   (eq (symbol_ref "flag_pic") (const_int 0))	   (const_int 20)]	  (const_int 28)))]);; Branch on 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 "uint5_operand" ""))	     (const_int 0))	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "*{  return output_bb (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 "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, 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 "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, 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 "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, 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 "uint5_operand" ""))

⌨️ 快捷键说明

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