| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Required by the libziparchive static dependency. Also fix
a few tabs in the makefile.
Bug: http://b/21558406
Change-Id: Iaa7aad6e7f3dfc6014651385d7182c009e182914
(cherry picked from commit a06ce75c10dce097c0a040562393e5889fa264f1)
|
| |
|
|
|
|
|
| |
Was only used by the fingerprinter, which has now been
deleted.
Change-Id: I52c251a60ab6a85167fe734626573bc83f86cfcf
|
| |
|
|
|
| |
Bug: 17442393
Change-Id: I10a9398efd7e78fac01fc49b9cb2f377331a76cd
|
| |
|
|
|
|
|
|
|
|
|
| |
Set LOCAL_32_BIT_ONLY for all target modules
Use LOCAL_LDFLAGS_x86 instead of ifeq ($(TARGET_ARCH),x86)
Set dvm_arch to TARGET_2ND_ARCH instead of TARGET_ARCH on 64-bit
targets
This will allow "make checkbuild" to succeed on 64-bit platforms.
Change-Id: Idd51dda26b54855c0c8640f8fcfbf4274baf8845
|
| |
|
|
|
|
|
|
|
|
|
| |
We managed to get into a bad state because the change that
fixed dependencies on dalvik-dev was cherry-picked on to
master-aosp and then the change that needed this was
reverted.
Git got confused as a result.
Change-Id: Idef607a676cff85d00e95a94a9be09d791b2fa96
|
| |\ |
|
| | |
| |
| |
| | |
This reverts commit 52dacd58ac8735ffdcd6bbe952586a38ad70e6a5.
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 12173498
This reverts commit ac4202a846965a6b5a88001a8ad3d5321edeb81c.
Change-Id: Ie48d873bded13e0f73cb1e926dbcd30a66933176
|
| |\ \ \
| |/ /
|/| | |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| | |
We should always use a libutils SHARED_LIBRARY on the target &
a STATIC_LIBRARY on the host.
(cherry picked from commit 2ac78805e1b4d80308c5c4a48a997abc3a2ac37b)
Change-Id: I06c9b8f0cf663e00da0eeba54c893d8eec1d8a9f
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
The API was similar enough that we could just delegate
to existing zip functions. The existing ZipArchiveHandle /
ZipEntry types have been reused instead of defining new
types.
The old ZipArchive type has been removed because it serves
no useful purpose, and no code was using it anyway.
Change-Id: I47f12344d1e6efc234fed50b1613f9f179a9b03f
|
| |
|
|
|
|
| |
(cherry picked from commit 6e5f79ce9af380d12238a4ed958cdb56e5490ced)
Change-Id: Ie1df9e0f23d8f5fcea4b6ed7487c61a8182e1a65
|
| |
|
|
| |
Change-Id: I463a62898e5dd8eb01d1dfbaf71f67d8e1b4e67c
|
| |
|
|
|
|
| |
Free pMethInfo->signature when filled by getMethodInfo.
Change-Id: Id278d732374daceb7b8b05be7f433af25eee0c27
|
| |
|
|
|
| |
Bug: http://code.google.com/p/android/issues/detail?id=35934
Change-Id: I7bf31f6c80c794beb3554ad2f60ed5ebbca0c65e
|
| |
|
|
|
|
|
| |
On 64bit host, sizeof pointer is not equal to sizeof int/u4.
Need for host tools.
Change-Id: Id8d9418787e79523226b9c9e3f67277f9ac7c6aa
|
| |
|
|
|
|
|
| |
External developers were starting to try to get themselves into trouble with
this stuff...
Change-Id: I2b03bfeaa8c98b6a994bc7924fc8dcf4e4d4f6cb
|
| |
|
|
|
|
| |
Bug: 5010576
Change-Id: I544b54b673d9fd42197a5c97a291578a0bd0db5f
|
| |
|
|
| |
Change-Id: I236c5a1553a51f82c9bc3eaaab042046c854d3b4
|
| |
|
|
|
|
|
|
|
|
| |
Previously, the struct name and its typedef name were identical. This
confuses emacs and etags. This change eliminates the typedef names and
removes the extern "C" wrapping the libdex header files. To support
this change the transitive C dependencies have been made to compile as
C++ instead.
Change-Id: I7065f32d61d776f9b09c7b461adf2502268d852f
|
| |\
| |
| |
| |
| | |
* commit 'ce52ba385f7f84cd47fdf004640de8f53181114d':
Build libdexdump_static.
|
| | |
| |
| |
| |
| |
| | |
Which will be used in libdexdumpjni.
Change-Id: I7431fdcd006b4c4cf92e3565265830a39ccf3084
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Give the UTF-8 parsing/validation code and the debug info decoder
their own files in libdex. Also, moved the random utility
dexRoundUpPower2() so it wasn't in the middle of unrelated stuff
(though maybe it doesn't want to stay in DexFile.c at all).
Change-Id: I115447e49904e2440dd538b1df90616ea95707a9
|
| |\|
| |
| |
| |
| | |
* commit '46413c1b857d2d25af800ffbb11b6eaefac0136a':
Add notice file for dx.jar and dexdump
|
| | |
| |
| |
| | |
Change-Id: I0094d382e866b8767383516abd367c98712da594
|
| |/
|
|
|
|
|
|
|
| |
This enables jumbo opcodes by default, and they will get used by the
current build without modification. Support has been added for arm, x86,
and the portable interpreter. x86-atom support is on the TODO list. This
commit also includes a test for the new jumbo opcodes.
Change-Id: Ic3f1b41b51645861c5196f76aaf0e96e727ea537
|
| |
|
|
|
|
|
|
|
| |
A lot of this is more about properties of opcodes as opposed to
inspecting instructions per se, and the new naming attempts to
make it clear what is being queried and what sort of data is being
returned.
Change-Id: Ice6f9f2ebf4f1cfa8c99597419aa13d1134a33b2
|
| |
|
|
|
|
|
|
|
|
| |
Similarly "Opcode" not "OpCode".
This appears to be the general worldwide consensus on the matter. Other
residents of my office didn't seem to mind one way or the other how it's
spelled in our code, but for whatever reason, it really bugged me.
Change-Id: Ia0b73d19c54aefc0f543a9c9451dda22ee876a59
|
| |
|
|
|
|
|
|
| |
Also incorporate the former contents of OpCodeNames.h. This is a small
attempt to increase naming consistency in libdex. There will be a bit
more to come, in a follow-up.
Change-Id: Ia7ab06042dde2e19eda02ef1fee72fb4260e899d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although we don't yet generate any of the extended opcodes, this
change makes it a bit easier to add them.
In particular, we now differentiate between the raw opcode in a code
unit and an associated "packed opcode number." The packed opcode space
is densely populated in the range 0x000-0x1ff (though there will still
be a few unused slots), whereas the raw opcode values are sparse
throughout the range 0x0000-0xffff.
The OpCode enum is redefined/clarified to have packed, not sparse,
opcode values.
Change-Id: Ie3208a258648fbf044d344646f66c49ad24c31b2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This inclduded fixing all the accessor functions to refer to the
global ones defined in InstrUtils.[ch] instead of taking separate
"table pointer" arguments.
This did end up adding a few more truly global references to some of
the code paths, particularly when performing dex optimization, so I
went ahead and measured the time to do a cold first-boot both before
and after the change (on real hardware). The times were identical (to
one-second granularity), so I'm reasonably comfortable making this
change.
Change-Id: I604d9f7882bad4245bb11371218d13b06c3a5375
|
| |
|
|
|
|
|
|
| |
This is, once again, an intermediate step. Soon, I'm going to try to
remove need to keep and pass copies of the opcode info pointers all
over the place.
Change-Id: Ic6af849310b22ca604a7f2d18c78ff8d112459b4
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds code to opcode-gen to generate the opcode info tables
currently built at vm start time, but they are left commented out for
now. I wanted to separate the work of getting these tables generated
from the work of getting those new tables hooked up, and this seemed
like a reasonable way to cut through the larger effort.
To be clear, I've already verified that the data in the new
pregenerated tables matches what's in the status quo.
Change-Id: Ie73dc6c6a5721e8f714f845c97b5338141995770
|
| |
|
|
|
|
|
| |
Old habits die hard. The things in question have been called TypeRefs
for quite a while now.
Change-Id: I77b0066a67c63b8e801ec62eb613f18a4812585a
|
| |
|
|
|
|
|
|
|
| |
At one point, returning a negative width for dexopt output was useful.
That stopped being the case a long time ago.
This also removes a bad assert that went into my previous checkin.
Change-Id: I18880c2316f5499a09dc479d271ca70b2a5be259
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This just adds new elements to the enum and adds code to InstrUtils
and dexdump which knows how to decode them.
In dexdump, I took advantage of the new index type table to simplify
how all the index-bearing instructions get dumped, to the point where
adding the new formats was really just a matter of picking the right
switch cases to add new labels to.
Change-Id: I9094b0d568e7c71ee237672bbea8c319274c6697
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is in prep for -- recurring theme here -- adding the new extended
opcode formats. It turns out that we can avoid a lot of duplicated code
if we determine the type of thing referred to in index-bearing instructions
inside the general instruction decoder. To do so straightforwardly, this
means adding a new opcode info table and then passing it into the decoder.
Rather than add another argument to the decoder, I defined a struct to
contain all the info tables together, and a pointer to that can get passed
in.
I simplified the setting up of the info tables, too, so all the
allocation is handled within InstrUtils, rather than being (partially)
duplicated in a couple places. The only downside is that dexdump will
construct one more table than it actually needs, but given that
construction is quick and the table is only 256 bytes (though will
soon be growing to -- gasp! -- 294 bytes), I figure it's not such a
big deal.
Most of the files that changed only had edits for how to refer to these
info tables.
Change-Id: Ia6f1cb25da6e558ac90c6dd3af6bce36b82a6b4d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, I altered the naming of some instruction format fields
as well as the names of instruction formats themselves, all in an attempt
to make the implementation be a more straightforward match of the spec.
This patch mostly changes comments to reflect the new harmonized
reality. The only "code-like" change is the renaming of kFmt3inline
and kFmt3rinline to kFmt35mi and kFmt3rmi (respectively), which is
what they're called in the spec.
Bonus: Added the new extended opcode instruction formats to
InstrUtils.h, though I left them commented out for now.
Change-Id: I0109f361c1e9b6f0308c45e8cda5320e9ad3060c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This rather hefty change moves the range tests on register index values
from the code-flow pass to the earlier static analysis pass. The idea
is to test everything up front so that we don't have to do a bounds
check every time we get or set a register value during verification.
This allowed some simplification in the code-flow pass, since get/set
of a register no longer needs to have the method register count passed
in, and can no longer fail due to bad input.
As part of doing this, some of the static verification code was
cleaned up, e.g. the instruction decoding is now only done in one place.
This had no apparently effect on performance on nexus one -- verify+opt
of the bootstrap classes takes the same amount of time. However, it
does reduce the compiled size of the humongous instruction verification
method by about 10%.
Also, cleaned up some instruction format stuff (e.g. removed 3rfs).
Bug 2534655.
(cherry-pick from dalvik-dev)
Change-Id: I1b220f4e97b1214ed575470695c52e1bd64d5137
|
| |
|
|
| |
Change-Id: I29a78ccb6312d12b3ef0ed02cfbc638a5b01db9c
|
| |
|
|
|
|
|
|
| |
It was a good experiment to try, but it was never made production-ready,
and it doesn't look like it would be a net win at this point. We
metaphorically pour out a beer in its honor.
Change-Id: I7f6ac95f5b7c963df0a3015ed33595fa1a928636
|
| |
|
|
|
|
|
| |
Also, make the optimized dex data area be consistently referred to as
the "opt" section instead of sometimes the "aux" section.
Change-Id: Id5589c13ce4b53d713f8186314ea886cd884c865
|
| |
|
|
|
|
|
| |
The JIT was pulling it out of the dexdump directory, which is Just
Plain Wrong[tm]. Now it's part of libdex, for all to enjoy.
Change-Id: Ic1e4c981eb2d70ccc3c841ceb5a54f4f77af2008
|
| |
|
|
|
|
|
|
| |
It was printing bad output or crashing on the -wide-volatile instructions
generated by "dx". This inverts the "else" clause, treating new-array
and instance-of as the special case.
Change-Id: I1717508d2e41cdc9a2396e2eaa215d7f9f8ac21b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds instructions for {i,s}{get,put}{,-object}-volatile, for a
total of eight new instructions.
On SMP systems, these instructions will be substituted in for existing
field access instructions, either by dexopt or during just-in-time
verification. Unlike the wide-volatile instructions, these will not be
used at all when the VM is not built for SMP.
(Ideally we'd omit the volatile instruction implementations entirely on
non-SMP builds, but that requires a little work in gen-mterp.py.)
The change defines and implements the opcodes and support methods, but
does not cause them to be used.
Also, changed dvmQuasiAtomicRead64's argument to be const.
Change-Id: I9e44fe881e87f27aa41f6c6e898ec4402cb5493e
|
| |
|
|
| |
Change-Id: I1e3d103a7b932ef21acedb6438c0f26b315df28f
|
| |
|
|
| |
Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
|
| |\
| |
| |
| |
| |
| |
| | |
Merge commit 'ed4035bca3233c7a40c4d5679c3f7dfea9516c7e' into dalvik-dev
* commit 'ed4035bca3233c7a40c4d5679c3f7dfea9516c7e':
Improve the implementation of countOnes function to use only 12 operations.
|
| | |\ |
|