diff options
-rw-r--r-- | gcc/ChangeLog.apple-ppc | 12 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 10 | ||||
-rw-r--r-- | gcc/tree-nested.c | 7 |
4 files changed, 28 insertions, 5 deletions
diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc index 4af5be70248..725bbbddfab 100644 --- a/gcc/ChangeLog.apple-ppc +++ b/gcc/ChangeLog.apple-ppc @@ -1,3 +1,15 @@ +2005-06-10 Dale Johannesen <dalej@apple.com> + + Fixes from mainline. + Radar 4137102, 4141805, 4104248 + * config/i386/i386.md (movqi_1): Fix case where source + is memory and destination EDI. + * tree-nested.c (finalize_nesting_tree_1): Disable + warn_padded around layout_type call. + * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for + src2 if src2 has been split. + + 2005-06-04 Devang Patel <dpatel@apple.com> * dbxout.c (struct dbx_file): Apply GTY markers. diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 4cf2577309c..c070f6c0dbd 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -1686,6 +1686,10 @@ try_crossjump_to_edge (int mode, edge e1, edge e2) delete_basic_block (to_remove); update_forwarder_flag (redirect_from); + /* APPLE LOCAL begin mainline 4141805 */ + if (redirect_to != src2) + update_forwarder_flag (src2); + /* APPLE LOCAL end mainline 4141805 */ return true; } diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index fd11b7740be..a8d1c2bd6da 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1469,10 +1469,10 @@ ;; For loads of Q_REG to NONQ_REG we use full sized moves except for partial ;; register stall machines with, where we use QImode instructions, since ;; partial register stall can be caused there. Then we use movzx. -;; APPLE LOCAL begin 4104248 +;; APPLE LOCAL begin mainline 4104248 (define_insn "*movqi_1" - [(set (match_operand:QI 0 "nonimmediate_operand" "=q,q ,q ,?r,r ,?r,m") - (match_operand:QI 1 "general_operand" " q,qn,qm, q,rn,m ,qn"))] + [(set (match_operand:QI 0 "nonimmediate_operand" "=q,q ,q ,r,r ,?r,m") + (match_operand:QI 1 "general_operand" " q,qn,qm,q,rn,m ,qn"))] "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM" { switch (get_attr_type (insn)) @@ -1499,7 +1499,7 @@ (eq (symbol_ref "TARGET_QIMODE_MATH") (const_int 0)))) (const_string "imov") - (eq_attr "alternative" "5") + (eq_attr "alternative" "3") (const_string "imovx") (and (ne (symbol_ref "TARGET_MOVX") (const_int 0)) @@ -1529,7 +1529,7 @@ (const_string "SI") ] (const_string "QI")))]) -;; APPLE LOCAL end 4104248 +;; APPLE LOCAL end mainline 4104248 (define_expand "reload_outqi" [(parallel [(match_operand:QI 0 "" "=m") diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index 67f7617db7a..3d43b6e5453 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -1304,8 +1304,15 @@ finalize_nesting_tree_1 (struct nesting_info *root) out at this time. */ if (root->frame_type) { + /* APPLE LOCAL begin mainline 4137012 */ + /* In some cases the frame type will trigger the -Wpadded warning. + This is not helpful; suppress it. */ + int save_warn_padded = warn_padded; + warn_padded = 0; layout_type (root->frame_type); + warn_padded = save_warn_padded; layout_decl (root->frame_decl, 0); + /* APPLE LOCAL end mainline 4137012 */ } /* If any parameters were referenced non-locally, then we need to |