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
This commit is contained in:
parent
f43329a5ae
commit
1d1df0df43
@ -1,5 +1,9 @@
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user