summaryrefslogtreecommitdiffstats
path: root/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Fix cfi information for x86." into mnc-devChristopher Ferris2015-07-132-4/+12
|\
| * Fix cfi information for x86.Christopher Ferris2015-07-132-4/+12
| | | | | | | | | | | | | | With this change, I can now enable debug malloc fully. Bug: 19071092 Change-Id: Iabfb18505feffb480504a8bbfbac60dd219ed48a
* | Merge "Initialize pDeoptimize quick entry pointer for Mips." into mnc-devRoland Levillain2015-07-132-0/+7
|\ \
| * | Initialize pDeoptimize quick entry pointer for Mips.Douglas Leung2015-07-132-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes art test 449-checker-bce. (cherry picked from commit 2e8bf554574516e0e6a9b10ccd9f13bf56189795) Bug: 21555893 Change-Id: I9a87c430168ea35984289b0b4a417aa0c659b6d5
* | | Merge "Return an invalid StackMap when none can be found." into mnc-devNicolas Geoffray2015-07-132-26/+31
|\ \ \ | |/ / |/| |
| * | Return an invalid StackMap when none can be found.Nicolas Geoffray2015-07-132-26/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:22389275 Partial cherry-pick of: https://android-review.googlesource.com/#/c/151853 (commit e12997fbce8e22431be58cac9db2535f7b4a7ac3) Change-Id: Ia30b817be1b50d97243ba32967eeee359ed679c4
* | | Fix proxy handling in FindDeclaredVirtualMethodMathieu Chartier2015-07-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added missing GetInterfaceMethodIfProxy and test. Fixed formatting. Bug: 22411819 https://code.google.com/p/android-developer-preview/issues/detail?id=2635 (cherry picked from commit 72156e28fd6bc72ac965b29446f8801b2e82f2fd) Change-Id: I3eece9c72091bb9d0262aacf0a75ec6908b5f4d2
* | | ART: Change merges with Undefined to UndefinedAndreas Gampe2015-07-091-1/+9
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The result of a merge with an Undefined type should be Undefined. Conflicts are allowed to be copied around, but Undefined registers should not be touched at all, except to be written into. Add a success test case (the register isn't used) and a fail test case (the register is tried to be copied). Bug: 22331663 Bug: 22371999 (cherry picked from commit 97a1ff353f254b6e46c7501fe3f0e3254c2517b4) Change-Id: I9697ce31c1d2ab5aee0433dcf1253bcca79c2983
* | ART: Allow to set and copy conflicts in the verifierAndreas Gampe2015-07-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | As long as conflicts are not actively being used, it is OK to set them in a register line or copy them around. Bug: 22331663 (cherry picked from commit 38536287f61c9c0fc3bab8c1950cf8c74881482a) Change-Id: I61999e2d9c92f9bdedcb0a5dea54df3c5bb130ca
* | ART: Avoid soft- after hard-fail in verifierAndreas Gampe2015-07-081-1/+3
|/ | | | | | | | | | | Follow-up to 414000ec4d728b5c85f8c6dee4f867fecde59b01. Bug: 21886894 Bug: 22245124 (cherry picked from commit 890da29d279c44923f9271450b8a4423b1267655) Change-Id: I3728187bd8526cdf84f95b123e6fad5d6c5a8b3c
* Add implicit null pointer and stack overflow checks for Mips.Douglas Leung2015-07-033-20/+192
| | | | | | | (cherry picked from commit 22bb5a2ebc1e2724179faf4660b2735dcb185f21) Bug: 21555893 Change-Id: I2a995be128a5603d08753c14956dd8c8240ac63c
* ART: Remove bad FindSymbol callAndreas Gampe2015-06-301-3/+2
| | | | | | | | | | | | The removed call is superfluous under normal operation and harmful when running a native-bridged library. Bug: 22194296 Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=2367 (cherry picked from commit 8fec90b421732b3eb278555f57aaf48fda4fa4ba) Change-Id: I3eb8f435a6a974a3e87a370b254ba8752f2a59b3
* ART: Fix CFI annotation for art_quick_aput_objMathieu Chartier2015-06-293-2/+5
| | | | | | | | | | Fix the CFI state after an early return. Bug: 22014525 (cherry picked from commit 2738639bcd30b908d825725169b7497ed047debb) Change-Id: I56b9ba8cf8c47d70a642f064e59c7e04a476dd2f
* ART: Fix invalid access and DCHECK in verifierAndreas Gampe2015-06-261-8/+16
| | | | | | | | | | | | | | If we get a throwing failure when setting types from the signature, the work instruction index is still invalid. Do not try to copy the line then. As a throwing failure might happen in the above instance, but the flow analysis expects to have a cleared failure flag before processing each instruction, clear the flag. Bug: 21645819 Bug: 22080519 Change-Id: I224c4dad98fa5bb50e62210f0ee30c0dd020e3a6
* Merge "Require mutator lock for DeleteLocalRef" into mnc-devMathieu Chartier2015-06-261-6/+7
|\
| * Require mutator lock for DeleteLocalRefMathieu Chartier2015-06-261-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | There was a race condition where suspended threads could call DeleteLocalRef while the GC was marking their roots. This could cause the GC to attempt to mark a null object. (cherry picked from commit dd06afecd67fc6a60856436ab150a4d1b9a8ad29) Bug: 22119403 Change-Id: I962c717bb87b2acb2a4710a2d7ab16793e031401
* | ART: Fix streaming tracing issuesAndreas Gampe2015-06-263-19/+28
|/ | | | | | | | | | | | Fix a lock ordering issue in streaming-mode tracing. Fix a moving-GC issue in streaming-mode tracing. DexCache objects are not good keys for a map. Expose streaming mode for testing in run-tests. Bug: 21760614 Change-Id: Idcd0575684ee3cc0cec3f81b4fdd0d5988c11e8c
* ART: Reset runtime_throw_failure flagAndreas Gampe2015-06-252-1/+11
| | | | | | | | | | | | | | | | The flag is instruction-specific. It transports the info from Fail to the main loop. It must be cleared after each iteration. Introduce a second flag to store whether we saw such a failure at all. Update test expectations. Bug: 22080519 (cherry picked from commit d12e782bcee03ecb6dec41aa9673ef53b638dcea) Change-Id: I32be914819946233babaa4cb7343844d97b61ba5
* Merge "Do not try to compile resource-only dex files." into mnc-devRichard Uhler2015-06-254-44/+109
|\
| * Do not try to compile resource-only dex files.Richard Uhler2015-06-244-44/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | This changes behavior in the case where we are asked to load a dex file that does not exist or has no classes.dex entry. Previously we would run dex2oat, which would log an error message and fail. Now we skip running dex2oat, we report the DexOptStatus as kNoDexOptNeeded, and we do not try to fall back to the missing original dex files. Bug: 21722039 Change-Id: I90b1f4165138daac57bb9d7a354319005652c593
* | Hard-fail get-/put-object to a non-reference field.Vladimir Marko2015-06-251-8/+18
| | | | | | | | | | | | | | | | Bug: 21886894 (cherry picked from commit 414000ec4d728b5c85f8c6dee4f867fecde59b01) Change-Id: Iafc32f0e45d26f3aaa2d521b98353e7cede16c6f
* | Merge "ART: Fix arm32 instrumentation exit stub" into mnc-devAndreas Gampe2015-06-251-2/+7
|\ \
| * | ART: Fix arm32 instrumentation exit stubAndreas Gampe2015-06-241-2/+7
| | | | | | | | | | | | | | | | | | | | | Properly store, pass and restore floating point result. Bug: 22047833 Change-Id: If5d9efbe63334c9b6353f76ce6e4fe519602482a
* | | Fix force copyMathieu Chartier2015-06-242-44/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | We now correctly pass the returned pointer back onto the release functions. Bug: 22056708 Change-Id: I1a7300d3a4522a3c81b432ec742ae1c0bd00b51e (cherry picked from commit b735bd9c04aa291d0a1bdc2c0a094a1a75ad0596)
* | | Merge "Fix imt conflict trampoline for mips64" into mnc-devMathieu Chartier2015-06-241-1/+1
|\ \ \
| * | | Fix imt conflict trampoline for mips64Mathieu Chartier2015-06-241-1/+1
| |/ / | | | | | | | | | | | | | | | | | | Changed lwu to ld Bug: 21815962 Change-Id: I137e871d9c00f83cd5efc9d3a87fa05e84dc5d23
* | | Increase alt signal stack to 32K on host.Christopher Ferris2015-06-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On host, when there is a crash, the code tries to do an unwind from the signal handler. Under some conditions this can require a stack larger than 16K, so increase this value to 32K. The symptom of this is that you get an empty backtrace running art tests when there is a crash. Bug: 21949571 (cherry picked from commit e34c71ce21dbc9fac3427df887e90e1311b6fa8e) Change-Id: Ib1105a3470064d98843bd46f32d4fadb1d20e416
* | | Use a flag from the verifier to know if we should compile.Nicolas Geoffray2015-06-242-0/+5
|/ / | | | | | | | | | | | | | | | | | | | | Only used for the lack of bottom type in the aget-object case for now. Could be used for more. bug:21865466 (cherry picked from commit 4824c27988c8eeb302791624bb3ce1d557b0db6c) Change-Id: I2bb7fe1d4737bd92c1076b5193607d74d8761ee7
* | Merge "ART: Follow-up to 507cc6f83bf6379728f2dd20391f2ed5fbfe6371" into mnc-devAndreas Gampe2015-06-232-22/+41
|\ \
| * | ART: Follow-up to 507cc6f83bf6379728f2dd20391f2ed5fbfe6371Andreas Gampe2015-06-232-22/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not trigger DCHECK aborts for final and abstract classes when they are used from other classes. Instead issue a soft error that leads to a runtime failure. Bug: 21873151 (cherry picked from commit f23f33de8b3e9abd16720e0f48d43d63d41dee16) Change-Id: Ie5251a176722811b3c74585222874313a53f7e02
* | | Merge "Fix field ordering for String in hprof" into mnc-devMathieu Chartier2015-06-231-23/+25
|\ \ \
| * | | Fix field ordering for String in hprofMathieu Chartier2015-06-231-23/+25
| | |/ | |/| | | | | | | | | | | | | | | | | | | We were inserting value field after the Object field instead of the String fields. Bug: 22043800 Change-Id: Ibaddbd7299562949e32eceb625feac325539e3ce
* | | Make dex file verifier check that indexes are increasing.Jeff Hao2015-06-231-5/+32
|/ / | | | | | | | | | | | | Note that this still allows duplicates. Bug: 21868011 Change-Id: Ib0e91c816eccfaf3b0dac340c05ffd5dc4df17cc
* | Merge "Fix another miranda method moving GC bug" into mnc-devMathieu Chartier2015-06-232-18/+24
|\ \
| * | Fix another miranda method moving GC bugMathieu Chartier2015-06-222-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | Need to copy miranda methods over before we allocate the new vtable or else we may have stale miranda gc roots. Bug: 21664466 Change-Id: Ib3e415bb9e7df7abfa18c98fe01f790fa39622dc
* | | New experimental GC stress modeMathieu Chartier2015-06-228-14/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tries to do a GC for every unique call stack (up to 16 frames). The goal is to catch moving GC bugs and lock violations without being rediculously slow. Some tests fail on 64 bits, 32 bit host doesn't work. N5 is booting. Added runtime -Xgc options: gcstress and nogcstress. Bug: 21664466 (cherry picked from commit 310008008c90fea246efd00cb99ee7ded97c5209) Change-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c
* | | Merge "Change GC to allow strings to use large object space." into mnc-devJeff Hao2015-06-221-1/+1
|\ \ \ | |_|/ |/| |
| * | Change GC to allow strings to use large object space.Jeff Hao2015-06-221-1/+1
| | | | | | | | | | | | | | | Bug: 21209641 Change-Id: Ib007a30e575e391e2b5bddb816a9d2e82502c7d5
* | | Merge "ART: Allow checking RETURN_VOID_NO_BARRIER on unresolved classes" ↵Andreas Gampe2015-06-221-0/+32
|\ \ \ | |/ / |/| | | | | into mnc-dev
| * | ART: Allow checking RETURN_VOID_NO_BARRIER on unresolved classesAndreas Gampe2015-06-221-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We must check that all fields are non-final, even for unresolved classes. Fall back to the dex file for this information. Bug: 22005084 Bug: https://code.google.com/p/android/issues/detail?id=177694 (cherry picked from commit 68df32091cc79468c81956633e279523b48ea8bf) Change-Id: If2126d1be5dccadbbedcdccabde7398688d6e5ca
* | | Make large string use large object space.Jeff Hao2015-06-221-2/+2
|/ / | | | | | | | | Bug: 21209641 Change-Id: I731a920c02f29f0321f2077093516aaa0f8d782f
* | ART: Disallow classes that are abstract and finalAndreas Gampe2015-06-221-0/+9
| | | | | | | | | | | | | | | | | | | | Make the verifier fail such classes. Bug: 21873151 (cherry picked from commit 507cc6f83bf6379728f2dd20391f2ed5fbfe6371) Change-Id: I217f3d71f44bccdcee7ca830e092c807928bed39
* | Verifier: check an aput, even if we know it will fail.Nicolas Geoffray2015-06-221-2/+3
| | | | | | | | | | | | | | | | bug:21867457 (cherry picked from commit 66389fbeb41c981648bb2e1e7e2f43089f095591) Change-Id: Id01edeb871f6bc59518eb341e5b76f021cfdfe06
* | ART: Check for expected args for instance methodsAndreas Gampe2015-06-191-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't assume that the receiver is expected. This was writing out of bounds (or triggering a DCHECK). Bug: 21817284 Bug: 21872240 Bug: https://code.google.com/p/android/issues/detail?id=176571 Bug: https://code.google.com/p/android/issues/detail?id=176572 (cherry picked from commit ef0b1a1dbc99fe7c92f9598cbfc164763c1b66d7) Change-Id: I7cad2c1dfc39feb0b1b4660deeb43afdcb844ba3
* | ART: Check var-arg count earlier in method verifierTaiju Tsuiki2015-06-191-7/+7
|/ | | | | | | | | | | | Check the count in vararg instructions before filling the temp array. Avoids a DCHECK. Bug: 21869663 Bug: 20170976 (cherry picked from commit 29498a23bcfe47a7134552aacad5524ecb484a49) Change-Id: I1ff93502ab84c5967ad54d1b50dba517da791637
* Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-devDavid Srbecky2015-06-1911-85/+120
|\
| * ART stack unwinding fixes for libunwind/gdb/lldb.David Srbecky2015-06-1911-85/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dex2oat can already generate unwinding and symbol information which allows tools to create backtrace of mixed native and Java code. This is a cherry pick from aosp/master which fixes several issues. Most notably: * It enables generation of ELF-64 on 64-bit systems (in dex2oat, C compilers already produce ELF-64). Libunwind requires ELF-64 on 64-bit systems for backtraces to work. * It enables loading of ELF files with dlopen. This is required for libunwind to be able to generate backtrace of current process (i.e. the process requesting backtrace of itself). * It adds unit test to test the above (32 vs 64 bit, in-proces vs out-of-process, application code vs framework code). * Some other fixes or clean-ups which should not be of much significance but which are easier to include to make the important CLs cherry-pick cleanly. This is squash of the following commits from aosp/master: 7381010 ART: CFI Test e1bbed2 ART: Blacklist CFI test for non-compiled run-tests aab9f73 ART: Blacklist CFI test for JIT 4437219 ART: Blacklist CFI test for Heap Poisoning a3a49fe Switch to using ELF-64 for 64-bit architectures. 297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture. 24981a1 Set correct size of PT_PHDR ELF segment. 1a146bf Link .dynamic to .dynstr 67a0653 Make some parts of ELF more (pointer) aligned. f50fa82 Enable 64-bit CFI tests. 49e1fab Use dlopen to load oat files. 5dedb80 Add more logging output for dlopen. aa03870 Find the dlopened file using address rather than file path. 82e73dc Release dummy MemMaps corresponding to dlopen. 5c40961 Test that we can unwind framework code. 020c543 Add more log output to the CFI test. 88da3b0 ART: Fix CFI test wrt/ PIC a70e5b9 CFI test: kill the other process in native code. ad5fa8c Support generation of CFI in .debug_frame format. 90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write. 97dabb7 Fix build breakage in dwarf_test. 388d286 Generate just single ARM mapping symbol. f898087 Split .oat_patches to multiple sections. 491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again). 8363c77 Add --generate-debug-info flag and remove the other two flags. 461d72a Generate debug info for core.oat files. Bug: 21924613 Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
* | Fix moving GC bug in DoFilledNewArrayMathieu Chartier2015-06-181-18/+20
| | | | | | | | | | | | | | | | | | | | Previously we read from componentClass after allocating the array. Bug: 21783443 (cherry picked from commit 52ea33b10370d60d4ce877aec529626537b7813b) Change-Id: I5283982edab479434e27416509e1436b4176fe01
* | Fix moving GC bugs in proxy stub for X86/X86_64Mathieu Chartier2015-06-182-4/+4
| | | | | | | | | | | | | | | | | | Needed to restore the refs. (cherry picked from commit 9346ff0cfad6344d0bf4eaa69362dbe1987ac054) Bug: 21907554 Change-Id: I562906dff07dcaa78dfb39646ba9ab35a5f56c6c
* | Follow up on CL 151605Sebastien Hertz2015-06-185-51/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fixes return type of StackedShadowFrameRecord::GetType - Makes StackedShadowFrameType an enum class (scoped enum) - Moves DeoptimizationReturnValueRecord and StackedShadowFrameRecord to thread.cc file and use forward declaration in thread.h header - Fixes tools/generate-operator-out.py for scoped enum classes. Bug: 20845490 (cherry picked from commit f795869da0a1fa006fdcdacd8afb6149a63fc1a7) Change-Id: I6b67e288b1db563699161e58ec2e2330d42dd8f5