10666 Commits

Author SHA1 Message Date
Jeff Law
2e742d899d pa.md (millicode delay slot description): Remove reference to defunct TARGET_MILLICODE_LONG_CALLS.
* pa.md (millicode delay slot description): Remove reference
        to defunct TARGET_MILLICODE_LONG_CALLS.

From-SVN: r10694
1995-12-09 23:07:52 -07:00
Jim Wilson
caca3c8a03 (subsi3): Rename to subsi3_internal.
(subsi3): Rename to subsi3_internal.  Add new define_expand
to handle subtracting a register from a constant.

From-SVN: r10693
1995-12-09 15:11:50 -08:00
Jim Wilson
06ada9d1c1 (ADDRESS_COST): Define.
From-SVN: r10692
1995-12-09 15:04:27 -08:00
Michael Meissner
b49a8bf435 Fix recent breakage
From-SVN: r10691
1995-12-09 00:30:07 +00:00
Richard Earnshaw
481a49d69f lib1funcs.asm (RET, RETCOND): Define according to whether we are compiling for 32 or 26 bit mode.
* arm/lib1funcs.asm (RET, RETCOND): Define according to whether we
	are compiling for 32 or 26 bit mode.
	(all return instructions): Use RET or RETCOND as appropriate.

From-SVN: r10690
1995-12-08 15:47:42 +00:00
Richard Earnshaw
fd914447b4 Recognize aof in the OS field.
From-SVN: r10685
1995-12-06 11:57:46 +00:00
Richard Earnshaw
2735a335f4 Don't define inhibit_libc when building libgcc2.a.
(CROSS_FLOAT_H): Define.

