Jeff Law [Wed, 6 Jan 1993 23:11:59 +0000 (16:11 -0700)]
pa.h (target_switches): Add "-mdisable-fpregs" and "-mdisable-indexing.
* pa.h (target_switches): Add "-mdisable-fpregs" and
"-mdisable-indexing.
(CONDITIONAL_REGISTER_USAGE): If TARGET_DISABLE_FPREGS, then mark
all FP registers as fixed.
Jeff Law [Wed, 6 Jan 1993 17:22:26 +0000 (10:22 -0700)]
pa.md (millicode expands): Change operand 3 in the expand pattern from a clobber of a match_scratch to a...
* pa.md (millicode expands): Change operand 3 in the expand
pattern from a clobber of a match_scratch to a clobber of a
match_operand with a register predicate. Make appropriate
change in the generated RTL.
(millicode insns): Clobber a match_operand with a register
predicate instead of a match_scratch expression.
* pa.c (emit_hpdiv_const): Likewise.
Jeff Law [Wed, 6 Jan 1993 17:22:10 +0000 (10:22 -0700)]
pa.md (millicode expands): Change operand 3 in the expand pattern from a clobber of a match_scratch to a...
* pa.md (millicode expands): Change operand 3 in the expand
pattern from a clobber of a match_scratch to a clobber of a
match_operand with a register predicate. Make appropriate
change in the generated RTL.
(millicode insns): Clobber a match_operand with a register
predicate instead of a match_scratch expression.
* pa.c (emit_hpdiv_const): Likewise.
* pa.md (movsi, movhi, movqi, movdi): Use reg_or_0_operand
consistently.
($os alternatives for sco and isc): Preserve the specified os version if any.
Each alternative handles both 386 and 486, preserving distinction.
($basic_machine alternatives for sco and isc): Deleted.
(i[34]86v32, i[34]86v, i[34]86v4):
Handle both cpus together, preserving distinction.
(making dirs and links): If we already made subdirs for a dir foo and foo turns out to be a symlink outside /usr/include...
(making dirs and links): If we already made subdirs
for a dir foo and foo turns out to be a symlink outside /usr/include,
after we have made a dir for it in ./root/, make similar subdirs there.
Richard Kenner [Mon, 4 Jan 1993 00:00:20 +0000 (19:00 -0500)]
(block_alloc): Generalize tying so we can tie any operand with the output unless some operand must be in the same register as the output...
(block_alloc): Generalize tying so we can tie any operand with the
output unless some operand must be in the same register as the output,
in which case only try tying that operand.
Jeff Law [Sun, 3 Jan 1993 19:06:42 +0000 (12:06 -0700)]
pa.h (INITIAL_FRAME_POINTER_OFFSET): compute_frame_size () now does the whole calculation, including rounding.
* pa.h (INITIAL_FRAME_POINTER_OFFSET): compute_frame_size ()
now does the whole calculation, including rounding.
(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Don't pass leaf_function
to output_function_{prologue,epilogue}.
(DELAY_SLOTS_FOR_EPILOGUE): Call hppa_epilogue_delay_slots ().
Jeff Law [Sun, 3 Jan 1993 19:06:11 +0000 (12:06 -0700)]
pa.c (apparent_fsize): Delete variable.
* pa.c (apparent_fsize): Delete variable.
(compute_frame_size): Many changes. Return the total frame size,
including space for "magic" stuff at the top of the stack and any
rounding for the Snake.
(output_function_prologue): Don't take a leaf_function argument;
Decide that based on frame size and frame_pointer_needed.
Don't emit any frame diddling code if actual_fsize is 0.
(output_function_epilogue): Don't take leaf_function argument.
Don't do anything if no frame.
Keep stack pointer aligned to 64 bytes before loading from old
frame pointer.
(hppa_epilogue_delay_slots): Only if there is no frame will we
have an empty delay slot to fill.
(eligible_for_epilogue_delay): Don't check "leaf_function" anymore.
Jeff Law [Sun, 3 Jan 1993 19:03:54 +0000 (12:03 -0700)]
pa.h (CONST_COSTS): Make CONST_DOUBLES very expensive.
* pa.h (CONST_COSTS): Make CONST_DOUBLES very expensive.
Give HIGH expressions a small cost with CONST, SYMBOL_REF,
and LABEL_REF being twice as expensive as HIGH.
Jeff Law [Sun, 3 Jan 1993 19:02:45 +0000 (12:02 -0700)]
pa.c (fmpyaddoperands): Verifys given registers are suitable for use in fmpyadd instructions.
* pa.c (fmpyaddoperands): Verifys given registers are suitable for
use in fmpyadd instructions.
(fmpysuboperands): Likewise, but for fmpysub instructions.
Jeff Law [Sun, 3 Jan 1993 19:02:27 +0000 (12:02 -0700)]
pa.md (fmpyadd peepholes): New peepholes to issue independent floating point multiply and add instructions...
* pa.md (fmpyadd peepholes): New peepholes to issue independent
floating point multiply and add instructions at the same time.
(fmpysub peepholes): Likewise for multiply and subtract instructions.
(collect2.o): Don't need STANDARD_STARTFILE_PREFIX, etc.
(install-cross-tools): Use REAL_LD_NAME instead of `ld' when linking
files from tooldir to libsubdir.
(main): Look for `real-ld' after `gld', before `ld'.
Fix typo in -debug part of previous change.
Look for tools using paths rather than a single prefix.
(struct prefix_list, struct path_prefix): New structures.
(cpath, path): New variables.
(find_a_file, add_prefix): New functions; simplified versions of
functions from gcc.c.
(prefix_from_env): New function.
(main): Get path to search for binaries from COMPILER_PATH
environment variable always set by gcc.c and from PATH.
Qualify names with target machine in cross-environment unless
using compiler directories.
Use find_a_file to find our binaries.
Remove use of single prefix.
If -debug, print strip_file_name.
(fork_execute): Print program we are trying to execute if -debug and
we can't find the file.
(scan_prog_file): Complain if can't find nm.
Jeff Law [Fri, 1 Jan 1993 17:20:36 +0000 (10:20 -0700)]
pa.md (movqi, [...]): Fix attributes which involve fp<->gr copies to match current reality.
* pa.md (movqi, movhi, movsi, movdi, movsf, movdf): Fix attributes
which involve fp<->gr copies to match current reality.
(indexed loads): These should have "load" attributes, not "move".