Commit Graph

307 Commits

Author SHA1 Message Date
Jeff Law
42e86f8524 pa.md (zero_extendqihi2): No need to explicitly set a length, the defaults are correct.
* pa.md (zero_extendqihi2): No need to explicitly set a length,
        the defaults are correct.
        (zero_extendqisi2, floatsisf2, floatsidf2): Likewise.
        (floatdisf2, floatdidf2, fix_truncsfsi2): Likewise.
        (fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2): Likewise.

From-SVN: r5181
1993-08-18 10:26:12 -06:00
Jeff Law
1bc695cdac pa.c (emit_move_sequence): Check both reload_in_progress and reload_completed when...
* pa.c (emit_move_sequence): Check both reload_in_progress and
	reload_completed when choosing a scratch/temporary register.

From-SVN: r5180
1993-08-18 00:50:55 -06:00
Jeff Law
44552b6a5b pa.md (high for symbolic operands): TARGET_KERNEL version is now default.
* pa.md (high for symbolic operands): TARGET_KERNEL version is
        now default.  Delete ! TARGET_KERNEL version.

From-SVN: r5179
1993-08-18 00:45:51 -06:00
Jeff Law
ba365a1952 pa.c (emit_move_sequence): Always handle secondary reloads for symbolic addresses.
* pa.c (emit_move_sequence): Always handle secondary reloads for
        symbolic addresses.
        (secondary_reload_class): Symbolic operands always need a secondary
        reload from R1_REGS if their target class is not R1_REGS.

From-SVN: r5178
1993-08-18 00:45:41 -06:00
Jeff Law
6641552950 * pa.h (TARGET_KERNEL): Delete switch and all references to it.
From-SVN: r5177
1993-08-18 00:45:29 -06:00
Jeff Law
7b0ba51e9b pa-hpux.h (DEFAULT_GDB_EXTENSIONS): Turn GDB extensions off.
* pa-hpux.h (DEFAULT_GDB_EXTENSIONS): Turn GDB extensions off.
        * pa-hpux7.h (DEFAULT_GDB_EXTENSIONS): Likewise.

From-SVN: r5176
1993-08-18 00:41:27 -06:00
Jeff Law
794b7f5667 * pa.h (DEFAULT_GDB_EXTENSIONS): GDB extensions are on by default.
From-SVN: r5175
1993-08-18 00:38:13 -06:00
Jeff Law
9a735993c7 pa-ghpux.h (TARGET_DEFAULT): Enable TARGET_GAS.
* pa-ghpux.h (TARGET_DEFAULT): Enable TARGET_GAS.
        * pa-gux7.h, pa-utahmach.h, pa.h (TARGET_DEFAULT): Likewise.
        * pa1-ghpux.h, pa1-utahmach.h, pa1.h (TARGET_DEFAULT): Likewise.

From-SVN: r5174
1993-08-18 00:35:21 -06:00
Jeff Law
c87ba6712c pa.h (TARGET_GAS): New target flag to control use of GAS specific assembler directives.
* pa.h (TARGET_GAS): New target flag to control use of GAS specific
        assembler directives.
        (TARGET_SWITCHES): Support -mgas and -mno-gas.
        (ASM_DECLARE_FUNCTION_NAME): If TARGET_GAS, then emit .PARAM directives
        for static functions so that argument relocations work.

From-SVN: r5173
1993-08-18 00:34:51 -06:00
Jeff Law
7426c95997 pa.c (hppa_legitimize_address): Rework address computation for x[n - m] so that problems with implicit space...
* pa.c (hppa_legitimize_address): Rework address computation
        for x[n - m] so that problems with implicit space register
        selection are avoided.

From-SVN: r5172
1993-08-18 00:28:39 -06:00
Jeff Law
e30f390e6f * pa.h (EXTRA_CONSTRAINT): Delete unused 'S' constraint.
From-SVN: r5171
1993-08-18 00:23:25 -06:00
Jeff Law
9ec9ad5798 pa.md (call_internal_symref): Make pattern unavailable if TARGET_LONG_CALLS.
* pa.md (call_internal_symref): Make pattern unavailable if
        TARGET_LONG_CALLS.
        (call_value_internal_symref): Likewise.

