Commit 57dadce2 by Eric Christopher

emit-rtl.c (gen_lowpart_common): Do not assume that SFmode and DFmode are…

emit-rtl.c (gen_lowpart_common): Do not assume that SFmode and DFmode are UNITS_PER_WORD and 2*UNITS_PER_WORD.

2001-06-19  Eric Christopher <echristo@redhat.com>

	* emit-rtl.c (gen_lowpart_common): Do not assume that SFmode
	and DFmode are UNITS_PER_WORD and 2*UNITS_PER_WORD.  Use
	GET_MODE_BITSIZE instead of GET_MODE_SIZE/UNITS_PER_WORD.

From-SVN: r43454
parent beec1ac5
2001-06-19 Eric Christopher <echristo@redhat.com>
* emit-rtl.c (gen_lowpart_common): Do not assume that SFmode
and DFmode are UNITS_PER_WORD and 2*UNITS_PER_WORD. Use
GET_MODE_BITSIZE instead of GET_MODE_SIZE/UNITS_PER_WORD.
Tue Jun 19 01:52:27 2001 J"orn Rennecke <amylaar@redhat.com> Tue Jun 19 01:52:27 2001 J"orn Rennecke <amylaar@redhat.com>
* sh.c (output_branch): Delete bogus code. * sh.c (output_branch): Delete bogus code.
...@@ -220,11 +226,11 @@ Thu Jun 14 12:44:15 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -220,11 +226,11 @@ Thu Jun 14 12:44:15 CEST 2001 Jan Hubicka <jh@suse.cz>
2001-06-13 Zack Weinberg <zackw@stanford.edu> 2001-06-13 Zack Weinberg <zackw@stanford.edu>
* Makefile.in: Move _bb and __gcc_bcmp to LIB2FUNCS_ST. * Makefile.in: Move _bb and __gcc_bcmp to LIB2FUNCS_ST.
* libgcc-std.ver: Take out __bb* and __gcc_bcmp. * libgcc-std.ver: Take out __bb* and __gcc_bcmp.
* config/t-slibgcc-elf-ver, config/t-slibgcc-sld, * config/t-slibgcc-elf-ver, config/t-slibgcc-sld,
config/alpha/t-osf4, config/mips/t-iris6: Extract all config/alpha/t-osf4, config/mips/t-iris6: Extract all
references to @shlib_map_file@, @shlib_objs@, or references to @shlib_map_file@, @shlib_objs@, or
@shlib_base_name@ to Makefile variables. @shlib_base_name@ to Makefile variables.
Bump soname version of libgcc to 1. Bump soname version of libgcc to 1.
...@@ -256,7 +262,7 @@ Thu Jun 14 12:44:15 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -256,7 +262,7 @@ Thu Jun 14 12:44:15 CEST 2001 Jan Hubicka <jh@suse.cz>
Revert this patch: Revert this patch:
* toplev.c (rest_of_compilation): Remove dead code before * toplev.c (rest_of_compilation): Remove dead code before
purge_addressof. purge_addressof.
2001-06-12 Alexandre Oliva <aoliva@redhat.com> 2001-06-12 Alexandre Oliva <aoliva@redhat.com>
Reverted: Reverted:
...@@ -366,8 +372,8 @@ Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -366,8 +372,8 @@ Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka <jh@suse.cz>
2001-06-11 Stephane Carrez <Stephane.Carrez@worldnet.fr> 2001-06-11 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* config/m68hc11/m68hc11.md ("*lshrdi3_const32"): Mark the clobber * config/m68hc11/m68hc11.md ("*lshrdi3_const32"): Mark the clobber
as an early clobber to make sure it is not used by reload in as an early clobber to make sure it is not used by reload in
one of the operands. one of the operands.
2001-06-11 Mark Mitchell <mark@codesourcery.com> 2001-06-11 Mark Mitchell <mark@codesourcery.com>
...@@ -459,13 +465,13 @@ Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -459,13 +465,13 @@ Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka <jh@suse.cz>
* configure.in: Align --help messages. * configure.in: Align --help messages.
Remove trailing full stops. Remove trailing full stops.
Consistently use lower case. Consistently use lower case.
Fix DWARF 2 spelling. Fix DWARF 2 spelling.
* configure: Rebuilt. * configure: Rebuilt.
2001-06-11 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2001-06-11 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/alpha/alpha.h (CPP_SPEC): Don't define __LANGUAGE_C and * config/alpha/alpha.h (CPP_SPEC): Don't define __LANGUAGE_C and
variants for .cpp/.cp/.c++ files. variants for .cpp/.cp/.c++ files.
Move definition of __LANGUAGE_C_PLUS_PLUS ... Move definition of __LANGUAGE_C_PLUS_PLUS ...
(CPLUSPLUS_CPP_SPEC): ... here. (CPLUSPLUS_CPP_SPEC): ... here.
...@@ -538,7 +544,7 @@ Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -538,7 +544,7 @@ Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka <jh@suse.cz>
* config/alpha/alpha.c (override_options): Set align_loops, * config/alpha/alpha.c (override_options): Set align_loops,
align_jumps, and align_functions. align_jumps, and align_functions.
* config/alpha/alpha.h (FUNCTION_BOUNDARY): Set to 32 bits. * config/alpha/alpha.h (FUNCTION_BOUNDARY): Set to 32 bits.
(LOOP_ALIGN, LABEL_ALIGN_AFTER_BARRIER): Remove. (LOOP_ALIGN, LABEL_ALIGN_AFTER_BARRIER): Remove.
2001-06-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 2001-06-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
...@@ -567,13 +573,13 @@ Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -567,13 +573,13 @@ Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka <jh@suse.cz>
* dwarf2out.c: #include diagnostic.h * dwarf2out.c: #include diagnostic.h
* toplev.h (warningcount, errorcount, sorrycount): Remove * toplev.h (warningcount, errorcount, sorrycount): Remove
declarations. declarations.
* toplev.c (warningcount, errorcount, sorrycount): Remove * toplev.c (warningcount, errorcount, sorrycount): Remove
definitions. definitions.
* diagnostic.h (struct output_buffer): Reorder fields. * diagnostic.h (struct output_buffer): Reorder fields.
(diagnostic_kind_count): New macro. (diagnostic_kind_count): New macro.
(errorcount, warningcount, sorrycount): Define as macros. (errorcount, warningcount, sorrycount): Define as macros.
(diagnostic_report_warnings_p): New macro. (diagnostic_report_warnings_p): New macro.
(output_state): Add diagnostic_count field. (output_state): Add diagnostic_count field.
...@@ -593,12 +599,12 @@ Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -593,12 +599,12 @@ Mon Jun 11 15:47:45 CEST 2001 Jan Hubicka <jh@suse.cz>
2001-06-10 Stephane Carrez <Stephane.Carrez@worldnet.fr> 2001-06-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline): * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
Move definition in the RTX_CODE section. Move definition in the RTX_CODE section.
2001-06-10 Stephane Carrez <Stephane.Carrez@worldnet.fr> 2001-06-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Define the return * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Define the return
address as relative to the argument pointer. address as relative to the argument pointer.
Sun Jun 10 10:58:53 CEST 2001 Jan Hubicka <jh@suse.cz> Sun Jun 10 10:58:53 CEST 2001 Jan Hubicka <jh@suse.cz>
...@@ -632,7 +638,7 @@ Sun Jun 10 10:00:17 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -632,7 +638,7 @@ Sun Jun 10 10:00:17 CEST 2001 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Remove dead code before * toplev.c (rest_of_compilation): Remove dead code before
purge_addressof. purge_addressof.
2001-06-09 Neil Booth <neil@daikokuya.demon.co.uk> 2001-06-09 Neil Booth <neil@daikokuya.demon.co.uk>
* cppinit.c (print_help): Document -fpreprocessed. * cppinit.c (print_help): Document -fpreprocessed.
...@@ -837,7 +843,7 @@ Thu Jun 7 18:27:53 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -837,7 +843,7 @@ Thu Jun 7 18:27:53 CEST 2001 Jan Hubicka <jh@suse.cz>
* config/darwin-protos.h: Declare it. * config/darwin-protos.h: Declare it.
* config/rs6000/rs6000.c (machopic_output_stub): Use * config/rs6000/rs6000.c (machopic_output_stub): Use
STRIP_NAME_ENCODING. STRIP_NAME_ENCODING.
2001-06-07 Mark Mitchell <mark@codesourcery.com> 2001-06-07 Mark Mitchell <mark@codesourcery.com>
* tree.h (DECL_SOURCE_FILE): Improve documentation. * tree.h (DECL_SOURCE_FILE): Improve documentation.
...@@ -1025,7 +1031,7 @@ Wed Jun 6 14:51:05 CEST 2001 Jan Hubicka <jh@suse.cz> ...@@ -1025,7 +1031,7 @@ Wed Jun 6 14:51:05 CEST 2001 Jan Hubicka <jh@suse.cz>
indent. indent.
* toplev.c (main): Disable sibling-call optimization if we are * toplev.c (main): Disable sibling-call optimization if we are
handling exceptions. handling exceptions.
2001-06-05 Bernd Schmidt <bernds@redhat.com> 2001-06-05 Bernd Schmidt <bernds@redhat.com>
* reload1.c (reload): Delete all USEs generated during reload. * reload1.c (reload): Delete all USEs generated during reload.
......
...@@ -900,9 +900,11 @@ gen_lowpart_common (mode, x) ...@@ -900,9 +900,11 @@ gen_lowpart_common (mode, x)
FP and integer operands. This simplifies reload because it FP and integer operands. This simplifies reload because it
doesn't have to deal with constructs like (subreg:DI doesn't have to deal with constructs like (subreg:DI
(const_double:SF ...)) or (subreg:DF (const_int ...)). */ (const_double:SF ...)) or (subreg:DF (const_int ...)). */
/* Single-precision floats are always 32-bits and double-precision
floats are always 64-bits. */
else if (GET_MODE_CLASS (mode) == MODE_FLOAT else if (GET_MODE_CLASS (mode) == MODE_FLOAT
&& GET_MODE_SIZE (mode) == UNITS_PER_WORD && GET_MODE_BITSIZE (mode) == 32
&& GET_CODE (x) == CONST_INT) && GET_CODE (x) == CONST_INT)
{ {
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
...@@ -913,7 +915,7 @@ gen_lowpart_common (mode, x) ...@@ -913,7 +915,7 @@ gen_lowpart_common (mode, x)
return CONST_DOUBLE_FROM_REAL_VALUE (r, mode); return CONST_DOUBLE_FROM_REAL_VALUE (r, mode);
} }
else if (GET_MODE_CLASS (mode) == MODE_FLOAT else if (GET_MODE_CLASS (mode) == MODE_FLOAT
&& GET_MODE_SIZE (mode) == 2 * UNITS_PER_WORD && GET_MODE_BITSIZE (mode) == 64
&& (GET_CODE (x) == CONST_INT || GET_CODE (x) == CONST_DOUBLE) && (GET_CODE (x) == CONST_INT || GET_CODE (x) == CONST_DOUBLE)
&& GET_MODE (x) == VOIDmode) && GET_MODE (x) == VOIDmode)
{ {
...@@ -952,20 +954,20 @@ gen_lowpart_common (mode, x) ...@@ -952,20 +954,20 @@ gen_lowpart_common (mode, x)
int endian = WORDS_BIG_ENDIAN ? 1 : 0; int endian = WORDS_BIG_ENDIAN ? 1 : 0;
REAL_VALUE_FROM_CONST_DOUBLE (r, x); REAL_VALUE_FROM_CONST_DOUBLE (r, x);
switch (GET_MODE_SIZE (GET_MODE (x)) / UNITS_PER_WORD) switch (GET_MODE_BITSIZE (GET_MODE (x)))
{ {
case 1: case 32:
REAL_VALUE_TO_TARGET_SINGLE (r, i[endian]); REAL_VALUE_TO_TARGET_SINGLE (r, i[endian]);
i[1 - endian] = 0; i[1 - endian] = 0;
break; break;
case 2: case 64:
REAL_VALUE_TO_TARGET_DOUBLE (r, i); REAL_VALUE_TO_TARGET_DOUBLE (r, i);
break; break;
case 3: case 96:
REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, i + endian); REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, i + endian);
i[3-3*endian] = 0; i[3-3*endian] = 0;
break; break;
case 4: case 128:
REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, i); REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, i);
break; break;
default: default:
...@@ -986,15 +988,15 @@ gen_lowpart_common (mode, x) ...@@ -986,15 +988,15 @@ gen_lowpart_common (mode, x)
for (c = 0; c < 4; c++) for (c = 0; c < 4; c++)
i[c] &= ~ (0L); i[c] &= ~ (0L);
switch (GET_MODE_SIZE (GET_MODE (x)) / UNITS_PER_WORD) switch (GET_MODE_BITSIZE (GET_MODE (x)))
{ {
case 1: case 32:
case 2: case 64:
return immed_double_const (((unsigned long) i[endian]) | return immed_double_const (((unsigned long) i[endian]) |
(((HOST_WIDE_INT) i[1-endian]) << 32), (((HOST_WIDE_INT) i[1-endian]) << 32),
0, mode); 0, mode);
case 3: case 96:
case 4: case 128:
return immed_double_const (((unsigned long) i[endian*3]) | return immed_double_const (((unsigned long) i[endian*3]) |
(((HOST_WIDE_INT) i[1+endian]) << 32), (((HOST_WIDE_INT) i[1+endian]) << 32),
((unsigned long) i[2-endian]) | ((unsigned long) i[2-endian]) |
......
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