diff options
author | samuel <samuel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-23 20:34:19 +0000 |
---|---|---|
committer | samuel <samuel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-23 20:34:19 +0000 |
commit | 71d7daa22b71c5e8f3d89d5089dc576713c635d5 (patch) | |
tree | 014c26702671b1c9341a56dcf7f013ec6c69d252 /gcc/emit-rtl.c | |
parent | 20619812976829183f4e9558758eeb89628f9004 (diff) | |
download | gcc-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/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 64 |
1 files changed, 32 insertions, 32 deletions
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 |