Jim Wilson
903df3fecd
(smulsi3_highpart): New pattern.
...
(umulsi3_highpart): New pattern.
From-SVN: r6396
1994-01-15 15:44:42 -08:00
Jim Wilson
e783e4c2b3
(smulsi3_highpart): New pattern.
...
(umulsi3_highpart): New pattern.
From-SVN: r6395
1994-01-15 15:06:17 -08:00
Jim Wilson
33a3539d43
Add 64 bit support.
...
From-SVN: r6394
1994-01-13 15:54:09 -08:00
Jim Wilson
bb621ad7c4
(cpu): Add r4600.
...
(define_function_unit): Correct numerous errors. Add r4600.
(adddi3*, subdi3*, mulsidi3, umulsidi3, negdi2*, one_cmpdl2*,
nordi2*, anddi2*, iordi3*, xordi3*, movdi*, ashldi3*, ashrdi3*,
lshrdi3*, seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu,
indirect_jump, tablejump, call*, call_value*): Add 64 bit support.
(adddi3_internal_3, addsi3_internal_2, subdi3_internal_3,
subsi3_internal_2, muldi3, muldi3_internal, divmoddi4, udivmoddi4,
divdi3, moddi3, udivdi3, umoddi3, absdi3, ffsdi2,
negdi2_internal_2, anddi3_internal1, xordi3_immed, truncdisi2,
truncdihi2, truncdiqi2, zero_extendsidi2,
zero_extendsidi2_interal, zero_extendhidi2, zero_extendqidi2,
extendsidi2, extendhidi2, extendhidi2_internal, extendqidi2,
extendqidi2_insn, fix_truncdfdi2, fix_truncsfdi2, floatdidf2,
floatdisf2, fixuns_truncdfdi2, fixuns_truncdfsi2,
ashldi3_internal4, ashrdi3_internal_4, lshrdi3_internal4, cmpdi,
tstdi, branch_zero_di, branch_equality_di, seq_di_zero, seq_di,
sne_di_zero, sne_di, sgt_di, sge_di, slt_di, sle_di_const,
sle_di_reg, sgtu_di, sgeu_di, sltu_di, sleu_di_const, sleu_di_reg,
indirect_jump_internal1, indirect_jump_internal2,
tablejump_internal1, tablejump_internal2): New patterns.
(mulsi3): Add missing mips_move_1word parameter.
(mulsi3+1): Don't split on r4000.
(divmodsi4, udivmodsi4, udivsi3, umodsi3): Correct lengths.
(divsi3, modsi3, udivsi3, umodsi3): Allow constant operands.
(sqrtdf2, sqrtsf2): Correct type attribute.
(abssi2): Add mips2 support.
(movsi_unaligned, movsi_ulw, movsi_usw): Comment out.
(movsf, movdf): Use F not E.
(cmpdf, cmpsf, branch_fp*, s{eq,ne,lt,le,gt,ge}_[ds]f): Depend on
TARGET_HARD_FLOAT.
From-SVN: r6393
1994-01-13 15:52:43 -08:00
Jim Wilson
876c09d3a8
(enum cmp_type): Add 64 bit support.
...
(enum processor_type): Add PROCESSOR_R4600.
(MASK_64BIT, TARGET_64BIT): New mask bit, to indicate 64 bit mode.
(HAVE_64BIT_P, OPTIMIZATION_OPTIONS): Delete.
(CPP_SPEC): Don't abort if not defined.
(CC1_SPEC): -mips1 and -mips2 imply -mfp32. -mips3 implies -mfp64.
(CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, and __mips.
(BITS_PER_WORD, UNITS_PER_WORD, INT_SIZE_TYPE, LONG_TYPE_SIZE,
LONG_LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
PARM_BOUNDARY, EMPTY_FIELD_BOUNDARY, HARD_REGNO_NREGS,
CONST_OK_FOR_LETTER_P, STACK_ARGS_ADJUST, FUNCTION_PROFILER,
TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT,
INITIALIZE_TRAMPOLINE, CASE_VECTOR_MODE, MOVE_MAX,
TRULY_NOOP_TRUNCATION, Pmode, FUNCTION_MODE,
ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add 64 bit support.
(MAX_BITS_PER_WORD, MAX_UNITS_PER_WORD, UNITS_PER_FPREG,
MAX_INT_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE, MAX_LONG_TYPE_SIZE,
MAX_MOVE_MAX): Define.
(INDEX_REG_CLASS): NO_REGS not GR_REGS.
(CONST_DOUBLE_OK_FOR_LETTER_P): Don't examine CONST_DOUBLE
internals.
(PREFERRED_RELOAD_CLASS): Return CLASS if it isn't ALL_REGS.
(TRANSFER_FROM_TRAMPOLINE, ASM_OUTPUT_CASE_LABEL): Delete.
(REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Redefine to 0.
(GO_IF_LEGITIMATE_ADDRESS): Delete redundant code0 == REG test.
(ENCODE_SECTION_INFO): Don't test mips_section_threshold.
(CONST_COSTS): CONST_INT have cost 0 not CONSTS_N_INSNS (0). Pass
address not MEM to eliminate_constant_term. Add 64 bit support.
(MEMORY_MOVE_COST, ASM_OUTPUT_DOUBLE_INT): Define.
(EXTRA_SECTIONS): Delete in_last_p1.
(SELECT_RTX_SECTION): Delete division by BITS_PER_UNIT.
(NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
(SIZE_TYPE, PTRDIFF_TYPE): Add 64 bit support.
From-SVN: r6392
1994-01-13 15:51:54 -08:00
Jim Wilson
147255d877
(dfhigh, dflow, sfhigh, sflow): New variables.
...
(mips_sw_reg_names): Consistently use $ as name prefix.
(large_int): Handle 64 bit constants.
(reg_or_0_operand, mips_const_double_ok): Don't examine
CONST_DOUBLE internals.
(mips_const_double_ok): Use REAL_VALUE_* macros.
(simple_memory_operand): Add 64 bit support. Only test
TARGET_GP_OPT to determine if doing gp optimizations. Pass
address not MEM to eliminate_constant_term. Use SMALL_INT.
(mips_fill_delay_slot): Add 64 bit support.
(mips_move_1word): Add 64 bit support. Don't examine CONST_DOUBLE
internals.
(mips_move_2words): Likewise.
(mips_address_cost): Pass address not MEM to
eliminate_constant_term. Use SMALL_INT.
(gen_int_relational): New variable mode. Add 64 bit support.
(gen_conditional_branch): Add 64 bit support.
(block_move_load_store, block_move_loop, block_move_call,
expand_block_move, output_block_move, function_arg_advance,
function_arg, function_arg_partial_nregs): Likewise.
(override_options): Clear MASK_GPOPT if threshold is zero or
negative. Set MASK_GPOPT if optimizing. Set mips_isa from -misa=
option, else from MIPS_ISA_DEFAULT if defined, else to 1. Make
default cpu depend on isa. Add cpus r4400, r4600, orion. Rewrite
TARGET_NAME_REGS support. Initialize dfhigh, dflow, sfhigh,
sflow. Add 64 bit support.
(print_operand): Use REAL_VALUE_* macros.
(mips_output_external): Don't depend on mips_section_threshold.
(make_temp_file): Define P_tmpdir when __MSDOS__. Malloc filename
string. Don't unlink temp file when __MSDOS__.
(mips_asm_file_start): Delete TARGET_NAME_REGS support.
(mips_asm_file_end): Unlike temp file when __MSDOS__.
(mips_declare_object): Don't test mips_sections_threshold.
(compute_frame_size, save_restore_insns, function_prologue,
mips_expand_prologue, function_epilogue, mips_expand_epilogue):
Add 64 bit support.
(function_epilogue): Correctly output `#' before .set volatile.
From-SVN: r6391
1994-01-13 15:51:01 -08:00
Jim Wilson
284f1f5a9c
(CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, and __mips.
...
(CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, and
__mips.
(SIZE_TYPE, PTRDIFF_TYPE): Delete.
From-SVN: r6390
1994-01-13 15:49:58 -08:00
Richard Kenner
06c6bfb17b
(maybe_attribute): Allow multiple __attribute__ clauses on a
...
declaration.
From-SVN: r6389
1994-01-13 06:14:08 -05:00
Richard Kenner
9f7287cd93
(REG_CLASS_CONTENTS): Fix problems with last word of register set in
...
some classes.
(MEMORY_MOVE_COST): New macro.
From-SVN: r6388
1994-01-13 06:00:57 -05:00
Richard Kenner
3450f7ba60
Fix typo in -hiux* case.
...
From-SVN: r6387
1994-01-13 05:42:24 -05:00
Per Bothner
6c73937e8f
dbxout.c (dbxout_range_type): If the range has a base type (TREE_TYPE)...
...
* dbxout.c (dbxout_range_type): If the range has a base type
(TREE_TYPE), emit it, even if that is some other integer type.
From-SVN: r6386
1994-01-12 13:30:12 -08:00
Richard Kenner
8e871c0596
(sqrtsf2, sqrtdf2): Change POWERPCSQR to PPCFPX.
...
(maxsf3, minsf3, maxdf3, mindf3): New patterns using fsel instruction.
From-SVN: r6385
1994-01-12 06:02:09 -05:00
Richard Kenner
6a7ec0a773
(MASK and TARGET): Change POWERPCSQR to PPCFPX to describe both fsqrt
...
and fsel.
From-SVN: r6384
1994-01-12 06:00:25 -05:00
Richard Kenner
fab3bcc305
(rs6000_override_options): Change POWERPCSQR to PPCFPX.
...
From-SVN: r6383
1994-01-12 05:59:49 -05:00
Richard Kenner
b7f37b10e0
(output_prolog): Update debug reg map when we have -mkernel-registers.
...
From-SVN: r6382
1994-01-11 19:18:43 -05:00
Richard Kenner
e9b5e15f60
(fold, truth_andor): Don't apply distributive law when it would change evaluation order.
...
(fold, truth_andor): Don't apply distributive law when it would change
evaluation order.
Clean up code a bit to improve flow.
From-SVN: r6381
1994-01-11 19:14:18 -05:00
Richard Kenner
212ac20ceb
Remove redundant prototype for gen_highpart.
...
From-SVN: r6380
1994-01-10 19:37:14 -05:00
Richard Kenner
3d329b07b7
(assign_parms): Call gen_realpart and gen_imagpart instead of
...
gen_lowpart and gen_highpart.
From-SVN: r6379
1994-01-10 19:36:36 -05:00
Richard Kenner
976ff203d8
(emit_move_insn_1): Call gen_realpart and gen_imagpart instead of
...
gen_lowpart and gen_highpart.
From-SVN: r6378
1994-01-10 19:35:46 -05:00
Richard Kenner
dc139c902a
(gen_{real,imag}part): Extract value from CONCAT directly.
...
(gen_lowpart_common, gen_highpart): Don't do it here.
From-SVN: r6377
1994-01-10 19:32:57 -05:00
Richard Kenner
28bad1cbc3
(simplify_relational_operation): Don't do anything with CC0 in
...
addition to MODE_CC values.
From-SVN: r6376
1994-01-10 19:31:01 -05:00
Richard Kenner
e9baa64402
(protect_from_queue): If (MEM (QUEUED ...)), modify a new MEM instead
...
of the one we were passed.
From-SVN: r6375
1994-01-10 19:23:47 -05:00
Richard Kenner
4a86a6d20f
Update banner, reformat comments.
...
(STARTFILE_SPEC, GPLUSPLUS_INCLUDE_DIR): No longer conditional
on CROSS_COMPILER.
From-SVN: r6374
1994-01-10 19:20:48 -05:00
Richard Kenner
543ec99562
(gcc.o, cccp.o): No longer define TOOLDIR.
...
From-SVN: r6373
1994-01-10 19:20:18 -05:00
Richard Kenner
ad800eb153
(make_decl_rtl): Call globalize_reg, not init_reg_sets_1.
...
From-SVN: r6372
1994-01-10 19:17:08 -05:00
Richard Kenner
614f68e2af
(globalize_reg): New function.
...
(init_reg_sets_1): Don't handle global regs here.
From-SVN: r6371
1994-01-10 19:16:27 -05:00
Richard Kenner
b0c3841605
(comparison_dominates_p): NE is dominated by LT, GT, LTU and GTU.
...
From-SVN: r6370
1994-01-10 19:13:48 -05:00
Richard Kenner
1374b35799
(print_operand, case 'F'): If we have to do the last prolog insn, give
...
that priority for an unfilled delay slot.
From-SVN: r6369
1994-01-10 19:10:11 -05:00
Richard Kenner
993102850b
(exand_expr, case RTL_EXPR): Call new function preserve_rtl_expr_result.
...
From-SVN: r6368
1994-01-10 19:06:36 -05:00
Richard Kenner
422c8f6335
(preserve_rtl_expr_result): New function.
...
From-SVN: r6367
1994-01-10 19:05:31 -05:00
Jim Wilson
a18730e12a
(new_insn_dead_notes): Compare registers with rtx_equal_p.
...
From-SVN: r6366
1994-01-10 14:30:44 -08:00
Jim Wilson
57a60e95cd
(SHELL): Define to /bin/bash.
...
From-SVN: r6365
1994-01-10 10:42:47 -08:00
Jim Wilson
9cfb5dd68c
(Makefile, stmp-fixinc, deduced.h, stmp-fixproto):
...
Execute shell scripts with $(SHELL).
From-SVN: r6364
1994-01-10 10:42:16 -08:00
Jeff Law
3f935c0b1d
* pa.md (special indexed fpstores): Fix assorted typos.
...
From-SVN: r6363
1994-01-09 20:30:24 -07:00
James Van Artsdalen
609f7031f2
(install-headers-cpio): Run cpio in include-dir.
...
From-SVN: r6362
1994-01-09 10:36:32 +00:00
James Van Artsdalen
b209b3c59f
(follow_jumps): Don't follow tablejumps.
...
From-SVN: r6361
1994-01-09 10:35:48 +00:00
Doug Evans
9e9b48a4a2
(rest_of_compilation): jump_optimize can change max_reg_num so rerun reg_scan
...
before calling cse_main.
From-SVN: r6360
1994-01-08 19:56:03 +00:00
Torbjorn Granlund
919ea6a5c3
(RTX_COSTS): Return actual costs for multiplication.
...
From-SVN: r6359
1994-01-08 01:33:38 +00:00
Jim Wilson
6d55e0ab0a
(sdbout_symbol): Handle variables at zero offset from frame pointer.
...
From-SVN: r6358
1994-01-04 10:43:51 -08:00
Richard Kenner
6a22e3a731
(substitute_expr): Don't abort for RTL_EXPR and SAVE_EXPR; just do
...
nothing.
From-SVN: r6357
1994-01-04 07:34:51 -05:00
Jeff Law
dadae8179e
pa.md (andsi3): Use "?" instead of "!" to avoid losing in some cases.
...
* pa.md (andsi3): Use "?" instead of "!" to avoid losing
in some cases.
From-SVN: r6356
1994-01-03 22:53:11 -07:00
Torbjorn Granlund
6f606d6366
(rest_of_compilation): Pass 1 for flag_before_jump first
...
time we call thread_jumps.
From-SVN: r6355
1994-01-03 22:20:42 +00:00
Torbjorn Granlund
aa38b201de
(thread_jumps): Don't thread to loop label; create new label before loop instead.
...
(thread_jumps): Don't thread to loop label; create new label
before loop instead.
(thread_jumps): Rename argument `verbose' -> `flag_before_jump'.
From-SVN: r6354
1994-01-03 22:20:01 +00:00
Torbjorn Granlund
8b39ed65f1
(build_binary_op, case *_DIV_EXPR): Use same shorten
...
condition as for TRUNC_MOD_EXPR.
From-SVN: r6353
1994-01-03 21:59:04 +00:00
Richard Kenner
61f275ffe7
(truth_value_p): New function.
...
(fold): Use it to see when we should make a TRUTH_{AND,OR}_EXPR.
(fold, case TRUTH_{AND,OR,ANDIF,ORIF}_EXPR): Use distributive law on
expressions such as (A && B) || (A && C).
From-SVN: r6352
1994-01-03 07:59:59 -05:00
Richard Kenner
64812ded25
(simplify_relational_operation): Correct declaration of variables
...
holding parts of constants.
From-SVN: r6351
1994-01-02 08:14:22 -05:00
Richard Kenner
7e89c3a3fd
(main): Turn on -fomit-frame-pointer if it is safe.
...
Add -O3, which turns on -finline-functions.
From-SVN: r6350
1993-12-31 06:56:39 -05:00
Richard Kenner
7be1e5236c
(CAN_DEBUG_WITHOUT_FP): Define.
...
(OPTIMIZATION_LEVELS): Just set MASK_GPOPT.
From-SVN: r6349
1993-12-31 06:55:57 -05:00
Richard Kenner
4f074454bb
Define CAN_DEBUG_WITHOUT_FP; delete OPTIMIZATION_OPTIONS.
...
From-SVN: r6348
1993-12-31 06:55:27 -05:00
Richard Kenner
b0f43a24b7
(OPTIMIZATION_OPTIONS): Just turn on machine-specific opts.
...
(CAN_DEBUG_WITHOUT_FP): Define.
From-SVN: r6347
1993-12-31 06:53:28 -05:00