Fix PA problem in order of initializations.
* emit-rtl.c (init_emit_once): Initialize modes first. Also add missing ChangeLog entry. From-SVN: r29635
This commit is contained in:
parent
e6ad5e9044
commit
43fa63024d
@ -1,3 +1,26 @@
|
||||
Thu Sep 23 12:54:49 1999 Alex Samuel <samuel@codesourcery.com>
|
||||
|
||||
* emit-rtl.c (init_emit_once): Initialize modes first.
|
||||
|
||||
Sun Sep 19 01:23:23 1999 Alex Samuel <samuel@codesourcery.com>
|
||||
|
||||
* config/i386/i386.c (pic_label_name): Change to char pointer.
|
||||
(global_offset_table): New variable.
|
||||
(load_pic_register): Fill global_offset_table if it hasn't
|
||||
already been done. Allocate pic_label_name dynamically.
|
||||
* ggc.h (empty_string): New variable.
|
||||
* ggc-simple.c (empty_string): Likewise.
|
||||
(init_ggc): Allocate empty_string and add as root.
|
||||
* stmt.c (digit_strings): New variable.
|
||||
(init_stmt): Add last_block_end_note as root. Allocate and
|
||||
initialize digit_strings.
|
||||
(expand_asm_operands): Use empty_string instead of string
|
||||
constant. Use digit_strings instead of string constants.
|
||||
* profile.c (init_arc_profiler): Allocate string with
|
||||
ggc_alloc_string instead of xmalloc.
|
||||
(output_func_start_profiler): Likewise.
|
||||
* c-typeck.c (digest_init): Check if init is error_mark_node.
|
||||
|
||||
Wed Sep 22 12:04:58 1999 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* cpplib.c (handle_directive): Don't complain about `# NUMBER' if
|
||||
|
@ -3495,6 +3495,38 @@ init_emit_once (line_numbers)
|
||||
|
||||
no_line_numbers = ! line_numbers;
|
||||
|
||||
/* Compute the word and byte modes. */
|
||||
|
||||
byte_mode = VOIDmode;
|
||||
word_mode = VOIDmode;
|
||||
double_mode = VOIDmode;
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT); mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
{
|
||||
if (GET_MODE_BITSIZE (mode) == BITS_PER_UNIT
|
||||
&& byte_mode == VOIDmode)
|
||||
byte_mode = mode;
|
||||
|
||||
if (GET_MODE_BITSIZE (mode) == BITS_PER_WORD
|
||||
&& word_mode == VOIDmode)
|
||||
word_mode = mode;
|
||||
}
|
||||
|
||||
#ifndef DOUBLE_TYPE_SIZE
|
||||
#define DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
|
||||
#endif
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT); mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
{
|
||||
if (GET_MODE_BITSIZE (mode) == DOUBLE_TYPE_SIZE
|
||||
&& double_mode == VOIDmode)
|
||||
double_mode = mode;
|
||||
}
|
||||
|
||||
ptr_mode = mode_for_size (POINTER_SIZE, GET_MODE_CLASS (Pmode), 0);
|
||||
|
||||
/* Assign register numbers to the globally defined register rtx.
|
||||
This must be done at runtime because the register number field
|
||||
is in a union and some compilers can't initialize unions. */
|
||||
@ -3530,38 +3562,6 @@ init_emit_once (line_numbers)
|
||||
INIT_EXPANDERS;
|
||||
#endif
|
||||
|
||||
/* Compute the word and byte modes. */
|
||||
|
||||
byte_mode = VOIDmode;
|
||||
word_mode = VOIDmode;
|
||||
double_mode = VOIDmode;
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT); mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
{
|
||||
if (GET_MODE_BITSIZE (mode) == BITS_PER_UNIT
|
||||
&& byte_mode == VOIDmode)
|
||||
byte_mode = mode;
|
||||
|
||||
if (GET_MODE_BITSIZE (mode) == BITS_PER_WORD
|
||||
&& word_mode == VOIDmode)
|
||||
word_mode = mode;
|
||||
}
|
||||
|
||||
#ifndef DOUBLE_TYPE_SIZE
|
||||
#define DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
|
||||
#endif
|
||||
|
||||
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT); mode != VOIDmode;
|
||||
mode = GET_MODE_WIDER_MODE (mode))
|
||||
{
|
||||
if (GET_MODE_BITSIZE (mode) == DOUBLE_TYPE_SIZE
|
||||
&& double_mode == VOIDmode)
|
||||
double_mode = mode;
|
||||
}
|
||||
|
||||
ptr_mode = mode_for_size (POINTER_SIZE, GET_MODE_CLASS (Pmode), 0);
|
||||
|
||||
/* Create the unique rtx's for certain rtx codes and operand values. */
|
||||
|
||||
/* Don't use gen_rtx here since gen_rtx in this case
|
||||
|
Loading…
Reference in New Issue
Block a user