Commit 1d1df0df by Jan Hubicka Committed by Jan Hubicka

i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.

	* i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
	(EMIT_MODE_SET): UNINITIALIZED mode needs no set.
	* i386.md (i387_cw): Add 'uninitialized' mode.

From-SVN: r87365
parent f43329a5
2004-09-11 Jan Hubicka <jh@suse.cz>
* i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
(EMIT_MODE_SET): UNINITIALIZED mode needs no set.
* i386.md (i387_cw): Add 'uninitialized' mode.
* profile.c (BB_TO_GCOV_INDEX): move more to the front.
(output_location): Break out from ....
(branch_prob): ... here; handle gcov output on trees.
......
......@@ -2960,13 +2960,18 @@ extern rtx ix86_compare_op1; /* operand 1 for comparisons */
`OPTIMIZE_MODE_SWITCHING' is defined, you must define this macro to
return an integer value not larger than the corresponding element
in `NUM_MODES_FOR_MODE_SWITCHING', to denote the mode that ENTITY
must be switched into prior to the execution of INSN. */
must be switched into prior to the execution of INSN.
The mode UNINITIALIZED is used to force re-load of possibly previously
stored control word after function call. The mode ANY specify that
function has no requirements on the control word and make no changes
in the bits we are interested in. */
#define MODE_NEEDED(ENTITY, I) \
(GET_CODE (I) == CALL_INSN \
|| (GET_CODE (I) == INSN && (asm_noperands (PATTERN (I)) >= 0 \
|| GET_CODE (PATTERN (I)) == ASM_INPUT))\
? I387_CW_ANY \
? I387_CW_UNINITIALIZED \
: recog_memoized (I) < 0 \
? I387_CW_ANY \
: get_attr_i387_cw (I))
......@@ -2981,7 +2986,7 @@ extern rtx ix86_compare_op1; /* operand 1 for comparisons */
are to be inserted. */
#define EMIT_MODE_SET(ENTITY, MODE, HARD_REGS_LIVE) \
((MODE) != I387_CW_ANY \
((MODE) != I387_CW_ANY && (MODE) != I387_CW_UNINITIALIZED \
? emit_i387_cw_initialization (assign_386_stack_local (HImode, 1), \
assign_386_stack_local (HImode, 2), \
MODE), 0 \
......
......@@ -431,7 +431,7 @@
;; Defines rounding mode of an FP operation.
(define_attr "i387_cw" "floor,ceil,trunc,mask_pm,any"
(define_attr "i387_cw" "floor,ceil,trunc,mask_pm,uninitialized,any"
(const_string "any"))
;; Describe a user's asm statement.
......
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