Deleted Added
full compact
final.c (258501) final.c (260014)
1/* Convert RTL to assembler code and output it, for GNU compiler.
2 Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4 Free Software Foundation, Inc.
5
6This file is part of GCC.
7
8GCC is free software; you can redistribute it and/or modify it under

--- 329 unchanged lines hidden (view full) ---

338 gives the next following alignment insn that increases the known
339 alignment, or NULL_RTX if there is no such insn.
340 For any alignment obtained this way, we can again index uid_align with
341 its uid to obtain the next following align that in turn increases the
342 alignment, till we reach NULL_RTX; the sequence obtained this way
343 for each insn we'll call the alignment chain of this insn in the following
344 comments. */
345
1/* Convert RTL to assembler code and output it, for GNU compiler.
2 Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4 Free Software Foundation, Inc.
5
6This file is part of GCC.
7
8GCC is free software; you can redistribute it and/or modify it under

--- 329 unchanged lines hidden (view full) ---

338 gives the next following alignment insn that increases the known
339 alignment, or NULL_RTX if there is no such insn.
340 For any alignment obtained this way, we can again index uid_align with
341 its uid to obtain the next following align that in turn increases the
342 alignment, till we reach NULL_RTX; the sequence obtained this way
343 for each insn we'll call the alignment chain of this insn in the following
344 comments. */
345
346struct label_alignment
347{
348 short alignment;
349 short max_skip;
350};
351
346/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
347/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
352static rtx *uid_align;
353static int *uid_shuid;
348static rtx *uid_align;
349static int *uid_shuid;
354static struct label_alignment *label_align;
350/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
355
351
352/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
353
356/* Indicate that branch shortening hasn't yet been done. */
357
358void
359init_insn_lengths (void)
360{
361 if (uid_shuid)
362 {
363 free (uid_shuid);

--- 186 unchanged lines hidden (view full) ---

550#endif
551
552#ifndef INSN_LENGTH_ALIGNMENT
553#define INSN_LENGTH_ALIGNMENT(INSN) length_unit_log
554#endif
555
556#define INSN_SHUID(INSN) (uid_shuid[INSN_UID (INSN)])
557
354/* Indicate that branch shortening hasn't yet been done. */
355
356void
357init_insn_lengths (void)
358{
359 if (uid_shuid)
360 {
361 free (uid_shuid);

--- 186 unchanged lines hidden (view full) ---

548#endif
549
550#ifndef INSN_LENGTH_ALIGNMENT
551#define INSN_LENGTH_ALIGNMENT(INSN) length_unit_log
552#endif
553
554#define INSN_SHUID(INSN) (uid_shuid[INSN_UID (INSN)])
555
558static int min_labelno, max_labelno;
559
560#define LABEL_TO_ALIGNMENT(LABEL) \
561 (label_align[CODE_LABEL_NUMBER (LABEL) - min_labelno].alignment)
562
563#define LABEL_TO_MAX_SKIP(LABEL) \
564 (label_align[CODE_LABEL_NUMBER (LABEL) - min_labelno].max_skip)
565
556/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
557/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
566/* For the benefit of port specific code do this also as a function. */
567
568int
569label_to_alignment (rtx label)
570{
558/* For the benefit of port specific code do this also as a function. */
559
560int
561label_to_alignment (rtx label)
562{
571 return LABEL_TO_ALIGNMENT (label);
563/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
564 return LABEL_ALIGN_LOG (label);
565/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
572}
573
574#ifdef HAVE_ATTR_length
575/* The differences in addresses
576 between a branch and its target might grow or shrink depending on
577 the alignment the start insn of the range (the branch for a forward
578 branch or the label for a backward branch) starts out on; if these
579 differences are used naively, they can even oscillate infinitely.

--- 32 unchanged lines hidden (view full) ---

612 for (align_label = uid_align[uid]; align_label; align_label = uid_align[uid])
613 {
614 int align_addr, new_align;
615
616 uid = INSN_UID (align_label);
617 align_addr = INSN_ADDRESSES (uid) - insn_lengths[uid];
618 if (uid_shuid[uid] > end_shuid)
619 break;
566}
567
568#ifdef HAVE_ATTR_length
569/* The differences in addresses
570 between a branch and its target might grow or shrink depending on
571 the alignment the start insn of the range (the branch for a forward
572 branch or the label for a backward branch) starts out on; if these
573 differences are used naively, they can even oscillate infinitely.

--- 32 unchanged lines hidden (view full) ---

606 for (align_label = uid_align[uid]; align_label; align_label = uid_align[uid])
607 {
608 int align_addr, new_align;
609
610 uid = INSN_UID (align_label);
611 align_addr = INSN_ADDRESSES (uid) - insn_lengths[uid];
612 if (uid_shuid[uid] > end_shuid)
613 break;
620 known_align_log = LABEL_TO_ALIGNMENT (align_label);
614/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
615 known_align_log = LABEL_ALIGN_LOG (align_label);
616/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
621 new_align = 1 << known_align_log;
622 if (new_align < known_align)
623 continue;
624 fuzz += (-align_addr ^ growth) & (new_align - known_align);
625 known_align = new_align;
626 }
627 return fuzz;
628}

--- 48 unchanged lines hidden (view full) ---

677#endif /* HAVE_ATTR_length */
678
679/* Compute branch alignments based on frequency information in the
680 CFG. */
681
682static unsigned int
683compute_alignments (void)
684{
617 new_align = 1 << known_align_log;
618 if (new_align < known_align)
619 continue;
620 fuzz += (-align_addr ^ growth) & (new_align - known_align);
621 known_align = new_align;
622 }
623 return fuzz;
624}

--- 48 unchanged lines hidden (view full) ---

673#endif /* HAVE_ATTR_length */
674
675/* Compute branch alignments based on frequency information in the
676 CFG. */
677
678static unsigned int
679compute_alignments (void)
680{
685 int log, max_skip, max_log;
681/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
682/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
686 basic_block bb;
687
683 basic_block bb;
684
688 if (label_align)
689 {
690 free (label_align);
691 label_align = 0;
692 }
685/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
686/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
693
687
694 max_labelno = max_label_num ();
695 min_labelno = get_first_label_num ();
696 label_align = XCNEWVEC (struct label_alignment, max_labelno - min_labelno + 1);
697
698 /* If not optimizing or optimizing for size, don't assign any alignments. */
699 if (! optimize || optimize_size)
700 return 0;
701
702 FOR_EACH_BB (bb)
703 {
704 rtx label = BB_HEAD (bb);
705 int fallthru_frequency = 0, branch_frequency = 0, has_fallthru = 0;
706 edge e;
707 edge_iterator ei;
688 /* If not optimizing or optimizing for size, don't assign any alignments. */
689 if (! optimize || optimize_size)
690 return 0;
691
692 FOR_EACH_BB (bb)
693 {
694 rtx label = BB_HEAD (bb);
695 int fallthru_frequency = 0, branch_frequency = 0, has_fallthru = 0;
696 edge e;
697 edge_iterator ei;
698/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
699 int log, max_skip, max_log;
708
700
701/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
709 if (!LABEL_P (label)
710 || probably_never_executed_bb_p (bb))
711 continue;
702 if (!LABEL_P (label)
703 || probably_never_executed_bb_p (bb))
704 continue;
705/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
706 /* If user has specified an alignment, honour it. */
707 if (LABEL_ALIGN_LOG (label) > 0)
708 continue;
709
710/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
712 max_log = LABEL_ALIGN (label);
713 max_skip = LABEL_ALIGN_MAX_SKIP;
714
715 FOR_EACH_EDGE (e, ei, bb->preds)
716 {
717 if (e->flags & EDGE_FALLTHRU)
718 has_fallthru = 1, fallthru_frequency += EDGE_FREQUENCY (e);
719 else

--- 32 unchanged lines hidden (view full) ---

752 {
753 log = LOOP_ALIGN (label);
754 if (max_log < log)
755 {
756 max_log = log;
757 max_skip = LOOP_ALIGN_MAX_SKIP;
758 }
759 }
711 max_log = LABEL_ALIGN (label);
712 max_skip = LABEL_ALIGN_MAX_SKIP;
713
714 FOR_EACH_EDGE (e, ei, bb->preds)
715 {
716 if (e->flags & EDGE_FALLTHRU)
717 has_fallthru = 1, fallthru_frequency += EDGE_FREQUENCY (e);
718 else

--- 32 unchanged lines hidden (view full) ---

751 {
752 log = LOOP_ALIGN (label);
753 if (max_log < log)
754 {
755 max_log = log;
756 max_skip = LOOP_ALIGN_MAX_SKIP;
757 }
758 }
760 LABEL_TO_ALIGNMENT (label) = max_log;
761 LABEL_TO_MAX_SKIP (label) = max_skip;
759/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
760 SET_LABEL_ALIGN (label, max_log, max_skip);
761/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
762 }
763 return 0;
764}
765
766struct tree_opt_pass pass_compute_alignments =
767{
768 NULL, /* name */
769 NULL, /* gate */

--- 36 unchanged lines hidden (view full) ---

806 int something_changed = 1;
807 char *varying_length;
808 rtx body;
809 int uid;
810 rtx align_tab[MAX_CODE_ALIGN];
811
812#endif
813
762 }
763 return 0;
764}
765
766struct tree_opt_pass pass_compute_alignments =
767{
768 NULL, /* name */
769 NULL, /* gate */

--- 36 unchanged lines hidden (view full) ---

806 int something_changed = 1;
807 char *varying_length;
808 rtx body;
809 int uid;
810 rtx align_tab[MAX_CODE_ALIGN];
811
812#endif
813
814 /* Compute maximum UID and allocate label_align / uid_shuid. */
814/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
815 /* Compute maximum UID and allocate uid_shuid. */
816/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
815 max_uid = get_max_uid ();
816
817 /* Free uid_shuid before reallocating it. */
818 free (uid_shuid);
819
820 uid_shuid = XNEWVEC (int, max_uid);
821
817 max_uid = get_max_uid ();
818
819 /* Free uid_shuid before reallocating it. */
820 free (uid_shuid);
821
822 uid_shuid = XNEWVEC (int, max_uid);
823
822 if (max_labelno != max_label_num ())
823 {
824 int old = max_labelno;
825 int n_labels;
826 int n_old_labels;
827
828 max_labelno = max_label_num ();
829
830 n_labels = max_labelno - min_labelno + 1;
831 n_old_labels = old - min_labelno + 1;
832
833 label_align = xrealloc (label_align,
834 n_labels * sizeof (struct label_alignment));
835
836 /* Range of labels grows monotonically in the function. Failing here
837 means that the initialization of array got lost. */
838 gcc_assert (n_old_labels <= n_labels);
839
840 memset (label_align + n_old_labels, 0,
841 (n_labels - n_old_labels) * sizeof (struct label_alignment));
842 }
843
844 /* Initialize label_align and set up uid_shuid to be strictly
824 /* APPLE LOCAL for-fsf-4_4 3274130 5295549 */ \
825 /* Initialize set up uid_shuid to be strictly
845 monotonically rising with insn order. */
846 /* We use max_log here to keep track of the maximum alignment we want to
847 impose on the next CODE_LABEL (or the current one if we are processing
848 the CODE_LABEL itself). */
849
850 max_log = 0;
851 max_skip = 0;
852

--- 5 unchanged lines hidden (view full) ---

858 if (INSN_P (insn))
859 continue;
860
861 if (LABEL_P (insn))
862 {
863 rtx next;
864
865 /* Merge in alignments computed by compute_alignments. */
826 monotonically rising with insn order. */
827 /* We use max_log here to keep track of the maximum alignment we want to
828 impose on the next CODE_LABEL (or the current one if we are processing
829 the CODE_LABEL itself). */
830
831 max_log = 0;
832 max_skip = 0;
833

--- 5 unchanged lines hidden (view full) ---

839 if (INSN_P (insn))
840 continue;
841
842 if (LABEL_P (insn))
843 {
844 rtx next;
845
846 /* Merge in alignments computed by compute_alignments. */
866 log = LABEL_TO_ALIGNMENT (insn);
847/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
848 log = LABEL_ALIGN_LOG (insn);
849/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
867 if (max_log < log)
868 {
869 max_log = log;
850 if (max_log < log)
851 {
852 max_log = log;
870 max_skip = LABEL_TO_MAX_SKIP (insn);
853/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
854 max_skip = LABEL_MAX_SKIP (insn);
855/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
871 }
872
873 log = LABEL_ALIGN (insn);
874 if (max_log < log)
875 {
876 max_log = log;
877 max_skip = LABEL_ALIGN_MAX_SKIP;
878 }

--- 11 unchanged lines hidden (view full) ---

890 log = ADDR_VEC_ALIGN (next);
891 if (max_log < log)
892 {
893 max_log = log;
894 max_skip = LABEL_ALIGN_MAX_SKIP;
895 }
896 }
897 }
856 }
857
858 log = LABEL_ALIGN (insn);
859 if (max_log < log)
860 {
861 max_log = log;
862 max_skip = LABEL_ALIGN_MAX_SKIP;
863 }

--- 11 unchanged lines hidden (view full) ---

875 log = ADDR_VEC_ALIGN (next);
876 if (max_log < log)
877 {
878 max_log = log;
879 max_skip = LABEL_ALIGN_MAX_SKIP;
880 }
881 }
882 }
898 LABEL_TO_ALIGNMENT (insn) = max_log;
899 LABEL_TO_MAX_SKIP (insn) = max_skip;
883/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
884 SET_LABEL_ALIGN (insn, max_log, max_skip);
885/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
900 max_log = 0;
901 max_skip = 0;
902 }
903 else if (BARRIER_P (insn))
904 {
905 rtx label;
906
907 for (label = insn; label && ! INSN_P (label);

--- 30 unchanged lines hidden (view full) ---

938
939 for (i = MAX_CODE_ALIGN; --i >= 0;)
940 align_tab[i] = NULL_RTX;
941 seq = get_last_insn ();
942 for (; seq; seq = PREV_INSN (seq))
943 {
944 int uid = INSN_UID (seq);
945 int log;
886 max_log = 0;
887 max_skip = 0;
888 }
889 else if (BARRIER_P (insn))
890 {
891 rtx label;
892
893 for (label = insn; label && ! INSN_P (label);

--- 30 unchanged lines hidden (view full) ---

924
925 for (i = MAX_CODE_ALIGN; --i >= 0;)
926 align_tab[i] = NULL_RTX;
927 seq = get_last_insn ();
928 for (; seq; seq = PREV_INSN (seq))
929 {
930 int uid = INSN_UID (seq);
931 int log;
946 log = (LABEL_P (seq) ? LABEL_TO_ALIGNMENT (seq) : 0);
932/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
933 log = (LABEL_P (seq) ? LABEL_ALIGN_LOG (seq) : 0);
934/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
947 uid_align[uid] = align_tab[0];
948 if (log)
949 {
950 /* Found an alignment label. */
951 uid_align[uid] = align_tab[log];
952 for (i = log - 1; i >= 0; i--)
953 align_tab[i] = seq;
954 }

--- 31 unchanged lines hidden (view full) ---

986 min = shuid;
987 min_lab = lab;
988 }
989 if (shuid > max)
990 {
991 max = shuid;
992 max_lab = lab;
993 }
935 uid_align[uid] = align_tab[0];
936 if (log)
937 {
938 /* Found an alignment label. */
939 uid_align[uid] = align_tab[log];
940 for (i = log - 1; i >= 0; i--)
941 align_tab[i] = seq;
942 }

--- 31 unchanged lines hidden (view full) ---

974 min = shuid;
975 min_lab = lab;
976 }
977 if (shuid > max)
978 {
979 max = shuid;
980 max_lab = lab;
981 }
994 if (min_align > LABEL_TO_ALIGNMENT (lab))
995 min_align = LABEL_TO_ALIGNMENT (lab);
982/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
983 if (min_align > (int) LABEL_ALIGN_LOG (lab))
984 min_align = LABEL_ALIGN_LOG (lab);
985/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
996 }
997 XEXP (pat, 2) = gen_rtx_LABEL_REF (Pmode, min_lab);
998 XEXP (pat, 3) = gen_rtx_LABEL_REF (Pmode, max_lab);
999 insn_shuid = INSN_SHUID (insn);
1000 rel = INSN_SHUID (XEXP (XEXP (pat, 0), 0));
1001 memset (&flags, 0, sizeof (flags));
1002 flags.min_align = min_align;
1003 flags.base_after_vec = rel > insn_shuid;

--- 12 unchanged lines hidden (view full) ---

1016 insn_current_address += insn_lengths[uid], insn = NEXT_INSN (insn))
1017 {
1018 uid = INSN_UID (insn);
1019
1020 insn_lengths[uid] = 0;
1021
1022 if (LABEL_P (insn))
1023 {
986 }
987 XEXP (pat, 2) = gen_rtx_LABEL_REF (Pmode, min_lab);
988 XEXP (pat, 3) = gen_rtx_LABEL_REF (Pmode, max_lab);
989 insn_shuid = INSN_SHUID (insn);
990 rel = INSN_SHUID (XEXP (XEXP (pat, 0), 0));
991 memset (&flags, 0, sizeof (flags));
992 flags.min_align = min_align;
993 flags.base_after_vec = rel > insn_shuid;

--- 12 unchanged lines hidden (view full) ---

1006 insn_current_address += insn_lengths[uid], insn = NEXT_INSN (insn))
1007 {
1008 uid = INSN_UID (insn);
1009
1010 insn_lengths[uid] = 0;
1011
1012 if (LABEL_P (insn))
1013 {
1024 int log = LABEL_TO_ALIGNMENT (insn);
1014/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
1015 int log = LABEL_ALIGN_LOG (insn);
1016/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
1025 if (log)
1026 {
1027 int align = 1 << log;
1028 int new_address = (insn_current_address + align - 1) & -align;
1029 insn_lengths[uid] = new_address - insn_current_address;
1030 }
1031 }
1032

--- 89 unchanged lines hidden (view full) ---

1122 int tmp_length;
1123#endif
1124 int length_align;
1125
1126 uid = INSN_UID (insn);
1127
1128 if (LABEL_P (insn))
1129 {
1017 if (log)
1018 {
1019 int align = 1 << log;
1020 int new_address = (insn_current_address + align - 1) & -align;
1021 insn_lengths[uid] = new_address - insn_current_address;
1022 }
1023 }
1024

--- 89 unchanged lines hidden (view full) ---

1114 int tmp_length;
1115#endif
1116 int length_align;
1117
1118 uid = INSN_UID (insn);
1119
1120 if (LABEL_P (insn))
1121 {
1130 int log = LABEL_TO_ALIGNMENT (insn);
1122/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
1123 int log = LABEL_ALIGN_LOG (insn);
1124/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
1131 if (log > insn_current_align)
1132 {
1133 int align = 1 << log;
1134 int new_address= (insn_current_address + align - 1) & -align;
1135 insn_lengths[uid] = new_address - insn_current_address;
1136 insn_current_align = log;
1137 insn_current_address = new_address;
1138 }

--- 32 unchanged lines hidden (view full) ---

1171 /* Try to find a known alignment for rel_lab. */
1172 for (prev = rel_lab;
1173 prev
1174 && ! insn_lengths[INSN_UID (prev)]
1175 && ! (varying_length[INSN_UID (prev)] & 1);
1176 prev = PREV_INSN (prev))
1177 if (varying_length[INSN_UID (prev)] & 2)
1178 {
1125 if (log > insn_current_align)
1126 {
1127 int align = 1 << log;
1128 int new_address= (insn_current_address + align - 1) & -align;
1129 insn_lengths[uid] = new_address - insn_current_address;
1130 insn_current_align = log;
1131 insn_current_address = new_address;
1132 }

--- 32 unchanged lines hidden (view full) ---

1165 /* Try to find a known alignment for rel_lab. */
1166 for (prev = rel_lab;
1167 prev
1168 && ! insn_lengths[INSN_UID (prev)]
1169 && ! (varying_length[INSN_UID (prev)] & 1);
1170 prev = PREV_INSN (prev))
1171 if (varying_length[INSN_UID (prev)] & 2)
1172 {
1179 rel_align = LABEL_TO_ALIGNMENT (prev);
1173/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
1174 rel_align = LABEL_ALIGN_LOG (prev);
1175/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
1180 break;
1181 }
1182
1183 /* See the comment on addr_diff_vec_flags in rtl.h for the
1184 meaning of the flags values. base: REL_LAB vec: INSN */
1185 /* Anything after INSN has still addresses from the last
1186 pass; adjust these so that they reflect our current
1187 estimate for this pass. */

--- 655 unchanged lines hidden (view full) ---

1843 if (dwarf2out_do_frame ())
1844 dwarf2out_frame_debug (insn, false);
1845#endif
1846 break;
1847
1848 case CODE_LABEL:
1849 /* The target port might emit labels in the output function for
1850 some insn, e.g. sh.c output_branchy_insn. */
1176 break;
1177 }
1178
1179 /* See the comment on addr_diff_vec_flags in rtl.h for the
1180 meaning of the flags values. base: REL_LAB vec: INSN */
1181 /* Anything after INSN has still addresses from the last
1182 pass; adjust these so that they reflect our current
1183 estimate for this pass. */

--- 655 unchanged lines hidden (view full) ---

1839 if (dwarf2out_do_frame ())
1840 dwarf2out_frame_debug (insn, false);
1841#endif
1842 break;
1843
1844 case CODE_LABEL:
1845 /* The target port might emit labels in the output function for
1846 some insn, e.g. sh.c output_branchy_insn. */
1851 if (CODE_LABEL_NUMBER (insn) <= max_labelno)
1852 {
1853 int align = LABEL_TO_ALIGNMENT (insn);
1847/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \
1848 {
1849 int align = LABEL_ALIGN_LOG (insn);
1854#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
1850#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
1855 int max_skip = LABEL_TO_MAX_SKIP (insn);
1851 int max_skip = LABEL_MAX_SKIP (insn);
1856#endif
1852#endif
1857
1858 if (align && NEXT_INSN (insn))
1859 {
1853
1854 if (align && NEXT_INSN (insn))
1855 {
1860#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
1856#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
1861 ASM_OUTPUT_MAX_SKIP_ALIGN (file, align, max_skip);
1857 ASM_OUTPUT_MAX_SKIP_ALIGN (file, align, max_skip);
1862#else
1863#ifdef ASM_OUTPUT_ALIGN_WITH_NOP
1858#else
1859#ifdef ASM_OUTPUT_ALIGN_WITH_NOP
1864 ASM_OUTPUT_ALIGN_WITH_NOP (file, align);
1860 ASM_OUTPUT_ALIGN_WITH_NOP (file, align);
1865#else
1861#else
1866 ASM_OUTPUT_ALIGN (file, align);
1862 ASM_OUTPUT_ALIGN (file, align);
1867#endif
1868#endif
1863#endif
1864#endif
1869 }
1870 }
1865 }
1866 }
1867/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \
1871#ifdef HAVE_cc0
1872 CC_STATUS_INIT;
1873 /* If this label is reached from only one place, set the condition
1874 codes from the instruction just before the branch. */
1875
1876 /* Disabled because some insns set cc_status in the C output code
1877 and NOTICE_UPDATE_CC alone can set incorrect status. */
1878 if (0 /* optimize && LABEL_NUSES (insn) == 1*/)

--- 2216 unchanged lines hidden ---
1868#ifdef HAVE_cc0
1869 CC_STATUS_INIT;
1870 /* If this label is reached from only one place, set the condition
1871 codes from the instruction just before the branch. */
1872
1873 /* Disabled because some insns set cc_status in the C output code
1874 and NOTICE_UPDATE_CC alone can set incorrect status. */
1875 if (0 /* optimize && LABEL_NUSES (insn) == 1*/)

--- 2216 unchanged lines hidden ---