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

📄 999-cvs-updates.patch

📁 這是一個實時嵌入式作業系統 實作了MCS51 ARM等MCU
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
    (UNSPECV_SET_TP	12)    (UNSPECV_RPCC	13)+   (UNSPECV_SETJMPR_ER	14)	; builtin_setjmp_receiver fragment   ])  ;; Where necessary, the suffixes _le and _be are used to distinguish between@@ -6764,70 +6765,44 @@   "jmp $31,(%0),0"   [(set_attr "type" "ibr")]) -(define_insn "*builtin_setjmp_receiver_er_sl_1"-  [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]-  "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF && TARGET_AS_CAN_SUBTRACT_LABELS"-  "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:")-  -(define_insn "*builtin_setjmp_receiver_er_1"-  [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]-  "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"-  "br $27,$LSJ%=\n$LSJ%=:"-  [(set_attr "type" "ibr")])--(define_split-  [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]-  "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF-   && prev_nonnote_insn (insn) == operands[0]"-  [(const_int 0)]-  "-{-  emit_note (NULL, NOTE_INSN_DELETED);-  DONE;-}")--(define_insn "*builtin_setjmp_receiver_1"+(define_expand "builtin_setjmp_receiver"   [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]   "TARGET_ABI_OSF"-  "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)"-  [(set_attr "length" "12")-   (set_attr "type" "multi")])+  "") -(define_expand "builtin_setjmp_receiver_er"-  [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)+(define_insn_and_split "*builtin_setjmp_receiver_1"+  [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR)]+  "TARGET_ABI_OSF"+{+  if (TARGET_EXPLICIT_RELOCS)+    return "#";+  else+    return "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)";+}+  "&& TARGET_EXPLICIT_RELOCS && reload_completed"+  [(unspec_volatile [(match_dup 0)] UNSPECV_SETJMPR_ER)    (set (match_dup 1) 	(unspec_volatile:DI [(match_dup 2) (match_dup 3)] UNSPECV_LDGP1))    (set (match_dup 1) 	(unspec:DI [(match_dup 1) (match_dup 3)] UNSPEC_LDGP2))]-  "" {   operands[1] = pic_offset_table_rtx;   operands[2] = gen_rtx_REG (Pmode, 27);   operands[3] = GEN_INT (alpha_next_sequence_number++);-})+}+  [(set_attr "length" "12")+   (set_attr "type" "multi")]) -(define_expand "builtin_setjmp_receiver"-  [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]-  "TARGET_ABI_OSF"-{-  if (TARGET_EXPLICIT_RELOCS)-    {-      emit_insn (gen_builtin_setjmp_receiver_er (operands[0]));-      DONE;-    }-})+(define_insn "*builtin_setjmp_receiver_er_sl_1"+  [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)]+  "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS && TARGET_AS_CAN_SUBTRACT_LABELS"+  "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:") -(define_expand "exception_receiver_er"-  [(set (match_dup 0)-	(unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1))-   (set (match_dup 0)-	(unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))]-  ""-{-  operands[0] = pic_offset_table_rtx;-  operands[1] = gen_rtx_REG (Pmode, 26);-  operands[2] = GEN_INT (alpha_next_sequence_number++);-})+(define_insn "*builtin_setjmp_receiver_er_1"+  [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)]+  "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS"+  "br $27,$LSJ%=\n$LSJ%=:"+  [(set_attr "type" "ibr")])  (define_expand "exception_receiver"   [(unspec_volatile [(match_dup 0)] UNSPECV_EHR)]@@ -6835,28 +6810,38 @@ {   if (TARGET_LD_BUGGY_LDGP)     operands[0] = alpha_gp_save_rtx ();-  else if (TARGET_EXPLICIT_RELOCS)-    {-      emit_insn (gen_exception_receiver_er ());-      DONE;-    }   else     operands[0] = const0_rtx; }) -(define_insn "*exception_receiver_1"-  [(unspec_volatile [(const_int 0)] UNSPECV_EHR)]-  "! TARGET_LD_BUGGY_LDGP"-  "ldgp $29,0($26)"-  [(set_attr "length" "8")-   (set_attr "type" "multi")])- (define_insn "*exception_receiver_2"   [(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)]-  "TARGET_LD_BUGGY_LDGP"+  "TARGET_ABI_OSF && TARGET_LD_BUGGY_LDGP"   "ldq $29,%0"   [(set_attr "type" "ild")]) +(define_insn_and_split "*exception_receiver_1"+  [(unspec_volatile [(const_int 0)] UNSPECV_EHR)]+  "TARGET_ABI_OSF"+{+  if (TARGET_EXPLICIT_RELOCS)+    return "ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*";+  else+    return "ldgp $29,0($26)";+}+  "&& TARGET_EXPLICIT_RELOCS && reload_completed"+  [(set (match_dup 0)+	(unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1))+   (set (match_dup 0)+	(unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))]+{+  operands[0] = pic_offset_table_rtx;+  operands[1] = gen_rtx_REG (Pmode, 26);+  operands[2] = GEN_INT (alpha_next_sequence_number++);+}+  [(set_attr "length" "8")+   (set_attr "type" "multi")])+ (define_expand "nonlocal_goto_receiver"   [(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE)    (set (reg:DI 27) (mem:DI (reg:DI 29)))Index: gcc/config/alpha/qrnnd.asm===================================================================RCS file: /cvs/gcc/gcc/gcc/config/alpha/qrnnd.asm,vretrieving revision 1.1retrieving revision 1.1.60.1diff -u -r1.1 -r1.1.60.1--- gcc/gcc/config/alpha/qrnnd.asm	15 Apr 2000 16:34:38 -0000	1.1+++ gcc/gcc/config/alpha/qrnnd.asm	30 Sep 2004 19:36:28 -0000	1.1.60.1@@ -26,6 +26,10 @@  # Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,  # MA 02111-1307, USA. +#ifdef __ELF__+.section .note.GNU-stack,""+#endif+         .set noreorder         .set noat Index: gcc/config/i386/i386-protos.h===================================================================RCS file: /cvs/gcc/gcc/gcc/config/i386/i386-protos.h,vretrieving revision 1.86.2.2retrieving revision 1.86.2.3diff -u -r1.86.2.2 -r1.86.2.3--- gcc/gcc/config/i386/i386-protos.h	8 Jul 2003 19:16:44 -0000	1.86.2.2+++ gcc/gcc/config/i386/i386-protos.h	12 Dec 2004 21:00:44 -0000	1.86.2.3@@ -88,6 +88,8 @@ extern int cmpsi_operand PARAMS ((rtx, enum machine_mode)); extern int long_memory_operand PARAMS ((rtx, enum machine_mode)); extern int aligned_operand PARAMS ((rtx, enum machine_mode));+extern int compare_operator PARAMS ((rtx, enum machine_mode));+extern int flags_reg_operand PARAMS ((rtx, enum machine_mode)); extern enum machine_mode ix86_cc_mode PARAMS ((enum rtx_code, rtx, rtx));  extern int ix86_expand_movstr PARAMS ((rtx, rtx, rtx, rtx));Index: gcc/config/i386/i386.c===================================================================RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,vretrieving revision 1.495.2.36retrieving revision 1.495.2.37diff -u -r1.495.2.36 -r1.495.2.37--- gcc/gcc/config/i386/i386.c	18 May 2004 05:07:52 -0000	1.495.2.36+++ gcc/gcc/config/i386/i386.c	12 Dec 2004 21:00:44 -0000	1.495.2.37@@ -3609,6 +3609,20 @@   return ANY_QI_REG_P (op); } +/* Return true if op is an flags register.  */++int+flags_reg_operand (op, mode)+     register rtx op;+     enum machine_mode mode;+{+  if (mode != VOIDmode && GET_MODE (op) != mode)+    return 0;+  return (GET_CODE (op) == REG+	  && REGNO (op) == FLAGS_REG+	  && GET_MODE (op) != VOIDmode);+}+ /* Return true if op is a NON_Q_REGS class register.  */  int@@ -3969,6 +3983,14 @@   /* Didn't find one -- this must be an aligned address.  */   return 1; }++int+compare_operator (op, mode)+     rtx op;+     enum machine_mode mode ATTRIBUTE_UNUSED;+{+  return GET_CODE (op) == COMPARE;+}  /* Return true if the constant is something that can be loaded with    a special instruction.  Only handle 0.0 and 1.0; others are lessIndex: gcc/config/i386/i386.h===================================================================RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.h,vretrieving revision 1.309.2.11retrieving revision 1.309.2.12diff -u -r1.309.2.11 -r1.309.2.12--- gcc/gcc/config/i386/i386.h	6 Feb 2004 19:43:31 -0000	1.309.2.11+++ gcc/gcc/config/i386/i386.h	12 Dec 2004 21:00:47 -0000	1.309.2.12@@ -3319,6 +3319,7 @@ 			SYMBOL_REF, LABEL_REF, SUBREG, REG, MEM}},	\   {"nonmemory_no_elim_operand", {CONST_INT, REG, SUBREG}},		\   {"index_register_operand", {SUBREG, REG}},				\+  {"flags_reg_operand", {REG}},						\   {"q_regs_operand", {SUBREG, REG}},					\   {"non_q_regs_operand", {SUBREG, REG}},				\   {"fcmov_comparison_operator", {EQ, NE, LTU, GTU, LEU, GEU, UNORDERED, \@@ -3354,6 +3355,7 @@   {"fp_register_operand", {REG}},					\   {"register_and_not_fp_reg_operand", {REG}},				\   {"vector_move_operand", {CONST_VECTOR, SUBREG, REG, MEM}},		\+  {"compare_operator", {COMPARE}},  /* A list of predicates that do special things with modes, and so    should not elicit warnings for VOIDmode match_operand.  */Index: gcc/config/i386/i386.md===================================================================RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,vretrieving revision 1.404.2.24retrieving revision 1.404.2.29diff -u -r1.404.2.24 -r1.404.2.29--- gcc/gcc/config/i386/i386.md	28 Apr 2004 17:00:03 -0000	1.404.2.24+++ gcc/gcc/config/i386/i386.md	23 Jan 2005 05:15:59 -0000	1.404.2.29@@ -1188,10 +1188,9 @@   ""   "xchg{l}\t%1, %0"   [(set_attr "type" "imov")+   (set_attr "mode" "SI")    (set_attr "pent_pair" "np")    (set_attr "athlon_decode" "vector")-   (set_attr "mode" "SI")-   (set_attr "modrm" "0")    (set_attr "ppro_uops" "few")])  (define_expand "movhi"@@ -1304,12 +1303,12 @@ 	(match_operand:HI 1 "register_operand" "+r"))    (set (match_dup 1) 	(match_dup 0))]-  "TARGET_PARTIAL_REG_STALL"-  "xchg{w}\t%1, %0"+  "!TARGET_PARTIAL_REG_STALL || optimize_size"+  "xchg{l}\t%k1, %k0"   [(set_attr "type" "imov")+   (set_attr "mode" "SI")    (set_attr "pent_pair" "np")-   (set_attr "mode" "HI")-   (set_attr "modrm" "0")+   (set_attr "athlon_decode" "vector")    (set_attr "ppro_uops" "few")])  (define_insn "*swaphi_2"@@ -1317,12 +1316,12 @@ 	(match_operand:HI 1 "register_operand" "+r"))    (set (match_dup 1) 	(match_dup 0))]-  "! TARGET_PARTIAL_REG_STALL"-  "xchg{l}\t%k1, %k0"+  "TARGET_PARTIAL_REG_STALL"+  "xchg{w}\t%1, %0"   [(set_attr "type" "imov")+   (set_attr "mode" "HI")    (set_attr "pent_pair" "np")-   (set_attr "mode" "SI")-   (set_attr "modrm" "0")+   (set_attr "athlon_decode" "vector")    (set_attr "ppro_uops" "few")])  (define_expand "movstricthi"@@ -1470,17 +1469,30 @@   DONE; }) -(define_insn "*swapqi"+(define_insn "*swapqi_1"   [(set (match_operand:QI 0 "register_operand" "+r") 	(match_operand:QI 1 "register_operand" "+r"))    (set (match_dup 1) 	(match_dup 0))]-  ""-  "xchg{b}\t%1, %0"+  "!TARGET_PARTIAL_REG_STALL || optimize_size"+  "xchg{l}\t%k1, %k0"   [(set_attr "type" "imov")+   (set_attr "mode" "SI")    (set_attr "pent_pair" "np")+   (set_attr "athlon_decode" "vector")+   (set_attr "ppro_uops" "few")])++(define_insn "*swapqi_2"+  [(set (match_operand:QI 0 "register_operand" "+q")+	(match_operand:QI 1 "register_operand" "+q"))+   (set (match_dup 1)+	(match_dup 0))]+  "TARGET_PARTIAL_REG_STALL"+  "xchg{b}\t%1, %0"+  [(set_attr "type" "imov")    (set_attr "mode" "QI")-   (set_attr "modrm" "0")+   (set_attr "pent_pair" "np")+   (set_attr "athlon_decode" "vector")    (set_attr "ppro_uops" "few")])  (define_expand "movstrictqi"@@ -1987,13 +1999,11 @@   "TARGET_64BIT"   "xchg{q}\t%1, %0"   [(set_attr "type" "imov")+   (set_attr "mode" "DI")    (set_attr "pent_pair" "np")    (set_attr "athlon_decode" "vector")-   (set_attr "mode" "DI")-   (set_attr "modrm" "0")    (set_attr "ppro_uops" "few")]) -   (define_expand "movsf"   [(set (match_operand:SF 0 "nonimmediate_operand" "") 	(match_operand:SF 1 "general_operand" ""))]@@ -7559,17 +7569,21 @@   ""   "") -(define_insn "*testqi_1"+(define_insn "*testqi_1_maybe_si"   [(set (reg 17)-        (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm,r")-			 (match_operand:QI 1 "nonmemory_operand" "n,n,qn,n"))-		 (const_int 0)))]-  "ix86_match_ccmode (insn, CCNOmode)"+        (compare+	  (and:QI+	    (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm,r")+	    (match_operand:QI 1 "nonmemory_operand" "n,n,qn,n"))+	  (const_int 0)))]+   "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)+    && ix86_match_ccmode (insn,+ 			  GET_CODE (operands[1]) == CONST_INT+ 			  && INTVAL (operands[1]) >= 0 ? CCNOm

⌨️ 快捷键说明

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