From-SVN: r5170
1993-08-18 00:22:49 -06:00
Jeff Law
7033d44cd6 * pa.h (DOLLARS_IN_IDENTIFIERS): Define as 2.
From-SVN: r5128
1993-08-10 10:56:29 -06:00
Jim Wilson
02892e0694 Add new parameter to move_block_from_reg calls.
From-SVN: r5018
1993-07-28 10:21:14 -07:00
Jeff Law
3f729fda85 pa.c (emit_move_sequence): Use cint_ok_for_move instead of checking each condition ourselves.
* pa.c (emit_move_sequence): Use cint_ok_for_move instead of
	checking each condition ourselves.

From-SVN: r4918
1993-07-14 10:28:04 -06:00
Jeff Law
879d206e01 pa-utahmach.h (CPP_PREDEFINES): Do not define HPUX_SOURCE, hp700, or HP700.
* pa-utahmach.h (CPP_PREDEFINES): Do not define HPUX_SOURCE, hp700,
	or HP700.

From-SVN: r4917
1993-07-14 10:26:07 -06:00
Jeff Law
f854c12c08 pa.md (uncond_branch): New type attribute.
* pa.md (uncond_branch): New type attribute.  Explicitly disallow
	uncond_branch in most delay slots.
	(in_call_delay attribute): New test for delay slot of call insns.
	Allow uncond_branches in the delay slot if TARGET_JUMP_IN_DELAY.
	(define_delay for calls, millicode calls, branches, returns, etc):
	Broken up into two define delays.  One for calls and millicode
	calls, a second for branches, returns, etc.
	(millicode insns): Pass the current insn down to
	output_{mul,div,mod}_insn.
	(jump insn): Use "uncond_branch" type attribute.  Length of this
	insn varies if it is in the delay slot of a call.
	(call_internal_symref): Use output_call.
	(call_value_internal_symref): Likewise.
	(call_internal_reg): Use %r syntax instead of just register numbers.
	(call_value_internal_reg): Likewise.

From-SVN: r4916
1993-07-14 10:23:19 -06:00
Jeff Law
2c4ff308b9 pa.c (output_call): New function to output a function call or millicode call...
* pa.c (output_call): New function to output a function call or
	millicode call, possibly with a jump in the delay slot.
	(output_mul_insn): Accept additional argument, use output_call.
	(output_div_insn): Likewise.
	(output_mod_insn): Likewise.
	(jump_in_call_delay): New function to determine if the given
	JUMP_INSN is in the delay slot of a call or millicode call.

From-SVN: r4915
1993-07-14 10:22:49 -06:00
Jeff Law
0a1daad47e pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow jump instructions in call delay slots.
* pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow
	jump instructions in call delay slots.
	(TARGET_SWITCHES): Add -mjump-in-delay and -mno-jump-in-delay.
	Provide -mno alternatives for most options.
	(output_call): Declare.

From-SVN: r4914
1993-07-14 10:22:23 -06:00
Jeff Law
2be154deb4 pa.md (dbra and movb patterns): Fix constraints so that FP registers are never preferred.
* pa.md (dbra and movb patterns): Fix constraints so that FP
	registers are never preferred.

From-SVN: r4897
1993-07-09 18:39:51 -06:00
Jeff Law
1400469c00 Fix typos in last change.
From-SVN: r4896
1993-07-09 17:36:57 -06:00
Jeff Law
4c2164b713 pa.md (default length define_attr): Lengths are in bytes now.
* pa.md (default length define_attr): Lengths are in bytes now.
        (asm_attributes): Likewise.
        (delay slot attributes): Deal with lengths in bytes.
        (explicit length computations): Compute length in bytes.

From-SVN: r4891
1993-07-09 14:29:50 -06:00
Jeff Law
a1b36964f8 pa.c (compute_movstrsi_length): Return length in bytes.
* pa.c (compute_movstrsi_length): Return length in bytes.
        (pa_adjust_insn_length): Return adjustment in bytes.
        (output_cbranch): Handle lengths as bytes.
        (output_bb, output_dbra, output_movb): Likewise.

