diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-01-28 08:21:14 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-01-28 08:21:14 +0000 |
commit | f7e323d58b6312da747af517269c9aa21c78896a (patch) | |
tree | 5f85915934d5bc7eb99ad876dd1d9dac346cde86 /gas | |
parent | a8d6eb4a62a37d1fc53b85842ebf629e068c8ff1 (diff) | |
download | gdb-f7e323d58b6312da747af517269c9aa21c78896a.zip gdb-f7e323d58b6312da747af517269c9aa21c78896a.tar.gz gdb-f7e323d58b6312da747af517269c9aa21c78896a.tar.bz2 |
gas/
2005-01-28 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (ia64_estimate_size_before_relax): Allocate space
for personality routine pointer only if there is one.
(ia64_convert_frag): Likewise.
(generate_unwind_image): Likewise.
ld/testsuite/
2005-01-28 Jan Beulich <jbeulich@novell.com>
* ld/ia64/tlsbin.[rt]d: Widen expected offset/size ranges.
* ld/ia64/tlspic.[rt]d: Likewise.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-ia64.c | 22 |
2 files changed, 22 insertions, 7 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 1d19938..3ab47b3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2005-01-28 Jan Beulich <jbeulich@novell.com> + + * config/tc-ia64.c (ia64_estimate_size_before_relax): Allocate space + for personality routine pointer only if there is one. + (ia64_convert_frag): Likewise. + (generate_unwind_image): Likewise. + 2005-01-27 Christian Groessler <chris@groessler.org> * config/tc-z8k.c (INSERT): Remove, not used anywhere. diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 24fbadd..21b62fb 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -2863,8 +2863,11 @@ ia64_estimate_size_before_relax (fragS *frag, pad = len % md.pointer_size; if (pad != 0) len += md.pointer_size - pad; - /* Add 8 for the header + a pointer for the personality offset. */ - size = len + 8 + md.pointer_size; + /* Add 8 for the header. */ + size = len + 8; + /* Add a pointer for the personality offset. */ + if (frag->fr_offset) + size += md.pointer_size; /* fr_var carries the max_chars that we created the fragment with. We must, of course, have allocated enough memory earlier. */ @@ -2891,8 +2894,11 @@ ia64_convert_frag (fragS *frag) pad = len % md.pointer_size; if (pad != 0) len += md.pointer_size - pad; - /* Add 8 for the header + a pointer for the personality offset. */ - size = len + 8 + md.pointer_size; + /* Add 8 for the header. */ + size = len + 8; + /* Add a pointer for the personality offset. */ + if (frag->fr_offset) + size += md.pointer_size; /* fr_var carries the max_chars that we created the fragment with. We must, of course, have allocated enough memory earlier. */ @@ -3454,9 +3460,11 @@ generate_unwind_image (const segT text_seg) pad = size % md.pointer_size; if (pad != 0) size += md.pointer_size - pad; - /* Add 8 for the header + a pointer for the personality - offset. */ - size += 8 + md.pointer_size; + /* Add 8 for the header. */ + size += 8; + /* Add a pointer for the personality offset. */ + if (unwind.personality_routine) + size += md.pointer_size; } /* If there are unwind records, switch sections, and output the info. */ |