History log of /dalvik/dx/src/com/android/dx/dex/DexOptions.java
Revision Date Author Comments
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