Michael Meissner [Thu, 27 Nov 1997 00:06:53 +0000 (00:06 +0000)]
rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
* rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
(print_operand): Use SMALL_DATA_REG for the register involved in
small data relocations.
(print_operand_address): Ditto.
* rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if
-dynamic linker is not used.
* rs6000.md (call insns): For local calls, use @local suffix under
System V. Don't use @plt under Solaris.
* configure.in (target frags): Add alpha*-linux-gnulibc1.
(pic frags): Its alpha*- not alpha-.
(stdio-lock): Kill everything. Add alpha*-linux-gnulibc1.
* libio.h: Check __GLIBC_MINOR__ to find stdio-lock.h. If not
_IO_MTSAFE_IO & GLIBC, make sure the lock pointer is still there.
* libioP.h: Check __GLIBC_MINOR__ to find libc-lock.h.
* config/linuxaxp1-libc-lock.h: New file.
* config/linuxaxp1-stdio-lock.h: New file.
* config/linuxaxp1.mt: New file.
* gen-params (va_list): Check for and use __gnuc_va_list.
(NULL): Work around some linux kernel headers and redefine NULL.
Cater to RH powerpc & alpha Linux systems with pre-release versions
of glibc2.
Michael Meissner [Wed, 26 Nov 1997 21:26:23 +0000 (21:26 +0000)]
(patches originally from Geoffrey Keating)
(patches originally from Geoffrey Keating)
* rs6000.c (function_arg): Excess floating point arguments don't
go into GPR registers after exhausting FP registers under the
System V.4 ABI.
(function_arg_partial_nregs): Ditto.
* rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt
suffix to calls.
J"orn Rennecke [Tue, 25 Nov 1997 21:09:44 +0000 (21:09 +0000)]
va-sh.h (__va_arg_sh1): Define.
* va-sh.h (__va_arg_sh1): Define.
(va_arg): Use it.
SH3E doesn't use any integer registers for subsequent arguments
once a non-float value was passed in the stack.
* sh.h (PASS_IN_REG_P): Fix SH3E case.
Jason Merrill [Fri, 21 Nov 1997 20:23:42 +0000 (20:23 +0000)]
except.c (expand_start_catch_block): We only need the rethrow region for non-sjlj exceptions.
* except.c (expand_start_catch_block): We only need the rethrow
region for non-sjlj exceptions.
(expand_end_catch_block): Likewise. Use outer_context_label_stack.
Jason Merrill [Fri, 21 Nov 1997 20:21:39 +0000 (20:21 +0000)]
except.h: Add outer_context_label_stack.
* except.h: Add outer_context_label_stack.
* except.c: Likewise.
(expand_start_all_catch): Push the outer_context for the try block
onto outer_context_label_stack.
(expand_end_all_catch): Use it and pop it.
Jason Merrill [Thu, 20 Nov 1997 23:21:26 +0000 (23:21 +0000)]
Makefile.in (LIB2FUNCS): Remove C++ memory management support.
./: * Makefile.in (LIB2FUNCS): Remove C++ memory management support.
* libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler,
__builtin_delete, and __builtin_vec_delete.
* except.c (output_exception_table): Don't bother with
__EXCEPTION_END__.
cp/:
* Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
(various.o): Likewise.
* inc/new: Add placement deletes. Add throw specs for default new.
* new.cc (set_new_handler): Move here from libgcc2.
* new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
(new): Move from libgcc2. Throw bad_alloc.
* new2.cc: Move the rest of the op news and op deletes from libgcc2.
* decl.c (init_decl_processing): Update exception specs on new and
delete.
Jason Merrill [Thu, 20 Nov 1997 21:38:39 +0000 (21:38 +0000)]
dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4.
* dwarf2out.c (ASM_OUTPUT_DWARF_OFFSET4): Rename from VALUE4.
Use assemble_name.
(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Use assemble_name.
(output_call_frame_info): Emit a \n after using it.
Jason Merrill [Thu, 20 Nov 1997 03:55:02 +0000 (03:55 +0000)]
decl.c (make_implicit_typename): Handle case where t is not actually from context.
* decl.c (make_implicit_typename): Handle case where t is not
actually from context.
* tree.c (get_type_decl): Lose identifier case.
* spew.c (yylex): Lose useless call to identifer_typedecl_value.
* parse.y (nonnested_type): Just use lookup_name.
(complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
dwarf2out.c (CIE_LENGTH_LABEL, [...]): New macros.
Wed Nov 19 12:03:04 1997 Philippe De Muyter <phdm@macqel.be>
* dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros.
(ASM_OUTPUT_DWARF_VALUE4): New macro.
(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is
defined.
(output_call_frame_info): Do not output forward label differences
if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined.
* m68k/mot3300.h (SET_ASM_OP): Define when not using gas.
Jim Wilson [Wed, 19 Nov 1997 05:49:11 +0000 (05:49 +0000)]
mips.c (save_restore_insns): If gp_offset or fp_offset are large_int...
* mips/mips.c (save_restore_insns): If gp_offset or fp_offset are
large_int, emit two insns instead of one splitable insn.
* dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset
from cfa_temp_value, use cfa_offset. Abort if cfa_reg is not SP.
Jason Merrill [Tue, 18 Nov 1997 06:54:29 +0000 (01:54 -0500)]
call.c (build_new_method_call): Handle getting a TEMPLATE_ID_EXPR around a TEMPLATE_DECL.
* call.c (build_new_method_call): Handle getting a
TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field
if we got template parms.
* typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
not just the args.
* decl2.c (build_expr_from_tree): Tweak last change.
* pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
(maybe_fold_nontype_arg): Split out from tsubst_copy.
* tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
* pt.c (tsubst_copy): Handle explicit template arguments in
function calls.
* typeck.c (build_x_function_call): Likewise.
* decl2.c (build_expr_from_tree): Lookup function name if it
hasn't been done.
* pt.c (tsubst): Instantiate template functions properly when
template parameter does not appear in function arguments and return
type.
(comp_template_args): Handle member templates required by tsubst.
Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
expr.c (expand_builtin_setjmp): Set current_function_has_nonlocal_label.
* expr.c (expand_builtin_setjmp): Set
current_function_has_nonlocal_label.
* stupid.c (stupid_life_analysis): If has_nonlocal_label, kill
call-saved registers across calls.
* alpha.md (exception_receiver): Remove.
(nonlocal_goto_receiver_osf): New
(nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver.
(nonlocal_goto_receiver): New, select _osf or _vms.