Improve code generation for pdp11 target.
authorPaul Koning <ni1d@arrl.net>
Mon, 9 Jul 2018 14:00:52 +0000 (10:00 -0400)
committerPaul Koning <pkoning@gcc.gnu.org>
Mon, 9 Jul 2018 14:00:52 +0000 (10:00 -0400)
commitaad2444d346d4ae504a938de8708341dd1889aed
tree8217f61c2e480fd7af7ef37b10122f424ce73595
parentc36c567c59336e3b611c2961864f567995f98051
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.

From-SVN: r262519
gcc/ChangeLog
gcc/config/pdp11/pdp11.c
gcc/config/pdp11/pdp11.h
gcc/config/pdp11/pdp11.md