diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2018-05-08 13:49:00 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2018-05-09 12:44:08 -0700 |
commit | d0ad159d6848fbd42f5c213f8b051735793101e4 (patch) | |
tree | 9a242b794be15a22c8853954b7215babadfa4fe2 /install-sh | |
parent | 06cfb1c89510d08217da8b3ccea05ecd4cdb5bc6 (diff) | |
download | binutils-d0ad159d6848fbd42f5c213f8b051735793101e4.zip binutils-d0ad159d6848fbd42f5c213f8b051735793101e4.tar.gz binutils-d0ad159d6848fbd42f5c213f8b051735793101e4.tar.bz2 |
gas: xtensa: fix literal movement
Not all literals need to be moved in the presence of
--text-section-literals or --auto-litpools, but only those created by
.literal pseudo op or generated as a result of relaxation. Attempts to
move other literals may result in abnormal termination of the assembler
due to the following assertion failure:
Internal error in xg_find_litpool at gas/config/tc-xtensa.c:11209.
The same assertion may also be triggered by attempting to assign literal
pools to literals in .init and .fini sections; don't try to do that.
gas/
2018-05-09 Max Filippov <jcmvbkbc@gmail.com>
* config/tc-xtensa.c (xtensa_is_init_fini): New function.
(xtensa_move_literals): Only attempt to assign literal pool to
literals with tc_frag_data.is_literal mark and not in .init or
.fini sections.
Join nested 'if' conditions to simplify function structure.
(xtensa_switch_to_non_abs_literal_fragment): Use
xtensa_is_init_fini to test for .init/.fini sections.
* testsuite/gas/xtensa/all.exp (auto-litpools-3)
(auto-litpools-4, text-section-literals-1): New tests.
* testsuite/gas/xtensa/auto-litpools-3.d: New test results.
* testsuite/gas/xtensa/auto-litpools-3.s: New test source.
* testsuite/gas/xtensa/auto-litpools-4.d: New test results.
* testsuite/gas/xtensa/auto-litpools-4.s: New test source.
* testsuite/gas/xtensa/text-section-literals-1.d: New test results.
* testsuite/gas/xtensa/text-section-literals-1.s: New test source.
Diffstat (limited to 'install-sh')
0 files changed, 0 insertions, 0 deletions