From-SVN: r4890
1993-07-09 14:29:36 -06:00
Jeff Law
2af5b845e6 * pa.h (CASE_VECTOR_MODE): Change to DImode.
From-SVN: r4889
1993-07-09 14:29:17 -06:00
Jeff Law
b1a275e1e0 pa.c (pa_adjust_insn_length): dbra and movb insns which have their output in a FP register do not need adjustment.
* pa.c (pa_adjust_insn_length): dbra and movb insns which have
        their output in a FP register do not need adjustment.
        (output_cbranch, output_bb): Handle conditional jump to the
        following instruction.
        (output_dbra): New function extracted from dbra pattern.
        (output_movb): New function.
        (eq_neq_comparison_operator): New function.
        (movb_comparison_operator): New function.

From-SVN: r4888
1993-07-09 14:22:50 -06:00
Jeff Law
98b2d88783 pa.md (dbra pattern): Use output_dbra.
* pa.md (dbra pattern): Use output_dbra.
        (dbra pattern #2): New pattern.  Also use output_dbra.
        (movb, inverted movb): New patterns.

From-SVN: r4887
1993-07-09 14:22:15 -06:00
Jeff Law
6bd5174eb2 * pa.h (output_dbra, output_movb): Declare.
From-SVN: r4886
1993-07-09 14:21:56 -06:00
Jeff Law
b9821af87b pa.c (pa_adjust_insn_length): Rewrite so that it only adjusts insns which really need adjustment.
* pa.c (pa_adjust_insn_length): Rewrite so that it only adjusts
        insns which really need adjustment.
        (output_cbranch): Rework so that output templates are simpler.
        Use shorter sequence for long backwards conditional branches with
        a filled delay slot that is nullified.  More agressively use "skip"
        instructions.  More agressively nullify the delay slot if nothing
        useful could be placed there.
        (output_bb): Likewise.
	(forward_branch_p): New function.

From-SVN: r4875
1993-07-07 14:40:06 -06:00
Jeff Law
f65590a907 pa.md (conditional branches): Use the full displacement range for the branch target.
* pa.md (conditional branches): Use the full displacement range
        for the branch target.  Update length computations to match current
        reality.
        (branch on bit patterns): Likewise.
        (decrement_and_branch_until_zero): Re-enable pattern.  Rewrite to
        be simpler and more efficient.  Also handle case where loop counter
        is in a FP register.

From-SVN: r4874
1993-07-07 14:38:50 -06:00
Jeff Law
5d5c854105 pa.md (call expanders): Emit different patterns for named calls and indirect calls.
* pa.md (call expanders): Emit different patterns for named calls
	and indirect calls.
	(call_internal_symref, call_internal_reg): New patterns.
	(call_internal): Deleted.  Now handled by call_interal_{symref,reg}.
	(call_value_internal_symref, call_value_internal_reg): New patterns.
	(call_value_internal): Deleted.  Now handled by
	call_value_internal_{symref,reg).

From-SVN: r4837
1993-07-03 16:55:32 -06:00
Jeff Law
9c9a6f426c * pa.c (call_operand_address): Do not accept registers anymore.
From-SVN: r4836
1993-07-03 16:55:17 -06:00
Jeff Law
c0d80b8819 pa.h (OVERRIDE_OPTIONS): Define.
* pa.h (OVERRIDE_OPTIONS): Define.  Give a warning if -fpic or
	-fPIC was specified on the command line.

From-SVN: r4820
1993-07-01 14:20:28 -06:00
Jeff Law
500839a3a7 pa-utahmach.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Do not define here.
* pa-utahmach.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Do not define here.
	* pa1-utahmach.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Likewise.
	* pa1-ghpux.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Likewise.
	* pa1-hpux.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Likewise.

From-SVN: r4819
1993-07-01 13:25:26 -06:00
Jeff Law
818d327a38 * pa-hpux7.h (HP_FP_ARG_DESCRIPTOR_REVERSED): Define.
From-SVN: r4818
1993-07-01 13:23:44 -06:00
Jeff Law
22d6e660fe pa.c (output_arg_descriptor): Reverse polarity of test for HP_FP_ARG_DESCRIPTOR_REVERSED.
* pa.c (output_arg_descriptor): Reverse polarity of test for
	HP_FP_ARG_DESCRIPTOR_REVERSED.
	* pa.h (ASM_DOUBLE_ARG_DESCRIPTORS): Likewise.

From-SVN: r4817
1993-07-01 13:22:47 -06:00
Jeff Law
b432d50d82 Initial revision
From-SVN: r4816
1993-07-01 13:22:29 -06:00
Jeff Law
da3c33362d pa.c (output_function_prologue): Emit SAVE_SP flag if a frame pointer is needed.
* pa.c (output_function_prologue): Emit SAVE_SP flag if a frame
	pointer is needed.

From-SVN: r4804
1993-06-30 11:43:20 -06:00
Jeff Law
3c84bf1b0f pa.c (singlemove_string): Use zdepi and ldil to load constants into registers when appropriate.
* pa.c (singlemove_string): Use zdepi and ldil to load constants
	into registers when appropriate.

From-SVN: r4799
1993-06-29 20:28:38 -06:00
Jeff Law
816edf8b02 pa-hpux.h (LINK_SPEC): Search shared libraries by default...
* pa-hpux.h (LINK_SPEC): Search shared libraries by default; turn off
	shared library searching if -static is specified.
	* pa-ghpux.h (LINK_SPEC): Likewise.

From-SVN: r4727
1993-06-25 11:43:16 -06:00
Jeff Law
d5e87e5eed pa.c: References to TARGET_SHARED_LIBS deleted.
* pa.c: References to TARGET_SHARED_LIBS deleted.
	* pa.md: Likewise.

From-SVN: r4726
1993-06-25 11:41:01 -06:00
Jeff Law
5a079bea22 pa.h (TARGET_SHARED_LIBS): Delete switch and all references to the switch.
* pa.h (TARGET_SHARED_LIBS): Delete switch and all references to
	the switch.

From-SVN: r4725
1993-06-25 11:40:42 -06:00
Jeff Law
24c6ab1c8b * pa.h (TARGET_DISABLE_INDEXING): Clean up comments.
From-SVN: r4724
1993-06-25 11:35:30 -06:00
Jeff Law
7c6c204ffe pa-utahmach.h (TARGET_DEFAULT): Allow indexing on Mach ports.
* pa-utahmach.h (TARGET_DEFAULT): Allow indexing on Mach ports.
	* pa1-utahmach.h (TARGET_DEFAULT): Likewise.

From-SVN: r4723
1993-06-25 11:35:04 -06:00
Richard Stallman
aa8642c95d (decrement_and_branch_until_zero): Pattern disabled.
From-SVN: r4690
1993-06-17 21:58:38 +00:00
Richard Stallman
78778b9db9 (LEGITIMATE_CONSTANT_P): Reject function addresses for now.
From-SVN: r4685
1993-06-17 07:15:25 +00:00
Richard Stallman
34f921d8b8 (iorsi3): Explicitly set length to 1.
(andsi3, lshrsi3, rotrsi3, rotlsi3): Likewise.
(ashift and ashiftrt by const_int_operand): Likewise.
((and (ashift)) optimizer): Likewise.

From-SVN: r4676
1993-06-14 18:06:44 +00:00
Richard Stallman
d4d7b398ef (CPP_SPEC): Fix typo.
From-SVN: r4649
1993-06-08 17:28:22 +00:00
Richard Stallman
d4b4cb5f4b (RTX_COSTS): Cost of MULT also depends on TARGET_DISABLE_FPREGS.
(ASM_OUTPUT_INT): Always emit special "plabel" relocation for
function labels.

From-SVN: r4647
1993-06-08 01:24:42 +00:00
Torbjorn Granlund
bd103b489d (RTX_COSTS): Make cost of MULT depend on TARGET_SNAKE.
From-SVN: r4637
1993-06-05 10:01:17 +00:00
Richard Stallman
08a2b1188a (output_function_epilogue): If the last insn in the current function is a (volatile) call...
(output_function_epilogue): If the last insn in the
current function is a (volatile) call, then emit an extra
nop after the call so that RP will point to a valid instruction.

From-SVN: r4630
1993-06-04 06:52:49 +00:00