sh.c (prepare_scc_operands): Abort if no compare insn is available.

* sh.c (prepare_scc_operands): Abort if no compare insn is available.
	(find_barrier, gen_block_redirect, split_branches): Fix indentation.
	(calc_live_regs): Likewise.

From-SVN: r31507
This commit is contained in:
J"orn Rennecke 2000-01-19 20:00:09 +00:00 committed by Joern Rennecke
parent d64264ff53
commit eda44c7832
2 changed files with 58 additions and 52 deletions

View File

@ -1,3 +1,9 @@
Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.c (prepare_scc_operands): Abort if no compare insn is available.
(find_barrier, gen_block_redirect, split_branches): Fix indentation.
(calc_live_regs): Likewise.
Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.md (fpu_single, fp_mode): New attributes.

View File

@ -501,6 +501,7 @@ prepare_scc_operands (code)
/* First need a compare insn. */
switch (code)
{
default:
case NE:
/* It isn't possible to handle this case. */
abort ();
@ -516,8 +517,6 @@ prepare_scc_operands (code)
case LEU:
code = GEU;
break;
default:
break;
}
if (code != oldcode)
{
@ -2212,23 +2211,23 @@ find_barrier (num_mova, mova, from)
}
if (num_mova)
{
if (leading_mova)
{
/* Try as we might, the leading mova is out of range. Change
it into a load (which will become a pcload) and retry. */
SET_SRC (PATTERN (mova)) = XVECEXP (SET_SRC (PATTERN (mova)), 0, 0);
INSN_CODE (mova) = -1;
return find_barrier (0, 0, mova);
}
else
{
/* Insert the constant pool table before the mova instruction,
to prevent the mova label reference from going out of range. */
from = mova;
good_barrier = found_barrier = barrier_before_mova;
}
}
{
if (leading_mova)
{
/* Try as we might, the leading mova is out of range. Change
it into a load (which will become a pcload) and retry. */
SET_SRC (PATTERN (mova)) = XVECEXP (SET_SRC (PATTERN (mova)), 0, 0);
INSN_CODE (mova) = -1;
return find_barrier (0, 0, mova);
}
else
{
/* Insert the constant pool table before the mova instruction,
to prevent the mova label reference from going out of range. */
from = mova;
good_barrier = found_barrier = barrier_before_mova;
}
}
if (found_barrier)
{
@ -2530,7 +2529,8 @@ gen_block_redirect (jump, addr, need_block)
break;
}
}
for (used = dead = 0, scan = JUMP_LABEL (jump); (scan = NEXT_INSN (scan)); )
for (used = dead = 0, scan = JUMP_LABEL (jump);
(scan = NEXT_INSN (scan)); )
{
enum rtx_code code;
@ -2549,12 +2549,12 @@ gen_block_redirect (jump, addr, need_block)
break;
}
if (code == JUMP_INSN)
{
if (jump_left-- && simplejump_p (scan))
scan = JUMP_LABEL (scan);
else
break;
}
{
if (jump_left-- && simplejump_p (scan))
scan = JUMP_LABEL (scan);
else
break;
}
}
}
/* Mask out the stack pointer again, in case it was
@ -2624,7 +2624,7 @@ struct far_branch
int address;
};
static void gen_far_branch PARAMS ((struct far_branch *));
static void gen_far_branch PARAMS ((struct far_branch *));
enum mdep_reorg_phase_e mdep_reorg_phase;
void
gen_far_branch (bp)
@ -3326,12 +3326,12 @@ split_branches (first)
bp->near_label = label;
}
else if (label && ! NEXT_INSN (label))
{
if (addr + 2 - bp->address <= CONDJUMP_MAX)
bp->insert_place = insn;
else
gen_far_branch (bp);
}
{
if (addr + 2 - bp->address <= CONDJUMP_MAX)
bp->insert_place = insn;
else
gen_far_branch (bp);
}
}
if (! label
|| (NEXT_INSN (label) && bp->address - addr < CONDJUMP_MIN))
@ -3737,25 +3737,25 @@ calc_live_regs (count_ptr, live_regs_mask2)
live_regs_mask |= 1 << reg;
count++;
if (TARGET_SH4 && TARGET_FMOVD && reg >= FIRST_FP_REG)
{
if (reg <= LAST_FP_REG)
{
if (! TARGET_FPU_SINGLE && ! regs_ever_live[reg ^ 1])
{
if (reg >= 32)
*live_regs_mask2 |= 1 << ((reg ^ 1) - 32);
else
live_regs_mask |= 1 << (reg ^ 1);
count++;
}
}
else if (reg <= LAST_XD_REG)
{
/* Must switch to double mode to access these registers. */
target_flags &= ~FPU_SINGLE_BIT;
count++;
}
}
{
if (reg <= LAST_FP_REG)
{
if (! TARGET_FPU_SINGLE && ! regs_ever_live[reg ^ 1])
{
if (reg >= 32)
*live_regs_mask2 |= 1 << ((reg ^ 1) - 32);
else
live_regs_mask |= 1 << (reg ^ 1);
count++;
}
}
else if (reg <= LAST_XD_REG)
{
/* Must switch to double mode to access these registers. */
target_flags &= ~FPU_SINGLE_BIT;
count++;
}
}
}
}