Commit 43fa6302 by Alex Samuel Committed by Alex Samuel

Fix PA problem in order of initializations.

	* emit-rtl.c (init_emit_once): Initialize modes first.

        Also add missing ChangeLog entry.

From-SVN: r29635
parent e6ad5e90
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> Wed Sep 22 12:04:58 1999 Jason Merrill <jason@yorick.cygnus.com>
* cpplib.c (handle_directive): Don't complain about `# NUMBER' if * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
......
...@@ -3495,6 +3495,38 @@ init_emit_once (line_numbers) ...@@ -3495,6 +3495,38 @@ init_emit_once (line_numbers)
no_line_numbers = ! 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. /* Assign register numbers to the globally defined register rtx.
This must be done at runtime because the register number field This must be done at runtime because the register number field
is in a union and some compilers can't initialize unions. */ is in a union and some compilers can't initialize unions. */
...@@ -3530,38 +3562,6 @@ init_emit_once (line_numbers) ...@@ -3530,38 +3562,6 @@ init_emit_once (line_numbers)
INIT_EXPANDERS; INIT_EXPANDERS;
#endif #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. */ /* Create the unique rtx's for certain rtx codes and operand values. */
/* Don't use gen_rtx here since gen_rtx in this case /* Don't use gen_rtx here since gen_rtx in this case
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment