Commit Graph

7440 Commits

Author SHA1 Message Date
Ian Lance Taylor
86bb0d5f7b Wrap assert.h in extern "C" { }
From-SVN: r7453
1994-06-14 20:01:08 +00:00
Jeff Law
3480bb9842 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
1994-06-14 13:18:43 -06:00
Jeff Law
36e2f858ba 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
1994-06-14 13:16:07 -06:00
Jeff Law
d061684267 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
1994-06-14 13:14:26 -06:00
Richard Earnshaw
b5cc037f4b (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
1994-06-06 13:14:03 +00:00
Richard Earnshaw
fe241a29e3 (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
1994-06-06 13:14:03 +00:00
Richard Earnshaw
9c8728721e (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
1994-06-06 13:14:03 +00:00
Doug Evans
88e7060674 (__gnuc_va_list): Use instead of va_list.
From-SVN: r7446
1994-06-05 01:06:20 +00:00
Doug Evans
e9e218294b (*): Use __gnuc_va_list, not va_list.
From-SVN: r7445
1994-06-05 01:05:11 +00:00
Richard Earnshaw
4eda77ec3e (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
1994-06-04 11:17:23 +00:00
Richard Earnshaw
916cc8c5aa (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
1994-06-04 11:17:23 +00:00
Richard Earnshaw
1d5473cbe4 (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
1994-06-04 11:17:23 +00:00
Doug Evans
b3de8b7505 (make_decl_rtl): If section attribute is being ignored, really ignore it.
From-SVN: r7441
1994-06-03 22:13:55 +00:00
Doug Evans
f58e9815f7 (decl_attributes): Fix section attribute breakage.
From-SVN: r7440
1994-06-03 22:12:54 +00:00
Mike Stump
a0a339271a 39th Cygnus<->FSF merge
From-SVN: r7439
1994-06-03 21:42:31 +00:00
Torbjorn Granlund
5345f91a0b (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
1994-06-03 19:50:48 +00:00
Torbjorn Granlund
0b27d5ddb2 (mulsi3): Use MATCH_DUP for op3, not MATCH_OPERAND.
(globally): Delete 'x' constraint or change it to 'f', as apropriate.

From-SVN: r7437
1994-06-03 19:50:04 +00:00
Richard Earnshaw
68df59d392 (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
1994-06-03 13:18:24 +00:00
Richard Earnshaw
aef1764cb3 (CONST_OK_FOR_LETTER_P): Only allow constants valid when inverted for 'K'.
Only allow constants valid when negated for 'L'.

From-SVN: r7435
1994-06-03 13:17:55 +00:00
Jeff Law
f726ea7dd5 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
1994-06-02 21:06:45 -06:00
Jeff Law
b99e1ee9e9 * pa.h (ASM_DECLARE_FUNCTION_NAME): Fix typo.
From-SVN: r7433
1994-06-02 20:43:15 -06:00
Jason Merrill
413ec213e4 (expand_end_bindings): Don't bother emitting cleanups
after a barrier.

From-SVN: r7432
1994-06-02 22:28:22 +00:00
Richard Kenner
d9e1ab8d4e (__floatdisf): Protect against double-rounding error.
From-SVN: r7431
1994-06-02 18:10:30 -04:00
Richard Kenner
a473029f5c (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
1994-06-02 17:47:39 -04:00
Richard Kenner
68c49ffa40 (processor_target_table): Use new macros.
From-SVN: r7429
1994-06-02 17:47:12 -04:00
Richard Kenner
583cf4db89 (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
1994-06-02 17:42:15 -04:00
Richard Kenner
ba5ce70d08 (c_build_type_variant): Don't change TYPE_MAIN_VARIANT of new type.
From-SVN: r7427
1994-06-02 17:31:34 -04:00
Richard Earnshaw
7bc7696cba 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
1994-06-02 18:41:52 +00:00
Richard Earnshaw
c63165beb4 (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
1994-06-02 18:41:52 +00:00
Richard Earnshaw
ef65c0dcdf (ASM_FINAL_SPEC [CROSS_COMPILE]): Correct typo.
Update copyright message.

From-SVN: r7424
1994-06-02 18:41:52 +00:00
Richard Earnshaw
9997d19d6d (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
1994-06-02 18:41:52 +00:00
Richard Stallman
945388edd6 [emacs]: Block input around the garbage reclamation.
Include blockinput.h.

From-SVN: r7422
1994-06-02 17:45:40 +00:00
Richard Kenner
119af78aa8 (expand_expr, case ADDR_EXPR): If result is ignored, just return
const0_rtx.

From-SVN: r7421
1994-06-02 08:13:33 -04:00
Richard Kenner
94b25f81ca Update comments.
From-SVN: r7420
1994-06-02 07:24:33 -04:00
Jason Merrill
302499a9fe #define NO_IMPLICIT_EXTERN_C.
From-SVN: r7419
1994-06-01 23:00:15 +00:00
Richard Earnshaw
0f447ef2fc (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
1994-06-01 17:11:23 +00:00
Richard Earnshaw
008cf58a2b 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
1994-06-01 17:10:50 +00:00
Richard Earnshaw
f3bb6135f6 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
1994-06-01 17:09:29 +00:00
Richard Earnshaw
a1dc0475d6 (all patterns): length attribute now describes length in bytes.
From-SVN: r7415
1994-06-01 08:53:42 +00:00
Richard Earnshaw
5472d00b23 (short_branch): Convert length calculations to bytes
From-SVN: r7414
1994-06-01 08:52:15 +00:00
Jim Wilson
c5563e117b (movesi_unaligned, movsi_ulw, movsi_usw): Delete.
(extv, extzv, insv, movsi_ulw, movsi_usw): New patterns.

From-SVN: r7413
1994-05-31 17:48:34 -07:00
Torbjorn Granlund
a40ed31be5 (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
1994-06-01 00:39:40 +00:00
Torbjorn Granlund
80225b66a6 (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
1994-06-01 00:38:18 +00:00
Jim Wilson
e65f61cfe4 (dbxout_type): Always emit cross-references if
use_gnu_debug_info_extensions set.

From-SVN: r7410
1994-05-31 17:23:46 -07:00
Jim Wilson
b2526fe621 (output_source_line): Call xcoffout_source_line.
From-SVN: r7409
1994-05-31 17:23:08 -07:00
Jim Wilson
3fe49c0021 (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
1994-05-31 17:22:08 -07:00
Jim Wilson
9459d8f57e (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
1994-05-31 17:21:39 -07:00
Jim Wilson
2d98fe23f4 (copy_loop_body): Copy CALL_INSN_FUNCTION_USAGE field.
From-SVN: r7406
1994-05-31 17:17:00 -07:00
Jim Wilson
b877b5ab3e (ASM_SPEC): Don't pass -k when -pg or -p given.
(OVERRIDE_OPTIONS): Warn when disabling -fpic.

From-SVN: r7405
1994-05-31 17:04:46 -07:00
Jim Wilson
6ba295268b (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
1994-05-31 16:58:03 -07:00