target.h: Fix formatting.
* target.h: Fix formatting. * timevar.h: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * toplev.h: Likewise. * tree.c: Likewise. * tree-dump.h: Likewise. * tree.h: Likewise. * tree-inline.h: Likewise. * unroll.c: Likewise. * unwind-dw2.c: Likewise. * unwind-dw2-fde.c: Likewise. * unwind-dw2-fde-glibc.c: Likewise. * unwind-dw2-fde.h: Likewise. * unwind.h: Likewise. * unwind-sjlj.c: Likewise. * varasm.c: Likewise. * varray.h: Likewise. * vmsdbg.h: Likewise. * vmsdbgout.c: Likewise. * xcoffout.h: Likewise. From-SVN: r54123
This commit is contained in:
parent
b2e426a0cc
commit
41077ce4b3
22 changed files with 220 additions and 196 deletions
|
@ -1,3 +1,27 @@
|
|||
2002-05-31 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* target.h: Fix formatting.
|
||||
* timevar.h: Likewise.
|
||||
* tlink.c: Likewise.
|
||||
* toplev.c: Likewise.
|
||||
* toplev.h: Likewise.
|
||||
* tree.c: Likewise.
|
||||
* tree-dump.h: Likewise.
|
||||
* tree.h: Likewise.
|
||||
* tree-inline.h: Likewise.
|
||||
* unroll.c: Likewise.
|
||||
* unwind-dw2.c: Likewise.
|
||||
* unwind-dw2-fde.c: Likewise.
|
||||
* unwind-dw2-fde-glibc.c: Likewise.
|
||||
* unwind-dw2-fde.h: Likewise.
|
||||
* unwind.h: Likewise.
|
||||
* unwind-sjlj.c: Likewise.
|
||||
* varasm.c: Likewise.
|
||||
* varray.h: Likewise.
|
||||
* vmsdbg.h: Likewise.
|
||||
* vmsdbgout.c: Likewise.
|
||||
* xcoffout.h: Likewise.
|
||||
|
||||
2002-05-31 Igor Shevlyakov <igor@microunity.com>
|
||||
|
||||
* expr.c (compare_from_rtx): Generate comparison between op0 and op1
|
||||
|
|
|
@ -134,7 +134,7 @@ struct gcc_target
|
|||
/* Calculate how much this insn affects how many more insns we
|
||||
can emit this cycle. Default is they all cost the same. */
|
||||
int (* variable_issue) PARAMS ((FILE *, int, rtx, int));
|
||||
|
||||
|
||||
/* Initialize machine-dependent scheduling code. */
|
||||
void (* md_init) PARAMS ((FILE *, int, int));
|
||||
|
||||
|
|
|
@ -41,9 +41,9 @@
|
|||
|
||||
- As a standalone timer, using timevar_start and timevar_stop.
|
||||
All time elapsed between the two calls is attributed to the
|
||||
variable.
|
||||
variable.
|
||||
*/
|
||||
|
||||
|
||||
/* This structure stores the various varieties of time that can be
|
||||
measured. Times are stored in seconds. The time may be an
|
||||
absolute time or a time difference; in the former case, the time
|
||||
|
@ -67,7 +67,7 @@ struct timevar_time_def
|
|||
the contents of timevar.def. */
|
||||
|
||||
#define DEFTIMEVAR(identifier__, name__) \
|
||||
identifier__,
|
||||
identifier__,
|
||||
typedef enum
|
||||
{
|
||||
#include "timevar.def"
|
||||
|
|
|
@ -588,7 +588,7 @@ demangle_new_symbols ()
|
|||
{
|
||||
demangled *dem;
|
||||
const char *p = cplus_demangle ((char*) sym->root.key,
|
||||
DMGL_PARAMS | DMGL_ANSI);
|
||||
DMGL_PARAMS | DMGL_ANSI);
|
||||
|
||||
if (! p)
|
||||
continue;
|
||||
|
|
|
@ -1673,7 +1673,7 @@ strip_off_ending (name, len)
|
|||
int len;
|
||||
{
|
||||
int i;
|
||||
for (i = 2; i < 6 && len > i; i++)
|
||||
for (i = 2; i < 6 && len > i; i++)
|
||||
{
|
||||
if (name[len - i] == '.')
|
||||
{
|
||||
|
@ -1715,15 +1715,15 @@ output_quoted_string (asm_file, string)
|
|||
usable as an identifier in a target's assembly file. */
|
||||
void
|
||||
output_clean_symbol_name (file, name)
|
||||
FILE *file;
|
||||
const char *name;
|
||||
FILE *file;
|
||||
const char *name;
|
||||
{
|
||||
/* Make a copy of NAME. */
|
||||
char *id = xstrdup (name);
|
||||
|
||||
/* Make it look like a valid identifier for an assembler. */
|
||||
clean_symbol_name (id);
|
||||
|
||||
|
||||
fputs (id, file);
|
||||
free (id);
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ extern struct ht *ident_hash;
|
|||
|
||||
/* This function can be used by targets to set the flags originally
|
||||
implied by -ffast-math and -fno-fast-math. */
|
||||
|
||||
|
||||
extern void set_fast_math_flags PARAMS ((int));
|
||||
|
||||
/* Return true iff flags are set as if -ffast-math. */
|
||||
|
|
|
@ -46,7 +46,7 @@ typedef struct dump_queue
|
|||
struct dump_queue *next;
|
||||
} *dump_queue_p;
|
||||
|
||||
/* A dump_info gives information about how we should perform the dump
|
||||
/* A dump_info gives information about how we should perform the dump
|
||||
and about the current state of the dump. */
|
||||
|
||||
struct dump_info
|
||||
|
@ -67,7 +67,7 @@ struct dump_info
|
|||
dump_queue_p queue_end;
|
||||
/* Free queue nodes. */
|
||||
dump_queue_p free_list;
|
||||
/* The tree nodes which we have already written out. The
|
||||
/* The tree nodes which we have already written out. The
|
||||
keys are the addresses of the nodes; the values are the integer
|
||||
indices we assigned them. */
|
||||
splay_tree nodes;
|
||||
|
@ -79,17 +79,17 @@ struct dump_info
|
|||
|
||||
extern void dump_pointer
|
||||
PARAMS ((dump_info_p, const char *, void *));
|
||||
extern void dump_int
|
||||
extern void dump_int
|
||||
PARAMS ((dump_info_p, const char *, int));
|
||||
extern void dump_string
|
||||
extern void dump_string
|
||||
PARAMS ((dump_info_p, const char *));
|
||||
extern void dump_stmt
|
||||
extern void dump_stmt
|
||||
PARAMS ((dump_info_p, tree));
|
||||
extern void dump_next_stmt
|
||||
extern void dump_next_stmt
|
||||
PARAMS ((dump_info_p, tree));
|
||||
extern void queue_and_dump_index
|
||||
extern void queue_and_dump_index
|
||||
PARAMS ((dump_info_p, const char *, tree, int));
|
||||
extern void queue_and_dump_type
|
||||
extern void queue_and_dump_type
|
||||
PARAMS ((dump_info_p, tree));
|
||||
|
||||
#endif /* ! GCC_TREE_DUMP_H */
|
||||
|
|
|
@ -33,8 +33,8 @@ void clone_body PARAMS ((tree, tree, void*));
|
|||
void remap_save_expr PARAMS ((tree*, void*, tree, int*));
|
||||
|
||||
/* 0 if we should not perform inlining.
|
||||
1 if we should expand functions calls inline at the tree level.
|
||||
2 if we should consider *all* functions to be inline
|
||||
1 if we should expand functions calls inline at the tree level.
|
||||
2 if we should consider *all* functions to be inline
|
||||
candidates. */
|
||||
|
||||
extern int flag_inline_trees;
|
||||
|
|
|
@ -522,7 +522,7 @@ build_real (type, d)
|
|||
v = make_node (REAL_CST);
|
||||
dp = ggc_alloc (sizeof (REAL_VALUE_TYPE));
|
||||
memcpy (dp, &d, sizeof (REAL_VALUE_TYPE));
|
||||
|
||||
|
||||
TREE_TYPE (v) = type;
|
||||
TREE_REAL_CST_PTR (v) = dp;
|
||||
TREE_OVERFLOW (v) = TREE_CONSTANT_OVERFLOW (v) = overflow;
|
||||
|
@ -4209,7 +4209,7 @@ decl_type_context (decl)
|
|||
while (context)
|
||||
{
|
||||
if (TREE_CODE (context) == NAMESPACE_DECL)
|
||||
return NULL_TREE;
|
||||
return NULL_TREE;
|
||||
|
||||
if (TREE_CODE (context) == RECORD_TYPE
|
||||
|| TREE_CODE (context) == UNION_TYPE
|
||||
|
|
28
gcc/tree.h
28
gcc/tree.h
|
@ -492,7 +492,7 @@ extern void tree_class_check_failed PARAMS ((const tree, int,
|
|||
construct the address of this field. This is used for aliasing
|
||||
purposes: see record_component_aliases.
|
||||
In CONSTRUCTOR nodes, it means object constructed must be in memory.
|
||||
In LABEL_DECL nodes, it means a goto for this label has been seen
|
||||
In LABEL_DECL nodes, it means a goto for this label has been seen
|
||||
from a place outside all binding contours that restore stack levels.
|
||||
In ..._TYPE nodes, it means that objects of this type must
|
||||
be fully addressable. This means that pieces of this
|
||||
|
@ -699,9 +699,9 @@ extern void tree_class_check_failed PARAMS ((const tree, int,
|
|||
(((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (A) \
|
||||
< (unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (B)) \
|
||||
|| (((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (A) \
|
||||
== (unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (B)) \
|
||||
== (unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (B)) \
|
||||
&& TREE_INT_CST_LOW (A) < TREE_INT_CST_LOW (B)))
|
||||
|
||||
|
||||
struct tree_int_cst
|
||||
{
|
||||
struct tree_common common;
|
||||
|
@ -926,7 +926,7 @@ struct tree_exp
|
|||
One of the logical block fragments is arbitrarily chosen to be
|
||||
the ORIGIN. The other fragments will point to the origin via
|
||||
BLOCK_FRAGMENT_ORIGIN; the origin itself will have this pointer
|
||||
be null. The list of fragments will be chained through
|
||||
be null. The list of fragments will be chained through
|
||||
BLOCK_FRAGMENT_CHAIN from the origin. */
|
||||
|
||||
#define BLOCK_FRAGMENT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.fragment_origin)
|
||||
|
@ -1277,7 +1277,7 @@ struct tree_type
|
|||
from the base of the complete object to the base of the part of the
|
||||
object that is allocated on behalf of this `type'.
|
||||
This is always 0 except when there is multiple inheritance. */
|
||||
|
||||
|
||||
#define BINFO_OFFSET(NODE) TREE_VEC_ELT ((NODE), 1)
|
||||
#define TYPE_BINFO_OFFSET(NODE) BINFO_OFFSET (TYPE_BINFO (NODE))
|
||||
#define BINFO_OFFSET_ZEROP(NODE) (integer_zerop (BINFO_OFFSET (NODE)))
|
||||
|
@ -1375,15 +1375,15 @@ struct tree_type
|
|||
DECL_ASSEMBLER_NAME has not yet been set, using this macro will not cause
|
||||
the DECL_ASSEMBLER_NAME of either DECL to be set. In other words, the
|
||||
semantics of using this macro, are different than saying:
|
||||
|
||||
|
||||
SET_DECL_ASSEMBLER_NAME(DECL2, DECL_ASSEMBLER_NAME (DECL1))
|
||||
|
||||
which will try to set the DECL_ASSEMBLER_NAME for DECL1. */
|
||||
|
||||
#define COPY_DECL_ASSEMBLER_NAME(DECL1, DECL2) \
|
||||
(DECL_ASSEMBLER_NAME_SET_P (DECL1) \
|
||||
? (void) SET_DECL_ASSEMBLER_NAME (DECL2, \
|
||||
DECL_ASSEMBLER_NAME (DECL1)) \
|
||||
? (void) SET_DECL_ASSEMBLER_NAME (DECL2, \
|
||||
DECL_ASSEMBLER_NAME (DECL1)) \
|
||||
: (void) 0)
|
||||
|
||||
/* Records the section name in a section attribute. Used to pass
|
||||
|
@ -1470,7 +1470,7 @@ struct tree_type
|
|||
PROMOTED_MODE is defined, the mode of this expression may not be same
|
||||
as DECL_MODE. In that case, DECL_MODE contains the mode corresponding
|
||||
to the variable's data type, while the mode
|
||||
of DECL_RTL is the mode actually used to contain the data.
|
||||
of DECL_RTL is the mode actually used to contain the data.
|
||||
|
||||
This value can be evaluated lazily for functions, variables with
|
||||
static storage duration, and labels. */
|
||||
|
@ -1578,7 +1578,7 @@ struct tree_type
|
|||
|
||||
/* In a TYPE_DECL
|
||||
nonzero means the detail info about this type is not dumped into stabs.
|
||||
Instead it will generate cross reference ('x') of names.
|
||||
Instead it will generate cross reference ('x') of names.
|
||||
This uses the same flag as DECL_EXTERNAL. */
|
||||
#define TYPE_DECL_SUPPRESS_DEBUG(NODE) \
|
||||
(TYPE_DECL_CHECK (NODE)->decl.external_flag)
|
||||
|
@ -1614,7 +1614,7 @@ struct tree_type
|
|||
/* In a FUNCTION_DECL, nonzero if the function cannot be inlined. */
|
||||
#define DECL_UNINLINABLE(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.uninlinable)
|
||||
|
||||
/* In a VAR_DECL, nonzero if the data should be allocated from
|
||||
/* In a VAR_DECL, nonzero if the data should be allocated from
|
||||
thread-local storage. */
|
||||
#define DECL_THREAD_LOCAL(NODE) (VAR_DECL_CHECK (NODE)->decl.thread_local_flag)
|
||||
|
||||
|
@ -1895,7 +1895,7 @@ enum tree_index
|
|||
TI_UINTSI_TYPE,
|
||||
TI_UINTDI_TYPE,
|
||||
TI_UINTTI_TYPE,
|
||||
|
||||
|
||||
TI_INTEGER_ZERO,
|
||||
TI_INTEGER_ONE,
|
||||
TI_INTEGER_MINUS_ONE,
|
||||
|
@ -1955,7 +1955,7 @@ enum tree_index
|
|||
extern tree global_trees[TI_MAX];
|
||||
|
||||
#define error_mark_node global_trees[TI_ERROR_MARK]
|
||||
|
||||
|
||||
#define intQI_type_node global_trees[TI_INTQI_TYPE]
|
||||
#define intHI_type_node global_trees[TI_INTHI_TYPE]
|
||||
#define intSI_type_node global_trees[TI_INTSI_TYPE]
|
||||
|
@ -2028,7 +2028,7 @@ extern tree global_trees[TI_MAX];
|
|||
|
||||
/* An enumeration of the standard C integer types. These must be
|
||||
ordered so that shorter types appear before longer ones. */
|
||||
enum integer_type_kind
|
||||
enum integer_type_kind
|
||||
{
|
||||
itk_char,
|
||||
itk_signed_char,
|
||||
|
|
|
@ -1635,7 +1635,7 @@ calculate_giv_inc (pattern, src_insn, regno)
|
|||
rtx second_part = XEXP (increment, 1);
|
||||
enum rtx_code code = GET_CODE (increment);
|
||||
|
||||
increment = find_last_value (XEXP (increment, 0),
|
||||
increment = find_last_value (XEXP (increment, 0),
|
||||
&src_insn, NULL_RTX, 0);
|
||||
/* Don't need the last insn anymore. */
|
||||
delete_related_insns (get_last_insn ());
|
||||
|
@ -1732,7 +1732,7 @@ final_reg_note_copy (notesp, map)
|
|||
while (*notesp)
|
||||
{
|
||||
rtx note = *notesp;
|
||||
|
||||
|
||||
if (GET_CODE (note) == INSN_LIST)
|
||||
{
|
||||
/* Sometimes, we have a REG_WAS_0 note that points to a
|
||||
|
@ -2579,7 +2579,7 @@ find_splittable_regs (loop, unroll_type, unroll_number)
|
|||
rtx tem = gen_reg_rtx (bl->biv->mode);
|
||||
|
||||
record_base_value (REGNO (tem), bl->biv->add_val, 0);
|
||||
loop_insn_hoist (loop,
|
||||
loop_insn_hoist (loop,
|
||||
gen_move_insn (tem, bl->biv->src_reg));
|
||||
|
||||
if (loop_dump_stream)
|
||||
|
@ -3594,7 +3594,7 @@ loop_iterations (loop)
|
|||
&& INSN_LUID (JUMP_LABEL (temp)) < INSN_LUID (loop->cont))
|
||||
{
|
||||
if (loop_dump_stream)
|
||||
fprintf
|
||||
fprintf
|
||||
(loop_dump_stream,
|
||||
"Loop iterations: Loop has multiple back edges.\n");
|
||||
return 0;
|
||||
|
|
|
@ -81,7 +81,7 @@ struct unw_eh_frame_hdr
|
|||
|
||||
/* Like base_of_encoded_value, but take the base from a struct object
|
||||
instead of an _Unwind_Context. */
|
||||
|
||||
|
||||
static _Unwind_Ptr
|
||||
base_from_cb_data (unsigned char encoding, struct unw_eh_callback_data *data)
|
||||
{
|
||||
|
@ -94,7 +94,7 @@ base_from_cb_data (unsigned char encoding, struct unw_eh_callback_data *data)
|
|||
case DW_EH_PE_pcrel:
|
||||
case DW_EH_PE_aligned:
|
||||
return 0;
|
||||
|
||||
|
||||
case DW_EH_PE_textrel:
|
||||
return (_Unwind_Ptr) data->tbase;
|
||||
case DW_EH_PE_datarel:
|
||||
|
|
|
@ -53,7 +53,7 @@ static __gthread_mutex_t object_mutex;
|
|||
#endif
|
||||
|
||||
#ifdef __GTHREAD_MUTEX_INIT_FUNCTION
|
||||
static void
|
||||
static void
|
||||
init_object_mutex (void)
|
||||
{
|
||||
__GTHREAD_MUTEX_INIT_FUNCTION (&object_mutex);
|
||||
|
@ -111,7 +111,7 @@ __register_frame (void *begin)
|
|||
return;
|
||||
|
||||
ob = (struct object *) malloc (sizeof (struct object));
|
||||
__register_frame_info (begin, ob);
|
||||
__register_frame_info (begin, ob);
|
||||
}
|
||||
|
||||
/* Similar, but BEGIN is actually a pointer to a table of unwind entries
|
||||
|
@ -161,7 +161,7 @@ __register_frame_table (void *begin)
|
|||
Since the registration did not happen there, we'll abort.
|
||||
|
||||
Therefore, declare a new deregistration entry point that does the
|
||||
exact same thing, but will resolve to the same library as
|
||||
exact same thing, but will resolve to the same library as
|
||||
implements __register_frame_info_bases. */
|
||||
|
||||
void *
|
||||
|
@ -398,7 +398,7 @@ start_fde_sort (struct fde_accumulator *accu, size_t count)
|
|||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
@ -411,7 +411,7 @@ fde_insert (struct fde_accumulator *accu, fde *this_fde)
|
|||
/* Split LINEAR into a linear sequence with low values and an erratic
|
||||
sequence with high values, put the linear one (of longest possible
|
||||
length) into LINEAR and the erratic one into ERRATIC. This is O(N).
|
||||
|
||||
|
||||
Because the longest linear sequence we are trying to locate within the
|
||||
incoming LINEAR array can be interspersed with (high valued) erratic
|
||||
entries. We construct a chain indicating the sequenced entries.
|
||||
|
@ -434,18 +434,18 @@ fde_split (struct object *ob, fde_compare_t fde_compare,
|
|||
them and the overlaying onto ERRATIC will not work. */
|
||||
if (sizeof (fde *) != sizeof (fde **))
|
||||
abort ();
|
||||
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
fde **probe;
|
||||
|
||||
|
||||
for (probe = chain_end;
|
||||
probe != &marker && fde_compare (ob, linear->array[i], *probe) < 0;
|
||||
probe = chain_end)
|
||||
{
|
||||
chain_end = (fde **) erratic->array[probe - linear->array];
|
||||
erratic->array[probe - linear->array] = NULL;
|
||||
}
|
||||
probe != &marker && fde_compare (ob, linear->array[i], *probe) < 0;
|
||||
probe = chain_end)
|
||||
{
|
||||
chain_end = (fde **) erratic->array[probe - linear->array];
|
||||
erratic->array[probe - linear->array] = NULL;
|
||||
}
|
||||
erratic->array[i] = (fde *) chain_end;
|
||||
chain_end = &linear->array[i];
|
||||
}
|
||||
|
@ -486,22 +486,22 @@ frame_heapsort (struct object *ob, fde_compare_t fde_compare,
|
|||
/* Invariant: a[m..n-1] is a heap. */
|
||||
m--;
|
||||
for (i = m; 2*i+1 < n; )
|
||||
{
|
||||
if (2*i+2 < n
|
||||
&& fde_compare (ob, a[2*i+2], a[2*i+1]) > 0
|
||||
&& fde_compare (ob, a[2*i+2], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+2]);
|
||||
i = 2*i+2;
|
||||
}
|
||||
else if (fde_compare (ob, a[2*i+1], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+1]);
|
||||
i = 2*i+1;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
{
|
||||
if (2*i+2 < n
|
||||
&& fde_compare (ob, a[2*i+2], a[2*i+1]) > 0
|
||||
&& fde_compare (ob, a[2*i+2], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+2]);
|
||||
i = 2*i+2;
|
||||
}
|
||||
else if (fde_compare (ob, a[2*i+1], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+1]);
|
||||
i = 2*i+1;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
while (n > 1)
|
||||
{
|
||||
|
@ -509,22 +509,22 @@ frame_heapsort (struct object *ob, fde_compare_t fde_compare,
|
|||
n--;
|
||||
SWAP (a[0], a[n]);
|
||||
for (i = 0; 2*i+1 < n; )
|
||||
{
|
||||
if (2*i+2 < n
|
||||
&& fde_compare (ob, a[2*i+2], a[2*i+1]) > 0
|
||||
&& fde_compare (ob, a[2*i+2], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+2]);
|
||||
i = 2*i+2;
|
||||
}
|
||||
else if (fde_compare (ob, a[2*i+1], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+1]);
|
||||
i = 2*i+1;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
{
|
||||
if (2*i+2 < n
|
||||
&& fde_compare (ob, a[2*i+2], a[2*i+1]) > 0
|
||||
&& fde_compare (ob, a[2*i+2], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+2]);
|
||||
i = 2*i+2;
|
||||
}
|
||||
else if (fde_compare (ob, a[2*i+1], a[i]) > 0)
|
||||
{
|
||||
SWAP (a[i], a[2*i+1]);
|
||||
i = 2*i+1;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
#undef SWAP
|
||||
}
|
||||
|
@ -550,7 +550,7 @@ fde_merge (struct object *ob, fde_compare_t fde_compare,
|
|||
v1->array[i1+i2] = v1->array[i1-1];
|
||||
i1--;
|
||||
}
|
||||
v1->array[i1+i2] = fde2;
|
||||
v1->array[i1+i2] = fde2;
|
||||
}
|
||||
while (i2 > 0);
|
||||
v1->count += v2->count;
|
||||
|
@ -590,7 +590,7 @@ end_fde_sort (struct object *ob, struct fde_accumulator *accu, size_t count)
|
|||
}
|
||||
|
||||
|
||||
/* Update encoding, mixed_encoding, and pc_begin for OB for the
|
||||
/* Update encoding, mixed_encoding, and pc_begin for OB for the
|
||||
fde array beginning at THIS_FDE. Return the number of fdes
|
||||
encountered along the way. */
|
||||
|
||||
|
@ -747,7 +747,7 @@ init_object (struct object* ob)
|
|||
{
|
||||
fde **p;
|
||||
for (p = ob->u.array; *p; ++p)
|
||||
add_fdes (ob, &accu, *p);
|
||||
add_fdes (ob, &accu, *p);
|
||||
}
|
||||
else
|
||||
add_fdes (ob, &accu, ob->u.single);
|
||||
|
@ -826,7 +826,7 @@ linear_search_fdes (struct object *ob, fde *this_fde, void *pc)
|
|||
}
|
||||
|
||||
if ((_Unwind_Ptr) pc - pc_begin < pc_range)
|
||||
return this_fde;
|
||||
return this_fde;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -840,7 +840,7 @@ binary_search_unencoded_fdes (struct object *ob, void *pc)
|
|||
{
|
||||
struct fde_vector *vec = ob->u.sort;
|
||||
size_t lo, hi;
|
||||
|
||||
|
||||
for (lo = 0, hi = vec->count; lo < hi; )
|
||||
{
|
||||
size_t i = (lo + hi) / 2;
|
||||
|
@ -869,7 +869,7 @@ binary_search_single_encoding_fdes (struct object *ob, void *pc)
|
|||
int encoding = ob->s.b.encoding;
|
||||
_Unwind_Ptr base = base_from_object (encoding, ob);
|
||||
size_t lo, hi;
|
||||
|
||||
|
||||
for (lo = 0, hi = vec->count; lo < hi; )
|
||||
{
|
||||
size_t i = (lo + hi) / 2;
|
||||
|
@ -897,7 +897,7 @@ binary_search_mixed_encoding_fdes (struct object *ob, void *pc)
|
|||
{
|
||||
struct fde_vector *vec = ob->u.sort;
|
||||
size_t lo, hi;
|
||||
|
||||
|
||||
for (lo = 0, hi = vec->count; lo < hi; )
|
||||
{
|
||||
size_t i = (lo + hi) / 2;
|
||||
|
@ -952,14 +952,14 @@ search_object (struct object* ob, void *pc)
|
|||
{
|
||||
/* Long slow labourious linear search, cos we've no memory. */
|
||||
if (ob->s.b.from_array)
|
||||
{
|
||||
fde **p;
|
||||
{
|
||||
fde **p;
|
||||
for (p = ob->u.array; *p ; p++)
|
||||
{
|
||||
fde *f = linear_search_fdes (ob, *p, pc);
|
||||
if (f)
|
||||
if (f)
|
||||
return f;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -122,7 +122,7 @@ typedef unsigned char ubyte;
|
|||
a) in a linear search, find the shared image (i.e. DLL) containing
|
||||
the PC
|
||||
b) using the FDE table for that shared object, locate the FDE using
|
||||
binary search (which requires the sorting). */
|
||||
binary search (which requires the sorting). */
|
||||
|
||||
/* The first few fields of a CIE. The CIE_id field is 0 for a CIE,
|
||||
to distinguish it from a valid FDE. FDEs are aligned to an addressing
|
||||
|
|
130
gcc/unwind-dw2.c
130
gcc/unwind-dw2.c
|
@ -591,68 +591,68 @@ execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end,
|
|||
{
|
||||
/* Binary operations. */
|
||||
_Unwind_Word first, second;
|
||||
if ((stack_elt -= 2) < 0)
|
||||
abort ();
|
||||
second = stack[stack_elt];
|
||||
first = stack[stack_elt + 1];
|
||||
|
||||
switch (op)
|
||||
{
|
||||
case DW_OP_and:
|
||||
result = second & first;
|
||||
break;
|
||||
case DW_OP_div:
|
||||
result = (_Unwind_Sword) second / (_Unwind_Sword) first;
|
||||
break;
|
||||
case DW_OP_minus:
|
||||
result = second - first;
|
||||
break;
|
||||
case DW_OP_mod:
|
||||
result = (_Unwind_Sword) second % (_Unwind_Sword) first;
|
||||
break;
|
||||
case DW_OP_mul:
|
||||
result = second * first;
|
||||
break;
|
||||
case DW_OP_or:
|
||||
result = second | first;
|
||||
break;
|
||||
case DW_OP_plus:
|
||||
result = second + first;
|
||||
break;
|
||||
case DW_OP_shl:
|
||||
result = second << first;
|
||||
break;
|
||||
case DW_OP_shr:
|
||||
result = second >> first;
|
||||
break;
|
||||
case DW_OP_shra:
|
||||
result = (_Unwind_Sword) second >> first;
|
||||
break;
|
||||
case DW_OP_xor:
|
||||
result = second ^ first;
|
||||
break;
|
||||
case DW_OP_le:
|
||||
result = (_Unwind_Sword) first <= (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_ge:
|
||||
result = (_Unwind_Sword) first >= (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_eq:
|
||||
result = (_Unwind_Sword) first == (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_lt:
|
||||
result = (_Unwind_Sword) first < (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_gt:
|
||||
result = (_Unwind_Sword) first > (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_ne:
|
||||
result = (_Unwind_Sword) first != (_Unwind_Sword) second;
|
||||
break;
|
||||
|
||||
default:
|
||||
if ((stack_elt -= 2) < 0)
|
||||
abort ();
|
||||
}
|
||||
second = stack[stack_elt];
|
||||
first = stack[stack_elt + 1];
|
||||
|
||||
switch (op)
|
||||
{
|
||||
case DW_OP_and:
|
||||
result = second & first;
|
||||
break;
|
||||
case DW_OP_div:
|
||||
result = (_Unwind_Sword) second / (_Unwind_Sword) first;
|
||||
break;
|
||||
case DW_OP_minus:
|
||||
result = second - first;
|
||||
break;
|
||||
case DW_OP_mod:
|
||||
result = (_Unwind_Sword) second % (_Unwind_Sword) first;
|
||||
break;
|
||||
case DW_OP_mul:
|
||||
result = second * first;
|
||||
break;
|
||||
case DW_OP_or:
|
||||
result = second | first;
|
||||
break;
|
||||
case DW_OP_plus:
|
||||
result = second + first;
|
||||
break;
|
||||
case DW_OP_shl:
|
||||
result = second << first;
|
||||
break;
|
||||
case DW_OP_shr:
|
||||
result = second >> first;
|
||||
break;
|
||||
case DW_OP_shra:
|
||||
result = (_Unwind_Sword) second >> first;
|
||||
break;
|
||||
case DW_OP_xor:
|
||||
result = second ^ first;
|
||||
break;
|
||||
case DW_OP_le:
|
||||
result = (_Unwind_Sword) first <= (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_ge:
|
||||
result = (_Unwind_Sword) first >= (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_eq:
|
||||
result = (_Unwind_Sword) first == (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_lt:
|
||||
result = (_Unwind_Sword) first < (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_gt:
|
||||
result = (_Unwind_Sword) first > (_Unwind_Sword) second;
|
||||
break;
|
||||
case DW_OP_ne:
|
||||
result = (_Unwind_Sword) first != (_Unwind_Sword) second;
|
||||
break;
|
||||
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -783,7 +783,7 @@ execute_cfa_program (const unsigned char *insn_ptr,
|
|||
fs->regs.reg[reg].loc.reg = reg2;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case DW_CFA_remember_state:
|
||||
{
|
||||
struct frame_state_reg_info *new_rs;
|
||||
|
@ -850,7 +850,7 @@ execute_cfa_program (const unsigned char *insn_ptr,
|
|||
fs->regs.reg[reg].how = REG_SAVED_OFFSET;
|
||||
fs->regs.reg[reg].loc.offset = offset;
|
||||
break;
|
||||
|
||||
|
||||
case DW_CFA_def_cfa_sf:
|
||||
insn_ptr = read_uleb128 (insn_ptr, &fs->cfa_reg);
|
||||
insn_ptr = read_sleb128 (insn_ptr, &fs->cfa_offset);
|
||||
|
@ -1034,7 +1034,7 @@ uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs)
|
|||
/* Special handling here: Many machines do not use a frame pointer,
|
||||
and track the CFA only through offsets from the stack pointer from
|
||||
one frame to the next. In this case, the stack pointer is never
|
||||
stored, so it has no saved address in the context. What we do
|
||||
stored, so it has no saved address in the context. What we do
|
||||
have is the CFA from the previous stack frame. */
|
||||
if (context->reg[fs->cfa_reg] == NULL)
|
||||
cfa = context->cfa;
|
||||
|
@ -1108,7 +1108,7 @@ uw_update_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
|
|||
|
||||
/* Fill in CONTEXT for top-of-stack. The only valid registers at this
|
||||
level will be the return address and the CFA. */
|
||||
|
||||
|
||||
#define uw_init_context(CONTEXT) \
|
||||
do \
|
||||
{ \
|
||||
|
|
|
@ -63,7 +63,7 @@ struct SjLj_Function_Context
|
|||
#ifdef DONT_USE_BUILTIN_SETJMP
|
||||
/* We don't know what sort of alignment requirements the system
|
||||
jmp_buf has. We over estimated in except.c, and now we have
|
||||
to match that here just in case the system *didn't* have more
|
||||
to match that here just in case the system *didn't* have more
|
||||
restrictive requirements. */
|
||||
jmp_buf jbuf __attribute__((aligned));
|
||||
#else
|
||||
|
@ -76,7 +76,7 @@ struct _Unwind_Context
|
|||
struct SjLj_Function_Context *fc;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
typedef struct
|
||||
{
|
||||
_Unwind_Personality_Fn personality;
|
||||
} _Unwind_FrameState;
|
||||
|
@ -244,7 +244,7 @@ uw_update_context (struct _Unwind_Context *context,
|
|||
context->fc = context->fc->prev;
|
||||
}
|
||||
|
||||
static inline void
|
||||
static inline void
|
||||
uw_init_context (struct _Unwind_Context *context)
|
||||
{
|
||||
context->fc = _Unwind_SjLj_GetContext ();
|
||||
|
|
|
@ -136,15 +136,15 @@ extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
|
|||
library and language-specific exception handling semantics. It is
|
||||
specific to the code fragment described by an unwind info block, and
|
||||
it is always referenced via the pointer in the unwind info block, and
|
||||
hence it has no ABI-specified name.
|
||||
hence it has no ABI-specified name.
|
||||
|
||||
Note that this implies that two different C++ implementations can
|
||||
use different names, and have different contents in the language
|
||||
specific data area. Moreover, that the language specific data
|
||||
specific data area. Moreover, that the language specific data
|
||||
area contains no version info because name of the function invoked
|
||||
provides more effective versioning by detecting at link time the
|
||||
lack of code to handle the different data format. */
|
||||
|
||||
|
||||
typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)
|
||||
(int, _Unwind_Action, _Unwind_Exception_Class,
|
||||
struct _Unwind_Exception *, struct _Unwind_Context *);
|
||||
|
|
22
gcc/varasm.c
22
gcc/varasm.c
|
@ -1557,7 +1557,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
|
|||
{
|
||||
warning_with_decl (decl,
|
||||
"alignment of `%s' is greater than maximum object file alignment. Using %d",
|
||||
MAX_OFILE_ALIGNMENT/BITS_PER_UNIT);
|
||||
MAX_OFILE_ALIGNMENT/BITS_PER_UNIT);
|
||||
align = MAX_OFILE_ALIGNMENT;
|
||||
}
|
||||
|
||||
|
@ -1569,7 +1569,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
|
|||
#endif
|
||||
#ifdef CONSTANT_ALIGNMENT
|
||||
if (DECL_INITIAL (decl) != 0 && DECL_INITIAL (decl) != error_mark_node)
|
||||
align = CONSTANT_ALIGNMENT (DECL_INITIAL (decl), align);
|
||||
align = CONSTANT_ALIGNMENT (DECL_INITIAL (decl), align);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1610,7 +1610,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
|
|||
#endif
|
||||
else if (DECL_INITIAL (decl) == 0
|
||||
|| DECL_INITIAL (decl) == error_mark_node
|
||||
|| (flag_zero_initialized_in_bss
|
||||
|| (flag_zero_initialized_in_bss
|
||||
&& initializer_zerop (DECL_INITIAL (decl))))
|
||||
{
|
||||
unsigned HOST_WIDE_INT size = tree_low_cst (DECL_SIZE_UNIT (decl), 1);
|
||||
|
@ -1630,8 +1630,8 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
|
|||
/* Don't continue this line--convex cc version 4.1 would lose. */
|
||||
#if !defined(ASM_OUTPUT_ALIGNED_COMMON) && !defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) && !defined(ASM_OUTPUT_ALIGNED_BSS)
|
||||
if ((unsigned HOST_WIDE_INT) DECL_ALIGN (decl) / BITS_PER_UNIT > rounded)
|
||||
warning_with_decl
|
||||
(decl, "requested alignment for %s is greater than implemented alignment of %d",rounded);
|
||||
warning_with_decl
|
||||
(decl, "requested alignment for %s is greater than implemented alignment of %d",rounded);
|
||||
#endif
|
||||
|
||||
asm_emit_uninitialised (decl, name, size, rounded);
|
||||
|
@ -4055,8 +4055,8 @@ output_addressed_constants (exp)
|
|||
;
|
||||
|
||||
if (TREE_CODE_CLASS (TREE_CODE (tem)) == 'c'
|
||||
|| TREE_CODE (tem) == CONSTRUCTOR)
|
||||
output_constant_def (tem, 0);
|
||||
|| TREE_CODE (tem) == CONSTRUCTOR)
|
||||
output_constant_def (tem, 0);
|
||||
|
||||
if (TREE_PUBLIC (tem))
|
||||
reloc |= 2;
|
||||
|
@ -4805,7 +4805,7 @@ mark_weak (decl)
|
|||
&& GET_CODE (XEXP (DECL_RTL (decl), 0)) == SYMBOL_REF)
|
||||
SYMBOL_REF_WEAK (XEXP (DECL_RTL (decl), 0)) = 1;
|
||||
}
|
||||
|
||||
|
||||
/* Merge weak status between NEWDECL and OLDDECL. */
|
||||
|
||||
void
|
||||
|
@ -4819,7 +4819,7 @@ merge_weak (newdecl, olddecl)
|
|||
if (DECL_WEAK (newdecl))
|
||||
{
|
||||
tree wd;
|
||||
|
||||
|
||||
/* NEWDECL is weak, but OLDDECL is not. */
|
||||
|
||||
/* If we already output the OLDDECL, we're in trouble; we can't
|
||||
|
@ -4827,7 +4827,7 @@ merge_weak (newdecl, olddecl)
|
|||
declare_weak because the NEWDECL and OLDDECL was not yet
|
||||
been merged; therefore, TREE_ASM_WRITTEN was not set. */
|
||||
if (TREE_ASM_WRITTEN (olddecl))
|
||||
error_with_decl (newdecl,
|
||||
error_with_decl (newdecl,
|
||||
"weak declaration of `%s' must precede definition");
|
||||
|
||||
/* If we've already generated rtl referencing OLDDECL, we may
|
||||
|
@ -5469,7 +5469,7 @@ default_elf_select_section (decl, reloc, align)
|
|||
}
|
||||
}
|
||||
|
||||
/* Construct a unique section name based on the decl name and the
|
||||
/* Construct a unique section name based on the decl name and the
|
||||
categorization performed above. */
|
||||
|
||||
void
|
||||
|
|
|
@ -188,8 +188,8 @@ extern void varray_check_failed PARAMS ((varray_type, size_t,
|
|||
|
||||
/* Push X onto VA. T is the name of the field in varray_data
|
||||
corresponding to the type of X. */
|
||||
#define VARRAY_PUSH(VA, T, X) \
|
||||
do \
|
||||
#define VARRAY_PUSH(VA, T, X) \
|
||||
do \
|
||||
{ \
|
||||
if ((VA)->elements_used >= (VA)->num_elements) \
|
||||
VARRAY_GROW ((VA), 2 * (VA)->num_elements); \
|
||||
|
|
|
@ -190,7 +190,7 @@ typedef struct _DST_SOURCE_CORR
|
|||
#define DST_K_SOURCE_CORR_HEADER_SIZE 4
|
||||
|
||||
/* Source file correlation codes. */
|
||||
|
||||
|
||||
#define DST_K_SRC_DECLFILE 1
|
||||
#define DST_K_SRC_SETFILE 2
|
||||
#define DST_K_SRC_SETREC_L 3
|
||||
|
@ -251,5 +251,5 @@ typedef struct _DST_PROLOG
|
|||
unsigned int dst_l_prolog_bkpt_addr;
|
||||
} DST_PROLOG;
|
||||
#define DST_K_PROLOG_SIZE 8
|
||||
|
||||
|
||||
#endif /* GCC_VMSDBG_H */
|
||||
|
|
|
@ -449,7 +449,7 @@ restart:
|
|||
break;
|
||||
|
||||
case CONST:
|
||||
/* This used to output parentheses around the expression, but that does
|
||||
/* This used to output parentheses around the expression, but that does
|
||||
not work on the 386 (either ATT or BSD assembler). */
|
||||
addr_const_to_string (buf1, XEXP (x, 0));
|
||||
strcat (str, buf1);
|
||||
|
@ -644,7 +644,7 @@ write_debug_data4 (data4, comment, dosizeonly)
|
|||
fprintf (asm_out_file, "\t%s %s", ASM_COMMENT_START, comment);
|
||||
fputc ('\n', asm_out_file);
|
||||
}
|
||||
|
||||
|
||||
return 4;
|
||||
}
|
||||
|
||||
|
@ -707,7 +707,7 @@ write_debug_string (string, comment, dosizeonly)
|
|||
fprintf (asm_out_file, "\t%s %s", ASM_COMMENT_START, comment);
|
||||
fputc ('\n', asm_out_file);
|
||||
}
|
||||
|
||||
|
||||
return strlen (string);
|
||||
}
|
||||
|
||||
|
@ -829,7 +829,7 @@ write_rtnbeg (rtnnum, dosizeonly)
|
|||
/* header size - 1st byte + flag byte + STO_LW size
|
||||
+ string count byte + string length */
|
||||
header.dst__header_length.dst_w_length
|
||||
= DST_K_DST_HEADER_SIZE - 1 + 1 + 4 + 1 + strlen (go);
|
||||
= DST_K_DST_HEADER_SIZE - 1 + 1 + 4 + 1 + strlen (go);
|
||||
header.dst__header_type.dst_w_type = 0x17;
|
||||
|
||||
totsize += write_debug_header (&header, "transfer", dosizeonly);
|
||||
|
@ -1133,7 +1133,7 @@ write_srccorr (fileid, file_info_entry, dosizeonly)
|
|||
= DST_K_SOURCE;
|
||||
|
||||
src_cmdtrlr.dst_b_src_df_libmodname = 0;
|
||||
|
||||
|
||||
totsize += write_debug_header (&src_header.dst_a_source_corr_header,
|
||||
"source corr", dosizeonly);
|
||||
totsize += write_debug_data1 (src_command.dst_b_src_command,
|
||||
|
@ -1153,7 +1153,7 @@ write_srccorr (fileid, file_info_entry, dosizeonly)
|
|||
totsize += write_debug_data8
|
||||
(src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_q_src_df_rms_cdt,
|
||||
"source_corr (creation date)", dosizeonly);
|
||||
|
||||
|
||||
totsize += write_debug_data4
|
||||
(src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_l_src_df_rms_ebk,
|
||||
"source_corr (EOF block number)", dosizeonly);
|
||||
|
@ -1273,7 +1273,7 @@ write_srccorrs (dosizeonly)
|
|||
totsize += write_srccorr (i, file_info_table[i], dosizeonly);
|
||||
|
||||
return totsize;
|
||||
}
|
||||
}
|
||||
|
||||
/* Output a marker (i.e. a label) for the beginning of a function, before
|
||||
the prologue. */
|
||||
|
@ -1508,7 +1508,7 @@ lookup_filename (file_name)
|
|||
}
|
||||
}
|
||||
|
||||
/* Prepare to add a new table entry by making sure there is enough space in
|
||||
/* Prepare to add a new table entry by making sure there is enough space in
|
||||
the table to do so. If not, expand the current table. */
|
||||
if (file_info_table_in_use == file_info_table_allocated)
|
||||
{
|
||||
|
@ -1560,7 +1560,7 @@ vmsdbgout_source_line (line, filename)
|
|||
= (dst_line_info_ref) xrealloc (line_info_table,
|
||||
(line_info_table_allocated
|
||||
* sizeof (dst_line_info_entry)));
|
||||
}
|
||||
}
|
||||
|
||||
/* Add the new entry at the end of the line_info_table. */
|
||||
line_info = &line_info_table[line_info_table_in_use++];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* XCOFF definitions. These are needed in dbxout.c, final.c,
|
||||
and xcoffout.h.
|
||||
and xcoffout.h.
|
||||
Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -107,7 +107,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
|||
if (*_p == '*') \
|
||||
fprintf (asmfile, "%s", _p+1); \
|
||||
else \
|
||||
for (; *_p != '[' && *_p; _p++) \
|
||||
for (; *_p != '[' && *_p; _p++) \
|
||||
fprintf (asmfile, "%c", *_p); \
|
||||
} \
|
||||
else if (current_sym_addr) \
|
||||
|
|
Loading…
Add table
Reference in a new issue