OSDN Git Service

ARM64: Remove all uses of BlockPoolsScope.
authorArtem Serov <artem.serov@linaro.org>
Tue, 7 Feb 2017 14:33:49 +0000 (14:33 +0000)
committerArtem Serov <artem.serov@linaro.org>
Fri, 10 Feb 2017 15:12:36 +0000 (15:12 +0000)
commit914d7a8fca1184837475016d186585d863e81830
treee0b2ea229d4071d3d1149aa3c60307b75e350d6c
parent4e4b62e21672dbacf5d5abb688a126aabad29269
ARM64: Remove all uses of BlockPoolsScope.

BlockPoolsScope should not be used because it is a VIXL scope
for VIXL internal usage only. In arm64 backend the intent was to
block pools between a particular instruction (Ldr, Str, Blr, etc)
and a subsequent MaybeRecordImplicitNullCheck or RecordPcInfo call.
However pools should be emitted at the opening of a scope if this
is required to satisfy branch/ldr ranges. This is not done by the
BlockPoolsScope, so proper scopes are now used now:
ExactAssemblyScope and EmissionCheckScope.

Test: test-art-host
Test: test-art-target

Bug: 34850123

Change-Id: I30365ad63c644cf9dd85d5a3c2118f9c57be9d20
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_arm64.h
compiler/optimizing/intrinsics_arm64.cc