From-SVN: r10684
1995-12-06 11:54:43 +00:00
Richard Earnshaw
1c94383bfa Include arm/aout.h, not arm/arm.h.
From-SVN: r10683
1995-12-06 11:53:39 +00:00
Richard Earnshaw
4cdb3ed477 (attributes): Rearrange order, so that condition clobbering can be automatically determined for call insns.
(attributes): Rearrange order, so that condition clobbering
	can be automatically determined for call insns.
	(attribute cpu): Add new cpu ARM7.
	(attribute type): Add new type MULT.
	(attribute prog_mode): New attribute.
	(attribute conds): Clobbering of call insns can now be determined
	using prog_mode attribute.
	(function units "write_buf", "write_blockage"): Model the write buffer
	as two function units, so that conflicts are avoided more often.
	(funcion unit "core"): New function unit, so that elapsed cycles can
	be more accurately determined.
	(all anonymous patterns): Add names.
	(mulsidi3, umulsidi3): New patterns available with fast multiply
	variants.
	(all call insns): The conds attribute is now determined automatically.
	(zero_extendhisi): Expand for architecture 4 variants if appropriate.
	(*zero_extendhisi_insn): New pattern.
	(extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if
	appropriate.
	(*extendhisi_insn, *extendqihi, *extendqisi): New patterns.
	(storehi_single_op): New expand.
	(movhi): Handle architecture 4 expansion.
	(*movhi_insn_arch4): New pattern.
	(*movhi_*): Adjust applicability conditions to handle architecture 4.
	(reload_outdf): Handle pre/post inc/dec reloads.
	(tablejump): Delete.
	(matcher for optimized tablejump): delete.
	(casesi): New expand.
	(casesi_internal): New pattern.
	(*movsi_insn): Much simpified now that constants are handled
	properly.
	(movaddr): New expand.
	(movsf, movdf): No need to force constants into the pool any more.
	(*movdf_hard_insn): Much simplified.
	(consttable_4, consttable_8, consttable_end, align_4): New patterns
	for supporting embedded constants.

From-SVN: r10682
1995-12-06 11:50:21 +00:00
Richard Earnshaw
11c1a2072c (CPP_SPEC): Add defines for the cpu type, hard or soft floating point, and the APCS PC size.
(CPP_SPEC): Add defines for the cpu type, hard or soft floating
point, and the APCS PC size.
(TARGET_*): Restructure.
(ARM_FLAG_*): Many new definitions for different target options, not
all of which are supported yet.
(TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit
numbers.
(prog_mode_type): New enum.
(floating_point_type): Split emulated floating point into FP_SOFT[23].
(OVERRIDE_OPTIONS): Call arm_override_options.
	(ARM_CPU_NAME): Default to NULL if not defined by a subtarget.
(BYTES_BIG_ENDIAN): Can now be set as a compilation option.
(RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions.
(GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling
for an architecture 4 target.  The offsets for floating point
constants are the same as for integers if compiling TARGET_SOFT_FLOAT
(GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if
the size is more than 4 bytes.  Restrict the range offsets for DImode;
likewise for DFmode when TARGET_SOFT_FLOAT.
(LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P
to determine if a constant address might be better in a register.
Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT.
(LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends.
(SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating
point constants any more, since arm_reorg will deal with them.
(LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a
LABEL.
(GO_IF_LEGITIMATE_ADDRESS): Recognize addresses expressions generated
by arm_reorg, but only after reload has completed.
(MACHINE_DEPENDENT_REORG): Define.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in
the pool, even if it might look like it.
(most assembler-specific defines): Move to arm/aout.h.
(CONSTANT_ADDRESS_P): Can't directly access constant strings when
	generating assembler for ARMASM.
(ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler.
(ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used
with all targeted assemblers.
(ASM_OUTPUT_LABEL): Call arm_asm_output_label.

From-SVN: r10681
1995-12-06 11:46:16 +00:00
Richard Earnshaw
2b835d6811 (arm_gen_constant): New function.
(arm_split_constant): Split most of the functionality into
arm_gen_constant.  Try to decide which way of handling the constant
is optimal for the target processor.
(arm_prgmode): New enum.
(target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables.
(all_procs): New table describing processors and capabilities.
(arm_override_options): New function.
(arm_return_in_memory): New function.
(arm_rtx_costs): Adjust the multiply costs to cope with processors
with fast multiplication instructions.
(output_move_double): Use the ldm/stm variants more efficiently.
Delete cases that can no-longer occur.
(output_return_instruction, output_func_epilogue): Use TARGET_APCS_32,
not TARGET_6 for determining the type of return instruction to emit.
(final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6
to determine condition preservation.
({symbol,label}_mentioned_p): New functions.
(add_constant, dump_table, fixit, find_barrier, broken_move): New
support functions for handling constant spilling.
(arm_reorg): New constant spilling pass, for putting unhandlable
constants into the rtl where we can load them efficiently.
(output_load_symbol): Delete.
(strings_fpa): Use a form which is common to both GAS and ARMASM.
(output_return_instruction, output_func_epilogue): Call
assemble_external_libcall, before trying to generate an abort call
in the assembler.
	(arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming
that labels are followed by a colon.
(aof_text_section, aof_add_import, aof_delete_import,
aof_dump_imports): New functions to support ARMASM assembler
generation.

From-SVN: r10680
1995-12-06 11:41:39 +00:00
Richard Earnshaw
9fb7806b37 Initial revision
From-SVN: r10679
1995-12-06 11:39:58 +00:00
Jason Merrill
6e94a50355 (TARGET_LIBGCC2_CFLAGS): Use -fPIC.
From-SVN: r10678
1995-12-05 03:26:37 +00:00
Jason Merrill
bacebbcf51 (LIBGCC_SPEC): Do link with libgcc when -shared.
From-SVN: r10677
1995-12-05 03:26:37 +00:00
Jason Merrill
52a08fa63e (LIBGCC_SPEC): Remove.
From-SVN: r10676
1995-12-05 03:26:37 +00:00
Jason Merrill
05c8b3ddd7 #define NO_SYS_SIGLIST.
From-SVN: r10675
1995-12-05 03:26:37 +00:00
Jim Wilson
49b6d06b41 (shiftcosts): For SH3, max cost of arithmetic right shift is 3.
(shiftcosts): For SH3, max cost of arithmetic right
shift is 3.
(expand_ashiftrt): For SH3, if shift cost is more than 3, then
call gen_ashrsi3_d to use shad instruction.

From-SVN: r10674
1995-12-04 18:28:45 -08:00
Jason Merrill
57883245f3 (finish_struct): Don't mess with the type of bitfields.
From-SVN: r10673
1995-12-04 23:56:00 +00:00
Jeff Law
953776a3f5 FIx typo in last change.
From-SVN: r10672
1995-12-04 14:26:00 -07:00
Richard Kenner
cf04eb80b0 (store_constructor, record): If field is READONLY, set
RTX_UNCHANGING_P in TO_RTX.

From-SVN: r10671
1995-12-04 14:10:50 -05:00
Jeff Law
9c99a1e928 config.guess: Recognize HP model 816 machines as having a PA1.1 processor.
* config.guess: Recognize HP model 816 machines as having
        a PA1.1 processor.

From-SVN: r10669
1995-12-04 11:22:22 -07:00
Ian Lance Taylor
26871ac48a Use -fPIC unconditionally
From-SVN: r10668
1995-12-04 17:58:56 +00:00
Jeff Law
a688adc783 pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections.
* pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections.
        (ASM_OUTPUT_SECTION_NAME): Define.

From-SVN: r10667
1995-12-03 18:58:44 -07:00
Jeff Law
8b68935bb7 Fix typos/thinkos in fprintf->fputs changes.
From-SVN: r10666
1995-12-03 12:27:44 -07:00
Jeff Law
8b43265c26 Fix indention typo.
From-SVN: r10665
1995-12-02 23:37:49 -07:00
Jeff Law
e236a9ff68 pa.h: Replace many uses of fprintf with fputs.
* pa.h: Replace many uses of fprintf with fputs.
        * pa.c: Likewise.
        * pa-pro.h: Likewise.

        * pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class
        to handle trivial cases.
        * pa.c (secondary_reload_class): Rework to be more efficient.

From-SVN: r10664
1995-12-02 22:33:31 -07:00
Michael Meissner
5456dd8ea6 Fix spacing in last patch.
From-SVN: r10663
1995-12-02 13:33:09 +00:00
Michael Meissner
beaec4799c Do not split large constants, let define_split do it later if needed
From-SVN: r10662
1995-12-02 12:59:26 +00:00
Doug Evans
9fa9626bb8 (output_double_int): Handle CODE_LABEL's if v9.
From-SVN: r10661
1995-12-01 21:02:01 +00:00
Michael Meissner
8f61c2cc93 Split decrement_and_branch_until_zero until define_expand/define_insn
From-SVN: r10660
1995-12-01 14:32:15 +00:00
Jim Wilson
24a25d4575 (from_compare): Get mode from operands instead of using SImode.
From-SVN: r10659
1995-11-30 17:02:34 -08:00
Jim Wilson
5a4638841f (CONDITIONAL_REGISTER_USAGE): Correcting indentation.
(MODE_DISP_OK_4, MODE_DISP_OK_8): Move definitions next to uses.

From-SVN: r10658
1995-11-30 17:01:28 -08:00
Jim Wilson
eeb531d587 Minor changes to comments.
From-SVN: r10657
1995-11-30 16:58:35 -08:00
Per Bothner
46852f5912 * config.guess: Recognize Pentium under SCO.
From-SVN: r10652
1995-11-30 13:59:48 -08:00
Jim Wilson
933c3ba3e7 (noncall_uses_reg): New function.
(machine_dependent_reorg): Add support for TARGET_RELAX.
(final_prescan_insn): Likewise.

From-SVN: r10651
1995-11-30 12:47:56 -08:00
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