Doug Evans [Wed, 15 Jun 1994 08:04:07 +0000 (08:04 +0000)]
gcc.c: Include multilib.h.
* gcc.c: Include multilib.h.
(print_multi_lib, print_multi_directory, multilib_select,
multilib_dir): New static variables.
(option_map): Added --print-multi-lib and --print-multi-directory.
(set_spec): Get multilib_select from specs file.
(process_command): Dump multilib_select into specs file. Handle
-print-multi-lib and -print-multi-directory.
(do_spec_1): Try multilib_dir for %D case.
(find_file): Try multilib_dir.
(main): Call set_multilib_dir. Handle print_multi_lib and
print_multi_directory.
(used_arg, set_multilib_dir, print_multilib_info): New functions.
From-SVN: r7491
Doug Evans [Wed, 15 Jun 1994 08:03:05 +0000 (08:03 +0000)]
(multilib.h, stmp-multilib, install-multilib): New targets.
(gcc.o): Depend on multilib.h.
(clean): Remove multilib.h and tmpmultilib*.
From-SVN: r7490
Doug Evans [Wed, 15 Jun 1994 08:01:42 +0000 (08:01 +0000)]
Initial revision
From-SVN: r7489
Doug Evans [Wed, 15 Jun 1994 07:53:49 +0000 (07:53 +0000)]
Initial revision
From-SVN: r7488
Doug Evans [Wed, 15 Jun 1994 07:50:13 +0000 (07:50 +0000)]
sparc.md (cpu): New attribute.
* sparc/sparc.md (cpu): New attribute.
(type attribute): New value cmove (conditional moves).
(cmpdi): New pattern for v9.
(seq*, sne*): Add v9 support.
(sgt,slt,sge,sle): Explicitly restrict operand 0 to the integer
registers. Try emitting a conditional move for v9.
(sgtu,sltu,sgeu,sleu): Likewise.
(comparison insns): Add v9 versions.
(scc insns): Add DImode versions for v9.
(beq, bne, bgt, blt, bge, ble): If comparing DImode with 0 on v9,
use brxx insns. Use emit_jump_insn, not emit_insn, as the latter
mishandles brxx insns.
(branch insns): Update calls to output_cbranch.
Add v9 versions to support multiple floating point condition code regs.
Add v9 versions to support brxx insns.
(lo_sum, high, pic): Add v9 support.
(symbolic move patterns): Disable for v9.
(DImode, DFmode, TFmode moves): Add v9 support.
(conditional move insns): Define for v9.
(zero_extendqidi2, extendqidi2, zero_extendhidi2, extendhidi2,
zero_extendsidi2, extendsidi2, floatdisf2, floatdidf2, floatditf2,
fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, muldi3, divdi3,
udivdi3, ashldi3, ashrdi3, lshrdi3, ffsdi2): New patterns for v9.
(bitfield compare insn): Add DImode version for v9.
(adddi3, subdi3, negdi2, anddi3, iordi3, xordi3, one_cmpldi2,
mixed mode fp mult insns, negdf2, negtf2, absdf2, abstf2, tablejump,
call, call_value, untyped_call, untyped_return, indirect_jump,
flush_register_windows, flush): Add v9 support.
(ldd peep holes): Disable for v9.
(set/compare peep hole): Define DImode version for v9.
(sign extend/compare peep hole): Likewise.
(return peep holes): Add v9 support.
(call/jump peep holes): Add v9 support.
From-SVN: r7487
Doug Evans [Wed, 15 Jun 1994 07:49:12 +0000 (07:49 +0000)]
sparc.c (SKIP_CALLERS_UNIMP_P): Define.
* sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Define.
(sparc_cpu_type, sparc_arg_count, sparc_n_named_args,
frame_base_offset, fpconv_stack_temp): New globals.
(leaf_reg_remap): Add additional registers for v9.
(sparc_override_options, sparc64_init_expanders,
sparc64_fpconv_stack_temp, intreg_operand, ccfp_reg_operand,
data_segment_operand, text_segment_operand, v9_regcmp_op,
arith11_operand, arith10_operand, arith11_double_operand,
arith10_double_operand, gen_v9_scc, emit_v9_brxx_insn,
sparc_init_modes, build_big_number, output_v9branch,
sparc_initialize_trampoline, sparc64_initialize_trampoline):
New functions.
(arith_double_operand, gen_compare_reg, finalize_pic,
emit_move_sequence, mem_aligned_8, output_move_double,
output_move_quad, output_fp_move_double, output_fp_move_quad,
output_block_move, save_regs, restore_regs): Add v9 support.
(sparc_mode_class): New enum.
(*_MODES): Redefine to use it.
(hard_32bit_mode_classes): Renamed from hard_regno_mode_ok.
(hard_regno_mode_classes, hard_64bit_mode_classes,
sparc_mode_class): New globals.
(num_gfregs): Renamed from num_fregs.
(compute_frame_size): Add v9 support. Simplify calculations.
(output_function_prologue): Call build_big_number to compute stack
size in %g1, then adjust %sp.
Fix saving of call saved registers. Handle new v9 registers.
(output_function_epilogue): Fix restoration of call saved registers.
Handle new v9 registers.
Use SKIP_CALLERS_UNIMP_P to see if unimp insn is at return address.
(sparc_builtin_saveregs): Define v9 version.
(output_cbranch): New argument fp_cond_reg. All callers changed.
Add v9 support.
(output_return): Use SKIP_CALLERS_UNIMP_P.
(print_operand): New codes '_', '@', 'C', 'D'.
(output_double_int): Handle LABEL_REF and MINUS for v9.
Use ASM_LONGLONG if assembler can handle it.
From-SVN: r7486
Doug Evans [Wed, 15 Jun 1994 07:46:50 +0000 (07:46 +0000)]
sparc.h (cpu_type): New enum.
* sparc/sparc.h (cpu_type): New enum.
(CPP_PREDEFINES,CPP_SPEC): Add v9 support.
(NO_BUILTIN_PTRDIFF_TYPE, NO_BUILTIN_SIZE_TYPE, MAX_WCHAR_TYPE_SIZE,
SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE,
FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, MAX_INT_TYPE_SIZE,
MAX_LONG_TYPE_SIZE): Define.
(PTRDIFF_TYPE, SIZE_TYPE, BITS_PER_WORD, MAX_BITS_PER_WORD,
UNITS_PER_WORD, MAX_UNITS_PER_WORD, LONG_DOUBLE_TYPE_SIZE,
POINTER_SIZE, PARM_BOUNDARY, STACK_BOUNDARY, SPARC_STACK_ALIGN,
EMPTY_FIELD_BOUNDARY, BIGGEST_ALIGNMENT, FIRST_PSEUDO_REGISTER,
FIXED_REGISTERS, CALL_USED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
Add v9 support.
(sparc_override_options, sparc_code_model): Declare.
(OVERRIDE_OPTIONS): Call it.
(MASK_*): Define bits set by target flags.
(TARGET_*): Use them.
({MASK,TARGET}_{V9,INT64,LONG64,PTR64,ENV32,STACK_BIAS,
MEDLOW,MEDANY,FULLANY}): Define.
(MEDANY_BASE_REG): Define.
(V9_SWITCHES, TARGET_OPTIONS): Define.
(TARGET_SWITCHES, TARGET_DEFAULT): Use MASK_*.
(SPARC_STACK_BIAS, SECONDARY_MEMORY_NEEDED_MODE): Define.
(SECONDARY_MEMORY_NEEDED): Simplify.
(hard_regno_mode_class, sparc_mode_class, sparc_cpu_type): Declare.
(REG_PARM_STACK_SPACE): Do not define if v9.
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, MODES_TIEABLE_P,
RETURN_IN_MEMORY, STRUCT_VALUE, STRUCT_VALUE_INCOMING, reg_class,
REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, REG_ALLOC_ORDER,
REG_LEAF_ALLOC_ORDER, LEAF_REGISTERS, REG_CLASS_FROM_LETTER,
CLASS_MAX_NREGS, STARTING_FRAME_OFFSET, FIRST_PARM_OFFSET,
BASE_RETURN_VALUE_REG, BASE_OUTGOING_VALUE_REG, BASE_PASSING_ARG_REG,
BASE_INCOMING_ARG_REG, FUNCTION_ARG_REGNO_P): Add v9 support.
(sparc_arg_class): New enum (v9 only).
(sparc_args): New struct to record v9 arguments.
(CUMULATIVE_ARGS): Use it (v9 only).
(GET_SPARC_ARG_CLASS): Define.
(sparc_arg_count, sparc_n_named_args): Declare.
(PASS_IN_REG_P): Define.
(ROUND_REG, ROUND_ADVANCE, INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE,
FUNCTION_ARG, FUNCTION_INCOMING_ARG, FUNCTION_ARG_PARTIAL_NREGS,
FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES):
Add v9 support.
(sparc64_init_expanders, sparc64_fpconv_stack_temp): Declare.
(INIT_EXPANDERS): Define (v9 only).
(gen_v9_scc, output_v9branch): Declare.
(HAVE_conditional_move): Define.
(FUNCTION_PROFILER, FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER,
DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX, REGNO_OK_FOR_FP_P,
REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, EXTRA_CONSTRAINT,
CASE_VECTOR_MODE, Pmode, EXTRA_CC_MODES, EXTRA_CC_NAMES,
SELECT_CC_MODE, REGISTER_NAMES): Add v9 support.
(REGNO_OK_FOR_CCFP_P): Define.
(sparc_initialize_trampoline, sparc64_initialize_trampoline): Declare.
(INITIALIZE_TRAMPOLINE): Call them.
(ENCODE_SECTION_INFO): Mark functions in v9.
(RTX_COSTS): Assume MULT costs the same for v9 as v8.
(ASM_LONGLONG, ASM_FLOAT): Define.
(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Add v9 support.
From-SVN: r7485
Doug Evans [Wed, 15 Jun 1994 07:45:23 +0000 (07:45 +0000)]
* sparc/sysv4.h (ASM_OUTPUT_CASE_LABEL): Handle 64 bit pointers.
From-SVN: r7484
Doug Evans [Wed, 15 Jun 1994 07:43:31 +0000 (07:43 +0000)]
Add v9 support.
From-SVN: r7483
Doug Evans [Wed, 15 Jun 1994 07:42:17 +0000 (07:42 +0000)]
genconfig.c (main): Allow targets to override HAVE_conditional_move.
* genconfig.c (main): Allow targets to override HAVE_conditional_move.
* jump.c (jump_optimize): Use it at run-time.
From-SVN: r7482
Doug Evans [Wed, 15 Jun 1994 07:40:43 +0000 (07:40 +0000)]
config.sub (sparc64): New cpu.
* config.sub (sparc64): New cpu.
(aout, elf): New os's.
From-SVN: r7481
Michael Meissner [Wed, 15 Jun 1994 02:44:18 +0000 (02:44 +0000)]
Support 32x32->64 bit multiply
From-SVN: r7480
Torbjorn Granlund [Wed, 15 Jun 1994 02:35:23 +0000 (02:35 +0000)]
Trivial simplification of many patterns.
(subsi3): Don't handle CONST_INT for operand 2.
(ashiftrt, op2 > 8): New pattern.
(lshiftrt, op2 > 8): New pattern.
From-SVN: r7479
Torbjorn Granlund [Wed, 15 Jun 1994 02:32:24 +0000 (02:32 +0000)]
(PREDICATE_CODES): Add cmplsrcb_operand.
From-SVN: r7478
Torbjorn Granlund [Wed, 15 Jun 1994 02:32:05 +0000 (02:32 +0000)]
(cmplsrcb_operand): New predicate.
From-SVN: r7477
Torbjorn Granlund [Wed, 15 Jun 1994 02:31:28 +0000 (02:31 +0000)]
(logical patterns): Tune to give better code for immediate values.
From-SVN: r7476
Torbjorn Granlund [Wed, 15 Jun 1994 02:29:07 +0000 (02:29 +0000)]
Revert last patch: (fold, case *_DIV_EXPR): Optimize (x / C << y)...
From-SVN: r7475
Torbjorn Granlund [Wed, 15 Jun 1994 02:24:47 +0000 (02:24 +0000)]
(MAX_SHORTS): Deleted.
From-SVN: r7474
Torbjorn Granlund [Wed, 15 Jun 1994 02:23:14 +0000 (02:23 +0000)]
(encode, decode): Use 4 HOST_WIDE_INTs for encoded value with HOST_BITS_PER_WIDE_INT/2 bits in each.
(encode, decode): Use 4 HOST_WIDE_INTs for encoded
value with HOST_BITS_PER_WIDE_INT/2 bits in each.
(LOWPART, HIGHPART): New macros.
(BASE): Move definition outside of div_and_round_double.
(add_double, mul_double, lshift_double, rshift_double): Rewrite.
(lrotate_double): Use LOWPART, HIGHPART, and BASE.
(rrotate_double): Likewise.
(div_and_round_double): Major changes to code for general case.
Now it actually produces non-garbage results for large operands.
(div_and_round_double): Simplify condition for special code used when
divisor < BASE.
(const_binop): Delete special cases for multiplying by 0, 1, 2, 4, 8.
(fold, case *_DIV_EXPR): Don't try to optimize for overflow.
From-SVN: r7473
Richard Kenner [Tue, 14 Jun 1994 22:19:28 +0000 (18:19 -0400)]
Cast pointer operands to bzero, bcopy, and bcmp to (char *).
From-SVN: r7472
Richard Kenner [Tue, 14 Jun 1994 21:55:38 +0000 (17:55 -0400)]
(min_precision): New function.
(finish_enum): Rewrite code to determine precision required for enumeral type.
From-SVN: r7471
Richard Kenner [Tue, 14 Jun 1994 21:53:33 +0000 (17:53 -0400)]
(simplify_unary_operation): Correctly and consistently handle
CONST_INT cases for FLOAT and UNSIGNED_FLOAT.
From-SVN: r7470
Richard Kenner [Tue, 14 Jun 1994 21:52:06 +0000 (17:52 -0400)]
(DO_GLOBAL_CTORS_BODY): Call __builtin_alloca with a non-zero
argument, forcing a frame pointer to be needed.
From-SVN: r7469
Richard Kenner [Tue, 14 Jun 1994 21:48:11 +0000 (17:48 -0400)]
(sbrk): Don't declare here.
From-SVN: r7468
Richard Kenner [Tue, 14 Jun 1994 21:46:43 +0000 (17:46 -0400)]
(CONST_COSTS, case CONST_INT): Fix typo.
From-SVN: r7467
Richard Kenner [Tue, 14 Jun 1994 21:44:58 +0000 (17:44 -0400)]
(staticp, case FUNCTION_DECL): A nested function isn't static.
From-SVN: r7466
Richard Kenner [Tue, 14 Jun 1994 21:43:05 +0000 (17:43 -0400)]
(STARTFILE_SPEC): Don't force -static for -g.
From-SVN: r7465
Richard Kenner [Tue, 14 Jun 1994 21:41:17 +0000 (17:41 -0400)]
(rs6000_override_options): Remove MPC620 cpu variants.
From-SVN: r7464
Richard Kenner [Tue, 14 Jun 1994 21:40:57 +0000 (17:40 -0400)]
(TARGET_SWITCHES): Remove -mpowerpc64 and -mno-powerpc64.
From-SVN: r7463
Richard Kenner [Tue, 14 Jun 1994 21:37:25 +0000 (17:37 -0400)]
(reload): Process and accumulate needs for RELOAD_FOR_OPADDR_ADDR reloads.
When determining if needs are nongroup needs, ignore inactive or optional
reloads.
(reload_reg_used_in_op_addr_reload): New variable to indicate when reloads of
class RELOAD_FOR_OPADDR_ADDR are in use.
(mark_reload_reg_in_use, clear_reload_reg_in_use): Process reloads of class
RELOAD_FOR_OPADDR_ADDR.
(reload_reg_free_p, reload_reg_free_before_p, reloads_conflict): Likewise.
(choose_reload_regs): Support RELOAD_FOR_OPADDR_ADDR reloads.
(emit_reload_insns): Output RELOAD_FOR_OPADDR_ADDR reloads.
From-SVN: r7462
Richard Kenner [Tue, 14 Jun 1994 21:36:25 +0000 (17:36 -0400)]
(find_reloads): Change secondary reloads of class
RELOAD_FOR_OPERAND_ADDRESS to RELOAD_FOR_OPADDR_ADDR.
From-SVN: r7461
Richard Kenner [Tue, 14 Jun 1994 21:36:02 +0000 (17:36 -0400)]
(RELOAD_FOR_OPADDR_ADDR): New reload class.
From-SVN: r7460
Richard Kenner [Tue, 14 Jun 1994 21:34:01 +0000 (17:34 -0400)]
(find_a_file): Try EXECUTABLE_SUFFIX first, then file without the
suffix.
From-SVN: r7459
Richard Kenner [Tue, 14 Jun 1994 21:32:30 +0000 (17:32 -0400)]
(jump_optimize): Don't delete dead insn if it has a REG_RETVAL note.
From-SVN: r7458
Richard Kenner [Tue, 14 Jun 1994 21:29:48 +0000 (17:29 -0400)]
(xstrdup): Renamed from strdup.
(check_protection): Call xstrdup, not strdup.
From-SVN: r7457
Richard Kenner [Tue, 14 Jun 1994 21:28:37 +0000 (17:28 -0400)]
Fix whitespace in pattern.
From-SVN: r7456
Richard Kenner [Tue, 14 Jun 1994 21:26:00 +0000 (17:26 -0400)]
(output_prolog): Fix error in loading size of large stack frames.
From-SVN: r7455
Richard Kenner [Tue, 14 Jun 1994 21:23:53 +0000 (17:23 -0400)]
(reload_as_needed): Clear spill_reg_store at start.
(emit_reload_insns): Omit erroneous predicate of reload
deletion -- reload_spill_index is not indexed by regno.
From-SVN: r7454
Ian Lance Taylor [Tue, 14 Jun 1994 20:01:08 +0000 (20:01 +0000)]
Wrap assert.h in extern "C" { }
From-SVN: r7453
Jeff Law [Tue, 14 Jun 1994 19:18:43 +0000 (13:18 -0600)]
jump.c (condjump_in_parallel_p): New function to detect conditional jumps within PARALLEL insns.
* jump.c (condjump_in_parallel_p): New function to detect
conditional jumps within PARALLEL insns.
(jump_optimize): Allow for some simple optimizations involving
conditional jumps within PARALLEL insns.
* reorg.c (get_jump_flags): Handle conditional jumps in PARALLEL
insns.
(get_branch_condition, fill_simple_delay_slots): Likewise.
(fill_eager_delay_slots, relax_delay_slots, dbr_schedule): Likewise.
From-SVN: r7452
Jeff Law [Tue, 14 Jun 1994 19:16:07 +0000 (13:16 -0600)]
pa-osf.h (SIZE_TYPE): Define as "long unsigned int" to be compatable with system include files.
* pa-osf.h (SIZE_TYPE): Define as "long unsigned int" to be
compatable with system include files.
* pa1-osf.h (SIZE_TYPE): Likewise.
* pa1-osf.h (WCHAR_TYPE): Define as "short unsigned int".
(WCHAR_TYPE_SIZE): Define as 16 bits.
From-SVN: r7451
Jeff Law [Tue, 14 Jun 1994 19:14:26 +0000 (13:14 -0600)]
pa.c (output_arg_descriptor): Restore old behavior for SImode USE insns of FP registers (used by untyped call...
* pa.c (output_arg_descriptor): Restore old behavior for SImode
USE insns of FP registers (used by untyped call support).
From-SVN: r7450
Richard Earnshaw [Mon, 6 Jun 1994 13:14:03 +0000 (13:14 +0000)]
(arm_reload_out_hi): Rewrite.
(arm_reload_out_hi): Rewrite. Add support for processors running in
big-endian mode.
(fp_immediate_constant): Fix typo in argument declaration.
From-SVN: r7449
Richard Earnshaw [Mon, 6 Jun 1994 13:14:03 +0000 (13:14 +0000)]
(storehi_bigend): New expansion pattern.
(storeinthi): Rework to generate better code, add big-endian support.
(movhi): Add support for processors running in big-endian mode.
(movhi_bigend): New expansion pattern.
(matcher for movhi): Remove incorrect alternative for storing HImode to
memory. Only match when little endian.
(matcher for big-endian movhi): New pattern.
(matchers/peepholes for extended pre/post increment HImode loads): Only
match when little-endian.
(matcher for operating on adjacent memory locations): Load operation into
arith operands.
(peepholes for extended pre-increment byte loads): New patterns.
From-SVN: r7448
Richard Earnshaw [Mon, 6 Jun 1994 13:14:03 +0000 (13:14 +0000)]
(PROMOTE_MODE): Promote HImode integers as signed.
(BYTES_BIG_ENDIAN): Allow target description to override default.
(LOAD_EXTEND_OP): When big-endian, HImode loads are sign extended.
From-SVN: r7447
Doug Evans [Sun, 5 Jun 1994 01:06:20 +0000 (01:06 +0000)]
(__gnuc_va_list): Use instead of va_list.
From-SVN: r7446
Doug Evans [Sun, 5 Jun 1994 01:05:11 +0000 (01:05 +0000)]
(*): Use __gnuc_va_list, not va_list.
From-SVN: r7445
Richard Earnshaw [Sat, 4 Jun 1994 11:17:23 +0000 (11:17 +0000)]
(FUNCTION_PROFILER): Delete duplicate definition.
(FUNCTION_PROFILER, TRAMPOLINE_TEMPLATE, ASM_FILE_START,
ASM_OUTPUT_REG_{PUSH,POP}, PRINT_OPERAND_ADDRESS): Output register
prefix before any explicit register name.
(ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
ASM_OUTPUT_COMMON): Output the target dependent comment char.
(ASM_FILE_START): Output register alias for r10.
(REGISTER_NAMES): Output "r9" now for r9, not "rfp".
(ADDITIONAL_REGISTER_NAMES): New macro.
From-SVN: r7444
Richard Earnshaw [Sat, 4 Jun 1994 11:17:23 +0000 (11:17 +0000)]
(all patterns explicitly mentioning regs): Output the target dependent prefix before the register name.
(all patterns explicitly mentioning regs): Output the target dependent
prefix before the register name.
(all patterns with asm comments): Output the target dependent comment
character.
From-SVN: r7443
Richard Earnshaw [Sat, 4 Jun 1994 11:17:23 +0000 (11:17 +0000)]
(print_multi_reg, output_call, output_call_mem,
output_mov_long_double_fpu_from_arm,
output_mov_long_double_arm_from_fpu,
output_mov_double_fpu_from_arm, output_mov_double_arm_from_fpu,
output_return_instruction, output_func_{prologue,epilogue},
arm_print_operand, output_load_symbol): Print the register prefix
before each register name.
(output_func_prologue, output_lcomm_directive): Output the target
dependent comment char for asm comments.
From-SVN: r7442
Doug Evans [Fri, 3 Jun 1994 22:13:55 +0000 (22:13 +0000)]
(make_decl_rtl): If section attribute is being ignored, really ignore it.
From-SVN: r7441
Doug Evans [Fri, 3 Jun 1994 22:12:54 +0000 (22:12 +0000)]
(decl_attributes): Fix section attribute breakage.
From-SVN: r7440
Mike Stump [Fri, 3 Jun 1994 21:42:31 +0000 (21:42 +0000)]
39th Cygnus<->FSF merge
From-SVN: r7439
Torbjorn Granlund [Fri, 3 Jun 1994 19:50:48 +0000 (19:50 +0000)]
(FP_REGNO_P): New macro for intra file usage.
(REGNO_OK_FOR_FP_P): Use FP_REGNO_P.
(FUNCTION_VALUE_REGNO_P): Revert last change.
(CONDITIONAL_REGISTER_USAGE): Partially revert last changes;
Make non-existing 1.0 fp regs fixed, including odd-numbered regs.
(enum reg_class): Get rid of SNAKE_FP_REGS, GENERAL_OR_SNAKE_FP_REGS,
and NON_SHIFT_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(REGNO_REG_CLASS): Likewise.
(HARD_REGNO_MODE_OK): Corresponding changes. Don't force 1.0 fpregs
to even regno here; fixed_regs does the job better.
(FP_REG_CLASS_P): Get rid of SNAKE_FP_REGS.
(REG_CLASS_FROM_LETTER, case 'z'): Deleted.
(HARD_REGNO_NREGS): Partially revert last change.
(CLASS_MAX_NREGS): Partially revert last change.
From-SVN: r7438
Torbjorn Granlund [Fri, 3 Jun 1994 19:50:04 +0000 (19:50 +0000)]
(mulsi3): Use MATCH_DUP for op3, not MATCH_OPERAND.
(globally): Delete 'x' constraint or change it to 'f', as apropriate.
From-SVN: r7437
Richard Earnshaw [Fri, 3 Jun 1994 13:18:24 +0000 (13:18 +0000)]
(all patterns): Update instruction generation to reflect new meanings of constraints 'K' and 'L'.
(all patterns): Update instruction generation to reflect new meanings of
constraints 'K' and 'L'. Use output type 'B' to generate an inverted
constant. Use output type 'N' to generate a negated floating point
constant.
From-SVN: r7436
Richard Earnshaw [Fri, 3 Jun 1994 13:17:55 +0000 (13:17 +0000)]
(CONST_OK_FOR_LETTER_P): Only allow constants valid when inverted for 'K'.
Only allow constants valid when negated for 'L'.
From-SVN: r7435
Jeff Law [Fri, 3 Jun 1994 03:06:45 +0000 (21:06 -0600)]
pa.h (TARGET_SWITCHES): Enable TARGET_LONG_CALLS when TARGET_PORTABLE_RUNTIME is enabled.
* pa.h (TARGET_SWITCHES): Enable TARGET_LONG_CALLS when
TARGET_PORTABLE_RUNTIME is enabled.
* pa.c (output_call): If TARGET_LONG_CALLS is enabled, then emit
an inline long-call sequence.
* pa.md (millicode define_delay): Disable delay slots if
TARGET_LONG_CALLS.
(call_internal_reg, call_value_internal_reg): If TARGET_LONG_CALLS
is enabled, then emit an inline long-call sequence. Fix length
computation for TARGET_LONG_CALLS.
(millicode calls): Fix length computation for TARGET_LONG_CALLS.
From-SVN: r7434
Jeff Law [Fri, 3 Jun 1994 02:43:15 +0000 (20:43 -0600)]
* pa.h (ASM_DECLARE_FUNCTION_NAME): Fix typo.
From-SVN: r7433
Jason Merrill [Thu, 2 Jun 1994 22:28:22 +0000 (22:28 +0000)]
(expand_end_bindings): Don't bother emitting cleanups
after a barrier.
From-SVN: r7432
Richard Kenner [Thu, 2 Jun 1994 22:10:30 +0000 (18:10 -0400)]
(__floatdisf): Protect against double-rounding error.
From-SVN: r7431
Richard Kenner [Thu, 2 Jun 1994 21:47:39 +0000 (17:47 -0400)]
(define_function_unit): Remove ppc604 from sqrt list.
(divsi3, udivsi3): Remove spaces from PowerPC output templates.
(sqrtsf2, maxsf3, minsf3, sqrtdf2, maxdf3, mindf3): Use new macros.
(floatdidf2, fix_truncdfdi2, ffsdi2, muldi3, smuldi3_highpart,
umuldi3_highpart, divdi3, udivdi3, rotldi3): New patterns.
(movdi): Handle moves between FPRs and GPRs.
(scc insn): Correct swapped compare and delayed_compare attributes.
From-SVN: r7430
Richard Kenner [Thu, 2 Jun 1994 21:47:12 +0000 (17:47 -0400)]
(processor_target_table): Use new macros.
From-SVN: r7429
Richard Kenner [Thu, 2 Jun 1994 21:42:15 +0000 (17:42 -0400)]
(MASK_PPCFPX): Delete.
(MASK_PPC_GPOPT, MASK_PPC_GFXOPT, TARGET_PPC_GPOPT, TARGET_PPC_GFXOPT):
New Macros.
(TARGET_SWITCHES): Remove -mpowerpc-fpx; add -mpowerpc-gpopt
and -mpowerpc-gfxopt.
From-SVN: r7428
Richard Kenner [Thu, 2 Jun 1994 21:31:34 +0000 (17:31 -0400)]
(c_build_type_variant): Don't change TYPE_MAIN_VARIANT of new type.
From-SVN: r7427
Richard Earnshaw [Thu, 2 Jun 1994 18:41:52 +0000 (18:41 +0000)]
output_func_{prologue,epilogue}): Change declarations from output_{prologue,epilogue}.
output_func_{prologue,epilogue}): Change declarations from
output_{prologue,epilogue}.
(arm_output_llc, arithmetic_instr, output_arithmetic_with_immediate_mulitply,
output_arithmetic_with_shift, shift_instr): Delete function definition.
(ASM_OUTPUT_OPCODE): Delete.
(PRINT_OPERAND): Call arm_print_operand, instead of doing it directly.
(ARM_COMMENT_CHAR): New macro.
(ARM_REG_PREFIX): New macro.
(ARM_SIGN_EXTEND): New macro.
(PRINT_OPERAND_ADDRESS): Delete variable 'shift'. Change type of
variable 'offset' to HOST_WIDE_INT. Use arm_print_operand to handle
shifts in addresses.
From-SVN: r7426
Richard Earnshaw [Thu, 2 Jun 1994 18:41:52 +0000 (18:41 +0000)]
(all output patterns): Use new capabilities of arm_print_operand to simplify output sequences.
(all output patterns): Use new capabilities of arm_print_operand to
simplify output sequences. Mark position of condition code with '%?'.
From-SVN: r7425
Richard Earnshaw [Thu, 2 Jun 1994 18:41:52 +0000 (18:41 +0000)]
(ASM_FINAL_SPEC [CROSS_COMPILE]): Correct typo.
Update copyright message.
From-SVN: r7424
Richard Earnshaw [Thu, 2 Jun 1994 18:41:52 +0000 (18:41 +0000)]
(arm_condition_code): Move to start of file.
(const_pool_offset): Correct typo.
(fp_const_from_val): New function.
(all instruction generators): mark position where conditionalization
should be with '%?'.
(output_move_double): Use new '%m' output type to simplify load/store
multiple generation.
(shift_instr): Delete.
(shift_op): New function.
(output_arithmetic): Delete.
(output_arithmetic_with_shift): Delete.
(output_arithmetic_with_immediate_multiply): Delete.
(output_shifted_move): Delete.
(output_shift_compare): Delete.
(arm_print_operand): New function.
From-SVN: r7423
Richard Stallman [Thu, 2 Jun 1994 17:45:40 +0000 (17:45 +0000)]
[emacs]: Block input around the garbage reclamation.
Include blockinput.h.
From-SVN: r7422
Richard Kenner [Thu, 2 Jun 1994 12:13:33 +0000 (08:13 -0400)]
(expand_expr, case ADDR_EXPR): If result is ignored, just return
const0_rtx.
From-SVN: r7421
Richard Kenner [Thu, 2 Jun 1994 11:24:33 +0000 (07:24 -0400)]
Update comments.
From-SVN: r7420
Jason Merrill [Wed, 1 Jun 1994 23:00:15 +0000 (23:00 +0000)]
#define NO_IMPLICIT_EXTERN_C.
From-SVN: r7419
Richard Earnshaw [Wed, 1 Jun 1994 17:11:23 +0000 (17:11 +0000)]
(all insn and peephole patterns): Rewrite without using arm_output_asm_insn.
(matcher for movsi): New alternative to load symbol directly into a register.
Add new parameter in call to output_load_symbol.
From-SVN: r7418
Richard Earnshaw [Wed, 1 Jun 1994 17:10:50 +0000 (17:10 +0000)]
Delete some dead code.
(FUNCTION_{PROLOGUE,EPILOGUE}): Call output_func_{prologue,epilogue}.
(INITIAL_ELIMINATION_OFFSET): Inspect all registers, but only add those that
are not in call_used_regs.
(GO_IF_LEGITIMATE_INDEX): Change type of variable 'range' to HOST_WIDE_INT;
change type of variable 'code' to enum rtx_code.
(arm_output_asm_insn): Delete declaration.
(EXTRA_CONSTAINT): New constraint 'R' to match a constant pool label.
Make constraint 'S' never match when not optimizing.
(CONSTANT_ADDRESS_P): Only accept symbols marked with SYMBOL_REF_FLAG when
optimizing.
(ENCODE_SECTION_INFO): Don't mark any symbols when not optimizing.
(ASM_OUTPUT_REG_{PUSH,POP}: Don't call arm_increase_location.
(ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
From-SVN: r7417
Richard Earnshaw [Wed, 1 Jun 1994 17:09:29 +0000 (17:09 +0000)]
General tidy up.
#include <string.h>.
Declare some prototypes.
(output_memory_reference_mode): Change type to enum machine_mode.
(arm_const_nmoves): Delete.
(adjacent_mem_locations, {load,store}_multiple_operation): Explicitly
declare to return int.
({load,store}_multiple_operation): Change type of 'count', 'base' and 'i' to
HOST_WIDE_INT.
(output_add_immediate): Change type of 'n' to HOST_WIDE_INT.
(output_multi_immediate): Change type of Argument 'n' to HOST_WIDE_INT, if
wider than 32 bits, mask out the high bits.
(output_arithmetic_with_immediate_multiply): Change type of 'shift'
to HOST_WIDE_INT.
(output_func_{prologue,epilogue}): Renamed from output_{prologue,epilogue}.
Check all registers to see if they are live, but only push/pop them if they
are not in call_used_regs.
(const_pool_offset): New function.
(get_prologue_size): New function.
(output_func_prologue): Eliminate variable code_size.
(output_func_epilogue): Only call arm_increase_location when optimizing; also
add the size of the function just compiled, and the size of the prologue.
(arm_output_asm_insn): Delete. All callers changed to use output_asm_insn.
(arm_output_llc): Delete.
(output_load_symbol): New first parameter 'insn'. Rewrite so that assembler
can detect whether we made a mistake.
From-SVN: r7416
Richard Earnshaw [Wed, 1 Jun 1994 08:53:42 +0000 (08:53 +0000)]
(all patterns): length attribute now describes length in bytes.
From-SVN: r7415
Richard Earnshaw [Wed, 1 Jun 1994 08:52:15 +0000 (08:52 +0000)]
(short_branch): Convert length calculations to bytes
From-SVN: r7414
Jim Wilson [Wed, 1 Jun 1994 00:48:34 +0000 (17:48 -0700)]
(movesi_unaligned, movsi_ulw, movsi_usw): Delete.
(extv, extzv, insv, movsi_ulw, movsi_usw): New patterns.
From-SVN: r7413
Torbjorn Granlund [Wed, 1 Jun 1994 00:39:40 +0000 (00:39 +0000)]
(SECONDARY_MEMORY_NEEDED): Simplify.
(ADDITIONAL_REGISTER_NAMES): Define.
(CONDITIONAL_REGISTER_USAGE): Make PIC_OFFSET_TABLE_REGNUM fixed
again.
(FIRST_PSEUDO_REGISTER): Now 89.
(FIXED_REGISTERS): Delete 1.0 fp registers,
(CALL_USED_REGISTERS): Likewise.
(CONDITIONAL_REGISTER_USAGE): Almost deleted.
(REG_ALLOC_ORDER): Update register numbers.
(HARD_REGNO_NREGS): Delete special case for 1.0 fp registers.
(HARD_REGNO_MODE_OK): Rewrite. Don't allow use of odd fp registers
(enum reg_class): Delete HI_SNAKE_FP_REGS and FP_OR_SNAKE_FP_REGS.
(REG_CLASS_NAMES): Corresponding change.
(REG_CLASS_CONTENTS): Delete HI_SNAKE_FP_REGS and
FP_OR_SNAKE_FP_REGS. Make SNAKE_FP_REGS class contain all fp
registers. Update all values for changed register numbering.
(REGNO_REG_CLASS): Corresponding changes.
(REG_CLASS_FROM_LETTER): Delete 'y'.
(FP_REG_CLASS_P): No longer test HI_SNAKE_FP_REGS.
(CLASS_MAX_NREGS): Delete special case for 1.1 fp registers.
(FUNCTION_VALUE): Remove TARGET_SNAKE conditionals.
(LIBCALL_VALUE): Likewise.
(FUNCTION_ARG_REGNO_P): Likewise.
(FUNCTION_VALUE_REGNO_P): Likewise. Add registers 29 and 33.
(FUNCTION_ARG): Remove TARGET_SNAKE conditionals. Update register
numbers.
(REGNO_OK_FOR_FP_P): Update register number.
(REGISTER_NAMES): Delete special entries for 1.0 fp registers.
(DBX_REGISTER_NUMBER): Likewise.
From-SVN: r7412
Torbjorn Granlund [Wed, 1 Jun 1994 00:38:18 +0000 (00:38 +0000)]
(emit_move_sequence): Add missing argument to symbolic_operand.
(output_block_move): Prefer addl to add.
(print_operand): Print fp regs with L suffix when appropriate.
(output_arg_descriptor): Rewrite to accomodate new convention for
USE information.
(compute_frame_size): Update for changed register numbers.
Simplify loops over general registers to stop at register 4.
(hppa_expand_prologue): Likewise.
(hppa_expand_epilogue): Likewise.
From-SVN: r7411
Jim Wilson [Wed, 1 Jun 1994 00:23:46 +0000 (17:23 -0700)]
(dbxout_type): Always emit cross-references if
use_gnu_debug_info_extensions set.
From-SVN: r7410
Jim Wilson [Wed, 1 Jun 1994 00:23:08 +0000 (17:23 -0700)]
(output_source_line): Call xcoffout_source_line.
From-SVN: r7409
Jim Wilson [Wed, 1 Jun 1994 00:22:08 +0000 (17:22 -0700)]
(xcoff_lastfile): New variable.
(ABS_OR_RELATIVE_LINENO, ASM_OUTPUT_SOURCE_LINE): Define here.
(xcoffout_source_file, xcoffout_source_line): New functions.
(xcoffout_declare_function): Use xcoffout_source_file.
From-SVN: r7408
Jim Wilson [Wed, 1 Jun 1994 00:21:39 +0000 (17:21 -0700)]
(xcoff_lastfile): Declare.
(DBX_OUTPUT_MAIN_SOURCE_FILENAME): Clean up. Set xcoff_lastfile.
(ABS_OR_RELATIVE_LINENO, ASM_OUTPUT_SOURCE_LINE): Delete here.
(DBX_OUTPUT_SOURCE_FILENAME): Delete.
From-SVN: r7407
Jim Wilson [Wed, 1 Jun 1994 00:17:00 +0000 (17:17 -0700)]
(copy_loop_body): Copy CALL_INSN_FUNCTION_USAGE field.
From-SVN: r7406
Jim Wilson [Wed, 1 Jun 1994 00:04:46 +0000 (17:04 -0700)]
(ASM_SPEC): Don't pass -k when -pg or -p given.
(OVERRIDE_OPTIONS): Warn when disabling -fpic.
From-SVN: r7405
Jim Wilson [Tue, 31 May 1994 23:58:03 +0000 (16:58 -0700)]
(print_global_hdr): Remove "l" from printf format for flags.
(print_global_hdr): Remove "l" from printf format
for flags.
(print_sym_hdr): Add missing "l" to printf formats.
(print_symbol, print_file_desc): Likewise.
From-SVN: r7404
Jim Wilson [Tue, 31 May 1994 23:54:27 +0000 (16:54 -0700)]
(PUT_SDB_TYPE): Adjust value for compatibility with GNU960 toolchain.
From-SVN: r7403
Jim Wilson [Tue, 31 May 1994 23:37:39 +0000 (16:37 -0700)]
New file.
From-SVN: r7402
Jim Wilson [Tue, 31 May 1994 23:32:03 +0000 (16:32 -0700)]
(LIB_SPEC): Don't link in /usr/lib/bb_link.o with -a.
(CONDITIONAL_REGISTER_USAGE): When -a, make %g1 and %g2 fixed.
From-SVN: r7401
Doug Evans [Tue, 31 May 1994 23:31:48 +0000 (23:31 +0000)]
(main): -MG doesn't make sense with -MD or -MMD!
From-SVN: r7400
Torbjorn Granlund [Tue, 31 May 1994 23:17:21 +0000 (23:17 +0000)]
(movsi matcher): Use ldi for moving of 0 to a reg.
(movhi matcher): Likewise.
(movqi matcher): Likewise.
(many patterns): Prefer addl to add, and shNaddl to shNadd.
(define_split for (plus (reg) (large_constant))): Cleanup.
(divsi3): Use match_dup for operand 3, not match_operand.
(udivsi3): Likewise.
(modsi3): Likewise.
(umodsi3): Likewise.
From-SVN: r7399
Doug Evans [Tue, 31 May 1994 23:15:01 +0000 (23:15 +0000)]
(v_pedwarn_with_decl): Don't even issue warnings from
pedantic errors in system header files.
From-SVN: r7398
Richard Kenner [Tue, 31 May 1994 21:16:25 +0000 (17:16 -0400)]
(extendqidi2, extendqisi2, extendqihi2): Remove non-existent lba instruction.
(ashrdi3): Undo previous change.
From-SVN: r7397
Jason Merrill [Tue, 31 May 1994 19:31:18 +0000 (19:31 +0000)]
(lang_options): Add -f{no-,}implicit-templates.
(compile_file): Don't output SDB debugging info for
externals.
From-SVN: r7396
Richard Kenner [Tue, 31 May 1994 11:20:06 +0000 (07:20 -0400)]
(note_addr_stored): A SET or CLOBBER of a BLKmode MEM means that all
memory is clobbered.
From-SVN: r7395
Richard Kenner [Tue, 31 May 1994 11:19:37 +0000 (07:19 -0400)]
(expand_asm_operands): Make MEM with BLKmode for clobber of "memory".
From-SVN: r7394
Doug Evans [Mon, 30 May 1994 18:01:10 +0000 (18:01 +0000)]
(print_deps_missing_files): New global.
(main): New argument -MG. Treat missing include files as
generated files and output dependencies for them.
From-SVN: r7393
Doug Evans [Mon, 30 May 1994 17:58:54 +0000 (17:58 +0000)]
(default_compilers): Pass -MG to cpp if present.
(option_map): New option --print-missing-file-dependencies/-MG.
From-SVN: r7392