b7d748318354aba23ba03f76bdefc31fa6adc885 |
|
13-Jun-2017 |
Orion Hodson <oth@google.com> |
dx: Add support for invoke-custom This change adds the translations to invoke-custom and extends the DEX file sections that dx emits sections for method handles and call sites. Test: dx/tests/run-test 135 Test: dx/testse/run-all-tests Bug: 36641082 Bug: 36957105 Change-Id: Ia1c5b548755485755e8bab0a8f99bd745c2960cd
|
cdef1ee858fde291205f3da685b2720227d2d42f |
|
22-Feb-2017 |
Orion Hodson <oth@google.com> |
DX: Add support for invoke-polymorphic. This change identifies virtual calls to signature polymorphic methods and converts the instruction from invoke-virtual to invoke-polymorphic. Enabled if --min-sdk-version >= 26. Bug: 30550796,33191712 Test: dx/tests/run-test 132-invoke-polymorphic Change-Id: I6771d43982f1b72db030b0c77285bb8e04f918b9
|
e9262fc38f6fc3645a209fac7c4919e4d9cda576 |
|
04-Jan-2017 |
Colin Cross <ccross@android.com> |
Allow invokevirtual, invokespecial, invokestatic on interface methods Allow default and static methods on interfaces if --min-sdk-version >= 24. Test: make checkbuild Change-Id: I6b617a37256bdb95f4c11e58fe2ebf08cf7aa324
|
d0c62c2a778d1c9148077c869f6313723f57eddc |
|
13-May-2014 |
mikaelpeltier <mikaelpeltier@google.com> |
Align 64-bit registers on even dalvik registers The following alignments are done during register allocation - Align 64-bit registers that are not parameters by modifying the method giving the next free register to take into account alignment constraints. - Align the first register of a range to maximize the number of 64-bit registers that will be aligned into the range. The following alignments are done during instruction massaging - Mov instructions inserted to transfer registers which are not compatible with the selected instruction will use even registers for 64-bit registers - Insert the right number of registers during instruction massaging in order not to break alignment done by the register allocator - Align parameters to maximize the number of 64-bit register aligned. Change-Id: Iaac6d7038f33699e9d9897b95d923297c72e20c6
|
3530d30f6adfd8b8607d6a0bf7988833945f5cf4 |
|
17-Jan-2014 |
Jean-Marie Henaff <jmhenaff@google.com> |
Remove code related to extended-opcode. - This support was removed one year ago. (cherry-pick from commit 18b65cbb3ec6634618bd3240a692507432e634b5) Change-Id: I1154e518dc8a15220f2fcb163056570030492bb0
|
fe107fb6e3f308ac5174ebdc5a794ee880c741d9 |
|
17-Sep-2011 |
Jesse Wilson <jessewilson@google.com> |
Mechanical refactoring of dx into two parts. This splits off a new package, com.android.dex that contains code for parsing and modelling dex files. This code is usable both at build time (for compilation and analysis) and at runtime (for introspection). The original package, com.android.dx is the tool that compiles .class files into .dex files. That package also includes utilities for merging and querying dex files, all visible to the dx command line application. In a follow up change I'll move the new com.android.dex package into the libcore/ project, and configure build rules so that it's included in both dx.jar and core.jar. The core.jar will then be able to use it for annotation processing. Change-Id: I3c58cf87e728e4dda1925a0992c1ee7b8130e81a (cherry picked from commit bab4abb07335d162ecdb8091fc395cf84803a580) Conflicts: dx/junit-tests/com/android/dx/util/BitIntSetTest.java dx/junit-tests/com/android/dx/util/BitsTest.java dx/junit-tests/com/android/dx/util/IntListTest.java dx/junit-tests/com/android/dx/util/ListIntSetTest.java dx/src/com/android/dex/Dex.java dx/src/com/android/dex/TableOfContents.java dx/src/com/android/dx/annotations/AnnotationAccess.java dx/src/com/android/dx/command/Main.java dx/src/com/android/dx/dex/code/OutputFinisher.java dx/src/com/android/dx/dex/code/form/Form32s.java dx/src/com/android/dx/dex/code/form/Form33x.java dx/src/com/android/dx/dex/code/form/Form41c.java dx/src/com/android/dx/dex/code/form/Form52c.java dx/src/com/android/dx/gen/DexGenerator.java dx/src/com/android/dx/merge/DexMerger.java
|
f870f2dce9300c8dec620613371f08e5c234245b |
|
16-Oct-2012 |
jeffhao <jeffhao@google.com> |
Add dx option to always generate const-string/jumbo.do not merge. This allows large dex files with many strings to be merged properly. (cherry picked from commit 266f45ff7da18022faf5f77df76c69f8cdad313f) Change-Id: I5fe4c55d84a91101a4f89f590117aa6dc0bfc0f2
|
9db54b1e21b8e994658890328e57caa822e444a7 |
|
16-Oct-2012 |
jeffhao <jeffhao@google.com> |
Add dx option to always generate const-string/jumbo. do not merge. This allows large dex files with many strings to be merged properly. (cherry picked from commit 266f45ff7da18022faf5f77df76c69f8cdad313f) Change-Id: I0277b1a0a81b3a77092a9e9f8f648ff190e29723
|
69dd411c7ef47e3ea3f6ff8be9a4d903f545f0d5 |
|
16-Oct-2012 |
jeffhao <jeffhao@google.com> |
Add dx option to always generate const-string/jumbo. do not merge. This allows large dex files with many strings to be merged properly. (cherry picked from commit 266f45ff7da18022faf5f77df76c69f8cdad313f) Change-Id: I5e85346610c4c5280ecdd9e97c63eaef4420642e
|
266f45ff7da18022faf5f77df76c69f8cdad313f |
|
16-Oct-2012 |
jeffhao <jeffhao@google.com> |
Add dx option to always generate const-string/jumbo. This allows large dex files with many strings to be merged properly. Change-Id: I2c32b03ddb42735d16bc6155c1a1096159fb15ed
|
95f4f019d106a2bb6f9e14e25616f865e8e821ef |
|
12-Dec-2011 |
Brian Carlstrom <bdc@google.com> |
DexOptions should default targetApiLevel to API_NO_EXTENDED_OPCODES Bug: 5738782 (cherry picked from commit b14b69728337cf5808eed4d5652fb9d5be33dff0) Change-Id: I51991c85c74b41fa51556b369a3724ba9dd0c090
|
9fdbd91288a237eb58e18e4de9c729c3c268c318 |
|
25-May-2011 |
Dan Bornstein <danfuzz@android.com> |
Update dex file magic number. Even though the dex format was technically resilient with respect to the addition of new opcodes, consensus is that the errors one sees when trying to use a new dex file on an old build were sufficiently inscrutable that it was worth the effort to update the version number embedded in the dex format magic. This change updates dx to produce the new version number when extended opcodes are enabled (which is the default, but may be overridden by targeting an older API level). This also updates the vm to recognize and accept both the new current version number as well as the immediately previous one. Note: It won't reject an old-version file if it happens to use the new opcodes; that would just be a gratuitous and pointless failure. Bug: 4364986 Change-Id: If8febbb0b91c1719df4247bf69c511251362d91f
|
3dfda9ad1964510e4a7948a240b30cd710e86341 |
|
17-Mar-2011 |
Dan Bornstein <danfuzz@android.com> |
Add --target-api=N option to dx. This change adds the option and plumbs it into where it needs to go, but doesn't add any code to take action on it. That will come in a follow-up. Bug: 4094709 Change-Id: I9c796e176e125b0bcee18af56d9e6da802dfa081
|