* 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
* 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
* 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
(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
* 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
(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
* 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
* 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
* 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
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
(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
* 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