arm.c (note_invalid_constants): No need to ignore ASMs, we can now rework these too.

* arm.c (note_invalid_constants): No need to ignore ASMs, we can
now rework these too.
(arm_reorg): If an insn can't reach the end of the current pool,
ensure that we emit that pool before the insn.

From-SVN: r29084
This commit is contained in:
Richard Earnshaw 1999-09-03 16:27:57 +00:00 committed by Richard Earnshaw
parent 9c5b50b30a
commit 2bfa88dc79
2 changed files with 20 additions and 8 deletions

View File

@ -1,3 +1,10 @@
Fri Sep 3 17:24:31 1999 Richard Earnshaw <rearnsha@arm.com>
* arm.c (note_invalid_constants): No need to ignore ASMs, we can
now rework these too.
(arm_reorg): If an insn can't reach the end of the current pool,
ensure that we emit that pool before the insn.
Fri Sep 3 09:14:32 1999 Marc Espie <espie@tetto.liafa.jussieu.fr>
* tlink.c (scan_linker_output): Skip the initial underscore in

View File

@ -4236,10 +4236,6 @@ note_invalid_constants (insn, address)
/* Extract the operands of the insn */
extract_insn(insn);
/* If this is an asm, we can't do anything about it (or can we?) */
if (INSN_CODE (insn) < 0)
return;
/* Find the alternative selected */
if (! constrain_operands (1))
fatal_insn_not_found (insn);
@ -4375,11 +4371,20 @@ arm_reorg (first)
barrier = last_barrier->insn;
ftmp = last_barrier;
}
/* ftmp is last fix that we can fit into this pool and we
failed to find a barrier that we could use. Insert a new
barrier in the code and arrange to jump around it. */
else
/* ftmp is last fix that we can fit into this pool and we
failed to find a barrier that we could use. Insert a new
barrier in the code and arrange to jump around it. */
barrier = find_barrier (ftmp->insn, max_range - ftmp->address);
{
/* Check that there isn't another fix that is in range that
we couldn't fit into this pool because the pool was
already too large: we need to put the pool before such an
instruction. */
if (ftmp->next && ftmp->next->address < max_range)
max_range = ftmp->address;
barrier = find_barrier (ftmp->insn, max_range - ftmp->address);
}
/* Scan over the fixes we have identified for this pool, fixing them
up and adding the constants to the pool itself. */