summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorsamuel <samuel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-23 20:34:19 +0000
committersamuel <samuel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-23 20:34:19 +0000
commit71d7daa22b71c5e8f3d89d5089dc576713c635d5 (patch)
tree014c26702671b1c9341a56dcf7f013ec6c69d252 /gcc
parent20619812976829183f4e9558758eeb89628f9004 (diff)
downloadgcc-71d7daa22b71c5e8f3d89d5089dc576713c635d5.tar.gz
Fix PA problem in order of initializations.
* emit-rtl.c (init_emit_once): Initialize modes first. Also add missing ChangeLog entry. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29635 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog23
-rw-r--r--gcc/emit-rtl.c64
2 files changed, 55 insertions, 32 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 553f6b21679..032c57b96af 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 5a339a45f0f..3d59220378c 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -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