summaryrefslogtreecommitdiffstats
path: root/dexdump
Commit message (Collapse)AuthorAgeFilesLines
* Add a libbase dependency for dexdump/dexlist.Narayan Kamath2015-06-031-7/+10
| | | | | | | | | 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)
* Remove libdexdump_static.Narayan Kamath2015-05-011-11/+0
| | | | | | | Was only used by the fingerprinter, which has now been deleted. Change-Id: I52c251a60ab6a85167fe734626573bc83f86cfcf
* Make the rest of libdex and dexdump LOCAL_32_BIT_ONLYBrian Carlstrom2014-09-131-2/+5
| | | | | Bug: 17442393 Change-Id: I10a9398efd7e78fac01fc49b9cb2f377331a76cd
* dalvik: let 32-bit dalvik build on multilib targetsColin Cross2014-03-211-0/+2
| | | | | | | | | | | 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
* Fix libutils dependencies for dexdump & dexlist (again).Narayan Kamath2013-12-181-2/+1
| | | | | | | | | | | 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
* Merge "Revert "Revert "Use libziparchive for dalvik zip processing."""Narayan Kamath2013-12-181-1/+2
|\
| * Revert "Revert "Use libziparchive for dalvik zip processing.""Narayan Kamath2013-12-171-1/+2
| | | | | | | | This reverts commit 52dacd58ac8735ffdcd6bbe952586a38ad70e6a5.
* | Merge "Revert "Use libziparchive for dalvik zip processing.""Guang Zhu2013-12-161-2/+1
|\ \
| * | Revert "Use libziparchive for dalvik zip processing."Guang Zhu2013-12-161-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 12173498 This reverts commit ac4202a846965a6b5a88001a8ad3d5321edeb81c. Change-Id: Ie48d873bded13e0f73cb1e926dbcd30a66933176
* | | Merge "Fix libutils dependencies for dexdump & dexlist."Narayan Kamath2013-12-161-5/+3
|\ \ \ | |/ / |/| |
| * | Fix libutils dependencies for dexdump & dexlist.Narayan Kamath2013-12-161-5/+3
| |/ | | | | | | | | | | | | | | | | 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
* / Use libziparchive for dalvik zip processing.Narayan Kamath2013-12-131-1/+2
|/ | | | | | | | | | | | 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
* Print proto_ids_{size,off} along with the rest of the header.Carl Shapiro2013-05-031-0/+3
| | | | | | (cherry picked from commit 6e5f79ce9af380d12238a4ed958cdb56e5490ced) Change-Id: Ie1df9e0f23d8f5fcea4b6ed7487c61a8182e1a65
* Remove unnecessary JNI_H_INCLUDE from LOCAL_C_INCLUDESBrian Carlstrom2013-05-031-2/+1
| | | | Change-Id: I463a62898e5dd8eb01d1dfbaf71f67d8e1b4e67c
* DexDump: Leak in FieldMethodInfo.signatureYou Kim2012-12-251-0/+2
| | | | | | Free pMethInfo->signature when filled by getMethodInfo. Change-Id: Id278d732374daceb7b8b05be7f433af25eee0c27
* Don't crash on invalid string/type ids.Elliott Hughes2012-08-061-4/+13
| | | | | Bug: http://code.google.com/p/android/issues/detail?id=35934 Change-Id: I7bf31f6c80c794beb3554ad2f60ed5ebbca0c65e
* Use uintptr_t for cast pointer to integer.SangWook Han2012-07-181-1/+1
| | | | | | | On 64bit host, sizeof pointer is not equal to sizeof int/u4. Need for host tools. Change-Id: Id8d9418787e79523226b9c9e3f67277f9ac7c6aa
* Remove unsupported experimental opcodes.Elliott Hughes2012-01-051-12/+0
| | | | | | | External developers were starting to try to get themselves into trouble with this stuff... Change-Id: I2b03bfeaa8c98b6a994bc7924fc8dcf4e4d4f6cb
* Remove the simulator target from all makefiles.Jeff Brown2011-07-111-2/+0
| | | | | | Bug: 5010576 Change-Id: I544b54b673d9fd42197a5c97a291578a0bd0db5f
* Get rid of uneeded extern, enum, typedef and struct qualifiers.Carl Shapiro2011-04-271-2/+2
| | | | Change-Id: I236c5a1553a51f82c9bc3eaaab042046c854d3b4
* Make libdex structures tool friendly.Carl Shapiro2011-04-272-13/+16
| | | | | | | | | | 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
* am ce52ba38: Build libdexdump_static.Ying Wang2011-03-111-0/+8
|\ | | | | | | | | * commit 'ce52ba385f7f84cd47fdf004640de8f53181114d': Build libdexdump_static.
| * Build libdexdump_static.Ying Wang2011-03-111-0/+8
| | | | | | | | | | | | Which will be used in libdexdumpjni. Change-Id: I7431fdcd006b4c4cf92e3565265830a39ccf3084
* | A bit of libdex spring cleaning.Dan Bornstein2011-03-091-1/+4
| | | | | | | | | | | | | | | | | | 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
* | am 46413c1b: Add notice file for dx.jar and dexdumpXavier Ducrohet2011-03-011-0/+190
|\| | | | | | | | | * commit '46413c1b857d2d25af800ffbb11b6eaefac0136a': Add notice file for dx.jar and dexdump
| * Add notice file for dx.jar and dexdumpXavier Ducrohet2011-02-281-0/+190
| | | | | | | | Change-Id: I0094d382e866b8767383516abd367c98712da594
* | Added vm support for new jumbo opcodes.jeffhao2011-01-071-0/+1
|/ | | | | | | | | 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
* Rename some instruction/opcode types and utilities.Dan Bornstein2010-12-021-5/+5
| | | | | | | | | 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
* It's "opcode" not "opCode".Dan Bornstein2010-12-011-7/+7
| | | | | | | | | | 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
* Rename OpCode.h -> DexOpcodes.h.Dan Bornstein2010-12-011-1/+1
| | | | | | | | 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
* Add more "extended opcode" structure to libdex.Dan Bornstein2010-12-011-3/+10
| | | | | | | | | | | | | | | | 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
* Get rid of the copies of the opcode table pointers.Dan Bornstein2010-11-191-8/+3
| | | | | | | | | | | | | | | 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
* Use the generated opcode info tables.Dan Bornstein2010-11-171-7/+2
| | | | | | | | 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
* Generate the tables in InstrUtils.c...almost.Dan Bornstein2010-11-171-1/+1
| | | | | | | | | | | | | 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
* TypeRef, not ClassRef.Dan Bornstein2010-11-121-2/+2
| | | | | | | Old habits die hard. The things in question have been called TypeRefs for quite a while now. Change-Id: I77b0066a67c63b8e801ec62eb613f18a4812585a
* Stop reporting negative widths.Andy McFadden2010-11-121-1/+1
| | | | | | | | | 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
* Add the new instruction formats.Dan Bornstein2010-11-111-139/+163
| | | | | | | | | | | | 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
* Add a new index type table for instruction decoding.Dan Bornstein2010-11-101-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Reharmonize the implementation with the spec.Dan Bornstein2010-11-091-4/+3
| | | | | | | | | | | | | | | | 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
* Shift register index tests to static pass.Andy McFadden2010-11-041-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add optional tags to dalvik.Jesse Wilson2010-09-161-1/+2
| | | | Change-Id: I29a78ccb6312d12b3ef0ed02cfbc638a5b01db9c
* Remove the functionality in ReduceConstants.[ch].Dan Bornstein2010-09-091-6/+0
| | | | | | | | 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
* Split out the optimized dex file handling into its own file.Dan Bornstein2010-08-311-16/+16
| | | | | | | Also, make the optimized dex data area be consistently referred to as the "opt" section instead of sometimes the "aux" section. Change-Id: Id5589c13ce4b53d713f8186314ea886cd884c865
* Relocate OpCodeNames.[ch].Andy McFadden2010-06-224-360/+3
| | | | | | | 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
* Fix dexdump.Andy McFadden2010-06-221-5/+8
| | | | | | | | 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
* Add opcodes for volatile field accessesAndy McFadden2010-06-181-8/+8
| | | | | | | | | | | | | | | | | | | | 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
* Remove repeated newlines at the end of files.Carl Shapiro2010-06-083-3/+0
| | | | Change-Id: I1e3d103a7b932ef21acedb6438c0f26b315df28f
* Remove trailing whitespace.Carl Shapiro2010-06-082-23/+23
| | | | Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
* am ed4035bc: am d2203aa0: am 1beb43af: merge from open-source masterThe Android Open Source Project2010-04-221-9/+3
|\ | | | | | | | | | | | | Merge commit 'ed4035bca3233c7a40c4d5679c3f7dfea9516c7e' into dalvik-dev * commit 'ed4035bca3233c7a40c4d5679c3f7dfea9516c7e': Improve the implementation of countOnes function to use only 12 operations.
| * am d2203aa0: am 1beb43af: merge from open-source masterThe Android Open Source Project2010-04-221-9/+3
| |\