summaryrefslogtreecommitdiff
path: root/test/008-exceptions/src/MultiDexBadInitWrapper1.java
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2015-03-20 12:47:30 +0000
committerVladimir Marko <vmarko@google.com>2015-06-03 20:10:12 +0100
commit7cc8f9aa1349fd6cb0814a653ee2d1164a7fb9f7 (patch)
tree4465d4783765591adf63a5cb62091afbebefdcba /test/008-exceptions/src/MultiDexBadInitWrapper1.java
parent3c683c5d107cb43e8027d740ed579ef92a88af2e (diff)
Quick: Create GC map based on compiler data. DO NOT MERGE
The Quick compiler and verifier sometimes disagree on dalvik register types (fp/core/ref) for 0/null constants and merged registers involving 0/null constants. Since the verifier is more lenient it can mark a register as a reference for GC where Quick considers it a floating point register or a dead register (which would have a ref/fp conflict if not dead). If the compiler used an fp register to hold the zero value, the core register or stack location used by GC based on the verifier data can hold an invalid value. Previously, as a workaround we stored the fp zero value also in the stack location or core register where GC would look for it. This wasn't precise and may have missed some cases. To fix this properly, we now generate GC maps based on the compiler's notion of references if register promotion is enabled. Bug: https://code.google.com/p/android/issues/detail?id=147187 (cherry picked from commit 767c752fddc64e280dba507457e4f06002b5f678) Change-Id: Id75428fd0a2f6bdd2ccb20ce75cdeab01150e455
Diffstat (limited to 'test/008-exceptions/src/MultiDexBadInitWrapper1.java')
0 files changed, 0 insertions, 0 deletions