Commit a81f2330 by Uros Bizjak

i386.md (cbranchsi4): Use nonimmediate_operand for operand 1 predicate.

	* config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
	operand 1 predicate.
	(cstoresi4): Ditto for operand 2.
	(cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
	patterns using SDWIM mode iterator.
	(cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
	using SWIM mode iterator.
	(cmpdi_1): Rename from cmpdi_1_rex64.
	(cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
	SWI48 mode iterator.
	(*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn using SWI
	mode iterator.
	(*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
	(*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
	(*cmpqi_ext_3_insn): Make private.
	(*cmpqi_ext_3_insn_rex64): Make private.
	(cmpstrnsi): Update for renamed cmpdi_1_rex64.
	* config/i386/predicates.md (cmpsi_operand): Remove.

From-SVN: r154212
parent f61428ed
2009-11-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
operand 1 predicate.
(cstoresi4): Ditto for operand 2.
(cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
patterns using SDWIM mode iterator.
(cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
using SWIM mode iterator.
(cmpdi_1): Rename from cmpdi_1_rex64.
(cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
SWI48 mode iterator.
(*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn using SWI
mode iterator.
(*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
(*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
(*cmpqi_ext_3_insn): Make private.
(*cmpqi_ext_3_insn_rex64): Make private.
(cmpstrnsi): Update for renamed cmpdi_1_rex64.
* config/i386/predicates.md (cmpsi_operand): Remove.
2009-11-16 Paul Brook <paul@codesourcery.com> 2009-11-16 Paul Brook <paul@codesourcery.com>
* doc/invoke.texi: Document ARM VFPv4 based FPUs. * doc/invoke.texi: Document ARM VFPv4 based FPUs.
...@@ -5,19 +26,19 @@ ...@@ -5,19 +26,19 @@
2009-11-14 Jan Hubicka <jh@suse.cz> 2009-11-14 Jan Hubicka <jh@suse.cz>
* cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper ENTRY_BLOCK_PTR. * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
* cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely zero out all ENTRY_BLOCK_PTR.
callees. * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
* cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for frequency and count match. zero out all callees.
* cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
frequency and count match.
* ipa-inline.c (update_noncloned_frequencies): New function. * ipa-inline.c (update_noncloned_frequencies): New function.
(cgraph_clone_inlined_nodes): Use it. (cgraph_clone_inlined_nodes): Use it.
* tree-inline.c (copy_bb): Fix frequency scaling; output * tree-inline.c (copy_bb): Fix frequency scaling; output
diagnostic on frequency mismatches to dump file. diagnostic on frequency mismatches to dump file.
(initialize_cfun): Do not scale frequency; fix count scaling; (initialize_cfun): Do not scale frequency; fix count scaling;
initialize entry and exit block frequencies; copy profile initialize entry and exit block frequencies; copy profile info.
info. (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
(copy_cfg_body): Use frequency_scale as argument;
fix count scaling.
(copy_body): Use frequency_scale as argument. (copy_body): Use frequency_scale as argument.
(expand_call_inline): Compute frequency scale and output diagnostic (expand_call_inline): Compute frequency scale and output diagnostic
to dump file. to dump file.
...@@ -65,7 +86,7 @@ ...@@ -65,7 +86,7 @@
new 'outgoing' argument. new 'outgoing' argument.
(iq2000_libcall_value, iq2000_function_value_regno_p): New functions. (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
* config/iq2000/iq2000.h: (FUNCTION_VALUE_REGNO_P): Redefine, use * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
iq2000_function_value_regno_p. iq2000_function_value_regno_p.
(FUNCTION_VALUE, LIBCALL_VALUE): Remove. (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
* config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p): * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
...@@ -1126,23 +1126,6 @@ ...@@ -1126,23 +1126,6 @@
(and (match_code "mult") (and (match_code "mult")
(match_test "TARGET_TUNE_PROMOTE_HIMODE_IMUL")))) (match_test "TARGET_TUNE_PROMOTE_HIMODE_IMUL"))))
;; To avoid problems when jump re-emits comparisons like testqi_ext_ccno_0,
;; re-recognize the operand to avoid a copy_to_mode_reg that will fail.
;;
;; ??? It seems likely that this will only work because cmpsi is an
;; expander, and no actual insns use this.
(define_predicate "cmpsi_operand"
(ior (match_operand 0 "nonimmediate_operand")
(and (match_code "and")
(match_code "zero_extract" "0")
(match_code "const_int" "1")
(match_code "const_int" "01")
(match_code "const_int" "02")
(match_test "INTVAL (XEXP (XEXP (op, 0), 1)) == 8")
(match_test "INTVAL (XEXP (XEXP (op, 0), 2)) == 8")
)))
(define_predicate "compare_operator" (define_predicate "compare_operator"
(match_code "compare")) (match_code "compare"))
......
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