summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Fail threads attaching during runtime shutdown." into dalvik-devIan Rogers2012-10-0323-220/+362
|\
| * Fail threads attaching during runtime shutdown.Ian Rogers2012-10-0323-220/+362
| | | | | | | | | | | | | | | | | | Introduce counters to indicate that threads are being born. Don't allow thread birth to occur during runtime shutdown. Bug: 7000936 Change-Id: Ib0d78f78c0ff126a4b5d3b5a6f1a2ff8f5061ae9
* | Merge "Fix endianness of compiled code and stacks of stubs for MIPS." into ↵jeffhao2012-10-036-80/+86
|\ \ | |/ |/| | | dalvik-dev
| * Fix endianness of compiled code and stacks of stubs for MIPS.jeffhao2012-10-036-80/+86
| | | | | | | | | | | | The gtests now all work on MIPS. Change-Id: I2883ce002f23d75e700366014517c863fb626d09
* | Merge "Fix oatdump off-by-one" into dalvik-devbuzbee2012-10-031-0/+1
|\ \
| * | Fix oatdump off-by-onebuzbee2012-10-031-0/+1
| |/ | | | | | | | | | | | | The dump of the pc <-> dex mapping tables was broken by the recent mapping table restructuring change. Fixed now. Change-Id: I36c869e4a2853e18e021268b5b4eb49a4b76c970
* | Enable bitcode verification for debug buildsbuzbee2012-10-024-2/+52
|/ | | | | | | | | Turn bitcode function verification on for debug Quick and Portable builds. Also in this CL, some sanity checking for the dex2pc table and a temporary workaround for excessive filename lengths for bitcode file dumps. Change-Id: I430ed28824b078c03be7826cb13876cdcb8a0fec
* Make verifier ignore a method if it's a duplicate.jeffhao2012-10-011-0/+16
| | | | | | | | | The compiler has a similar hack. We should eventually fix the iterator to skip the duplicates automatically, but then the dump would be missing them. I'll work on a test case so we can detect these problems more easily. Change-Id: Icf866f32395ee43c979747efa8141e3457bacdd1
* Disable (again) futex ReaderWriterMutex implementation.Ian Rogers2012-09-301-1/+1
| | | | Change-Id: Ia7cfb18dfd3d7691c6cd2ba27d91f484e82c92db
* Temporarily enable futex version of ReaderWriterMutex.Ian Rogers2012-09-292-1/+6
| | | | | | | To get some numbers. Also fix a bug for when self == NULL. Change-Id: I93189e74df7e01a0efd02491ea49ed371738863c
* Fix build (broken method signature).Ian Rogers2012-09-281-1/+1
| | | | Change-Id: I69b11abc573ecf55912f6a539257e817330006e0
* Merge "Fix race in thread attaching during GC." into dalvik-devIan Rogers2012-09-287-74/+142
|\
| * Fix race in thread attaching during GC.Ian Rogers2012-09-287-74/+142
| | | | | | | | | | | | | | Forgot to mask in suspend request if thread is attaching during GC. Lots of extra assertions and debugging. Change-Id: Id4d2ab659284acace51b37b86831a968c1945ae8
* | Split dex_pc<->native_pc mapping tableBill Buzbee2012-09-2812-44/+139
|/ | | | | | | | | | | | | | | | | | | | | | First of 2 related CLs - this one moves to a split table, a future CL will compress the table to save image space. The current MappingTable mixes two flavors of entries: dex->pc and pc(return address)->dex. The problem is that we can have two entries with the same native pc address but two different dex pcs. The reason is that when we go from native pc to dex, the native pc is actually the return address from the previous call, whereas when we go from dex to native pc, the mapping refers to the first native instruction of the sequence. Previously, the first entry in the mapping table was the number of subsequent entries. That will remain the same, but now the second entry will be a count of the number of entries in the pc->dex section of the table. The difference between the two counts gives us the number of entries in the following dex->pc section. Change-Id: Ibadb96cb50bf1f93e079dff3832130b9f9782723
* Make dex instruction size a lookup.Ian Rogers2012-09-286-75/+80
| | | | | | | Add ostream operators for dex instruction enums. Move simple methods to header file. Change-Id: I9644bfb975896a491ee73ef9a8ef13c062c5fcbd
* Mac build fix.Ian Rogers2012-09-271-1/+1
| | | | Change-Id: I7abd17c51aacd4f79abcb12b76f4830ca36075ba
* Pass self to lock methods.Ian Rogers2012-09-2738-609/+837
| | | | | | | | | This avoids frequent recomputation of Thread::Current/pthread_getspecific. Also add a futex based reader/writer mutex that is disabled. Change-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee
* Merge "Port 138b7a2e54923d99ed817f9a890c6fcd7c23c335 to art" into dalvik-devNick Kralevich2012-09-271-5/+26
|\
| * Port 138b7a2e54923d99ed817f9a890c6fcd7c23c335 to artNick Kralevich2012-09-271-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable ADDR_NO_RANDOMIZE for 3.4 or greater kernels Early kernels had memory fragmentation bugs on ARM when ASLR was enabled. The ADDR_NO_RANDOMIZE flag was added to work around this bug until the appropriate kernel fix could be made. Linux kernel 3.4 seems to have this fix, making this workaround unnecessary. Remove the workaround if we detect we're running an up-to-date kernel. (I believe the kernel patch is also in 3.3, but haven't explicitly tested it). Bug: 5817320 Change-Id: Ife1e511355c62c16fc90ba22811face7b573b312
* | Merge "Log if dlopen(3) fails." into dalvik-devElliott Hughes2012-09-271-17/+2
|\ \ | |/ |/|
| * Log if dlopen(3) fails.Elliott Hughes2012-09-271-17/+2
| | | | | | | | | | | | | | (art equivalent of bab2237924fa26e16f732965657f8ff93ab27f37.) Bug: 7093208 Change-Id: Ica21a388dd9172ffd5262469d54301815dbb752a
* | Merge "Force inlining of ObjectArray::Get." into dalvik-devIan Rogers2012-09-271-1/+1
|\ \ | |/ |/|
| * Force inlining of ObjectArray::Get.Ian Rogers2012-09-271-1/+1
| | | | | | | | | | | | | | Hot array access used in Class::Implements, forcing inlining moves InstanceOfNot DalvikPerf benchmark from 416 to 176. Change-Id: Ibf06d46ed82a50dbdc5620ed2b81a3f3d173ad41
* | Merge "Fix framework perf regression" into dalvik-devIan Rogers2012-09-264-3/+14
|\ \
| * | Fix framework perf regressionMathieu Chartier2012-09-264-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | Fix framework perf error caused by broken if statement in CanAllocate. Add some additional checks to try and debug large object space related monkey crashes. Change-Id: I49add14eef6f10ba0877b4d282fb6a1bbce75fa4
* | | Corresponding CL of thread flags for portable.TDYa1272012-09-2610-38/+66
| |/ |/| | | | | Change-Id: I6ad0c6159115e0d8879e0d9d674d760cd48f29c9
* | Merge "Fixes to make jni_compiler_test work on MIPS." into dalvik-devjeffhao2012-09-2612-69/+59
|\ \
| * | Fixes to make jni_compiler_test work on MIPS.jeffhao2012-09-2612-69/+59
| |/ | | | | | | | | | | | | | | | | Fixed the jni compiler in numerous ways: - Added NOP for delay slot of branches/jumps - Made calling convention match registers pushed by stubs - Fixes to assembly and added noreorder directive Change-Id: I32bc55985fbbc58b5b5358149766b8738b3ac955
* | Fix Mac build.Ian Rogers2012-09-262-23/+26
|/ | | | Change-Id: I2d83c018399422af0f8aa1cdaba7ade014053992
* Fix segv in indirect reference table dump.Ian Rogers2012-09-263-25/+131
| | | | | | | | | ReferenceTable::Dump is common code but can't handle NULLs. Process IndirectReferenceTable's use so that it doesn't pass NULLs for removed slots. Improve unit tests. Change-Id: Ia41375f8f2ecc907ceda8c39d146ce6ef607fb08
* Use shorter opcodes on x86 for opCmpImmBranch.Ian Rogers2012-09-264-3/+6
| | | | | | Gets instruction expansion from ~5.1 to ~4.9. Change-Id: I14719df1f256589035635edcc20e25ebd396657c
* Change Thread::peer_ to be a jobject instead of an Object*Mathieu Chartier2012-09-257-70/+70
| | | | | | Fixes issue where GC was freeing the java peer if the parent thread exited before the child thread got registered. Change-Id: I6fbe74865d5827d243ac55fc396679afa97ff2f9
* Move thread flags and state into 32bits.Ian Rogers2012-09-2527-348/+180
| | | | | | | | | | | | | | | | | We need to ensure that transitions to Runnable are atomic wrt to a thread modifying the suspend count. Currently this is achieved by holding the thread_suspend_count_lock_. This change creates a set of bit flags that summarize that the suspend_count_ is raised and also others flags that signify the managed code should go into a slow path. The effect of this change are two-fold: 1) transitions from suspended to runnable can CAS the thread state rather than holding the suspend_count_lock_. This will make JNI transitions cheaper. 2) the exception/suspend/interpreter poll needed for shadow frames can be rolled into a single compare of the bit fields against 0. Change-Id: I589f84e3dca396c3db448bf32d814565acf3d11f
* Fix race where class state can go between verified/initializing.Ian Rogers2012-09-251-0/+1
| | | | Change-Id: I99b425a3a8df937b8c349c22e32e84ad3b02231f
* Make compiler initialization of classes parallel.Ian Rogers2012-09-245-241/+84
| | | | | | | | | | Fix hang where super class initialization could fail to notify threads trying to initialize sub-class. Unify logging to log file being compiled in all occurances. Remove empty PostCompile method. Remove experimental ForAllDexFile & Class code. Change-Id: I471e9414f94d468d53b401e086f0fb65e36cc27c
* Large object spaceMathieu Chartier2012-09-2419-169/+578
| | | | | | | | The large object space helps prevent fragmentation by putting large objects in mem maps insead of the alloc space. Instead of mark and live bitmaps it uses mark and live sets. Change-Id: Iada5db70b88a1572007d8af921fa353681a55dc7
* Assignability checks for SetFieldObject.Ian Rogers2012-09-246-68/+146
| | | | | | | | | | | Adds check to SetFieldObject that is enabled with VERIFY_OBJECT_ENABLED. The check verifies that the object being set to the field is assignable to that field. Fix bug that iftable was typed to be Object[][] but being assigned a Object[]. Change-Id: I3d3744347f2dd142ca90db321ed876eaebfe7f7f
* Fix exception_test for verify stack.Ian Rogers2012-09-241-0/+8
| | | | | | | Create a fake native GC map as the verifier no longer creates the GC map. Change-Id: I94cfe444d8e9fec16e2affdf36b77fd32950f8f2
* LLVM build fix.Ian Rogers2012-09-211-39/+40
| | | | Change-Id: Ie2f794811dab93d094f0cdc0a8ce85d3a329016c
* Merge "Change dex cache to be java object instead of array, add pointer to ↵Ian Rogers2012-09-21111-934/+1102
|\ | | | | | | dex file in dex cache." into dalvik-dev
| * Change dex cache to be java object instead of array, add pointer to dex file ↵Mathieu Chartier2012-09-21111-934/+1102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in dex cache. Generic clean up to facilitate having GDB macros for Pretty* helper functions. Improved cleanliness of DexCache since having it as an object array was not the best solution. Fixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes. Rename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod. Rename done to have the C++ code be closer to the java code. Change-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9
* | Allow more vregs in native GC map.Ian Rogers2012-09-212-6/+7
|/ | | | | | | | Allow upto 65536 (2**13 * 8) vregs in a reference bitmap as this occurs in CTS tests. Achieve this by squeezing the numbers of bits used to say how large in bytes the native PC offset is down to 3 from 8. Change-Id: Ib0f1df7a492b771e01b0bd79d6648d46b60b5f78
* Merge "Quick compiler: bug fix & cleanup" into dalvik-devbuzbee2012-09-215-184/+7
|\
| * Quick compiler: bug fix & cleanupbuzbee2012-09-215-184/+7
| | | | | | | | | | | | | | | | | | Fixed a bug in bitcode generation that was helpfully masked by gcc's -O2 optmization (code motion). Also removed quite a few fields and identifiers left over from the JIT, along with a couple of files that were meaningful for the JIT, but are no longer used. Change-Id: I7702b66d646c68aafb9669368c97e128ad045dc9
* | Merge "Dump native pcs rather than offsets, fix mac build." into dalvik-devIan Rogers2012-09-211-3/+5
|\ \ | |/ |/|
| * Dump native pcs rather than offsets, fix mac build.Ian Rogers2012-09-211-3/+5
| | | | | | | | | | | | | | Dump the native PC associated with live vregs rather than the offset into the code. Change-Id: I093e35d580774bca894472f9e8a218f76b7473ce
* | Merge "Quick compiler: fix array undershoot" into dalvik-devbuzbee2012-09-211-1/+4
|\ \ | |/ |/|
| * Quick compiler: fix array undershootbuzbee2012-09-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | Normal Dalvik vRegs range from 0..n. However, we use negative vReg positions to denote special values such as Method* and other things we might wish to promote. Failed to take this into account for some shadow frame bitcode conversion stuff. Yet another datapoint supporting the upcoming C++ification. Change-Id: I3a1714ac1a80763c048dda3ae95125fc6082202b
* | LLVM build fix.Ian Rogers2012-09-201-0/+2
| | | | | | | | Change-Id: Iee616ece56b30529041f11069007440539e8ad73
* | NativePcOffsetToReferenceMapIan Rogers2012-09-2027-338/+406
| | | | | | | | | | | | | | | | | | Rather than translate a native PC to a Dex PC and then to the reference bitmap, just go straight from the native PC to the reference bitmap. Encode the native PC offsets using a hash rather than linearly searching. Change-Id: Iee1073d93c941c0a31f639e5f23cea9e9f747bee