Commit Graph

7595 Commits

Author SHA1 Message Date
Richard Kenner
018dac8bab Add new pattern for double-add when have reg + frame pointer.
Slight changes to all such patterns and add define_splits for them.

From-SVN: r7608
1994-06-29 16:13:22 -04:00
Richard Kenner
52a6920099 (FRAME_POINTER_REGNUM): Now register 63.
(HARD_FRAME_POINTER_REGNUM): New macro.
(CONDITIONAL_REGISTER_USAGE, REG_CLASS_CONTENTS, REGNO_REG_CLASS):
Show register 63 is not an FP register.
(REGHNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
(ALPHA_ROUND): New macro.
(STARTING_FRAME_OFFSET, ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET):
Modify to reflect save area between outgoing args and local vars.

From-SVN: r7607
1994-06-29 16:12:40 -04:00
Richard Kenner
d60a05a1c4 (alpha_sa_size): Round size to 16-byte boundary.
(add_long_const): Add new arg, TEMP_REG.
(output_{pro,epi}log): Rework to put save area between outgoing args and
local variables.

From-SVN: r7606
1994-06-29 16:12:03 -04:00
Richard Kenner
9ff3516a35 (reload): Can't eliminate if frame pointer needed and TO is stack pointer.
Spill HARD_FRAME_POINTER_REGNUM if not FRAME_POINTER_REGNUM and frame pointer
is needed.
(spill_hard_reg): If CANT_ELIMINATE, set regs_ever_live; no longer done by
callers.

From-SVN: r7605
1994-06-29 16:02:13 -04:00
Richard Kenner
daf55ac69a (global_alloc): Make a more accurate attempt to see if the frame pointer will be used.
(global_alloc): Make a more accurate attempt to see if the frame pointer will
be used.
If it is, show HARD_FRAME_POINTER_REGNUM used if its not the same as
FRAME_POINTER_REGNUM.

From-SVN: r7604
1994-06-29 16:01:31 -04:00
Richard Kenner
245d26eb97 (movqi): Add missing `DONE'.
From-SVN: r7603
1994-06-29 15:52:27 -04:00
Doug Evans
269d917555 sp64-elf: (PTRDIFF_TYPE): Remove dependence on POINTER_SIZE.
* sparc/sp64-elf: (PTRDIFF_TYPE): Remove dependence on POINTER_SIZE.
	(SIZE_TYPE): Likewise.

From-SVN: r7602
1994-06-29 19:44:07 +00:00
Doug Evans
857458c409 sparc.h (CPP_SPEC): Split up v9/non-v9 stuff.
* sparc/sparc.h	(CPP_SPEC): Split up v9/non-v9 stuff.
	Move -Acpu and -Amachine from here.
	(CPP_PREDEFINES): To here.
	(NO_BUILTIN_PTRDIFF_TYPE): Undefine.
	(NO_BUILTIN_SIZE_TYPE): Likewise.
	(PTRDIFF_TYPE): Split up v9/non-v9 definitions.
	(SIZE_TYPE): Likewise.

From-SVN: r7601
1994-06-29 19:43:25 +00:00
Michael Meissner
d52a896594 Always put 1 space after the macro expansion in ANSI mode.
From-SVN: r7600
1994-06-29 19:25:41 +00:00
Doug Evans
094030c93f (simplify_set): Evaluate HAVE_conditional_move at runtime.
From-SVN: r7599
1994-06-29 02:41:26 +00:00
Torbjorn Granlund
55c2d311c4 (expand_mult): Generalize to call synth_mult also for OP1 - 1.
(ceil_log2): New function.
(choose_multiplier): New function.
(invert_mod2n): New function.
(expand_mult_highpart_adjust): New function.
(expand_mult_highpart): New function.
(EXACT_POWER_OF_2_OR_ZERO_P): New macro.
(expand_divmod): Almost completely rewritten.
(expand_shift): Don't truncate immediate shift count, it doesn't work
for types smaller than int.

From-SVN: r7598
1994-06-29 00:23:02 +00:00
Torbjorn Granlund
f02d60632f (smul_highpart_optab, umul_highpart_optab): New variables.
From-SVN: r7597
1994-06-29 00:22:36 +00:00
Torbjorn Granlund
af30900458 (optabs): Add [us]mul_highpart_optab.
From-SVN: r7596
1994-06-29 00:22:13 +00:00
Torbjorn Granlund
5035bbfe58 (smul_highpart_optab, umul_highpart_optab): New variables.
(expand_binop): Handle [us]mul_highpart_optab as commutative.
(init_optabs): Initialize [us]mul_highpart_optab.
(expand_binop): Convert OP0 to mode for library calls.

From-SVN: r7595
1994-06-29 00:21:32 +00:00
Torbjorn Granlund
dbb5b3cec9 (div_and_round_double): Make it globally accessible.
From-SVN: r7594
1994-06-29 00:20:58 +00:00
Torbjorn Granlund
ca300626e0 (umulsi3_highpart, const_umulsi3_highpart): New expander and matcher.
(smulsi3_highpart, const_smulsi3_highpart): Likewise.

From-SVN: r7593
1994-06-29 00:19:52 +00:00
Torbjorn Granlund
74a6106962 (umuldi3_highpart): New expander and matcher.
From-SVN: r7592
1994-06-29 00:19:15 +00:00
Torbjorn Granlund
14edc0e4d3 (cint8_operand): New predicate.
From-SVN: r7591
1994-06-29 00:18:43 +00:00
Torbjorn Granlund
8abf4d694f (smulsi3_highpart, umulsi3_highpart): New patterns.
From-SVN: r7590
1994-06-29 00:18:12 +00:00
Jim Wilson
47c95f5005 (CPP_SPEC): Handle -msupersparc.
From-SVN: r7589
1994-06-28 12:33:59 -07:00
Jim Wilson
dbb5486265 (cpu_type, sparc_cpu_type): Rename to arch_type and sparc_arch_type.
(cpu_type, sparc_cpu_type): Rename to arch_type and
sparc_arch_type.  Fix all users.
(supersparc_adjust_cost): New function.

From-SVN: r7588
1994-06-28 12:33:23 -07:00
Jim Wilson
bef8d8c781 (cpu_type, sparc_cpu_type): Rename to arch_type and sparc_arch_type.
(cpu_type, sparc_cpu_type): Rename to arch_type and
sparc_arch_type.
(CPP_SPEC): Handle -msupersparc.
(MASK_SUPERSPARC, TARGET_SUPERSPARC): New macros.
(TARGET_SWITCHES): Add -msupersparc and -mcypress.
(ADJUST_COST): New macro.

From-SVN: r7587
1994-06-28 12:32:11 -07:00
Jim Wilson
c180bd1ee8 (cpu attribute): Rename to arch attribute.
(cpu attribute): Rename to arch attribute.  Add a new
cpu attribute.  Fix all users.
(type attribute): Add ialu, shift, imul, fpdivs, and fpdivd.
Delete fpdiv.
(function units): Add Cypress and Supersparc versions of each.
(addsi3, subsi3, andsi3, iorsi3, xorsi3): Add ialu type attribute.
(mulsi3): Add imul type attribute.
(divtf3, divdf3): Use fpdivd not fpdiv type attribute.
(divsf3); Use fpdivs not fpdiv type attribute.
(ashlsi3, ashrsi3, lshrsi3): Add shift type attribute.

From-SVN: r7586
1994-06-28 12:31:14 -07:00
Jim Wilson
3c9b213099 (andsi3+6): Replace bad clrbit pattern with two working ones.
From-SVN: r7585
1994-06-28 10:41:52 -07:00
Richard Kenner
3bbbf89c84 Initial revision
From-SVN: r7584
1994-06-28 13:31:04 -04:00
Jeff Law
bd1fd7fbda pa.md (define_split for (plus (reg) (large_constant))): Treat large_constant as signed.
* pa.md (define_split for (plus (reg) (large_constant))): Treat
	large_constant as signed.

From-SVN: r7583
1994-06-28 10:42:26 -06:00
Richard Kenner
774672d2a2 (eliminate_regs_in_insn): When checking for moves and adds, use
single_set.

From-SVN: r7582
1994-06-28 06:02:05 -04:00
Richard Kenner
adab4fc503 (reloads_conflict): Handle R1_TYPE of RELOAD_OTHER.
From-SVN: r7581
1994-06-28 05:49:31 -04:00
Richard Kenner
2f6e6d22ea (do_jump, case BIT_AND_EXPR): Only narrow to a type that corresponds
to a mode.

From-SVN: r7580
1994-06-28 05:44:57 -04:00
Richard Kenner
127b0efcf7 Include ctype.h.
From-SVN: r7579
1994-06-28 05:35:22 -04:00
Richard Kenner
85fff2f3a0 (movsf): Emit frsp if storing to memory and not PowerPC.
(movsf matcher): Remove explicit frsp.
(store sf with update): Likewise.

From-SVN: r7578
1994-06-28 05:34:30 -04:00
Richard Kenner
ab4a5fc941 (MEMORY_MOVE_COST): Make processor-dependent.
From-SVN: r7577
1994-06-28 05:33:48 -04:00
Richard Kenner
bfbc641633 Treat HFmode like SFmode, for now.
From-SVN: r7576
1994-06-28 05:15:25 -04:00
Richard Kenner
cb5b00cfa1 (expand_binop, multi-words shifts and rotates): Fix errors in last
change.

From-SVN: r7575
1994-06-27 19:16:01 -04:00
Richard Earnshaw
dfaa6d72a3 (function_unit fpa): Add more accurate scheduling information.
(all floating point patterns): Add more accurate instruction type information.

From-SVN: r7574
1994-06-27 15:24:36 +00:00
Richard Earnshaw
bee06f3d82 include "expr.h".
(arm_fpu): New variable.
(arm_gen_movstrqi): Fix typo.

From-SVN: r7573
1994-06-27 15:24:36 +00:00
Richard Earnshaw
4a1934977f (STARTFILE_SPEC,SIZE_TYPE,PTRDIFF_TYPE): Fix typos.
(ASM_FINAL_SPEC): Only reject -mbsd and -mxopen when -pedantic.

From-SVN: r7572
1994-06-27 15:24:36 +00:00
Richard Earnshaw
24f0c1b4cc (enum floating_point_type): New enumeration type.
(arm_fpu): New declaration.

From-SVN: r7571
1994-06-27 15:24:36 +00:00
Richard Kenner
cb039f8aa0 (v_message_with_decl): Avoid fwrite for stderr; mixing it with fprintf
and fputs can cause strange results under VMS.

From-SVN: r7570
1994-06-26 05:37:16 -04:00
Richard Earnshaw
13018fad5e (distribute_notes, case REG_DEAD): If a call uses a
hard reg, then this is where it dies.

From-SVN: r7569
1994-06-25 10:04:06 +00:00
Richard Kenner
9966b3915f (create_definition): Eliminate whitespace before and after macro
definitions.

From-SVN: r7568
1994-06-24 19:09:17 -04:00
Richard Kenner
25212cdd8a (alpha_builtin_saveregs): Fix typo in computing value for __base.
From-SVN: r7567
1994-06-24 18:47:38 -04:00
Richard Kenner
8fac469f63 (zero_extract patterns): Don't allow constants in the first operand of...
(zero_extract patterns): Don't allow constants in the first operand of
ZERO_EXTRACT since the recognizer function forces them to match the
mode of the match_operand.

From-SVN: r7566
1994-06-24 18:29:54 -04:00
Richard Kenner
8c3a647770 (decl_constant_value): Test for const and not iterator.
(default_conversion, digest_init): Remove redundant checks before calling
decl_constant_value.
(convert_for_assignment): See if RHS has a constant value.

From-SVN: r7565
1994-06-24 17:46:59 -04:00
Richard Kenner
289871f06f Add -W[no]-bad-function-cast.
From-SVN: r7564
1994-06-24 16:19:17 -04:00
Richard Kenner
95572adfa7 Declare warn_bad_function_cast.
From-SVN: r7563
1994-06-24 16:18:25 -04:00
Richard Kenner
796bb3734a (build_c_cast): Issue a warning for non-matching cast from a function
call (like malloc without proto).

From-SVN: r7562
1994-06-24 16:17:42 -04:00
Richard Kenner
5c8902bb1a (lang_decode_option): Set warn_bad_function_cast for
-Wbad-function-cast.

From-SVN: r7561
1994-06-24 16:17:01 -04:00
Richard Kenner
add2167d64 (ASM_IDENTIFY_LANGUAGE): New macro.
From-SVN: r7560
1994-06-24 16:09:07 -04:00
Richard Earnshaw
0bdece8adf (movstrsi): Delete.
(movstrqi): New expand.

From-SVN: r7559
1994-06-24 19:51:26 +00:00