Commit Graph

14725 Commits

Author SHA1 Message Date
Jason Merrill
d1485032c8 tree.c (restore_tree_status): Also free up temporary storage when we finish a toplevel function.
* tree.c (restore_tree_status): Also free up temporary storage
	when we finish a toplevel function.
	(dump_tree_statistics): Print stats for backend obstacks.

	* libgcc2.c (__throw): Don't copy the return address.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address.

	* except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized).
	* toplev.c (main): Initialize exceptions_via_longjmp.

	* tree.c: Add extra_inline_obstacks.
	(save_tree_status): Use it.
	(restore_tree_status): If this is a toplevel inline obstack and we
	didn't want to save anything on it, recycle it.
	(print_inline_obstack_statistics): New fn.
	* function.c (pop_function_context_from): Pass context to
	restore_tree_status.
	* obstack.h (obstack_empty_p): New macro.

From-SVN: r16050
1997-10-18 17:10:32 -04:00
Doug Evans
6bd35f8671 * expr.c (use_group_regs): Don't call use_reg for MEMs.
From-SVN: r16046
1997-10-18 19:48:25 +00:00
Jeffrey A Law
6981eacffd * i386/freebsd.h (ASM_COMMENT_START): Fix.
From-SVN: r15993
1997-10-18 00:52:58 -06:00
Jim Wilson
1933ec7e4e v850.c (ep_memory_offset): New function.
* v850.c (ep_memory_offset): New function.
        (ep_memory_operand, substitute_ep_register, v850_reorg): Call it.

        * v850.h (CONST_OK_FOR_*): Add and correct comments.
        (CONSTANT_ADDRESS_P): Add comment.
        (EXTRA_CONSTRAINT): Define 'U'.
        * v850.md: Add comments on bit field instructions.
        (addsi3): Delete &r/r/r alternative.  Add r/r/U alternative.
        (lshrsi3): Use N not J constraint.

        * v850.md (v850_tst1+1): New define_split for tst1 instruction.

        * v850.c (reg_or_0_operand): Call register_operand.
        (reg_or_int5_operand): Likewise.
        * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros.
        (TARGET_SWITCHES): Add "big-switch".
        (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE,
        ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH.
        (CASE_DROPS_THROUGH): Comment out.
        (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define.
        * v850.md (cmpsi): Delete compare mode.
        (casesi): New pattern.

        * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero.
        * v850.md (ashlsi3): Use SImode not QImode for shift count.
        (lshrsi3): Likewise.

        * v850.c (print_operand): Add 'c', 'C', and 'z' support.  Delete
        unreachable switch statement after 'b' support.  Remove "b" from
        strings for 'b' support.
        * v850.md (branch_normal, branch_invert): Change %b to b%b.

v850 patches from Jim.

From-SVN: r15992
1997-10-17 23:46:19 -06:00
Jeffrey A Law
13c2de98de Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an empty line if @inhibit_libc@ is empty.
* Makefile.in (LIBGCC2_CFLAGS): Avoid a backslash then an
        empty line if @inhibit_libc@ is empty.

From-SVN: r15991
1997-10-17 23:31:26 -06:00
Robert Lipe
b2167beef2 sco5.h: Let ELF use dwarf2 unwinding.
* i386/sco5.h: Let ELF use dwarf2 unwinding.  COFF uses sjlj.
        (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Defined.
        (EH_FRAME_SECTION_ASM_OP_COFF): Likewise.
        (DWARF2_UNWIND_INFO): Let this track object file format.
        (EXTRA_SECTIONS): Add in_eh.
        (EH_FRAME_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP_ELF): Define.
        (EH_FRAME_SECTION_ASM_OP_COFF): Likewise.

From-SVN: r15990
1997-10-17 23:21:23 -06:00
Jason Merrill
8070c78887 * tree.h, vector.h: Fix accidental divergence from SGI release.
From-SVN: r15989
1997-10-17 22:09:13 -04:00
Doug Evans
c12158208e * ginclude/va-sparc.h: Rewrite v9 support.
From-SVN: r15987
1997-10-17 23:26:02 +00:00
Doug Evans
2191290cb9 Rewrite v9 support.
From-SVN: r15986
1997-10-17 23:25:26 +00:00
Doug Evans
bf65b159ec (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
fmovd so it works if a quad float ends up in one of the upper 32
	float regs.

From-SVN: r15985
1997-10-17 23:21:12 +00:00
Doug Evans
9d162eb296 sparc.c (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD...
* sparc.c (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
fmovd so it works if a quad float ends up in one of the upper 32
float regs.

From-SVN: r15984
1997-10-17 23:20:03 +00:00
David S. Miller
7e37212eeb sparc.md (pic_{lo_sum,sethi}_di): New patterns necessary for PIC support on sparc64.
* sparc/sparc.md (pic_{lo_sum,sethi}_di): New patterns
	necessary for PIC support on sparc64.

From-SVN: r15982
1997-10-17 23:01:29 +00:00
Doug Evans
bd6c666f80 Reorg sethi_{hi,si} patterns.
From-SVN: r15979
1997-10-17 22:45:15 +00:00
Jeff Law
67c5b7ada6 Add some stuff.
From-SVN: r15978
1997-10-17 16:16:29 -06:00
Doug Evans
f4f8e3703a sparc.c (output_double_int): Output DI mode values correctly when HOST_BITS_PER_WIDE_INT is 64.
* sparc/sparc.c (output_double_int): Output DI mode values
	correctly when HOST_BITS_PER_WIDE_INT is 64.

From-SVN: r15977
1997-10-17 21:59:06 +00:00
David S. Miller
da2a90f71a sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY.
* sparc/sparc.h (FUNCTION_PROFILER): Fix format string when
	TARGET_MEDANY.

From-SVN: r15974
1997-10-17 21:35:20 +00:00
David S. Miller
64562cc84e * sparc/sparc.c (dwarf2out_cfi_label): Extern no longer needed.
From-SVN: r15972
1997-10-17 21:21:12 +00:00
David S. Miller
bf2a2c6b9f * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2.
From-SVN: r15971
1997-10-17 21:16:36 +00:00
Doug Evans
9ff84e679a First pass at updating to current sparc v9 abi.
From-SVN: r15969
1997-10-17 20:41:17 +00:00
Doug Evans
4fb4e4b8be sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS.
* sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS.
	* sparc/sparc.h (PROMOTE_MODE): Promote small ints if arch64.
	(PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define.
	(SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros.
	(SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros.
	(SPARC_FP_ARG_FIRST): New macro.
	(CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now.
	(REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs.
	(NPARM_REGS): There are 32 fp argument registers now.
	(FUNCTION_ARG_REGNO_P): Likewise.
	(FIRST_PARM_OFFSET): Update to new v9 abi.
	(REG_PARM_STACK_SPACE): Define for arch64.
	(enum sparc_arg_class): Delete.
	(sparc_arg_count,sparc_n_named_args): Delete.
	(struct sparc_args): Redefine and use for arch32 as well as arch64.
	(GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete.
	(FUNCTION_ARG_ADVANCE): Rewrite.
	(FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite.
	(FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite.
	(FUNCTION_ARG_CALLEE_COPIES): Delete.
	(FUNCTION_ARG_{PADDING,BOUNDARY}): Define.
	(STRICT_ARGUMENT_NAMING): Define.
	(doublemove_string): Declare.
	* sparc/sparc.c (sparc_arg_count,sparc_n_named_args): Delete.
	(single_move_string): Use GEN_INT, and HOST_WIDE_INT.
	(doublemove_string): New function.
	(output_move_quad): Clean up some of the arch64 support.
	(compute_frame_size): Add REG_PARM_STACK_SPACE if arch64.
	Don't add 8 bytes of reserved space if arch64.
	(sparc_builtin_saveregs): Combine arch32/arch64 versions.
	(init_cumulative_args): New function.
	(function_arg_slotno): New static function.
	(function_arg,function_arg_partial_nregs): New functions.
	(function_arg_{pass_by_reference,advance}): New functions.
	(function_arg_padding): New function.
First pass at updating to current v9 abi.

From-SVN: r15968
1997-10-17 20:39:37 +00:00
Jeff Law
941b1165c2 Fix from Joern.
From-SVN: r15955
1997-10-17 09:54:01 -06:00
Christian Iseli
f22376c716 regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P for hard regs to determine base and index...
* regclass.c (record_address_regs): Look at REG_OK_FOR_{BASE,INDEX}_P
        for hard regs to determine base and index registers.

From-SVN: r15954
1997-10-17 09:46:57 -06:00
Christian Iseli
b8fb2d721d reload.c (debug_reload_to_stream): New function.
* reload.c (debug_reload_to_stream): New function.  Specify stream
        into which to write debug info.
        (debug_reload): Modify to call debug_reload_to_stream with stderr.
Thanks.  Installed.

From-SVN: r15953
1997-10-17 09:40:52 -06:00
Richard Henderson
b79ee7eb70 combine.c (can_combine_p): Don't combine with an asm whose output is a hard register.
* combine.c (can_combine_p): Don't combine with an asm whose
        output is a hard register.

From-SVN: r15940
1997-10-16 15:06:43 -07:00
Mike Stump
5c19a35643 c-decl.c (start_struct): Ensure that structs with forward declarations are in fact packed when...
* c-decl.c (start_struct): Ensure that structs with forward
        declarations are in fact packed when -fpack-struct is given.

        * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if
        we are packing a structure.  This allows a structure with only
        bytes to be aligned on a byte boundary and have no padding on a
        m68k.

From-SVN: r15939
1997-10-16 15:45:24 -06:00
Judy Goldberg
bdd7e652f4 pt.c (determine_explicit_specialization): Initialize "dummy" to keep Purify quiet.
* pt.c (determine_explicit_specialization): Initialize "dummy"
        to keep Purify quiet.

From-SVN: r15938
1997-10-16 15:33:36 -06:00
Richard Kenner
02bef6da38 rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record.
* rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record.
Bring over from gcc2.

From-SVN: r15937
1997-10-16 15:16:09 -06:00
Richard Henderson
9ecc37f0e2 alpha.c (alpha_return_addr_rtx): New variable.
* alpha.c (alpha_return_addr_rtx): New variable.
        (alpha_save_machine_status): New; save it.
        (alpha_restore_machine_status): New; restore it.
        (alpha_init_expanders): New; clear it.
        (alpha_return_addr): New; set it.
        (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live
        is overly conservative, so search the insns explicitly.
        (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed.
        (alpha_sa_size [VMS && !VMS]): Likewise.
        * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr.
        (INIT_EXPANDERS): New definition.

        * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file.
        (output_prolog [!VMS]): Use them.

        * alpha.c (output_prolog [!VMS]): Move gp detection to ...
        (alpha_does_function_need_gp): ... a new function.  Refine the
        CALL_INSN test to just TYPE_JSR.
        * alpha.md (most call insns): Fix some jsr/ibr type transpositions.

From-SVN: r15936
1997-10-16 11:37:59 -07:00
Jeffrey A Law
bda2ffefc8 * version.c: Bump for snapshot.
From-SVN: r15932
1997-10-16 09:39:00 -06:00
Jeff Law
1510f52e3e configure.in: Create compatibility code in bits/libc-lock.h file.
* configure.in: Create compatibility code in bits/libc-lock.h file.


        * libio.h (_IO_LOCK_T): Handle glibc 2 when _IO_MTSAFE_IO is
        not defined.

        * filedoalloc.c (_IO_file_doallocate): Don't call
        _IO_cleanup_registration_needed if __linux__ is defined.

        * iofclose.c (fclose): Make it weak alias of _IO_fclose if
        __ELF__ is defined.

        * iovsprintf.c (vsprintf): Make it weak alias of _IO_vsprintf
        if __ELF__ is defined.

        * iovsscanf.c (vsscanf): Make it weak alias of _IO_vsscanf if
        __ELF__ is defined.

        * config/linuxlibc1.mt (MT_CFLAGS): Defined as -D_G_HAVE_MMAP.
        (IO_OBJECTS): Add filedoalloc.o fileops.o genops.o iofclose.o
        iovsprintf.o iovsscanf.o strops.o.

From-SVN: r15931
1997-10-16 09:30:26 -06:00
Paul Koning
022abf9081 Make-lang.in (stmp-f2c.h): Don't configure the runtime directory if LANGUAGES does not include f77.
* Make-lang.in (stmp-f2c.h): Don't configure the runtime
        directory if LANGUAGES does not include f77.

From-SVN: r15930
1997-10-16 02:02:09 -06:00
Ian Lance Taylor
a6e74b833c asprintf.c: Consistently use either stdarg or varargs.
* asprintf.c: Consistently use either stdarg or varargs.

Bring over from devo.

From-SVN: r15929
1997-10-16 01:39:03 -06:00
Jason Merrill
2636fde4ba method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
* method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
	(build_overload_int): Not here.

Wed Oct 15 00:35:28 1997  Mike Stump  <mrs@wrs.com>

	* class.c (build_type_pathname): Remove.
	(prepare_fresh_vtable): Fix problem with complex MI vtable names.

From-SVN: r15928
1997-10-16 03:20:46 -04:00
Richard Kenner
96b63cd7a2 pa.c (move_operand): Respect -mdisable-indexing.
* pa.c (move_operand): Respect -mdisable-indexing.
        * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
Bring over from gcc2.  Fixes ada -O2 bootstrap.

From-SVN: r15927
1997-10-15 21:37:28 -06:00
David Edelsohn
f192bf8b22 Add patch from Edelsohn
From-SVN: r15918
1997-10-16 01:37:11 +00:00
Richard Henderson
2ea844d394 alpha.c (final_prescan_insn): Gut, remove and transform to ...
* alpha.c (final_prescan_insn): Gut, remove and transform to ...
        (alpha_handle_trap_shadows): ... a new function.  Handle the entire
        function in one go.  Emit RTL for trapb, instead of printf directly.
        (alpha_reorg): New function.  Call alpha_handle_trap_shadows.
        (trap_pending): Kill global variable.
        (output_epilog): Don't call final_prescan_insn.
        (struct shadow_summary): Elide $31 and $f31; now it fits in a word.
        * alpha.h (FINAL_PRESCAN_INSN): Remove.
        (MACHINE_DEPENENT_REORG): Define.
        * alpha.md (jsr patterns with trapb): Stupid and useless.  Kill.
        (trapb): New insn.

From-SVN: r15917
1997-10-15 18:23:23 -07:00
Richard Henderson
74835ed802 alpha.h (ISSUE_RATE): Define.
* alpha.h (ISSUE_RATE): Define.
        * alpha.c (alpha_adjust_cost): Handle EV5 mult delay; don't apply
        EV4 adjustments to EV5.
        * alpha.md: Remove all scaling from function unit delays.  Rework
        EV5 function units to match the CPU.
        (umuldi3_highpart): EV5 added the IMULH insn class.

From-SVN: r15916
1997-10-15 18:16:42 -07:00
Richard Henderson
ee80685a3b Forgot to commit last night.
From-SVN: r15915
1997-10-15 17:47:47 -06:00
Jeffrey A Law
cdc0de30d8 pa.c (following_call): Fail if the CALL_INSN is an indirect call.
* pa.c (following_call): Fail if the CALL_INSN is an indirect
        call.
Brought over from devo.

From-SVN: r15914
1997-10-15 17:41:10 -06:00
Jason Merrill
af4142d50b restore dwarf2 prototypes
From-SVN: r15912
1997-10-15 13:19:40 -04:00
Richard Henderson
0e52c1777d signal_.c (G77_signal_0): Make return type sig_pf as well.
* libF77/signal_.c (G77_signal_0): Make return type sig_pf as well.
        * libI77/fio.h: Include <string.h> if STDC_HEADERS.
        * libU77/chmod_.c: Likewise.

From-SVN: r15911
1997-10-15 10:02:53 -06:00
Richard Henderson
38bf38c1bc man.c (find_man_formatter): Don't cast getenv(), but provide a minimal declaration at top level.
* info/man.c (find_man_formatter): Don't cast getenv(), but provide
        a minimal declaration at top level.

        * makeinfo/makeinfo.c: Don't redefine alloca if it is already defined.

From-SVN: r15910
1997-10-15 09:49:40 -06:00
Jeff Law
87a0d1ac69 Remove code accidentally added twice.
From-SVN: r15909
1997-10-15 09:44:05 -06:00
Jeff Law
434fc96fca No .Sanitize files in egcs.
From-SVN: r15908
1997-10-14 22:26:58 -06:00
Brendan Kehoe
32066e1ae2 parse.y (unary_expr): Give a pedwarn if someone tries to use the &&label GNU extension.
* parse.y (unary_expr): Give a pedwarn if someone tries to use the
	&&label GNU extension.

From-SVN: r15907
1997-10-14 21:26:06 -04:00
Brendan Kehoe
6640eba99b fix two typos
From-SVN: r15906
1997-10-14 16:45:22 -04:00
Jason Merrill
1f479842ab regen
From-SVN: r15905
1997-10-14 15:19:35 -04:00
Mark Mitchell
1f06b26767 decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it, so as to avoid incorrect manglings.
Tue Oct 14 12:01:00 1997  Mark Mitchell  <mmitchell@usa.net>

	* decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
	so as to avoid incorrect manglings.
	* method.c (build_decl_overload_real): Don't mangle return types
	for constructors.

From-SVN: r15904
1997-10-14 15:12:56 -04:00
Mark Mitchell
041c97f2fb cplus-dem.c (demangle_signature): Don't look for return types on constructors.
* cplus-dem.c (demangle_signature): Don't look for return types on
	constructors.  Handle member template constructors.

From-SVN: r15903
1997-10-14 15:12:27 -04:00
Jason Merrill
438998a93d and these
From-SVN: r15902
1997-10-14 15:11:36 -04:00