egcs/gcc ChangeLog Makefile.in builtins.c c-co ...

rth@gcc.gnu.org rth@gcc.gnu.org
Mon Jan 24 12:10:00 GMT 2000


CVSROOT:	/cvs/gcc
Module name:	egcs
Changes by:	rth@sourceware.cygnus.com	00/01/24 12:10:04

Modified files:
	gcc            : ChangeLog Makefile.in builtins.c c-common.c 
	                 c-typeck.c combine.c cse.c expmed.c expr.c 
	                 expr.h fp-test.c jump.c loop.c optabs.c rtl.def 
	                 tree.def tree.h 
	gcc/config     : fp-bit.c 
	gcc/config/alpha: alpha-protos.h alpha.c alpha.h alpha.md 
	gcc/cp         : ChangeLog call.c typeck.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.c-torture/execute/ieee: fp-cmp-4.c 

Log message:
	* rtl.def: Add unordered fp comparisions.
	* tree.def: Likewise.
	* tree.h: Add ISO C 9x unordered fp comparision builtins.
	
	* builtins.c (expand_tree_builtin): New function.
	* c-typeck.c (build_function_call): Use it.
	(build_binary_op): Support unordered compares.
	* c-common.c (c_common_nodes_and_builtins): Add unordered compares.
	
	* combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
	(reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
	* cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
	(record_jump_equiv): Handle reverse_condition returning UNKNOWN.
	* jump.c (reverse_condition): Don't abort for UNLE etc, but
	return UNKNOWN.
	(swap_condition): Handle unordered compares.
	(thread_jumps): Check can_reverse before reversing.
	* loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
	reversed for FP.
	
	* optabs.c (can_compare_p): New argument CODE.  Verify branch or
	setcc is present before acking for cmp_optab.  Update all callers.
	(prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
	* expmed.c (do_cmp_and_jump): Update for can_compare_p.
	* expr.c (expand_expr): Likewise.  Support unordered compares.
	(do_jump, do_store_flag): Likewise.
	* expr.h (enum libfunc_index): Add unordered compares.
	
	* Makefile.in (FPBIT_FUNCS): Add _unord_sf.
	(DPBIT_FUNCS): Add _unord_df.
	* config/fp-bit.c (_unord_f2): New.
	* fp-test.c (main): Try unordered compare builtins.
	
	* alpha-protos.h (alpha_fp_comparison_operator): Declare.
	* alpha.c (alpha_comparison_operator): Check mode properly.
	(alpha_swapped_comparison_operator): Likewise.
	(signed_comparison_operator): Likewise.
	(alpha_fp_comparison_operator): New.
	(alpha_emit_conditional_branch): Handle unordered compares.
	* alpha.h (PREDICATE_CODES): Update.
	* alpha.md (fp compares): Use alpha_fp_comparison_operator.
	(bunordered, bordered): New.
	
	* cp/call.c (build_over_call): Use expand_tree_builtin.
	* cp/typeck.c (build_function_call_real): Likewise.
	(build_binary_op_nodefault): Handle unordered compares.
	
	* gcc.c-torture/execute/ieee/fp-cmp-4.c: New.



More information about the Gcc-cvs mailing list