Commit Graph

10581 Commits

Author SHA1 Message Date
Jim Wilson 8b32b6842f (ASM_SPEC, LINK_SPEC): Pass on -mrelax.
(RELAX_BIT, TARGET_RELAX): New macros.
(TARGET_SWITCHES): Add -mrelax.

From-SVN: r10650
1995-11-30 12:47:02 -08:00
Jim Wilson 956a5206b0 (insn-attr.h): Include.
(pragma_nosave_low_regs): New global variable.
(calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't
save registers r0 through r7 for interrupt functions.
(function_epilogue): Clear pragma_nosave_low_regs.
(handle_pragma): Set pragma_nosave_low_regs if see pragma for it.

From-SVN: r10649
1995-11-30 12:31:06 -08:00
Michael Meissner b6c9286a86 update PowerPC support
From-SVN: r10648
1995-11-30 20:02:16 +00:00
Jim Wilson 1bad666c7e (FUNCTION_PROFILER): Use trap #33 instead of trap #5.
Put additional .align before trapa instruction.

From-SVN: r10647
1995-11-30 12:01:53 -08:00
Jim Wilson 44965badd0 (seqdi_special_trunc, snedi_special_trunc,
seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG.
Make compare modes match modes of operands.
(snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64,
seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64):
New patterns.

From-SVN: r10646
1995-11-30 11:43:54 -08:00
Michael Meissner 482cfaf8a5 PowerPC macros
From-SVN: r10645
1995-11-30 18:56:05 +00:00
Michael Meissner 890e2acfe6 Initial revision
From-SVN: r10644
1995-11-30 18:38:35 +00:00
Michael Meissner 9e19701e69 PowerPC Windows NT support
From-SVN: r10643
1995-11-30 18:24:37 +00:00
Michael Meissner e09150c7c0 Add MULTILIB_EXCEPTiONS
From-SVN: r10642
1995-11-30 17:49:53 +00:00
Michael Meissner 23ec378b84 Add MULTILIB_EXCEPTIONS
From-SVN: r10641
1995-11-30 17:49:15 +00:00
Jim Wilson b19ea4db55 New file.
From-SVN: r10640
1995-11-29 19:10:02 -08:00
Jim Wilson 0e4eb667f9 Add make rule for gcrt1.o.
From-SVN: r10639
1995-11-29 19:04:51 -08:00
Jim Wilson f05ba4518d (STARTFILE_SPEC): Link with gcrt1.o with -pg.
From-SVN: r10638
1995-11-29 19:04:24 -08:00
Jim Wilson 6156580d2e (_mcleanup): Add support for PROFDIR environment variable.
From-SVN: r10637
1995-11-29 19:03:54 -08:00
Jim Wilson 8b8def46d6 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
MULTILIB_MATCHES): Add -msingle-float support.

From-SVN: r10636
1995-11-29 18:40:33 -08:00
Jim Wilson 54efdaa420 (CPP_SPEC): If -msingle-float and not -msoft-float, pass -D__mips_single_float.
(CPP_SPEC): If -msingle-float and not
-msoft-float, pass -D__mips_single_float.  Likewise for -m4650 and
not -msoft-float.

From-SVN: r10635
1995-11-29 18:38:54 -08:00
Doug Evans 164c4c918a (do_spec_1): Fix typos in version calculation.
From-SVN: r10634
1995-11-29 23:17:30 +00:00
Doug Evans cf78f929ca (LIB_SPEC): Don't use absolute path names if cross compiling.
From-SVN: r10633
1995-11-29 23:12:54 +00:00
Doug Evans f905fc0dc3 svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling.
* svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling.
	(MD_STARTFILE_PREFIX): Likewise.
	(LINK_SPEC): Don't use absolute path names if cross compiling.

From-SVN: r10632
1995-11-29 23:08:59 +00:00
Doug Evans 6f5541c735 * cccp.c (do_include): Recognize c:\foo as absolute path name in DOS.
From-SVN: r10631
1995-11-29 23:01:50 +00:00
Doug Evans c1da383f79 toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags has been initialized so sets of...
* toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags
	has been initialized so sets of target_flags aren't clobbered.

From-SVN: r10630
1995-11-29 22:57:03 +00:00
Doug Evans b89bcb5971 (MAX_OFILE_ALIGNMENT): Moved to config/svr4.h.
From-SVN: r10629
1995-11-29 22:51:27 +00:00
Doug Evans b9431ba27d (MAX_OFILE_ALIGNMENT): Define.
From-SVN: r10628
1995-11-29 22:50:54 +00:00
Jim Wilson 18a3fd67dc (ashrsi3_d): Use %0 not %1 in output pattern.
From-SVN: r10627
1995-11-29 12:47:03 -08:00
Jim Wilson cafe2dc334 (MAX_OFILE_ALIGNMENT): Define.
From-SVN: r10626
1995-11-29 12:29:51 -08:00
Jim Wilson f043418986 (WORD_SWITCH_TAKES_ARG): Define.
(LINK_SPEC): Add rpath.

From-SVN: r10625
1995-11-29 12:14:02 -08:00
Jim Wilson 62e74545e7 (LINK_SPEC): Add rpath.
From-SVN: r10624
1995-11-29 12:13:25 -08:00
Jim Wilson 50b46d9219 (stupid_mark_regs): For hard registers...
(stupid_mark_regs): For hard registers, use regno+j
instead of just regno in MARK_LIVE_AFTER and SET_HARD_REG_BIT calls.

From-SVN: r10623
1995-11-29 11:18:43 -08:00
Jim Wilson 41bbd14edc (combine_strings): Add support for WCHAR_TYPE as short.
From-SVN: r10622
1995-11-29 11:05:42 -08:00
Jim Wilson bd95070abd (integrate_decl_tree): Delete variable newd.
Always set DECL_ABSTRACT_ORIGIN before calling pushdecl.

From-SVN: r10621
1995-11-29 10:59:13 -08:00
Jim Wilson 7afbf31f02 (merge_attributes): New function.
(merge_attributes): New function.  Move code from
common_type to here.
(common_type): Call merge_attributes instead of having inline code.

From-SVN: r10620
1995-11-29 10:57:22 -08:00
Jim Wilson 771d55a31c (merge_attributes): New declaration.
From-SVN: r10619
1995-11-29 10:56:28 -08:00
Jim Wilson bf44f7de98 (duplicate_decls): Add new paramter different_binding_level.
Lots of changes to use new new parameter.
(pushdecl): Delete variable declared_global.  New variable
different_binding_level and code to set it.  Move extern/static
warning before duplicate_decls call.  Don't let global typedefs
conflict with nested extern declarations.  Move oldglobal test
inside code for setting IDENTIFIER_LIMBO_VALUE.
(lookup_name_current_level_global): Delete.

From-SVN: r10618
1995-11-29 10:55:34 -08:00
Jim Wilson 1417e9bdd0 (mips_function_value): Add check for i > 0 when deciding
if structure should be return in FP registers.

From-SVN: r10617
1995-11-28 18:56:14 -08:00
Jeff Law 141b2e9f05 pa.md (define split for (plus (reg) (large_constant)): Try another way to handle this with only 2 insns.
* pa.md (define split for (plus (reg) (large_constant)): Try
        another way to handle this with only 2 insns.  From Tege.

From-SVN: r10616
1995-11-28 10:49:46 -07:00
Jeff Law 1ace9b6052 Initial revision
From-SVN: r10615
1995-11-27 15:10:51 -07:00
Jeff Law b01c45558a Update copyrights.
From-SVN: r10614
1995-11-27 15:01:57 -07:00
Jeff Law cc4e79d826 toplev.c (rest_of_compilation): Always call jump_optimize at least once.
* toplev.c (rest_of_compilation): Always call jump_optimize
	at least once.

From-SVN: r10613
1995-11-27 09:19:26 -07:00
Jeff Law ad238e4b39 pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber the value of TREE_SYMBOL_REFERENCED.
* pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber
	the value of TREE_SYMBOL_REFERENCED.

	* pa-ghpux9.h (LINK_SPEC): Pass "-z" to the linker to enable
	trap on null pointer dereference for programs built on hpux9.
	* pa-hpux9.h, pa1-ghpux9.h, pa1-hpux9.h: Likewise.

	* pa.c (output_function_prologue): No longer need to keep
	track of the total number code bytes when TARGET_GAS &&
	not TARGET_PORTABLE_RUNTIME.
	* pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use .NSUBSPA when
	not TARGET_PORTABLE_RUNTIME.
	(ASM_OUTPUT_FUNCTION_PREFIX): Define.  Prefix functions with
	.NSUBSPA when TARGET_GAS and not TARGET_PORTABLE_RUNTIME.

	* pa.md (symbolic high patterns): Use 'H' to print the symbolic
	address so that the constant part gets rounded.
	* pa.c (print_operand): Handle 'H' operand for high part of a
	symbolic address with a rounded constant.
	(output_global_address): New argument "rounded_constant".  All
	callers changed appropriately.

	* x-pa-hpux (FIXPROTO_DEFINES): Add -D_HPUX_SOURCE.

	* pa.h (CPP_SPEC): Only pass -D_HPUX_SOURCE and -D_HIUX_SOURCE if
	-ansi is not present.
	(CPP_PREDEFINES): Remove -D_HPUX_SOURCE and/or -D_HIUX_SOURCE.
	* pa-ghiux.h (CPP_PREDEFINES): Likewise.
	* pa-gux7.h (CPP_PREDEFINES): Likewise.
	* pa-hiux.h (CPP_PREDEFINES): Likewise.
	* pa-hpux.h (CPP_PREDEFINES): Likewise.
	* pa-hpux7.h (CPP_PREDEFINES): Likewise.
	* pa1-ghiux.h (CPP_PREDEFINES): Likewise.
	* pa1-hiux.h (CPP_PREDEFINES): Likewise.

	* pa-hpux.h (LINK_SPEC): If -mlinker-opt, then pass -O to the
	linker.
	* pa-ghpux.h, pa-hpux9.h, pa-ghpux9.h: Likewise.
	* pa1-ghpux9.h, pa1-hpux9.h: Likewise.
	* pa.h (LINK_SPEC): Likewise.
	(TARGET_SWITCHES): Add -mlinker-opt.

	* pa.md (all peepholes): Disable if TARGET_SOFT_FLOAT.

	* pa.c (pa_reorg): If TARGET_GAS, then emit insns to mark
	the beginning and end of the branch table.
	* pa.md (begin_brtab): New insn.  Just a marker so GCC knows
	where to put the .begin_brtab pseudo-op.
	(end_brtab): Similarly.

	* pa.h (EXTRA_SECTIONS): Add in_ctors and in_dtors if
	CTORS_SECTION_FUNCTION is defined.  Else define dummy
	versions of CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION.
	(EXTRA_SECTION_FUNCTIONS): Add CTORS_SECTION_FUNCTION and
	DTORS_SECTION_FUNCTION.

	* pa.md: Add peepholes to improve spill code generated
	by reload when we run out of FP registers.

From-SVN: r10612
1995-11-27 01:31:46 -07:00
Jeff Law 4f26a76615 * xm-pa.h: Remove spurious double-quote.
From-SVN: r10611
1995-11-27 00:58:32 -07:00
Jeff Law 6a73009d9d pa.md (call expanders): For indirect calls, load %r22 with the function's address.
* pa.md (call expanders): For indirect calls, load %r22 with the
	function's address.
	(indirect call patterns): No need to copy the call address into
	%r22 anymore.

	* pa.c (output_cbranch): Fix buglet in length handling of
	backwards branches with unfilled delay slots.
	(output_bb, output_bvb, output_dbra, output_movb): Likewise.

	* pa.md: Fix off-by-one error in length computations for all
	conditional branch patterns.

	* pa.h (output_bvb): Declare.
	* pa.c (output_bvb): New function to output branch on variable
	bit insns.
	* pa.md (branch-on-variable-bit): New patterns.

	* pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all
	references.
	(output_millicode_call): Declare new function
	* pa.md (millicode calls): Update length computation to handle
	variable length millicode calls.
	(call pattners): Likewise.
	(indirect call patterns): Update length compuations and output
	templates to handle variable length millicode calls.
	(plabel_dereference): Likewise.
	* pa.c (override_options): Give warnings when incompatable
	options are used.
	(output_mul_insn): Call output_millicode_call instead of
	output_call, eliminate last argument to output_millicode_call.
	(output_div_insn): Likewise.
	(output_mod_insn): Likewise.
	(output_call): Rewrite long call code to handle variable length
	millicode calls.  Eliminate support for calling mul, div and mod
	millicode routines.
	(output_millicode_call): New function for calling mul, div and mod
	millicode routines.

From-SVN: r10610
1995-11-27 00:55:04 -07:00
Jeff Law 68944452e4 pa.md (abssi2): New pattern.
* pa.md (abssi2): New pattern.

	* pa.c (secondary_reload_class): Loads from reg+d addresses into
	FP registers don't need secondary reloads.
	* pa.h: Delete soem #if 0 code.  Update some comments.
	(EXTRA_CONSTRAINT, case 'Q'): Only accept valid memory addresses.

        * pa.h (RTX_COSTS): Tege's rewrite.

	* pa.c (hppa_legitimize_address): Generate unscaled indexed
	addressing for (plus (symbol_ref) (reg)).
	(emit_move_sequence): Set REGNO_POINTER_FLAG appropriately
	to encourage unscaled indexing modes.
	(basereg_operand): New function for unscaled index address support.
	* pa.md (unscaled indexing patterns): New patterns for unscaled
	index address support.

	* pa.h (MOVE_RATIO): Define.
	* pa.md (movstrsi expander): Refine tests for when to use the
	library routine instead of an inlined loop copy.  Provide an
	additional scratch register for use in the inlined loop copy.
	(movstrsi_internal): Name the pattern for ease of use.  Add
	additional scratch register.
	* pa.c (output_block_move): Greatly simplify.  Use 2X unrolled
	copy loops to improve performance.
	(compute_movstrsi_length): Corresponding changes.

	* pa.c (print_operand): Handle 'y' case for reversed FP
	comparisons.  Delete some #if 0 code.  Fix various comment typos.
	* pa.md (fcmp patterns): Try and reverse the comparison to avoid
	useless add,tr insns.

From-SVN: r10609
1995-11-27 00:33:58 -07:00
Richard Kenner 926d1ca5a3 (fixup_var_refs_1): Make pseudo for DEST in PROMOTED_MODE unless in a
SUBREG.

From-SVN: r10608
1995-11-26 14:50:48 -05:00
Richard Kenner f353588ada (insert): Don't put a REG into qty_const.
From-SVN: r10607
1995-11-26 14:47:28 -05:00
Richard Kenner de3cb7c346 (stamp-objlist): Change .o to $objext.
From-SVN: r10606
1995-11-26 14:44:51 -05:00
Richard Kenner f5ea9817c4 (trampoline): Add getpagesize and mprotect for WINNT.
From-SVN: r10605
1995-11-26 14:41:43 -05:00
Richard Kenner 67933bafd7 (LINK_SPEC): Pass -g to ld.exe.
Increase default stack size.

From-SVN: r10604
1995-11-26 14:40:57 -05:00
Richard Kenner 4ac3710629 Reformat and add some new functions for gnat1.
From-SVN: r10603
1995-11-26 14:40:30 -05:00
Richard Kenner 4bd5b0b281 (main): Don't pass -g to link.
From-SVN: r10602
1995-11-26 14:40:07 -05:00
Richard Kenner c1a61ccc9d (CPP_PREDEFINES): Set __unaligned and __stdcall to null.
From-SVN: r10601
1995-11-26 14:39:43 -05:00