When determining if needs are nongroup needs, ignore inactive or optional
reloads.
(reload_reg_used_in_op_addr_reload): New variable to indicate when reloads of
class RELOAD_FOR_OPADDR_ADDR are in use.
(mark_reload_reg_in_use, clear_reload_reg_in_use): Process reloads of class
RELOAD_FOR_OPADDR_ADDR.
(reload_reg_free_p, reload_reg_free_before_p, reloads_conflict): Likewise.
(choose_reload_regs): Support RELOAD_FOR_OPADDR_ADDR reloads.
(emit_reload_insns): Output RELOAD_FOR_OPADDR_ADDR reloads.
From-SVN: r7462
* 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
(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
(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
(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
(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
(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
* 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_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
(all output patterns): Use new capabilities of arm_print_operand to
simplify output sequences. Mark position of condition code with '%?'.
From-SVN: r7425
(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