Commit Graph

398 Commits

Author SHA1 Message Date
Jason Merrill
c17704b310 (COLLECT_SUPPRESS_OPTIONS): Define to "E".
From-SVN: r8154
1994-09-28 00:11:55 +00:00
Jeff Law
42fbe27f77 pa.c (emit_move_sequence): Handle secondary FP load/store reloads of the form (subreg (mem (plus (reg)...
* pa.c (emit_move_sequence): Handle secondary FP load/store
	reloads of the form (subreg (mem (plus (reg) (disp)))).
	(secondary_reload_class): A secondary register is needed to handle
	out-of-range FP loads and stores.
	* pa.md (reload_indf, reload_outdf): New expanders.
	(reload_insf, reload_outsf): Likewise.

From-SVN: r8077
1994-09-13 10:41:03 -06:00
Richard Kenner
4b303b50bc (ADA_CFLAGS): New override.
From-SVN: r8076
1994-09-12 18:15:28 -04:00
Jeff Law
667f675947 pa.h (FUNCTION_ARG): Use indirect calling conventions when TARGET_LONG_CALLS is in effect.
* pa.h (FUNCTION_ARG): Use indirect calling conventions when
	TARGET_LONG_CALLS is in effect.

From-SVN: r7957
1994-08-21 21:15:12 -06:00
Jeff Law
6b2821189a pa.h (ASM_OUTPUT_ALIGNED_COMMON, [...]): Define.
* pa.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
	Define.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.

From-SVN: r7927
1994-08-14 19:57:21 -06:00
Jeff Law
2ebb1b4217 pa.c (hppa_expand_prologue): Avoid writing outside the current stack boundary in code to handle large stack...
* pa.c (hppa_expand_prologue): Avoid writing outside the current
	stack boundary in code to handle large stack frames.

From-SVN: r7926
1994-08-14 19:55:59 -06:00
Jeff Law
8d768fa2ae pa.md (default set high): Do not accept function label arithmetic as a valid operand.
* pa.md (default set high): Do not accept function label arithmetic
	as a valid operand.
	(default lo_sum): Likewise.

From-SVN: r7883
1994-08-09 00:03:07 -06:00
Jeff Law
326bc2de1d pa.c (hppa_legitimize_address): Do nothing with function label arithmetic.
* pa.c (hppa_legitimize_address): Do nothing with function label
	arithmetic.
	(emit_move_sequence): Split up function label arithmetic so that
	function's address is loaded first, then constant part is added to
	the function's address.
	(is_function_label_plus_const): New function.

From-SVN: r7882
1994-08-09 00:03:07 -06:00
Jeff Law
b93f0d4924 pa-ghpux.h, pa-hpux.h (LINK_SPEC): Any -g argument implies static linking.
* pa-ghpux.h, pa-hpux.h (LINK_SPEC): Any -g argument implies
	static linking.

From-SVN: r7843
1994-08-01 03:21:48 -06:00
Richard Kenner
311b7cd795 (print_operand): Integer CONST_DOUBLE is DImode.
From-SVN: r7836
1994-07-30 15:06:58 -04:00
Torbjorn Granlund
b87ef81e35 (USE_C_ALLOCA): Define.
From-SVN: r7759
1994-07-13 11:09:55 +00:00
Jeff Law
a08e749380 pa.h (GO_IF_LEGITIMATE_ADDRESS): Only allow immediate addressing using 5 bits to avoid losing with FP loads and...
* pa.h (GO_IF_LEGITIMATE_ADDRESS): Only allow immediate addressing
        using 5 bits to avoid losing with FP loads and stores on page zero.

From-SVN: r7752
1994-07-12 14:23:58 -06:00
Jeff Law
6a5c0a8e26 pa.h (DEBUGGER_ARG_OFFSET): Define.
* pa.h (DEBUGGER_ARG_OFFSET): Define.  If no frame pointer
        is available, then adjust the offset by the size of the
        current frame.

From-SVN: r7713
1994-07-11 14:45:30 -06: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
Jeff Law
2e7e71216f pa.h (DEBUGGER_AUTO_OFFSET): Define.
* pa.h (DEBUGGER_AUTO_OFFSET): Define.  If no frame pointer
	is available, then adjust the offset by the size of the current
	frame.

From-SVN: r7509
1994-06-16 23:43:06 -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
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
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
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
Torbjorn Granlund
b16656f641 (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
1994-05-31 23:17:21 +00:00
Torbjorn Granlund
7d558bfe5f (call): Force address into register in non-symbol case.
(call_value): Likewise.

From-SVN: r7380
1994-05-28 10:25:01 +00:00
Jeff Law
8c9f069480 pa-ghiux.h (LIB_SPEC): Remove last change until we've got the go ahead from HP to distribute...
* pa-ghiux.h (LIB_SPEC): Remove last change until we've got the
	go ahead from HP to distribute /usr/lib/end.o.
	* pa-ghpux.h, pa-hiux.h, pa-ghiux.h: Likewise.

From-SVN: r7014
1994-04-10 02:50:04 -06:00
Jeff Law
5625b0521d pa-ghiux.h (LIB_SPEC): Link in /usr/lib/end.o
* pa-ghiux.h (LIB_SPEC): Link in /usr/lib/end.o
        * pa-ghpux.h, pa-hiux.h, pa-hpux.h (LIB_SPEC): Likewise.

From-SVN: r6967
1994-04-04 23:21:29 -06:00
Jeff Law
2822d96ec1 pa.h (ASM_OUTPUT_LABEL): TARGET_GAS no longer needs trailing colons.
* pa.h (ASM_OUTPUT_LABEL): TARGET_GAS no longer needs trailing colons.
        (ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_COMMON): Likewise.

        * pa.h (TARGET_PORTABLE_RUNTIME): Define.
        (TARGET_SWITCHES): Add -mportable-runtime and -mno-portable-runtime.
        (CUMULATIVE_ARGS): Now a "struct hppa_args" rathern than an int.
        All references changed.
        (INIT_CUMULATIVE_ARGS): Also initialize nargs_prototype.
        (INIT_CUMULATIVE_INCOMING_ARGS): Define.
        (FUNCTION_ARG_ADVANCE): Decrement nargs_prototype for each arg seen.
        (FUNCTION_ARG): Handle TARGET_PORTABLE_RUNTIME.
        (ASM_DECLARE_FUNCTION_NAME): Explicitly disallow argument relocations
        for TARGET_PORTABLE_RUNTIME.
        (ASM_OUTPUT_INT): Do not use a P% prefix for function references
        if TARGET_PORTABLE_RUNTIME.

        * pa.md (high and lo_sum for function addresses): Provide alternate
        definitions for TARGET_PORTABLE_RUNTIME.

        * pa.c (output_arg_descriptor): Explicitly disallow argument
        relocations for TARGET_PORTABLE_RUNTIME.

From-SVN: r6954
1994-03-31 23:09:25 -07:00
Jeff Law
fa6bc669de pa.h (DBX_REGISTER_NUMBER): Fix numerous bugs in handling of FP registers and the SAR register.
* pa.h (DBX_REGISTER_NUMBER): Fix numerous bugs in handling
        of FP registers and the SAR register.

From-SVN: r6868
1994-03-25 11:39:40 -07:00
Jeff Law
608f0dd2b1 pa.h (INITIALIZE_TRAMPOLINE): Do not mask off high bits of address passed to icacheflush.
* pa.h (INITIALIZE_TRAMPOLINE): Do not mask off high
        bits of address passed to icacheflush.

From-SVN: r6801
1994-03-16 10:06:39 -07:00
Jeff Law
3c9a7b64d9 pa.h (WCHAR_TYPE): Use "unsigned int" by default.
* pa.h (WCHAR_TYPE): Use "unsigned int" by default.
	(WCHAR_TYPE_SIZE): Change appropriately.
	* pa-ghiux.h, pa-ghpux.h, pa-gux7.h, pa-hiux.h, pa-hpux.h,
	pa-hpux7.h (WCHAR_TYPE): Delete definition.
	(WCHAR_TYPE_SIZE): Likewise.
	* pa-osf.h (WCHAR_TYPE): Override appropriately for OSF1.
	(WCHAR_TYPE_SIZE): Likewise.

From-SVN: r6800
1994-03-16 10:05:24 -07:00
Jeff Law
d13a220a06 * pa.md (DImode lo_sum): Add earlyclobber for alternative one.
From-SVN: r6799
1994-03-16 10:03:01 -07:00
Jeff Law
cface0264d pa.h (ASM_OUTPUT_ADDR_DIFF_ELT): Rewrite to match ASM_OUTPUT_ADDR_VEC_ELT which is PIC-safe.
* pa.h (ASM_OUTPUT_ADDR_DIFF_ELT): Rewrite to match
	ASM_OUTPUT_ADDR_VEC_ELT which is PIC-safe.

From-SVN: r6798
1994-03-16 10:01:27 -07:00
Jeff Law
5921f26b9d * pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Define.
From-SVN: r6525
1994-02-10 13:58:23 -07:00
Jeff Law
abb6b72073 pa.h (ASM_OUTPUT_SOURCE_LINE): Make the first source line stab for each procedure special to avoid the need...
* pa.h (ASM_OUTPUT_SOURCE_LINE): Make the first source
	line stab for each procedure special to avoid the need
	for nasty hacks in GAS.

From-SVN: r6402
1994-01-19 23:08:37 -07:00
Jeff Law
ac7198efaf * pa.md (iorscc): Fix typo.
From-SVN: r6401
1994-01-19 23:05:32 -07:00
Torbjorn Granlund
9153589571 (ASM_GLOBALIZE_LABEL): Don't globalize function labels here.
From-SVN: r6400
1994-01-20 00:34:47 +00:00
Jeff Law
3f935c0b1d * pa.md (special indexed fpstores): Fix assorted typos.
From-SVN: r6363
1994-01-09 20:30:24 -07: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
Richard Kenner
4f074454bb Define CAN_DEBUG_WITHOUT_FP; delete OPTIMIZATION_OPTIONS.
From-SVN: r6348
1993-12-31 06:55:27 -05:00
Jeff Law
75600ead0c pa.h (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
* pa.h (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
        (ASM_OUTPUT_SOURCE_LINE): Likewise.
        (DBX_FUNCTION_FIRST): Likewise.

        * pa.h (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Change to %r3
        for compatability with HP compilers.

        * pa.h (READONLY_DATA_SECTION): Re-enable use of $LIT$.

From-SVN: r6325
1993-12-25 21:46:37 -07:00
Torbjorn Granlund
2f95ebc26b (iorscc): New recognizer.
2 new recognizers for sub;subb.  1 new recognizer for addi;subb.
(movstrsi): Remove predicates.  Set inline threshold to 8.
(umulsidi3): Change predicates to nonimmediate_operand.
New recognizer for multiply-by-immediate.
(andsi3): Add `!' for register alternative.
(vdepi_ior, vdepi_and): New recognizers.
(vextru rx,1,ry, vextrs rx,1,ry): New recognizers.
(call, call_value): If PIC, emit USE for for
PIC_OFFSET_TABLE_REGNUM.  Use PIC_OFFSET_TABLE_REGNUM rather than 19.

From-SVN: r6294
1993-12-24 03:13:01 +00:00
Torbjorn Granlund
5a1c10de98 (FUNCTION_INCOMING_ARG): Delete definition.
(RTX_COSTS) [PLUS]: Rewrite.
(output_scc_insn): Delete.
(output_floatsisf2): Delete.
(output_floatsidf2): Delete.
(PREDICATE_CODES): Define, but leave within #if 0 for now.
(CONDITIONAL_REGISTER_USAGE): Never make
PIC_OFFSET_TABLE_REGNUM fixed.
(INITIALIZE_PIC): Delete.

From-SVN: r6293
1993-12-24 03:11:57 +00:00
Torbjorn Granlund
23f6f34fca (Several places): Declare values from INTVAL(x) as HOST_WIDE_INT.
(uint32_operand): New function.
(output_block_move): Change unroll threshold from 64 to 32.
(compute_movstrsi_length): Corresponding change.
(print_operand): Don't call debug_rtx, just abort.
(initialize_pic): Delete.
(finalize_pic): Use PIC_OFFSET_TABLE_REGNUM rather than 19.

From-SVN: r6292
1993-12-24 03:10:48 +00:00
Jeff Law
77541d4e83 pa.h (ASM_GENERATE_INTERNAL_LABEL): Always use L$ as the prefix for internal labels.
* pa.h (ASM_GENERATE_INTERNAL_LABEL): Always use L$ as the prefix
        for internal labels.
        (ASM_OUTPUT_INTERNAL_LABEL): Likewise.

From-SVN: r6252
1993-12-21 11:06:57 -07:00
Jeff Law
14dc90724e pa.c (output_function_prologue): Use ASM_GENERATE_INTERNAL_LABEL rather than generating one on its own.
* pa.c (output_function_prologue): Use ASM_GENERATE_INTERNAL_LABEL
        rather than generating one on its own.

From-SVN: r6251
1993-12-21 11:06:48 -07:00
Jeff Law
3bf35ccb68 pa.c (compute_frame_size): Remove implicit assumption that %r4 is the frame pointer.
* pa.c (compute_frame_size): Remove implicit assumption that
	%r4 is the frame pointer.

From-SVN: r6247
1993-12-16 16:24:35 -07:00
Jeff Law
ba0bfdacea pa.c (output_function_prologue): Reverse last change.
* pa.c (output_function_prologue): Reverse last change.  Output
        both the function label and the .PROC here.
        * pa.h (ASM_DECLARE_FUNCTION_NAME): Do not output the function
        label or the .PROC here.

From-SVN: r6246
1993-12-16 14:14:18 -07:00
Jeff Law
9473a84ff3 pa.c (output_call): Put temporary label after the RP adjustment.
* pa.c (output_call): Put temporary label after the
        RP adjustment.  "- 8" adjustment is no longer necessary.

From-SVN: r6235
1993-12-14 16:00:41 -07:00
Jeff Law
94c17ca5e6 * x-pa (CC): Do not use absolute path to gcc.
From-SVN: r6234
1993-12-14 15:59:35 -07:00