c4d4ef4faee171d690171fbf09e6ebfdb23783af |
|
20-Dec-2017 |
Orion Hodson <oth@google.com> |
dx: Extend descriptors used for signature polymorphic methods Refines the descriptor applied to signature polymorphic methods with new code points for VarHandle set methods and compareAndSet methods. Bug: 65872996 Test: art/tools/buildbot --host -j32 && dx/dalvik/tests/run-all-tests Change-Id: I89d93f234c7bc6cbaae88d6627c4d47f01ec7f83
|
9dbd802c8c96c3a66873bc600bc7d1374a1d08e5 |
|
31-Aug-2017 |
Orion Hodson <oth@google.com> |
dx: Minor code clean-up A few automated code clean-ups: - Insert missing @Override annotations. - Make fields final where possible. - Use StringBuilder rather StringBuffer for local use. - Clean-up imports. Bug: 65231722 Test: dx/tests/run-all-tests Change-Id: I49810f1d43cb53ad32636a66eda2fadc538ba249
|
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
|
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
|
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
|
40c69d949e67fe2cc2cccf4dd16b2f9fdabea396 |
|
23-Aug-2012 |
Ben Gruver <bgruv@google.com> |
Correctly handle switches on values in a high register When dx generates a switch on a value in a high register, it prepends a move instruction, to move the value to a low register. However, this causes the switch data pseudo-instruction to use address of the move instruction as the base address of the switch targets, rather than the address of the switch instruction Change-Id: I0708d35ec3059c30221cd0a64f426244411d31ea
|
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
|
7ba91291bb6ce64691398a8751656207e8e3e98d |
|
30-Jan-2011 |
Dan Bornstein <danfuzz@android.com> |
Move dx.dex.code.DalvOps -> dx.io.Opcodes. This breaks a nascent circular dependency, keeping dx.io the lower layer. Bonus: While I was in the territory, I clarified the data payload opcodes, including adding explicit constants for them. Change-Id: I8655064ebc3b5713cbb4a6c83bcc90984393701f
|
6ca2505711b24a91385c6bf46dbef5c404dcf65f |
|
29-Jan-2011 |
jeffhao <jeffhao@google.com> |
Changed reg allocator to try mapping phi sources/result to the same reg. The current registor allocator is pretty greedy in how it chooses to allocate registers. This change makes it attempt to try to map the sources and result of a phi to the same register if one of them already has a mapping and that mapping is compatible with the others. This saves on some register shuffling when the original greedy method got unlucky. Change-Id: I8afa430ce2ba8d034a9c0452a247d5943bc9cf37
|
dd79e4e11fa20d6677b70ce6618a8653a1f3520d |
|
17-Jan-2011 |
jeffhao <jeffhao@google.com> |
Optimized dx instruction expansion to only generate necessary moves. When an instruction's fields do not fit into an instruction format, dx expands the instruction. Before, this would always use new registers for sources and destination, generating moves for each. However, some of these moves would be unnecessary if an original register already fit into the instruction format. This change checks to see if the original register fits before using a new register and generating a new move. Change-Id: I17c6722cf4053573bf913a28d631386f2c3a733d
|
de75089fb7216d19e9c22cce4dc62a49513477d3 |
|
09-Jun-2010 |
Carl Shapiro <cshapiro@google.com> |
Remove trailing whitespace. Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
|
72e93344b4d1ffc71e9c832ec23de0657e5b04a5 |
|
13-Nov-2009 |
Jean-Baptiste Queru <jbq@google.com> |
eclair snapshot
|
99409883d9c4c0ffb49b070ce307bb33a9dfe9f1 |
|
19-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import //branches/master/...@140412
|
f6c387128427e121477c1b32ad35cdcaa5101ba3 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
f72d5de56a522ac3be03873bdde26f23a5eeeb3c |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
|
077f9d75d9701778830742b9c2afad4742635b58 |
|
19-Feb-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@132276
|
89c1feb0a69a7707b271086e749975b3f7acacf7 |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
|
2ad60cfc28e14ee8f0bb038720836a4696c478ad |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
|