| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce counters to indicate that threads are being born. Don't allow
thread birth to occur during runtime shutdown.
Bug: 7000936
Change-Id: Ib0d78f78c0ff126a4b5d3b5a6f1a2ff8f5061ae9
|
|\ \
| |/
|/|
| | |
dalvik-dev
|
| |
| |
| |
| |
| |
| | |
The gtests now all work on MIPS.
Change-Id: I2883ce002f23d75e700366014517c863fb626d09
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| | |
The dump of the pc <-> dex mapping tables was broken by the
recent mapping table restructuring change. Fixed now.
Change-Id: I36c869e4a2853e18e021268b5b4eb49a4b76c970
|
|/
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: Ia7cfb18dfd3d7691c6cd2ba27d91f484e82c92db
|
|
|
|
|
|
|
| |
To get some numbers.
Also fix a bug for when self == NULL.
Change-Id: I93189e74df7e01a0efd02491ea49ed371738863c
|
|
|
|
| |
Change-Id: I69b11abc573ecf55912f6a539257e817330006e0
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Forgot to mask in suspend request if thread is attaching during GC.
Lots of extra assertions and debugging.
Change-Id: Id4d2ab659284acace51b37b86831a968c1945ae8
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Add ostream operators for dex instruction enums.
Move simple methods to header file.
Change-Id: I9644bfb975896a491ee73ef9a8ef13c062c5fcbd
|
|
|
|
| |
Change-Id: I7abd17c51aacd4f79abcb12b76f4830ca36075ba
|
|
|
|
|
|
|
|
|
| |
This avoids frequent recomputation of
Thread::Current/pthread_getspecific.
Also add a futex based reader/writer mutex that is disabled.
Change-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| | |
(art equivalent of bab2237924fa26e16f732965657f8ff93ab27f37.)
Bug: 7093208
Change-Id: Ica21a388dd9172ffd5262469d54301815dbb752a
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| | |
Hot array access used in Class::Implements, forcing inlining moves
InstanceOfNot DalvikPerf benchmark from 416 to 176.
Change-Id: Ibf06d46ed82a50dbdc5620ed2b81a3f3d173ad41
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |/
|/|
| |
| | |
Change-Id: I6ad0c6159115e0d8879e0d9d674d760cd48f29c9
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
Change-Id: I2d83c018399422af0f8aa1cdaba7ade014053992
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Gets instruction expansion from ~5.1 to ~4.9.
Change-Id: I14719df1f256589035635edcc20e25ebd396657c
|
|
|
|
|
|
| |
Fixes issue where GC was freeing the java peer if the parent thread exited before the child thread got registered.
Change-Id: I6fbe74865d5827d243ac55fc396679afa97ff2f9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I99b425a3a8df937b8c349c22e32e84ad3b02231f
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Create a fake native GC map as the verifier no longer creates the GC
map.
Change-Id: I94cfe444d8e9fec16e2affdf36b77fd32950f8f2
|
|
|
|
| |
Change-Id: Ie2f794811dab93d094f0cdc0a8ce85d3a329016c
|
|\
| |
| |
| | |
dex file in dex cache." into dalvik-dev
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| | |
Dump the native PC associated with live vregs rather than the offset
into the code.
Change-Id: I093e35d580774bca894472f9e8a218f76b7473ce
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Change-Id: Iee616ece56b30529041f11069007440539e8ad73
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|