i386.c (ix86_compare_emitted): Remove.
2009-04-07 Paolo Bonzini <bonzini@gnu.org> * config/i386/i386.c (ix86_compare_emitted): Remove. (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC ix86_compare_op0 like ix86_compare_emitted used to be handled. * config/i386/i386.h (ix86_compare_emitted): Remove. * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0 instead of ix86_compare_emitted. * config/i386/sync.md (sync_compare_and_swap_cc): Likewise. From-SVN: r145665
This commit is contained in:
parent
d5859bf49d
commit
67b8f1c149
|
@ -1,3 +1,13 @@
|
|||
2009-04-07 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* config/i386/i386.c (ix86_compare_emitted): Remove.
|
||||
(ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
|
||||
ix86_compare_op0 like ix86_compare_emitted used to be handled.
|
||||
* config/i386/i386.h (ix86_compare_emitted): Remove.
|
||||
* config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
|
||||
instead of ix86_compare_emitted.
|
||||
* config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
|
||||
|
||||
2009-04-07 Andrew Stubbs <ams@codesourcery.com>
|
||||
|
||||
* config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
|
||||
|
|
|
@ -1702,7 +1702,6 @@ int const svr4_dbx_register_map[FIRST_PSEUDO_REGISTER] =
|
|||
|
||||
rtx ix86_compare_op0 = NULL_RTX;
|
||||
rtx ix86_compare_op1 = NULL_RTX;
|
||||
rtx ix86_compare_emitted = NULL_RTX;
|
||||
|
||||
/* Define parameter passing and return registers. */
|
||||
|
||||
|
@ -14271,11 +14270,9 @@ ix86_expand_compare (enum rtx_code code, rtx *second_test, rtx *bypass_test)
|
|||
if (bypass_test)
|
||||
*bypass_test = NULL_RTX;
|
||||
|
||||
if (ix86_compare_emitted)
|
||||
{
|
||||
ret = gen_rtx_fmt_ee (code, VOIDmode, ix86_compare_emitted, const0_rtx);
|
||||
ix86_compare_emitted = NULL_RTX;
|
||||
}
|
||||
if (GET_MODE_CLASS (GET_MODE (ix86_compare_op0)) == MODE_CC)
|
||||
ret = gen_rtx_fmt_ee (code, VOIDmode, ix86_compare_op0, ix86_compare_op1);
|
||||
|
||||
else if (SCALAR_FLOAT_MODE_P (GET_MODE (op0)))
|
||||
{
|
||||
gcc_assert (!DECIMAL_FLOAT_MODE_P (GET_MODE (op0)));
|
||||
|
@ -14304,12 +14301,6 @@ ix86_expand_branch (enum rtx_code code, rtx label)
|
|||
{
|
||||
rtx tmp;
|
||||
|
||||
/* If we have emitted a compare insn, go straight to simple.
|
||||
ix86_expand_compare won't emit anything if ix86_compare_emitted
|
||||
is non NULL. */
|
||||
if (ix86_compare_emitted)
|
||||
goto simple;
|
||||
|
||||
switch (GET_MODE (ix86_compare_op0))
|
||||
{
|
||||
case QImode:
|
||||
|
@ -14510,7 +14501,11 @@ ix86_expand_branch (enum rtx_code code, rtx label)
|
|||
}
|
||||
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
/* If we have already emitted a compare insn, go straight to simple.
|
||||
ix86_expand_compare won't emit anything if ix86_compare_emitted
|
||||
is non NULL. */
|
||||
gcc_assert (GET_MODE_CLASS (GET_MODE (ix86_compare_op0)) == MODE_CC);
|
||||
goto simple;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2333,7 +2333,6 @@ extern enum reg_class const regclass_map[FIRST_PSEUDO_REGISTER];
|
|||
|
||||
extern rtx ix86_compare_op0; /* operand 0 for comparisons */
|
||||
extern rtx ix86_compare_op1; /* operand 1 for comparisons */
|
||||
extern rtx ix86_compare_emitted;
|
||||
|
||||
/* To properly truncate FP values into integers, we need to set i387 control
|
||||
word. We can't emit proper mode switching code before reload, as spills
|
||||
|
|
|
@ -21954,9 +21954,6 @@
|
|||
""
|
||||
{
|
||||
rtx flags = gen_rtx_REG (CCZmode, FLAGS_REG);
|
||||
ix86_compare_op0 = operands[0];
|
||||
ix86_compare_op1 = operands[1];
|
||||
ix86_compare_emitted = flags;
|
||||
|
||||
#ifdef TARGET_THREAD_SSP_OFFSET
|
||||
if (TARGET_64BIT)
|
||||
|
@ -21971,6 +21968,9 @@
|
|||
else
|
||||
emit_insn (gen_stack_protect_test_si (flags, operands[0], operands[1]));
|
||||
#endif
|
||||
|
||||
ix86_compare_op0 = flags;
|
||||
ix86_compare_op1 = const0_rtx;
|
||||
emit_jump_insn (gen_beq (operands[2]));
|
||||
DONE;
|
||||
})
|
||||
|
|
|
@ -168,9 +168,8 @@
|
|||
"TARGET_CMPXCHG"
|
||||
{
|
||||
operands[4] = gen_rtx_REG (CCZmode, FLAGS_REG);
|
||||
ix86_compare_op0 = operands[3];
|
||||
ix86_compare_op1 = NULL;
|
||||
ix86_compare_emitted = operands[4];
|
||||
ix86_compare_op0 = operands[4];
|
||||
ix86_compare_op1 = const0_rtx;
|
||||
if ((<MODE>mode == DImode && !TARGET_64BIT) || <MODE>mode == TImode)
|
||||
{
|
||||
enum machine_mode hmode = <MODE>mode == DImode ? SImode : DImode;
|
||||
|
|
Loading…
Reference in New Issue