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

📄 ia64.md

📁 Mac OS X 10.4.9 for x86 Source Code gcc 实现源代码
💻 MD
📖 第 1 页 / 共 5 页
字号:
      operands[2] = GEN_INT (shift);#endif    }})(define_insn "*insv_internal"  [(set (zero_extract:DI (match_operand:DI 0 "gr_register_operand" "+r")			 (match_operand:DI 1 "const_int_operand" "n")			 (match_operand:DI 2 "const_int_operand" "n"))	(match_operand:DI 3 "nonmemory_operand" "rP"))]  "(gr_register_operand (operands[3], DImode) && INTVAL (operands[1]) <= 16)   || operands[3] == const0_rtx || operands[3] == constm1_rtx"  "dep %0 = %3, %0, %2, %1"  [(set_attr "itanium_class" "ishf")]);; Combine doesn't like to create bit-field insertions into zero.(define_insn "*shladdp4_internal"  [(set (match_operand:DI 0 "gr_register_operand" "=r")	(and:DI (ashift:DI (match_operand:DI 1 "gr_register_operand" "r")			   (match_operand:DI 2 "shladd_log2_operand" "n"))		(match_operand:DI 3 "const_int_operand" "n")))]  "ia64_depz_field_mask (operands[3], operands[2]) + INTVAL (operands[2]) == 32"  "shladdp4 %0 = %1, %2, r0"  [(set_attr "itanium_class" "ialu")])(define_insn "*depz_internal"  [(set (match_operand:DI 0 "gr_register_operand" "=r")	(and:DI (ashift:DI (match_operand:DI 1 "gr_register_operand" "r")			   (match_operand:DI 2 "const_int_operand" "n"))		(match_operand:DI 3 "const_int_operand" "n")))]  "CONST_OK_FOR_M (INTVAL (operands[2]))   && ia64_depz_field_mask (operands[3], operands[2]) > 0"{  operands[3] = GEN_INT (ia64_depz_field_mask (operands[3], operands[2]));  return "%,dep.z %0 = %1, %2, %3";}  [(set_attr "itanium_class" "ishf")])(define_insn "shift_mix4left"  [(set (zero_extract:DI (match_operand:DI 0 "gr_register_operand" "+r")			 (const_int 32) (const_int 0))	(match_operand:DI 1 "gr_register_operand" "r"))   (clobber (match_operand:DI 2 "gr_register_operand" "=r"))]  ""  "#"  [(set_attr "itanium_class" "unknown")])(define_split  [(set (zero_extract:DI (match_operand:DI 0 "register_operand" "")			 (const_int 32) (const_int 0))	(match_operand:DI 1 "register_operand" ""))   (clobber (match_operand:DI 2 "register_operand" ""))]  ""  [(set (match_dup 3) (ashift:DI (match_dup 1) (const_int 32)))   (set (zero_extract:DI (match_dup 0) (const_int 32) (const_int 0))	(lshiftrt:DI (match_dup 3) (const_int 32)))]  "operands[3] = operands[2];")(define_insn "*mix4left"  [(set (zero_extract:DI (match_operand:DI 0 "gr_register_operand" "+r")			 (const_int 32) (const_int 0))	(lshiftrt:DI (match_operand:DI 1 "gr_register_operand" "r")		     (const_int 32)))]  ""  "mix4.l %0 = %0, %r1"  [(set_attr "itanium_class" "mmshf")])(define_insn "mix4right"  [(set (zero_extract:DI (match_operand:DI 0 "gr_register_operand" "+r")			 (const_int 32) (const_int 32))	(match_operand:DI 1 "gr_reg_or_0_operand" "rO"))]  ""  "mix4.r %0 = %r1, %0"  [(set_attr "itanium_class" "mmshf")]);; This is used by the rotrsi3 pattern.(define_insn "*mix4right_3op"  [(set (match_operand:DI 0 "gr_register_operand" "=r")	(ior:DI (zero_extend:DI (match_operand:SI 1 "gr_register_operand" "r"))		(ashift:DI (zero_extend:DI			     (match_operand:SI 2 "gr_register_operand" "r"))			   (const_int 32))))]  ""  "mix4.r %0 = %2, %1"  [(set_attr "itanium_class" "mmshf")]);; ::::::::::::::::::::;; ::;; :: 1 bit Integer arithmetic;; ::;; ::::::::::::::::::::(define_insn_and_split "andbi3"  [(set (match_operand:BI 0 "register_operand" "=c,c,r")	(and:BI (match_operand:BI 1 "register_operand" "%0,0,r")		(match_operand:BI 2 "register_operand" "c,r,r")))]  ""  "@   #   tbit.nz.and.orcm %0, %I0 = %2, 0   and %0 = %2, %1"  "reload_completed   && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))   && GET_CODE (operands[2]) == REG && PR_REGNO_P (REGNO (operands[2]))"  [(cond_exec (eq (match_dup 2) (const_int 0))     (set (match_dup 0) (and:BI (ne:BI (const_int 0) (const_int 0))				(match_dup 0))))]  ""  [(set_attr "itanium_class" "unknown,tbit,ilog")])(define_insn_and_split "*andcmbi3"  [(set (match_operand:BI 0 "register_operand" "=c,c,r")	(and:BI (not:BI (match_operand:BI 1 "register_operand" "c,r,r"))		(match_operand:BI 2 "register_operand" "0,0,r")))]  ""  "@   #   tbit.z.and.orcm %0, %I0 = %1, 0   andcm %0 = %2, %1"  "reload_completed   && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))   && GET_CODE (operands[1]) == REG && PR_REGNO_P (REGNO (operands[1]))"  [(cond_exec (ne (match_dup 1) (const_int 0))     (set (match_dup 0) (and:BI (ne:BI (const_int 0) (const_int 0))				(match_dup 0))))]  ""  [(set_attr "itanium_class" "unknown,tbit,ilog")])(define_insn_and_split "iorbi3"  [(set (match_operand:BI 0 "register_operand" "=c,c,r")	(ior:BI (match_operand:BI 1 "register_operand" "%0,0,r")		(match_operand:BI 2 "register_operand" "c,r,r")))]  ""  "@   #   tbit.nz.or.andcm %0, %I0 = %2, 0   or %0 = %2, %1"  "reload_completed   && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))   && GET_CODE (operands[2]) == REG && PR_REGNO_P (REGNO (operands[2]))"  [(cond_exec (ne (match_dup 2) (const_int 0))     (set (match_dup 0) (ior:BI (eq:BI (const_int 0) (const_int 0))				(match_dup 0))))]  ""  [(set_attr "itanium_class" "unknown,tbit,ilog")])(define_insn_and_split "*iorcmbi3"  [(set (match_operand:BI 0 "register_operand" "=c,c")	(ior:BI (not:BI (match_operand:BI 1 "register_operand" "c,r"))		(match_operand:BI 2 "register_operand" "0,0")))]  ""  "@   #   tbit.z.or.andcm %0, %I0 = %1, 0"  "reload_completed   && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))   && GET_CODE (operands[1]) == REG && PR_REGNO_P (REGNO (operands[1]))"  [(cond_exec (eq (match_dup 1) (const_int 0))     (set (match_dup 0) (ior:BI (eq:BI (const_int 0) (const_int 0))				(match_dup 0))))]  ""  [(set_attr "itanium_class" "unknown,tbit")])(define_insn "one_cmplbi2"  [(set (match_operand:BI 0 "register_operand" "=c,r,c,&c")	(not:BI (match_operand:BI 1 "register_operand" "r,r,0,c")))   (clobber (match_scratch:BI 2 "=X,X,c,X"))]  ""  "@   tbit.z %0, %I0 = %1, 0   xor %0 = 1, %1   #   #"  [(set_attr "itanium_class" "tbit,ilog,unknown,unknown")])(define_split  [(set (match_operand:BI 0 "register_operand" "")	(not:BI (match_operand:BI 1 "register_operand" "")))   (clobber (match_scratch:BI 2 ""))]  "reload_completed   && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))   && rtx_equal_p (operands[0], operands[1])"  [(set (match_dup 4) (match_dup 3))   (set (match_dup 0) (const_int 1))   (cond_exec (ne (match_dup 2) (const_int 0))     (set (match_dup 0) (const_int 0)))   (set (match_dup 0) (unspec:BI [(match_dup 0)] UNSPEC_PRED_REL_MUTEX))]  "operands[3] = gen_rtx_REG (CCImode, REGNO (operands[1]));   operands[4] = gen_rtx_REG (CCImode, REGNO (operands[2]));")(define_split  [(set (match_operand:BI 0 "register_operand" "")	(not:BI (match_operand:BI 1 "register_operand" "")))   (clobber (match_scratch:BI 2 ""))]  "reload_completed   && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))   && GET_CODE (operands[1]) == REG && PR_REGNO_P (REGNO (operands[1]))   && ! rtx_equal_p (operands[0], operands[1])"  [(cond_exec (ne (match_dup 1) (const_int 0))     (set (match_dup 0) (const_int 0)))   (cond_exec (eq (match_dup 1) (const_int 0))     (set (match_dup 0) (const_int 1)))   (set (match_dup 0) (unspec:BI [(match_dup 0)] UNSPEC_PRED_REL_MUTEX))]  "")(define_insn "*cmpsi_and_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (match_operator:BI 4 "predicate_operator"		  [(match_operand:SI 2 "gr_reg_or_0_operand" "rO")		   (match_operand:SI 3 "gr_reg_or_8bit_operand" "rK")])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C4.and.orcm %0, %I0 = %3, %r2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpsi_and_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (match_operator:BI 3 "signed_inequality_operator"		  [(match_operand:SI 2 "gr_register_operand" "r")		   (const_int 0)])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C3.and.orcm %0, %I0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpsi_andnot_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (not:BI (match_operator:BI 4 "predicate_operator"			 [(match_operand:SI 2 "gr_reg_or_0_operand" "rO")			  (match_operand:SI 3 "gr_reg_or_8bit_operand" "rK")]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C4.or.andcm %I0, %0 = %3, %r2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpsi_andnot_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (not:BI (match_operator:BI 3 "signed_inequality_operator"			  [(match_operand:SI 2 "gr_register_operand" "r")			   (const_int 0)]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C3.or.andcm %I0, %0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_and_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (match_operator:BI 4 "predicate_operator"		  [(match_operand:DI 2 "gr_register_operand" "r")		   (match_operand:DI 3 "gr_reg_or_8bit_operand" "rK")])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C4.and.orcm %0, %I0 = %3, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_and_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (match_operator:BI 3 "signed_inequality_operator"		  [(match_operand:DI 2 "gr_register_operand" "r")		   (const_int 0)])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C3.and.orcm %0, %I0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_andnot_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (not:BI (match_operator:BI 4 "predicate_operator"			 [(match_operand:DI 2 "gr_register_operand" "r")			  (match_operand:DI 3 "gr_reg_or_8bit_operand" "rK")]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C4.or.andcm %I0, %0 = %3, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_andnot_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (not:BI (match_operator:BI 3 "signed_inequality_operator"			  [(match_operand:DI 2 "gr_register_operand" "r")			   (const_int 0)]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C3.or.andcm %I0, %0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*tbit_and_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (ne:BI (and:DI (match_operand:DI 1 "gr_register_operand" "r")			       (const_int 1))		       (const_int 0))		(match_operand:BI 2 "register_operand" "0")))]  ""  "tbit.nz.and.orcm %0, %I0 = %1, 0"  [(set_attr "itanium_class" "tbit")])(define_insn "*tbit_and_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (eq:BI (and:DI (match_operand:DI 1 "gr_register_operand" "r")			       (const_int 1))		       (const_int 0))		(match_operand:BI 2 "register_operand" "0")))]  ""  "tbit.z.and.orcm %0, %I0 = %1, 0"  [(set_attr "itanium_class" "tbit")])(define_insn "*tbit_and_2"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (ne:BI (zero_extract:DI			 (match_operand:DI 1 "gr_register_operand" "r")			 (const_int 1)			 (match_operand:DI 2 "const_int_operand" "n"))		       (const_int 0))		(match_operand:BI 3 "register_operand" "0")))]  ""  "tbit.nz.and.orcm %0, %I0 = %1, %2"  [(set_attr "itanium_class" "tbit")])(define_insn "*tbit_and_3"  [(set (match_operand:BI 0 "register_operand" "=c")	(and:BI (eq:BI (zero_extract:DI			 (match_operand:DI 1 "gr_register_operand" "r")			 (const_int 1)			 (match_operand:DI 2 "const_int_operand" "n"))		       (const_int 0))		(match_operand:BI 3 "register_operand" "0")))]  ""  "tbit.z.and.orcm %0, %I0 = %1, %2"  [(set_attr "itanium_class" "tbit")])(define_insn "*cmpsi_or_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (match_operator:BI 4 "predicate_operator"		  [(match_operand:SI 2 "gr_reg_or_0_operand" "rO")		   (match_operand:SI 3 "gr_reg_or_8bit_operand" "rK")])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C4.or.andcm %0, %I0 = %3, %r2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpsi_or_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (match_operator:BI 3 "signed_inequality_operator"		  [(match_operand:SI 2 "gr_register_operand" "r")		   (const_int 0)])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C3.or.andcm %0, %I0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpsi_orcm_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (not:BI (match_operator:BI 4 "predicate_operator"			 [(match_operand:SI 2 "gr_reg_or_0_operand" "rO")			  (match_operand:SI 3 "gr_reg_or_8bit_operand" "rK")]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C4.and.orcm %I0, %0 = %3, %r2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpsi_orcm_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (not:BI (match_operator:BI 3 "signed_inequality_operator"			  [(match_operand:SI 2 "gr_register_operand" "r")			   (const_int 0)]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp4.%C3.and.orcm %I0, %0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_or_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (match_operator:BI 4 "predicate_operator"		  [(match_operand:DI 2 "gr_register_operand" "r")		   (match_operand:DI 3 "gr_reg_or_8bit_operand" "rK")])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C4.or.andcm %0, %I0 = %3, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_or_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (match_operator:BI 3 "signed_inequality_operator"		  [(match_operand:DI 2 "gr_register_operand" "r")		   (const_int 0)])		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C3.or.andcm %0, %I0 = r0, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_orcm_0"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (not:BI (match_operator:BI 4 "predicate_operator"			 [(match_operand:DI 2 "gr_register_operand" "r")			  (match_operand:DI 3 "gr_reg_or_8bit_operand" "rK")]))		(match_operand:BI 1 "register_operand" "0")))]  ""  "cmp.%C4.and.orcm %I0, %0 = %3, %2"  [(set_attr "itanium_class" "icmp")])(define_insn "*cmpdi_orcm_1"  [(set (match_operand:BI 0 "register_operand" "=c")	(ior:BI (not:BI (match_operator:BI 3 "signed_inequality_operator"			  [(match_operand:DI 2 "gr_register_operand" "r")

⌨️ 快捷键说明

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