[ARM][PR gas/19217] Fix wrong use of MOVT to replace LDR
Ramana Radhakrishnan
ramana.gcc@googlemail.com
Thu Nov 12 11:05:00 GMT 2015
More information about the Binutils mailing list
Thu Nov 12 11:05:00 GMT 2015
- Previous message (by thread): [ARM][PR gas/19217] Fix wrong use of MOVT to replace LDR
- Next message (by thread): Unable to clone git repo thought https
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Nov 12, 2015 at 10:28 AM, Ramana Radhakrishnan <ramana.gcc@googlemail.com> wrote: > On Thu, Nov 12, 2015 at 10:03 AM, Matthew Wahab > <matthew.wahab@foss.arm.com> wrote: >> Hello, >> >> PR gas/18499 implemented an optimization in which a load-immediate (LDR >> _, =<imm>) was replaced by a MOVW if the bottom half of <imm> was >> non-zero or by a MOVT if the top half was non-zero >> >> This optimization is wrong because, unlike the LDR, the MOVT leaves >> the bottom half of the destination register unchanged. The >> implementation also doesn't deal with the case when the immediate is >> non-zero in both halves. In that case, the LDR would have to be replaced >> with a MOVW+MOVT sequence. > > Yep. >> >> The use of MOVT appears to be the cause of PR gas/19217. This patch >> fixes that miscompilation by dropping the use of MOVT, so that the LDR _, >> =<imm> will only be replaced by MOVW and only if the upper half of <imm> >> is zero. It also removes a redundant feature check and fixes some >> formatting in the code. >> >> Tested arm-none-linux-gnueabihf with cross-compiled check-binutils and >> check-gas. >> >> Ok for trunk? > > Ok. > > regards > Ramana > >> Matthew >> >> gas/ >> 2015-11-11 Matthew Wahab <matthew.wahab@arm.com> >> >> * config/tc-arm.c (move_or_literal_pool): Remove redundant feature >> check. Fix some code formatting. Drop use of MOVT. Add some >> comments. >> >> gas/testsuite/ >> 2015-11-11 Matthew Wahab <matthew.wahab@arm.com> >> >> * gas/arm/thumb2_ldr_immediate_armv6t2.d: Update expected output. I've now applied your patch as 582cfe03cb7496371bc6d83af49b6324d0c36887 adding PR numbers to the Changelog. Please remember to do so for next time. regards Ramana
- Previous message (by thread): [ARM][PR gas/19217] Fix wrong use of MOVT to replace LDR
- Next message (by thread): Unable to clone git repo thought https
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list