From 663c93448e50599d411b2403585b90513dbf8e3a Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Wed, 22 Jul 2015 11:28:14 +0100 Subject: ART: Fix Thumb2 literal fixup. When processing a load literal during fixup, we use the current code size to determine whether we need to add the padding before literals. However, this may change by the end of the fixup, yet we didn't recalculate to see if the load literal is pushed out of range. Instead of making the load literal fixup also depend on all preceding fixups, add an extra pass over literals when we need the padding and repeat the fixup loop if needed. Change-Id: Ia21d660486167a2dcb1ad4afe8acc669b4af669d --- compiler/utils/arm/assembler_thumb2.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'compiler/utils/arm/assembler_thumb2.h') diff --git a/compiler/utils/arm/assembler_thumb2.h b/compiler/utils/arm/assembler_thumb2.h index 838554ee6d..41eb5d36f2 100644 --- a/compiler/utils/arm/assembler_thumb2.h +++ b/compiler/utils/arm/assembler_thumb2.h @@ -489,6 +489,10 @@ class Thumb2Assembler FINAL : public ArmAssembler { return type_; } + bool IsLoadLiteral() const { + return GetType() >= kLoadLiteralNarrow; + } + Size GetOriginalSize() const { return original_size_; } -- cgit v1.2.3-59-g8ed1b