10648 Commits

Author SHA1 Message Date
Richard Kenner
d12de8cea3 (xcoff_begin_function_line): Make static.
(xcoff_inlining): Likewise.
(xcoff_current_function_file): Likewise.
(xcoff_output_standard_types): Remove TARGET_64BIT dependencies from
int and unsigned int.

From-SVN: r10730
1995-12-15 06:34:57 -05:00
Per Bothner
944420629e fix-header.c: Support different kinds of functions (ANSI and Posix1).
* fix-header.c:  Support different kinds of functions (ANSI and
Posix1).  Enable ANSI proptotypes if __STRICT_ANSI__.

From-SVN: r10729
1995-12-14 23:43:33 -08:00
Michael Meissner
8106dc0832 Fixes from Torbjorn/Dje
From-SVN: r10728
1995-12-15 00:23:39 +00:00
Torbjorn Granlund
34f016ed1f (expand_divmod...
(expand_divmod, case TRUNC_DIV_EXPR): Only reject
larger-than-HOST_BITS_PER_WIDE_INT modes for general constants,
not for powers-of-2.

From-SVN: r10727
1995-12-14 23:39:17 +00:00
Torbjorn Granlund
f20200f4bc (logic_operand): New function.
(i960_print_operand): Handle code `C'.

From-SVN: r10726
1995-12-14 23:16:23 +00:00
Torbjorn Granlund
82eaec4ab0 (PREDICATE_CODES): Add logic_operand.
(CONST_OK_FOR_LETTER_P): Handle `M'.
(SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate.

From-SVN: r10725
1995-12-14 23:15:26 +00:00
Torbjorn Granlund
5d17176fdc (andsi3): Match op2 with logic_operand, change constraint accordingly.
(andsi3): Match op2 with logic_operand, change constraint
accordingly.  Output andnot for negative op2.
(iorsi3, xorsi3): Analogous changes.
Move all plain logical patterns together.

From-SVN: r10724
1995-12-14 23:14:22 +00:00
Richard Kenner
fb3ba99d63 (objc_alignof_type): Handle _C_PTR case.
From-SVN: r10723
1995-12-14 18:13:16 -05:00
Torbjorn Granlund
eeae1c7362 (untyped_call): New pattern.
From-SVN: r10722
1995-12-14 23:09:47 +00:00
Torbjorn Granlund
3f6ddf5456 (ashrsi_31): New pattern.
From-SVN: r10721
1995-12-14 23:08:23 +00:00
Richard Earnshaw
226a50517f arm/arm.c (output_move_double): Extract DFmode constants using
REAL_VALUE_TO_TARGET_DOUBLE.

From-SVN: r10720
1995-12-14 22:21:54 +00:00
Doug Evans
f92213c8c6 (CROSS_FLOAT_H): Delete.
From-SVN: r10719
1995-12-14 20:23:58 +00:00
Doug Evans
67446ffe25 * Makefile.in (distclean): Delete float.h
From-SVN: r10718
1995-12-14 20:12:12 +00:00
Doug Evans
32ebaaf09d Initial revision
From-SVN: r10717
1995-12-14 20:10:48 +00:00
Michael Meissner
fe6d5f6576 Fix typo
From-SVN: r10716
1995-12-14 01:31:57 +00:00
Mike Stump
3539e81693 * expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED.
From-SVN: r10715
1995-12-14 00:20:39 +00:00
Richard Kenner
c6b51be9d2 (my_strerror): Return "cannot access" if errno is 0.
(perror_with_name, pfatal_with_name, perror_exec): Don't assume that
the returned value from my_strerror contains no '%'s.
(sys_nerr): Declare only if HAVE_STRERROR is not defined.

From-SVN: r10714
1995-12-13 19:12:10 -05:00
Richard Kenner
493810116d (c-parse.y, objc-parse.y): Add warning that file is automatically generated.
From-SVN: r10713
1995-12-13 19:05:37 -05:00
Mike Stump
b2a59b1589 function.c (identify_blocks): Start with a chain of BLOCKs to match the rest of the backend (dbxout.c)...
* function.c (identify_blocks): Start with a chain of BLOCKs to
	match the rest of the backend (dbxout.c), instead of just one
	BLOCK.
	(reorder_blocks): Ditto.
	(all_blocks): Ditto.

	* stmt.c (find_loop_tree_blocks): Pass the toplevel list of
	blocks, not just the first subblock.
Fixes unroll1.C.

From-SVN: r10712
1995-12-14 00:00:20 +00:00
Ian Lance Taylor
869b061cfa Accept *-*-ieee*.
From-SVN: r10709
1995-12-13 21:43:08 +00:00
Richard Kenner
a45cf58ce9 (expand_divmod): Don't use TARGET if it's the wrong mode.
From-SVN: r10708
1995-12-13 16:11:05 -05:00
Ian Lance Taylor
8092a8e841 Define DBX_USE_BINCL.
From-SVN: r10707
1995-12-13 20:02:30 +00:00
Ian Lance Taylor
4bcaafd97b Output N_BINCL and N_EINCL stabs if DBX_USE_BINCL is defined.
From-SVN: r10706
1995-12-13 20:01:49 +00:00
Ian Lance Taylor
1a6281cb9c Call new dbxout functions when changing source files.
From-SVN: r10705
1995-12-13 20:00:25 +00:00
Michael Meissner
19d2d16f76 Use simpler functions instead of printf. INT_TYPE_SIZE is always 32. For NT, do not emit .extern for builtin functions
From-SVN: r10704
1995-12-13 12:03:00 +00:00
Doug Evans
8282721e69 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support.
From-SVN: r10703
1995-12-12 18:57:58 +00:00
Per Bothner
c7b11bf8ee (powerpc-harris-powerunix): Add guess for port to new target.
From-SVN: r10700
1995-12-11 16:47:21 -08:00
Torbjorn Granlund
4d996755f6 (matcher for neg:SI (geu:SI ..)): Get ppc syntax right.
|

From-SVN: r10699
1995-12-10 23:50:32 +00:00
Richard Kenner
5be669c75a (simplify_if_then_else): Convert "a == b ? b : a" to "a".
From-SVN: r10698
1995-12-10 10:06:28 -05:00
Richard Kenner
05019f83a3 (expand_expr, case COMPONENT_REF): If result is BLKmode, use that to
access object too.

From-SVN: r10697
1995-12-10 09:51:54 -05:00
Richard Kenner
07604beb82 (expand_expr, case CONSTRUCTOR): If TREE_READONLY, set
RTX_UNCHANGING_P in TARGET.

From-SVN: r10696
1995-12-10 08:46:44 -05:00
Richard Kenner
5cb7a25a95 (expand_expr, case INDIRECT_REF): Correct typo in May 8 change.
From-SVN: r10695
1995-12-10 08:44:42 -05:00
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