Commit aad2444d by Paul Koning Committed by Paul Koning

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
parent c36c567c
2018-07-09 Paul Koning <ni1d@arrl.net>
* 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.
2018-07-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/sparc/sparc.c (sparc_fold_builtin) <SPARC_BUILTIN_PDIST,
......
......@@ -441,9 +441,8 @@ extern int may_call_alloca;
#define MOVE_MAX 2
/* Nonzero if access to memory by byte is slow and undesirable. -
*/
#define SLOW_BYTE_ACCESS 0
/* Nonzero if access to memory by byte is no faster than by word. */
#define SLOW_BYTE_ACCESS 1
/* Do not break .stabs pseudos into continuations. */
#define DBX_CONTIN_LENGTH 0
......@@ -453,8 +452,7 @@ extern int may_call_alloca;
#define SELECT_CC_MODE(OP,X,Y) pdp11_cc_mode (OP, X, Y)
/* Enable compare elimination pass.
FIXME: how can this be enabled for two registers? */
/* Enable compare elimination pass. */
#undef TARGET_FLAGS_REGNUM
#define TARGET_FLAGS_REGNUM CC_REGNUM
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment