stmt.c (169690) | stmt.c (260014) |
---|---|
1/* Expands front end tree to back end RTL for GCC 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 --- 122 unchanged lines hidden (view full) --- 131rtx 132label_rtx (tree label) 133{ 134 gcc_assert (TREE_CODE (label) == LABEL_DECL); 135 136 if (!DECL_RTL_SET_P (label)) 137 { 138 rtx r = gen_label_rtx (); | 1/* Expands front end tree to back end RTL for GCC 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 --- 122 unchanged lines hidden (view full) --- 131rtx 132label_rtx (tree label) 133{ 134 gcc_assert (TREE_CODE (label) == LABEL_DECL); 135 136 if (!DECL_RTL_SET_P (label)) 137 { 138 rtx r = gen_label_rtx (); |
139/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \ 140 unsigned align = DECL_ALIGN_UNIT (label); 141 int align_log2 = exact_log2 (align); 142 143/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \ |
|
139 SET_DECL_RTL (label, r); 140 if (FORCED_LABEL (label) || DECL_NONLOCAL (label)) 141 LABEL_PRESERVE_P (r) = 1; | 144 SET_DECL_RTL (label, r); 145 if (FORCED_LABEL (label) || DECL_NONLOCAL (label)) 146 LABEL_PRESERVE_P (r) = 1; |
147/* APPLE LOCAL begin for-fsf-4_4 3274130 5295549 */ \ 148 149 if (align_log2 >= 0 && align_log2 <= 0xFF) 150 SET_LABEL_ALIGN (r, align_log2, align - 1); 151/* APPLE LOCAL end for-fsf-4_4 3274130 5295549 */ \ |
|
142 } 143 144 return DECL_RTL (label); 145} 146 147/* As above, but also put it on the forced-reference list of the 148 function that contains it. */ 149rtx --- 39 unchanged lines hidden (view full) --- 189 emit_indirect_jump (x); 190} 191 192/* Handle goto statements and the labels that they can go to. */ 193 194/* Specify the location in the RTL code of a label LABEL, 195 which is a LABEL_DECL tree node. 196 | 152 } 153 154 return DECL_RTL (label); 155} 156 157/* As above, but also put it on the forced-reference list of the 158 function that contains it. */ 159rtx --- 39 unchanged lines hidden (view full) --- 199 emit_indirect_jump (x); 200} 201 202/* Handle goto statements and the labels that they can go to. */ 203 204/* Specify the location in the RTL code of a label LABEL, 205 which is a LABEL_DECL tree node. 206 |
197 This is used for the kind of label that the user can jump to with a 198 goto statement, and for alternatives of a switch or case statement. 199 RTL labels generated for loops and conditionals don't go through here; 200 they are generated directly at the RTL level, by other functions below. | 207 APPLE LOCAL begin for-fsf-4_4 3274130 5295549 208 This is used for those labels created by the front-end that survive 209 through CFG generation, including all user labels. (Some labels 210 are removed by cleanup_dead_labels in tree-cfg.c.) |
201 | 211 |
212 APPLE LOCAL end for-fsf-4_4 3274130 5295549 |
|
202 Note that this has nothing to do with defining label *names*. 203 Languages vary in how they do that and what that even means. */ 204 205void 206expand_label (tree label) 207{ 208 rtx label_r = label_rtx (label); 209 --- 3094 unchanged lines hidden --- | 213 Note that this has nothing to do with defining label *names*. 214 Languages vary in how they do that and what that even means. */ 215 216void 217expand_label (tree label) 218{ 219 rtx label_r = label_rtx (label); 220 --- 3094 unchanged lines hidden --- |