* expr.c (store_constructor): When initializing a field that is smaller
than a word, at the start of a word, try to widen it to a full word.
* cse.c (cse_insn): When we are about to change a register,
remove any invalid references to it.
(remove_invalid_subreg_refs): New function.
(mention_regs): Special treatment for SUBREGs.
(insert_regs): Don't strip SUBREG for call to mention_regs.
Check if reg_tick needs to be bumped up before that call.
(lookup_as_function): Try to match known word_mode constants when
looking for a norrower constant.
(canon_hash): Special treatment for SUBREGs.
From-SVN: r22567
Thu Sep 24 01:35:34 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
* config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
* config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
defined, emit libcall to __enable_execute_stack. Also fix opcodes
and offsets in actual stack trampoline code so they match the
commentary and actually work.
Thu Sep 24 01:19:02 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
* configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
tmake_file.
(sparc64-*-linux): Use t-linux and sparc/t-linux64 for
tmake_file. Set extra_parts to needed crt objects.
* configure: Rebuilt.
* config/sparc/linux64.h (SPARC_BI_ARCH): Define.
(TARGET_DEFAULT): Set if default is v9 or ultra.
(STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
(STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
(ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
(SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
LINK_SPEC, LINK_ARCH_SPEC): Likewise.
(TARGET_VERSION): Define.
(MULTILIB_DEFAULT): Define.
* config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
(CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
appropriately.
(TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
* config/sparc/sparc.c (sparc_override_options): If arch and
pointer size disagree, emit diagnostic and fix it up. If
SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32. Turn off
V8PLUS in 64-bit mode.
* config/sparc/t-linux64: New file.
* config/sparc/t-sol2-64: New file.
* config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
* config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
(ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
(ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
(STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
Define.
(STARTFILE_SPEC): Set approriately based upon those.
(CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
disposition of DEFAULT_ARCH32_P.
(LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
(LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
(CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
(MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
* config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
arch64/v9.
* config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
From-SVN: r22565
�
1998-09-22 Benjamin Kosnik <bkoz@loony.cygnus.com>
* decl.c (make_typename_type): Move error to point where name
variable can be used by dump_type.
From-SVN: r22550
Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* expr.h (eh_rtime_match_libfunc): New extern declaration.
* optabs.c (init_optabs): Set eh_rtime_match_libfunc.
* except.c (start_catch_handler): Use eh_rtime_match_libfunc.
* libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
NULL. Only include <stdio.h> if inhibit_libc is not defined.
From-SVN: r22532
* flow.c (find_basic_blocks): Delete check for in_libcall_block when
prev_code is a CALL_INSN. Change check for REG_RETVAL note to
use in_libcall_block.
(find_basic_blocks_1): Delete check for in_libcall_block when prev_code
is a CALL_INSN. If CALL_INSN and in_libcall_block, then change code
to INSN.
From-SVN: r22529
1998-09-20 Martin von L�wis <loewis@informatik.hu-berlin.de>
* method.c (hack_identifier): Finding multiple members is always
an error.
From-SVN: r22528