Improve code generation for pdp11 target.
commit449d9e9b812f615dcb5b2a665663f4991c29e697
authorpkoning <pkoning@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Jul 2018 14:00:52 +0000 (9 14:00 +0000)
committerpkoning <pkoning@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Jul 2018 14:00:52 +0000 (9 14:00 +0000)
tree8217f61c2e480fd7af7ef37b10122f424ce73595
parent3d7527b1f7227a3bb539bf1e68b7ce7ba7205047
    Improve code generation for pdp11 target.

* config/pdp11/pdp11.c (pdp11_addr_cost): New function.
(pdp11_insn_cost): New function.
(pdp11_md_asm_adjust): New function.
(TARGET_INVALID_WITHIN_DOLOOP): Define.
(pdp11_rtx_costs): Update to match machine better.
(output_addr_const_pdp11): Correct format mismatch warnings.
* config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition.
* config/pdp11/pdp11.md: General change to add base_cost and/or
length attributes for use by new pdp11_insn_cost function.
(MIN_BRANCH): Correct definition.
(MIN_SOB): Ditto.
(doloop_end): Use standard pattern name for looping pattern.
(doloop_end_nocc): New.
(movsf): Add another constraint alternative.
(zero_extendqihi2): Add constraint alternatives for not in place
extend.
(zero_extendhisi2): Remove.
(shift patterns): Add CC handling variants.
(bswaphi2): New.
(bswapsi2): New.
(rothi3): New.
(define_peephole2): New peephole to recognize mov that sets CC for
subsequent test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@262519 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/pdp11/pdp11.c
gcc/config/pdp11/pdp11.h
gcc/config/pdp11/pdp11.md