aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog.apple-ppc12
-rw-r--r--gcc/cfgcleanup.c4
-rw-r--r--gcc/config/i386/i386.md10
-rw-r--r--gcc/tree-nested.c7
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