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

📄 m88k.md

📁 linux下的gcc编译器
💻 MD
📖 第 1 页 / 共 5 页
字号:
  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   if (GET_CODE (operands[1]) == GET_CODE (operands[3]))     ; /* The conditions match.  */   else if (GET_CODE (operands[1])	    == reverse_condition (GET_CODE (operands[3])))     /* Reverse the condition by complementing the compare word.  */     operands[4] = gen_rtx_NOT (CCmode, operands[4]);   else     {       /* Make the condition pairs line up by rotating the compare word.  */       int cv1 = condition_value (operands[1]);       int cv2 = condition_value (operands[3]);       operands[4] = gen_rtx_ROTATE (CCmode, operands[4],				     GEN_INT (((cv2 & ~1) - (cv1 & ~1))					      & 0x1f));       /* Reverse the condition if needed.  */       if ((cv1 & 1) != (cv2 & 1))	 operands[4] = gen_rtx_NOT (CCmode, operands[4]);     }")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(ior:SI (neg:SI 		 (match_operator 1 "odd_relop"				 [(match_operand 2 "partial_ccmode_register_operand" "%r")				  (const_int 0)]))		(neg:SI		 (match_operator 3 "odd_relop"				 [(match_operand 4 "partial_ccmode_register_operand" "r")				  (const_int 0)]))))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  ""  [(set (match_dup 5)	(and:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   if (GET_CODE (operands[1]) == GET_CODE (operands[3]))     ; /* The conditions match.  */   else     {       /* Make the condition pairs line up by rotating the compare word.  */       int cv1 = condition_value (operands[1]);       int cv2 = condition_value (operands[3]);       operands[4] = gen_rtx_ROTATE (CCmode, operands[4],				     GEN_INT ((cv2 - cv1) & 0x1f));     }")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(ior:SI (neg:SI 		 (match_operator 1 "odd_relop"				 [(match_operand 2 "partial_ccmode_register_operand" "%r")				  (const_int 0)]))		(neg:SI		 (match_operator 3 "even_relop"				 [(match_operand 4 "partial_ccmode_register_operand" "r")				  (const_int 0)]))))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  ""  [(set (match_dup 5)	(ior:CCEVEN (not:CC (match_dup 2))		(match_dup 4)))   (set (match_dup 0)	(neg:SI (match_op_dup 3 [(match_dup 5) (const_int 0)])))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);  if (GET_CODE (operands[1])	    == reverse_condition (GET_CODE (operands[3])))     ;    else     {       /* Make the condition pairs line up by rotating the compare word.  */       int cv1 = condition_value (operands[1]);       int cv2 = condition_value (operands[3]);       operands[2] = gen_rtx_ROTATE (CCmode, operands[2],				     GEN_INT (((cv1 & ~1) - (cv2 & ~1))					      & 0x1f));     }")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(ior:SI (match_operator 1 "even_relop"				[(match_operand 2 "partial_ccmode_register_operand" "%r")				 (const_int 0)])		(match_operator 3 "relop"				[(match_operand 4 "partial_ccmode_register_operand" "r")				 (const_int 0)])))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  "GET_CODE (operands[1]) == GET_CODE (operands[3])   || GET_CODE (operands[1]) == reverse_condition (GET_CODE (operands[3]))"  [(set (match_dup 5)	(ior:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(match_op_dup 1 [(match_dup 5) (const_int 0)]))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   /* Reverse the condition by complementing the compare word.  */   if (GET_CODE (operands[1]) != GET_CODE (operands[3]))      operands[4] = gen_rtx_NOT (CCmode, operands[4]);")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(ior:SI (match_operator 1 "odd_relop"				[(match_operand 2 "partial_ccmode_register_operand" "%r")				 (const_int 0)])		(match_operator 3 "odd_relop"				[(match_operand 4 "partial_ccmode_register_operand" "r")				 (const_int 0)])))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  "GET_CODE (operands[1]) == GET_CODE (operands[3])"  [(set (match_dup 5)	(and:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(match_op_dup 1 [(match_dup 5) (const_int 0)]))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(ior:SI (match_operator 1 "odd_relop"				[(match_operand 2 "partial_ccmode_register_operand" "%r")				 (const_int 0)])		(match_operator 3 "even_relop"				[(match_operand 4 "partial_ccmode_register_operand" "r")				 (const_int 0)])))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  "GET_CODE (operands[1]) == reverse_condition (GET_CODE (operands[3]))"  [(set (match_dup 5)	(ior:CCEVEN (not:CC (match_dup 4))		(match_dup 2)))   (set (match_dup 0)	(match_op_dup 1 [(match_dup 5) (const_int 0)]))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(and:SI (neg:SI 		 (match_operator 1 "even_relop"				 [(match_operand 2 "partial_ccmode_register_operand" "%r")				  (const_int 0)]))		(neg:SI		 (match_operator 3 "relop"				 [(match_operand 4 "partial_ccmode_register_operand" "r")				  (const_int 0)]))))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  ""  [(set (match_dup 5)	(and:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   if (GET_CODE (operands[1]) == GET_CODE (operands[3]))     ; /* The conditions match.  */   else if (GET_CODE (operands[1])	    == reverse_condition (GET_CODE (operands[3])))     /* Reverse the condition by complementing the compare word.  */     operands[4] = gen_rtx_NOT (CCmode, operands[4]);   else     {       /* Make the condition pairs line up by rotating the compare word.  */       int cv1 = condition_value (operands[1]);       int cv2 = condition_value (operands[3]);       operands[4] = gen_rtx_ROTATE (CCmode, operands[4],				     GEN_INT (((cv2 & ~1) - (cv1 & ~1))					      & 0x1f));       /* Reverse the condition if needed.  */       if ((cv1 & 1) != (cv2 & 1))	 operands[4] = gen_rtx_NOT (CCmode, operands[4]);     }")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(and:SI (neg:SI 		 (match_operator 1 "odd_relop"				 [(match_operand 2 "partial_ccmode_register_operand" "%r")				  (const_int 0)]))		(neg:SI		 (match_operator 3 "odd_relop"				 [(match_operand 4 "partial_ccmode_register_operand" "r")				  (const_int 0)]))))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  ""  [(set (match_dup 5)	(ior:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(neg:SI (match_op_dup 1 [(match_dup 5) (const_int 0)])))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   if (GET_CODE (operands[1]) == GET_CODE (operands[3]))     ; /* The conditions match.  */   else     {       /* Make the condition pairs line up by rotating the compare word.  */       int cv1 = condition_value (operands[1]);       int cv2 = condition_value (operands[3]);       operands[4] = gen_rtx_ROTATE (CCmode, operands[4],				     GEN_INT ((cv2 - cv1) & 0x1f));     }")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(and:SI (neg:SI 		 (match_operator 1 "odd_relop"				 [(match_operand 2 "partial_ccmode_register_operand" "%r")				  (const_int 0)]))		(neg:SI		 (match_operator 3 "even_relop"				 [(match_operand 4 "partial_ccmode_register_operand" "r")				  (const_int 0)]))))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  ""  [(set (match_dup 5)	(and:CCEVEN (not:CC (match_dup 2))		(match_dup 4)))   (set (match_dup 0)	(neg:SI (match_op_dup 3 [(match_dup 5) (const_int 0)])))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   if (GET_CODE (operands[1])	    == reverse_condition (GET_CODE (operands[3])))	;   else     {       /* Make the condition pairs line up by rotating the compare word.  */       int cv1 = condition_value (operands[1]);       int cv2 = condition_value (operands[3]);       operands[2] = gen_rtx_ROTATE (CCmode, operands[2],				     GEN_INT (((cv1 & ~1) - (cv2 & ~1))					      & 0x1f));     }")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(and:SI (match_operator 1 "even_relop"				[(match_operand 2 "partial_ccmode_register_operand" "%r")				 (const_int 0)])		(match_operator 3 "relop"				[(match_operand 4 "partial_ccmode_register_operand" "r")				 (const_int 0)])))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  "GET_CODE (operands[1]) == GET_CODE (operands[3])   || GET_CODE (operands[1]) == reverse_condition (GET_CODE (operands[3]))"  [(set (match_dup 5)	(and:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(match_op_dup 1 [(match_dup 5) (const_int 0)]))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);   /* Reverse the condition by complementing the compare word.  */   if (GET_CODE (operands[1]) != GET_CODE (operands[3]))      operands[4] = gen_rtx_NOT (CCmode, operands[4]);")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(and:SI (match_operator 1 "odd_relop"				[(match_operand 2 "partial_ccmode_register_operand" "%r")				 (const_int 0)])		(match_operator 3 "odd_relop"				[(match_operand 4 "partial_ccmode_register_operand" "r")				 (const_int 0)])))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  "GET_CODE (operands[1]) == GET_CODE (operands[3])"  [(set (match_dup 5)	(ior:CCEVEN (match_dup 4)		(match_dup 2)))   (set (match_dup 0)	(match_op_dup 1 [(match_dup 5) (const_int 0)]))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);")(define_split  [(set (match_operand:SI 0 "register_operand" "=r")	(and:SI (match_operator 1 "odd_relop"				[(match_operand 2 "partial_ccmode_register_operand" "%r")				 (const_int 0)])		(match_operator 3 "even_relop"				[(match_operand 4 "partial_ccmode_register_operand" "r")				 (const_int 0)])))   (clobber (match_operand:SI 5 "register_operand" "=r"))]  "GET_CODE (operands[1]) == reverse_condition (GET_CODE (operands[3]))"  [(set (match_dup 5)	(and:CCEVEN (not:CC (match_dup 2))		(match_dup 4)))   (set (match_dup 0)	(match_op_dup 3 [(match_dup 5) (const_int 0)]))]  "operands[5] = gen_rtx_SUBREG (CCEVENmode, operands[5], 0);");; Logical operations on compare words.(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(and:CCEVEN (not:CC (match_operand 1 "partial_ccmode_register_operand" "r"))		(match_operand 2 "partial_ccmode_register_operand" "r")))]  ""  "and.c %0,%2,%1")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(and:CCEVEN (match_operand 1 "partial_ccmode_register_operand" "%r")		(match_operand 2 "partial_ccmode_register_operand" "r")))]  ""  "and %0,%1,%2")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(ior:CCEVEN (not:CC (match_operand 1 "partial_ccmode_register_operand" "r"))		(match_operand 2 "partial_ccmode_register_operand" "r")))]  ""  "or.c %0,%2,%1")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(ior:CCEVEN (match_operand 1 "partial_ccmode_register_operand" "%r")		(match_operand 2 "partial_ccmode_register_operand" "r")))]  ""  "or %0,%1,%2")(define_insn ""  [(set (match_operand:CC 0 "register_operand" "=r")	(rotate:CC (match_operand:CC 1 "register_operand" "r")		   (match_operand:CC 2 "int5_operand" "")))]  ""  "rot %0,%1,%2"  [(set_attr "type" "bit")])(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(rotate:CCEVEN (match_operand 1 "partial_ccmode_register_operand" "r")		   (match_operand:CC 2 "int5_operand" "")))]  ""  "rot %0,%1,%2"  [(set_attr "type" "bit")]);; rotate/and[.c] and rotate/ior[.c](define_split  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(ior:CCEVEN (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")			   (match_operand:CC 2 "int5_operand" ""))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_operand:CCEVEN 4 "register_operand" "=r"))]  ""  [(set (match_dup 4)	(rotate:CC (match_dup 1) (match_dup 2)))   (set (match_dup 0)	(ior:CCEVEN (match_dup 4) (match_dup 3)))]  "")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(ior:CCEVEN (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")			   (match_operand:CC 2 "int5_operand" ""))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_scratch:CCEVEN 4 "=r"))]  ""  "#")(define_split  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(ior:CCEVEN (not:CC (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")				   (match_operand:CC 2 "int5_operand" "")))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_operand:CCEVEN 4 "register_operand" "=r"))]  ""  [(set (match_dup 4)	(rotate:CC (match_dup 1) (match_dup 2)))   (set (match_dup 0)	(ior:CCEVEN (not:CC (match_dup 4)) (match_dup 3)))]  "")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(ior:CCEVEN (not:CC (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")				   (match_operand:CC 2 "int5_operand" "")))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_scratch:CCEVEN 4 "=r"))]  ""  "#")(define_split  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(and:CCEVEN (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")			   (match_operand:CC 2 "int5_operand" ""))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_operand:CCEVEN 4 "register_operand" "=r"))]  ""  [(set (match_dup 4)	(rotate:CC (match_dup 1) (match_dup 2)))   (set (match_dup 0)	(and:CCEVEN (match_dup 4) (match_dup 3)))]  "")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(and:CCEVEN (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")			   (match_operand:CC 2 "int5_operand" ""))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_scratch:CCEVEN 4 "=r"))]  ""  "#")(define_split  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(and:CCEVEN (not:CC (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")				   (match_operand:CC 2 "int5_operand" "")))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_operand:CCEVEN 4 "register_operand" "=r"))]  ""  [(set (match_dup 4)	(rotate:CC (match_dup 1) (match_dup 2)))   (set (match_dup 0)	(and:CCEVEN (not:CC (match_dup 4)) (match_dup 3)))]  "")(define_insn ""  [(set (match_operand:CCEVEN 0 "register_operand" "=r")	(and:CCEVEN (not:CC (rotate:CC (match_operand 1 "partial_ccmode_register_operand" "r")				   (match_operand:CC 2 "int5_operand" "")))		(match_operand 3 "partial_ccmode_register_operand" "r")))   (clobber (match_scratch:CCEVEN 4 "=r"))]  ""  "#")

⌨️ 快捷键说明

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