diff options
author | Sterling Augustine <sterling@tensilica.com> | 2009-02-24 22:51:10 +0000 |
---|---|---|
committer | Sterling Augustine <sterling@tensilica.com> | 2009-02-24 22:51:10 +0000 |
commit | dd35c7e6552b6ca59187831e941cf8873a56e545 (patch) | |
tree | 1375a0aa9fc2e31d63d6fa23fc0c3810512340a6 /bfd/elf32-xtensa.c | |
parent | 41decb480ef66d3715f9947121632b1d8c059234 (diff) | |
download | binutils-redhat-dd35c7e6552b6ca59187831e941cf8873a56e545.tar.gz |
2009-02-24 Sterling Augustine <sterling@tensilica.com>
* elf32-xtensa.c (text_action_add): Separate test for action
type. Break if saved action is ta_widen_insn at same offset.
Diffstat (limited to 'bfd/elf32-xtensa.c')
-rw-r--r-- | bfd/elf32-xtensa.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c index dadf42bc42..856d8a91c4 100644 --- a/bfd/elf32-xtensa.c +++ b/bfd/elf32-xtensa.c @@ -5478,12 +5478,20 @@ text_action_add (text_action_list *l, for (m_p = &l->head; *m_p && (*m_p)->offset <= offset; m_p = &(*m_p)->next) { text_action *t = *m_p; - /* When the action is another fill at the same address, - just increase the size. */ - if (t->offset == offset && t->action == ta_fill && action == ta_fill) + + if (action == ta_fill) { - t->removed_bytes += removed; - return; + /* When the action is another fill at the same address, + just increase the size. */ + if (t->offset == offset && t->action == ta_fill) + { + t->removed_bytes += removed; + return; + } + /* Fills need to happen before widens so that we don't + insert fill bytes into the instruction stream. */ + if (t->offset == offset && t->action == ta_widen_insn) + break; } } |