* pa.h (REG_CLASSES): Delete GENERAL_OR_FP_OR_SNAKE_FP register
class, it's not needed anymore. Delete all references. 'Z'
register class is now "ALL_REGS".
From-SVN: r3297
Don't allow both operands to be MEM.
(float addM3,subM3,divM3,mulM3 recognizers): Don't allow either operand
to be a constant.
(all float patterns, FLOAT_EXTEND operands): Don't allow GENERAL_REGS
for float_extended operand.
(all float patterns, FLOAT operands): Change constraints to get better
register classification.
(fix_truncMN2 patterns): Likewise.
(floatMN2 patterns): Likewise.
From-SVN: r3296
(emit_pop_insn): Emit insn with mode QImode: insn contains stack-regs.
(emit_hard_swap_insn): Delete.
(emit_swap_insn): Merge with emit_hard_swap_insn.
Delete WHEN arg and change all callers.
If previous insn was a push from REG, omit swap.
If previous insn wrote reg-stack top to REG, omit swap.
Emit swap insn with mode QImode: insn contains stack-regs.
Emit swap insn after previous float insn, instead of before this one.
(swap_rtx_condition): New function.
(compare_for_stack_reg): If op 0 of COMPARE is not a stack reg, exchange
ops 0 and 1 and swap cc0 user condition.
From-SVN: r3294
(sCC patterns): Use %char notation instead of nested if stmts.
(branch matchers): Likewise.
(incscc, negscc): Likewise. Add ? constraint for 3-insn alternative.
(incscc): Split into `incscc' and `decscc' to make this really
match.
(incscc/decscc special cases): New patterns using carry bit.
(many patterns): Use canonical address format. Use %r
register notation. Use GEN_INT.
(main move SF recognizer): Allow 0 for copying to general register.
(zero_extendhisi2): Remove DEFINE_EXPAND.
(zero_extendqihi2): Likewise.
(zero_extendqisi2): Likewise.
(comment before sign extension): Remove the lie.
From-SVN: r3278
(make_signed_type): Consistently use
HOST_BITS_PER_WIDE_INT. Correct minor formatting problems.
(fixup_signed_type): Use HOST_BITS_PER_WIDE_INT and HOST_WIDE_INT
like make_signed_type does.
(fixup_unsigned_type): Correct minor formatting problem.
From-SVN: r3263
* pa.h (FP_REG_CLASS_P): New macro.
(REGISTER_MOVE_COST): Use FP_REG_CLASS_P to simplify. Make
copies from the SAR so expensive that they should never happen.
From-SVN: r3259
(compute_zdepi_operands): Fix header comment.
(many functions): Use %%r register syntax. Use canonical (0,%rN)
address format.
(output_function_prologue): No need to test frame_pointer_needed
in else clause of `if (frame_pointer_needed)'.
(output_function_prologue): Test boolean merge_sp_adjust_with_store
for zeroness, not for equality with 1.
(fmpyaddoperands): Use new variable mode for mode of operands[0].
(fmpysuboperands): Likewise.
From-SVN: r3258