s390.c (s390_chunkify_pool): Do not confuse insn UIDs with insn addresses.
* config/s390/s390.c (s390_chunkify_pool): Do not confuse insn UIDs with insn addresses. From-SVN: r50112
This commit is contained in:
parent
bded68b108
commit
6bc627b3b8
2 changed files with 16 additions and 6 deletions
|
@ -1,3 +1,8 @@
|
|||
2002-02-27 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* config/s390/s390.c (s390_chunkify_pool): Do not confuse
|
||||
insn UIDs with insn addresses.
|
||||
|
||||
2002-02-27 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
|
||||
|
|
|
@ -2459,7 +2459,7 @@ s390_split_branches (void)
|
|||
static void
|
||||
s390_chunkify_pool (void)
|
||||
{
|
||||
int *ltorg_uids, max_ltorg, chunk, last_addr;
|
||||
int *ltorg_uids, max_ltorg, chunk, last_addr, next_addr;
|
||||
rtx insn;
|
||||
|
||||
/* Do we need to chunkify the literal pool? */
|
||||
|
@ -2498,12 +2498,15 @@ s390_chunkify_pool (void)
|
|||
}
|
||||
}
|
||||
|
||||
ltorg_uids[max_ltorg] = insn_current_address + 1;
|
||||
ltorg_uids[max_ltorg] = -1;
|
||||
|
||||
/* Find and mark all labels that are branched into
|
||||
from an insn belonging to a different chunk. */
|
||||
|
||||
chunk = last_addr = 0;
|
||||
next_addr = ltorg_uids[chunk] == -1 ? insn_current_address + 1
|
||||
: INSN_ADDRESSES (ltorg_uids[chunk]);
|
||||
|
||||
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
|
||||
{
|
||||
if (GET_CODE (insn) == JUMP_INSN)
|
||||
|
@ -2528,8 +2531,8 @@ s390_chunkify_pool (void)
|
|||
if (label)
|
||||
{
|
||||
if (INSN_ADDRESSES (INSN_UID (label)) <= last_addr
|
||||
|| INSN_ADDRESSES (INSN_UID (label)) > ltorg_uids[chunk])
|
||||
SYMBOL_REF_USED (label) = 1;
|
||||
|| INSN_ADDRESSES (INSN_UID (label)) > next_addr)
|
||||
SYMBOL_REF_USED (label) = 1;
|
||||
}
|
||||
}
|
||||
else if (GET_CODE (pat) == ADDR_VEC
|
||||
|
@ -2542,7 +2545,7 @@ s390_chunkify_pool (void)
|
|||
rtx label = XEXP (XVECEXP (pat, diff_p, i), 0);
|
||||
|
||||
if (INSN_ADDRESSES (INSN_UID (label)) <= last_addr
|
||||
|| INSN_ADDRESSES (INSN_UID (label)) > ltorg_uids[chunk])
|
||||
|| INSN_ADDRESSES (INSN_UID (label)) > next_addr)
|
||||
SYMBOL_REF_USED (label) = 1;
|
||||
}
|
||||
}
|
||||
|
@ -2550,7 +2553,9 @@ s390_chunkify_pool (void)
|
|||
|
||||
if (INSN_UID (insn) == ltorg_uids[chunk])
|
||||
{
|
||||
last_addr = ltorg_uids[chunk++];
|
||||
last_addr = INSN_ADDRESSES (ltorg_uids[chunk++]);
|
||||
next_addr = ltorg_uids[chunk] == -1 ? insn_current_address + 1
|
||||
: INSN_ADDRESSES (ltorg_uids[chunk]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue