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

📄 pj.md

📁 gcc3.2.1源代码
💻 MD
📖 第 1 页 / 共 2 页
字号:
                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (EQ, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bne"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (NE, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bgt"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (GT, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "blt"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (LT, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bge"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (GE, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "ble"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (LE, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bgtu"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (GTU, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bltu"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (LTU, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bgeu"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (GEU, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_expand "bleu"  [(set (pc) (if_then_else (match_op_dup 3  [(match_dup 1) (match_dup 2)])                           (label_ref (match_operand 0 "" ""))                           (pc)))]  ""  "operands[3] = gen_rtx (LEU, pj_cmp_mode);   operands[1] = pj_cmp_op0;   operands[2] = pj_cmp_op1;")(define_insn "*bop"  [(set (pc) (if_then_else (match_operand:SI 0 "pj_source_operand" "gS")			   (label_ref (match_operand 1 "" ""))			   (pc)))]  ""  "%S0%*ifne %1")(define_insn "*rev_bop"  [(set (pc) (if_then_else (match_operand:SI 0 "pj_source_operand" "gS")			   (pc)			   (label_ref (match_operand 1 "" ""))))]  ""  "%S0%*ifeq %1")(define_insn "*blopsi"  [(set (pc) 	(if_then_else 	 (match_operator:SI 3 "pj_signed_comparison_operator" 			    [(match_operand:SI 0 "pj_source_operand" "gS,gS")			     (match_operand:SI 1 "pj_source_operand" "K,gS")])	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "@	%S0%*if%Y3 %2	%S0%S1%*if_icmp%Y3 %2")(define_insn "*rev_blopsi"  [(set (pc) 	(if_then_else 	 (match_operator:SI 3 "pj_signed_comparison_operator" 			    [(match_operand:SI 0 "pj_source_operand" "gS,gS")			     (match_operand:SI 1 "pj_source_operand" "K,gS")])	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "@	%S0%*if%Z3 %2	%S0%S1%*if_icmp%Z3 %2")(define_insn "*bluopsi"  [(set (pc) 	(if_then_else 	 (match_operator:SI 3 "pj_unsigned_comparison_operator" 			    [(match_operand:SI 0 "pj_source_operand" "gS")			     (match_operand:SI 1 "pj_source_operand" "gS")])	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "%S0%S1%*iucmp%*if%Y3 %2")(define_insn "*rev_bluopsi"  [(set (pc) 	(if_then_else 	 (match_operator:SI 3 "pj_unsigned_comparison_operator" 			    [(match_operand:SI 0 "pj_source_operand" "gS")			     (match_operand:SI 1 "pj_source_operand" "gS")])	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "%S0%S1%*iucmp%*if%Z3 %2")(define_insn "*blopdi"  [(set (pc) 	(if_then_else 	 (match_operator:DI 3 "pj_signed_comparison_operator" 			    [(match_operand:DI 0 "pj_source_operand" "gS")			     (match_operand:DI 1 "pj_source_operand" "gS")])	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "%D0%D1%*lcmp%*if%Y3 %2")(define_insn "*rev_blopdi"  [(set (pc)	(if_then_else 	 (match_operator:DI 3 "pj_signed_comparison_operator" 			    [(match_operand:DI 0 "pj_source_operand" "gS")			     (match_operand:DI 1 "pj_source_operand" "gS")])	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "%D0%D1%*lcmp%*if%Z3 %2")(define_insn "*bluopdi"  [(set (pc)	(if_then_else 	 (match_operator:DI 3 "pj_unsigned_comparison_operator" 			    [(match_operand:DI 0 "pj_source_operand" "gS")			     (match_operand:DI 1 "pj_source_operand" "gS")])	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "%D0%D1%*ipush __pjucmpdi2%*bipush 6%*call%*if%Y3 %2")(define_insn "*rev_bluopdi"  [(set (pc) 	(if_then_else 	 (match_operator:DI 3 "pj_unsigned_comparison_operator" 			    [(match_operand:DI 0 "pj_source_operand" "gS")			     (match_operand:DI 1 "pj_source_operand" "gS")])	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "%D0%D1%*ipush __pjucmpdi2%*bipush 6%*call%*if%Z3 %2")(define_insn "*blopsf"  [(set (pc) 	(if_then_else 	 (match_operator:SF 3 "comparison_operator" 			    [(match_operand:SF 0 "pj_source_operand" "gS")			     (match_operand:SF 1 "pj_source_operand" "gS")])	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "%S0%S1%*fcmp%X3%*if%Y3 %2")(define_insn "*rev_bluopsf"  [(set (pc) 	(if_then_else 	 (match_operator:SF 3 "comparison_operator" 			    [(match_operand:SF 0 "pj_source_operand" "gS")			     (match_operand:SF 1 "pj_source_operand" "gS")])	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "%S0%S1%*fcmp%X3%*if%Z3 %2")(define_insn "*blopdf"  [(set (pc) 	(if_then_else 	 (match_operator:DF 3 "comparison_operator" 			    [(match_operand:DF 0 "pj_source_operand" "gS")			     (match_operand:DF 1 "pj_source_operand" "gS")])	 (label_ref (match_operand 2 "" ""))	 (pc)))]  ""  "%D0%D1%*dcmp%X3%*if%Y3 %2")(define_insn "*rev_bluopdf"  [(set (pc) 	(if_then_else 	 (match_operator:DF 3 "comparison_operator" 			    [(match_operand:DF 0 "pj_source_operand" "gS")			     (match_operand:DF 1 "pj_source_operand" "gS")])	 (pc)	 (label_ref (match_operand 2 "" ""))))]  ""  "%D0%D1%*dcmp%X3%*if%Z3 %2");; call instructions(define_insn "pj_call"  [(call (mem:QI (match_operand:SI 0 "pj_source_operand" "gS"))	         (match_operand:SI 1 "immediate_operand" "i"))]  ""  "%C0%E1%S0%S1%*call")(define_insn "pj_call_value"  [(set (match_operand 0 "nonimmediate_operand" "=gD")	(call (mem:QI (match_operand:SI 1 "pj_source_operand" "gS"))		      (match_operand:SI 2 "immediate_operand" "i")))]  ""  "%C1%E2%S1%S2%*call")(define_expand "call"  [(call (match_operand:SI 0 "pj_source_operand" "gS")         (match_operand:SI 1 "immediate_operand" "i"))   (use (match_operand:SI 2 "register_operand" "r"))   (use (match_operand:SI 3 "" ""))]  ""  "{     emit_call_insn (gen_pj_call (XEXP (operands[0], 0),		                   pj_workout_arg_words (operands[1],	                                         operands[2])));     DONE;   }")(define_expand "call_value"  [(set (match_operand:SI 0 "nonimmediate_operand" "gS")	(call (match_operand:SI 1 "pj_source_operand" "gS")         (match_operand:SI 2 "immediate_operand" "i")))   (use (match_operand:SI 3 "register_operand" "r"))   (use (match_operand:SI 4 "" ""))]  ""  "{     emit_call_insn (gen_pj_call_value (operands[0], 	            	                 XEXP (operands[1], 0),	                              	 pj_workout_arg_words (operands[2],	                                               operands[3])));     DONE;   }");; No-op instruction.(define_insn "nop"  [(const_int 0)]  ""  "nop");; Jump instructions(define_insn "jump"  [(set (pc) (label_ref (match_operand 0 "" "")))]  ""  "%*goto %l0")(define_insn "indirect_jump"  [(set (pc) (match_operand:SI 0 "pj_source_operand" "gS"))]  ""  "%S0%*write_pc")(define_insn "casesi"  [(set (pc)	(if_then_else	 (leu (minus:SI (match_operand:SI 0 "pj_source_operand" "gS")			(match_operand:SI 1 "immediate_operand" "i"))	      (match_operand:SI 2 "immediate_operand" "i"))	 (plus:SI (sign_extend:SI		   (mem:SI		    (plus:SI (pc)			     (mult:SI (minus:SI (match_dup 0)						(match_dup 1))				      (const_int 4)))))		  (label_ref (match_operand 3 "" "")))	 (label_ref (match_operand 4 "" ""))))]  ""  "%S0\\n%3i:%*tableswitch\\n\\t%*.align 2%*.long %4-%3i%*.long %1%*.long %1+%2");; Sign-extend move instructions.(define_insn "extendsfdf2"  [(set (match_operand:DF 0 "nonimmediate_operand" "=gD")	 (float_extend:DF (match_operand:SF 1 "pj_source_operand" "gS")))]  ""  "%S1%*f2d%R0")(define_insn "extendhisi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (sign_extend:SI (match_operand:HI 1 "pj_source_operand" "gS")))]  ""  "%S1%*bipush 16%*ishl%*bipush 16%*ishr%R0")(define_insn "extendqisi2"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")        (sign_extend:SI (match_operand:QI 1 "pj_source_operand" "gS")))]  ""  "%S1%*bipush 24%*ishl%*bipush 24%*ishr%R0")(define_insn "extendqihi2"  [(set (match_operand:HI 0 "nonimmediate_operand" "=gD")        (sign_extend:HI (match_operand:QI 1 "pj_source_operand" "gS")))]  ""  "%S1%*bipush 24%*ishl%*bipush 24%*ishr%R0")(define_insn "extendsidi2"  [(set (match_operand:DI 0 "nonimmediate_operand" "=gD")        (sign_extend:DI (match_operand:SI 1 "pj_source_operand" "gS")))]  ""  "%S1%*i2l%R0");; non local control flow.(define_expand "save_stack_nonlocal"  [(set (match_operand 0 "nonimmediate_operand" "=gD")	(match_operand 1 "pj_source_operand" "gS"))]  ""  "{     rtx reg = force_reg (Pmode, XEXP (operands[0], 0));     rtx addr0 = gen_rtx_MEM (SImode,reg);     rtx addr1 = gen_rtx_MEM (SImode, gen_rtx_PRE_INC (SImode, reg));      rtx addr2 = gen_rtx_MEM (SImode, gen_rtx_PRE_INC (SImode, reg));     emit_move_insn (addr0, gen_rtx_REG (SImode, 64));     emit_move_insn (addr1, gen_rtx_REG (SImode, 72));     emit_move_insn (addr2, gen_rtx_REG (SImode, 73));     DONE;   }")(define_insn "restore_stack_nonlocal_helper"  [(set (reg:SI 64) (mem:SI (match_operand:SI 0 "register_operand" "r")))   (set (reg:SI 72) (mem:SI (pre_inc:SI (match_dup 0))))   (set (reg:SI 73) (mem:SI (pre_inc:SI (match_dup 0))))]  ""  "%S0%*load_word%*write_global0%*iinc %J0,4%S0%*load_word%*iinc %J0,4%S0%*load_word%*write_vars%*write_optop")(define_expand "restore_stack_nonlocal"  [(set (match_operand 0 "nonimmediate_operand" "=gD")	(match_operand 1 "pj_source_operand" "gS"))]  ""  "{    rtx reg = force_reg (Pmode, XEXP (operands[1], 0));    emit_insn (gen_restore_stack_nonlocal_helper (reg));    DONE;  }")(define_insn "nonlocal_goto_helper"  [(set (reg:SI 64) (mem:SI (match_operand:SI 0 "register_operand" "r")))   (set (reg:SI 72) (mem:SI (pre_inc:SI (match_dup 0))))   (set (reg:SI 73) (mem:SI (pre_inc:SI (match_dup 0))))   (set (pc) (match_operand:SI 1 "pj_source_operand" "gS"))]  ""  "%S0%*load_word%*write_global0%*iinc %J0,4%*%S0%*load_word%*%S1%*iinc %J0,4%*%S0%*load_word%*iinc %J0,4%*write_vars%*return0")(define_expand "nonlocal_goto"  [(match_operand:SI 0 "pj_source_operand" "")   (match_operand:SI 1 "pj_source_operand" "")   (match_operand:SI 2 "pj_source_operand" "")   (match_operand:SI 3 "" "")]  ""  "{      operands[2] = force_reg (Pmode, XEXP (operands[2], 0));     emit_move_insn (hard_frame_pointer_rtx, operands[0]);     emit_insn (gen_rtx_USE (VOIDmode, stack_pointer_rtx));     emit_insn (gen_nonlocal_goto_helper (operands[2], operands[1]));     emit_barrier ();     DONE;   }");; Function overhead.(define_expand "prologue"  [(const_int 0)]  ""  "pj_expand_prologue (); DONE;")(define_expand "epilogue"  [(return)]  ""  "pj_expand_epilogue();")(define_insn "return"  [(return)]  "reload_completed"  "%*return0")(define_insn "tm_frame"  [(use  (match_operand:SI 0 "pj_source_operand" "gS"))   (set (reg:SI 73) 	(minus:SI (reg:SI 73) 		  (mult:SI (match_operand:SI 1 "pj_source_operand" "gS")			   (const_int 4))))]  ""  "%S0%S1%*tm_frame")(define_insn "varargs"  [(unspec_volatile [(match_operand:SI 0 "pj_source_operand" "gS")] 10)]  ""  "%S0%*jsr_w __vhelper")(define_insn "varargs_finish"  [(unspec_volatile [(match_operand:SI 0 "pj_source_operand" "gS")] 11)]  ""  "%*iload %J0%*write_global0");; Extensions to picoJava.(define_insn "strlensi"  [(set (match_operand:SI 0 "nonimmediate_operand" "=g")	(unspec:SI [(match_operand:BLK 1 "memory_operand" "gS")		    (match_operand:QI 2 "pj_source_operand" "gS")		    (match_operand:SI 3 "immediate_operand" "gS")] 0))   (clobber (reg:SI 65))]  "TARGET_TM_EXTENSIONS"  "%I1%S2%S3%*iconst_0%*write_global1%*tm_strlensi%R0")(define_insn "movstrsi"  [(set (match_operand:BLK 0 "memory_operand" "=gS")	(match_operand:BLK 1 "memory_operand" "gS"))   (use (match_operand:SI 2 "pj_source_operand" "gS"))   (use (match_operand:SI 3 "pj_source_operand" "gS"))   (clobber (reg:SI 65))]  "TARGET_TM_EXTENSIONS"  "%I0%I1%S2%S3%*iconst_0%*write_global1%*tm_movstrsi")(define_insn "clrstrsi"  [(set (match_operand:BLK 0 "memory_operand" "=gS")	(const_int 0))   (use (match_operand:SI 1 "pj_source_operand" "gS"))   (use (match_operand:SI 2 "pj_source_operand" "gS"))   (clobber (reg:SI 65))]  "TARGET_TM_EXTENSIONS"  "%I0%*iconst_0%S1%S2%*iconst_0%*write_global1%*tm_memsetsi")(define_insn "cmpstrsi"  [(set (match_operand:SI 0 "nonimmediate_operand" "=gD")	(compare:SI (match_operand:BLK 1 "memory_operand" "g")		    (match_operand:BLK 2 "memory_operand" "g")))   (use (match_operand:SI 3 "pj_source_operand" "gS"))   (use (match_operand:SI 4 "pj_source_operand" "gS"))   (clobber (reg:SI 65))]  "TARGET_TM_EXTENSIONS"  "%I1%I2%S3%S4%*iconst_0%*write_global1%*tm_cmpstrsi%R0")

⌨️ 快捷键说明

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