xref: /art/
History log of /art/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e016182afa1cd8adf6343cbcc91bde4a866d0880 28-Oct-2014 Brian Carlstrom <bdc@google.com> Work around relocated boot.oat corruption

Bug: 18143314
Change-Id: Ibecade061d6c887bde2f8a085ed7dede3345125a
untime/gc/space/image_space.cc
020110b3df32ef92cca7270a0d617b396c320853 25-Oct-2014 Andreas Gampe <agampe@google.com> ART: Fix ImageSpace error message.

Use *error_msg instead of error_msg.

(cherry picked from commit 50f2e9a6b935ba1c456a687e5f0822d9356d71e5)

Bug: 18143314
Change-Id: I62f6aeda142235eb1a412a4c1ae1104b813e6967
untime/gc/space/image_space.cc
02ccfa40fae7e7e1743d18d15bcb4a62ad27d84f 28-Oct-2014 Brian Carlstrom <bdc@google.com> Remove boot.art/boot.oat on failure to create

Bug: 18143314
Change-Id: I5f4733ed7f359158a2bda58ff4f228ba60e2f493
untime/gc/space/image_space.cc
daee5eb4d8b4e7ea5af30d8190f7511646f9994b 22-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 1f24296c7c8a6501ee2388c0d20b48f471b48660
b265c9db4a7692f30ba399ee0c1c0b5df1c022b3 21-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 1f24296c7c8a6501ee2388c0d20b48f471b48660
f90e2ec6da7e558cf2d12cf61506d726d6eede4f 20-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 1f24296c7c8a6501ee2388c0d20b48f471b48660
d254c2b18fb8d398136dbaf5c7cf2573a88334fd 16-Oct-2014 Mathieu Chartier <mathieuc@google.com> Add way to ensure we are at the front of the sigaction chain

Calling this after jni_on_load fixes the unity apps. This is
not exactly correct since we may already have the following chain.

Start up:
Us -> debuggerd

After app goes in front:
App -> us -> debuggerd

After we put ourself back at the front:
Us -> app -> us -> app -> .... stack overflow.

Bug: 17620677
Change-Id: I9183997e3d5ebd51c320b5d51425be5142e938f3
untime/fault_handler.cc
untime/fault_handler.h
untime/jni_internal.cc
igchainlib/sigchain.cc
igchainlib/sigchain.h
1f24296c7c8a6501ee2388c0d20b48f471b48660 16-Oct-2014 Mathieu Chartier <mathieuc@google.com> Add way to ensure we are at the front of the sigaction chain

Calling this after jni_on_load fixes the unity apps. This is
not exactly correct since we may already have the following chain.

Start up:
Us -> debuggerd

After app goes in front:
App -> us -> debuggerd

After we put ourself back at the front:
Us -> app -> us -> app -> .... stack overflow.

Bug: 17620677
Change-Id: I9183997e3d5ebd51c320b5d51425be5142e938f3
untime/fault_handler.cc
untime/fault_handler.h
untime/jni_internal.cc
igchainlib/sigchain.cc
igchainlib/sigchain.h
f49c1fcb2d5996a4eaf6d94956a98915b7385eca 16-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to edfc4ca2c8e1de6a1d42700cc0bc41d5b243ea04
edfc4ca2c8e1de6a1d42700cc0bc41d5b243ea04 15-Oct-2014 Mathieu Chartier <mathieuc@google.com> Fix oatdump for no image

Added MemMap::Init if we dont initialize the runtime.

(cherry picked from commit d424d0856927a5d771644b0ef18cb48ef8c04817)
Bug: 18000219

Change-Id: Ice068edea04708551b3fb8b75eae4e97758a18f9
atdump/oatdump.cc
a61dcfba608afd3dd0add938ac0262f955e5a2ea 15-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to c54e12a413e16f90526318f1f466a900a717fbb0
c54e12a413e16f90526318f1f466a900a717fbb0 15-Oct-2014 Mathieu Chartier <mathieuc@google.com> Change MemMap::maps_ to not be global variable

Runtime.exit() was causing globals to get destructed at the same time
that another thread was using it for allocating a new mem map.

(cherry picked from commit 6e88ef6b604a7a945a466784580c42e6554c1289)

Bug: 17962201
Change-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962
ompiler/common_compiler_test.cc
ompiler/image_test.cc
ex2oat/dex2oat.cc
atchoat/patchoat.cc
untime/common_runtime_test.cc
untime/mem_map.cc
untime/mem_map.h
untime/mem_map_test.cc
untime/runtime.cc
98b5fb59a2de8b361146bfa535137d2b383748e5 14-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 5d1c1bbd4c8a1727027d0ae69277af6f6f6badf3
2cf26f3af5097232ea3f352581ca474f9710b085 13-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to a4fee49a5023a3cf8431597950ee87c711d0b81c
c266d293b6b93e35e38789781a7e2451b515e32f 12-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to a4fee49a5023a3cf8431597950ee87c711d0b81c
5d1c1bbd4c8a1727027d0ae69277af6f6f6badf3 15-Sep-2014 Sebastien Hertz <shertz@google.com> Check for errors in ThreadGroupReference JDWP commands

Returns INVALID_OBJECT error for null or invalid object. Also returns
INVALID_THREAD_GROUP error when the object is not a java.lang.ThreadGroup.

Removes unused Dbg::GetMainThreadGroupId method.

Bug: 17503230
(cherry picked from commit a06430c76981d545b5f2b64a7ef53c44c030cf73)

Change-Id: Ic39d3d2c45bf288fc22d908a3c90a3ca24f1c4d4
untime/debugger.cc
untime/debugger.h
untime/jdwp/jdwp_handler.cc
a4fee49a5023a3cf8431597950ee87c711d0b81c 16-Sep-2014 Dave Allison <dallison@google.com> Don't call dlsym from signal context in signal chain

It is dangerous to call dlsym from within a signal context
since it takes a lock and can lead to a mutex reentry attempt if
timing is bad.

This change adds an initialization function to the signal chain
that calls dlsym for sigaction and sigprocmask from outside the
signal context (from Runtime::Init()). The results are cached
in a static variable and used from within the signal context if
necessary.

However, tests don't necessarily call Runtime::Init() so we also
need to deal with the case where the signal chain is not initialized
and perform a lazy initialization from inside sigaction or sigprocmask.
This is always outside a signal context since we have not initialized
the runtime.

Bug: 17498571, 17896006

(cherry picked from commit cefcea838729287a04174664a76514dd793dd77d)

Change-Id: I9bf8540a1250eadf977ff9af249dbe1c73b5ac63
untime/runtime.cc
igchainlib/sigchain.cc
igchainlib/sigchain.h
b90132cb5132eaeb4dbfca1e63d79b4005dacec5 09-Oct-2014 Mathieu Chartier <mathieuc@google.com> Fix race in thread list destructor

The ThreadList::Contains wasn't being guarded by the thread list
lock, which could cause a corrupted thread list if another thread
unregistered itself while std::find was searching the thread list.

Bug: 17896374
Change-Id: I629b1eac3473e3cf7355ebde9080dfd7c58af73a
untime/thread_list.cc
8d63bc3767ebdea0f85a158f4341f30e8995c56f 09-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to b6404fe0bb782cbbccda88903901fe0096a741d5
b6404fe0bb782cbbccda88903901fe0096a741d5 08-Oct-2014 Brian Carlstrom <bdc@google.com> Disable kEnableJavaStackTraceHandler

Bug: 17890306
Change-Id: I76d1d1b709cfcb0cf8fe02f5d28fb746909d682f
untime/runtime.cc
66deb443e1404f633241cca6ac18ab526ff24c49 08-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to b9001abff3a45f1ae90536da7dd1ec28a6ae0174
ab425fb9bfc8b972b393b2e18614b233afca9e64 07-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to b9001abff3a45f1ae90536da7dd1ec28a6ae0174
d211f529d9ef13e0e0346dd88ffb3c1aa2bf788d 06-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to b9001abff3a45f1ae90536da7dd1ec28a6ae0174
73a170ecd0b225d95a8344ef73597b82635d1010 05-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to b9001abff3a45f1ae90536da7dd1ec28a6ae0174
b9001abff3a45f1ae90536da7dd1ec28a6ae0174 03-Oct-2014 Mathieu Chartier <mathieuc@google.com> Add extra logging for lock contention

When we get contention which is longer than kLongWaitMs (= 100ms) we
log to logcat.

Example output:
W/art ( 9960): Long monitor contention event with owner method=void com.android.server.am.BroadcastQueue.processNextBroadcast(boolean) from BroadcastQueue.java:542 waiters=1 for 243ms

Bug: 17787391
Change-Id: Id1f92d9c41ec909d221871ecc2ff6181dcec2ed4
untime/monitor.cc
6edfe1a3621dca7bad382c62c919c7fcda923f99 02-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to lmp-dev
5be30072c5a750617dc3f9380776d074f26d9f32 02-Oct-2014 Andreas Gampe <agampe@google.com> ART: Remove wrong DCHECK

Bug: 17772057
Bug: 17763227
Bug: 17762845

Change-Id: If5d35b8e3e156173f2e47ae86ff48ebfc01ca02d
ompiler/dex/quick/arm64/int_arm64.cc
ba16b0796aafb6ad4c96c5e10b713d73edc0b857 01-Oct-2014 Calin Juravle <calin@google.com> More native bridge tests

Test for os.arch.

Bug: 17713104
Change-Id: I2d0f151c512857e4576fa186ce59c41b054bee75
est/115-native-bridge/src/NativeBridgeMain.java
228f9251668efe5ab303f9fb78841ed138954acb 01-Oct-2014 Bill Buzbee <buzbee@google.com> Merge "ART: Overflow of bound check in ArrayCopy intrinsic" into lmp-dev
d26bfdc94af0473d8c632862119596b420903aaa 01-Oct-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 95a935415d44903b28326424beb4db5c013ef089
95a935415d44903b28326424beb4db5c013ef089 29-Sep-2014 Brian Carlstrom <bdc@google.com> Add VMRuntime.isBootClassPathOnDisk

Bug: 17679443
Change-Id: I127ffdac3bfe731e9535dfe6a242eb950363d715
untime/class_linker.cc
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/native/dalvik_system_VMRuntime.cc
untime/runtime.cc
untime/runtime.h
est/118-noimage-dex2oat/expected.txt
est/118-noimage-dex2oat/src/Main.java
db7239ccce7748f2b494fb3b91c128b37019a093 17-Sep-2014 avignate <aleksey.v.ignatenko@intel.com> ART: Overflow of bound check in ArrayCopy intrinsic

System.arraycopy method is implemented as intrinsic on x86. It has
bound check which has a bug to overflow in certain conditions
when summ of array offset and number elements to be copied are
more than MAX_INT. For the methods like CarArrayBuffer.get it
means no OutOfBound exception to be thrown. The proposed
solution fixed that.

b/17711775

Signed-off-by: avignate <aleksey.v.ignatenko@intel.com>

(cherry picked from commit f9f0ed401f7fe4138a71b36719423b908a3b7bfb)

Change-Id: I1d4ca900df262d483a94ebea8fa686ea361772c8
ompiler/dex/quick/x86/target_x86.cc
e22a4c2e9a80bb88bfd30a18e23c95d2b6243935 30-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 6d031046eeb5e9f62b657df0695b752e1d0aa583
02ff2d4187249d26fabe8e5eacc27b99984ee353 04-Sep-2014 Serguei Katkov <serguei.i.katkov@intel.com> AddIntrinsicSlowPath with resume requires clobbering

AddIntrinsicSlowPath with resume results in a call.
So all temps must be clobbered at the point where
AddIntrinsicSlowPath returns.

(cherry-picked from 9863daf4fdc1a08339edac794452dbc719aef4f1)
Change-Id: If9eb887e295ff5e59920f4da1cef63258ad490b0
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
ompiler/dex/quick/arm/int_arm.cc
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/x86/target_x86.cc
4b5220795bf68db02d5060eb71f5cd2e1d63a345 29-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 6d031046eeb5e9f62b657df0695b752e1d0aa583
6d031046eeb5e9f62b657df0695b752e1d0aa583 10-Sep-2014 jgu21 <jinghui.gu@intel.com> ART: Update for split native bridge initialization

(cherry picked from commit a6da74e941d7cee498ac3880018a1d8dc953c6eb)
(cherry picked from commit 7a536531791293441253cffb6e370ba1150eee96)

Bug: 17671501
Change-Id: Id948e3ab22ac988d96f5d370bba8c3f86d08abff
untime/jni_internal.cc
untime/native/dalvik_system_ZygoteHooks.cc
untime/native_bridge_art_interface.cc
untime/native_bridge_art_interface.h
untime/runtime.cc
untime/runtime.h
est/115-native-bridge/expected.txt
est/115-native-bridge/nativebridge.cc
8c550e586dd88387c2ff7831a8b3cd639b529a6d 28-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 11c48fe8c541753b57f5770e53a93efe147c60a0
11c48fe8c541753b57f5770e53a93efe147c60a0 27-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Optimize get/set reflection performance" into lmp-dev
ffc788cb7b5b9f53734d7bb8af2d5e45d885546b 26-Sep-2014 Mathieu Chartier <mathieuc@google.com> Optimize get/set reflection performance

Speedups mostly from reducing how often access checks are needed,
and adding more inlining, and adding templates.

Field_getInt from ~850ns -> 350ns.
Field_setInt from ~900ns -> 370ns.

Bug: 14063288
Change-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8
untime/mirror/art_field-inl.h
untime/mirror/art_field.cc
untime/mirror/art_field.h
untime/native/java_lang_reflect_Field.cc
untime/reflection-inl.h
untime/reflection.cc
untime/reflection.h
untime/utils.cc
untime/utils.h
untime/utils_test.cc
40fc2a8ba2e0b86c7a7c16dcd2eaa8a9985efbbb 27-Sep-2014 buzbee <buzbee@google.com> Quick compiler: aarch64 codegen & long_min literal

Int64 overflow during instruction selection caused incorrect
code patterns to emitted in some cases of long operations with
an immediate value of 0x8000000000000000.

The code in question was attempting to determine if the immediate
operand would fit in aarch64 immediate instruction variants.

Internal b/17630605

Change-Id: I8177021b73e51302bc1032387d83b1dd567ed6db
ompiler/dex/quick/arm64/utility_arm64.cc
est/083-compiler-regressions/expected.txt
est/083-compiler-regressions/src/Main.java
dbe4dc12b3ff581c32427cffcb0c6885d28ff411 27-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix broken runtime SetStatsEnabled logic" into lmp-dev
ed34f59c30f97e51e517d8dfb0741ed059014ff6 27-Sep-2014 buzbee <buzbee@google.com> Merge "Quick compiler: aarch64 codegen & long_min literal" into lmp-dev
b504d2f89fdd5c01816bcbad752797cb78de0e99 27-Sep-2014 buzbee <buzbee@google.com> Quick compiler: aarch64 codegen & long_min literal

Int64 overflow during instruction selection caused incorrect
code patterns to emitted in some cases of long operations with
an immediate value of 0x8000000000000000.

The code in question was attempting to determine if the immediate
operand would fit in aarch64 immediate instruction variants.

Internal b/17630605

Change-Id: I8177021b73e51302bc1032387d83b1dd567ed6db
ompiler/dex/quick/arm64/utility_arm64.cc
est/083-compiler-regressions/expected.txt
est/083-compiler-regressions/src/Main.java
23fb122b57c52ab1db98708a4e15765b46b26405 26-Sep-2014 Mathieu Chartier <mathieuc@google.com> Change heap base address

Moved to 300 MB to allow room for other people who wish to use the
low 1 GB.

Bug: 17671634

Change-Id: Ia434a106f4d8f6050edd79f90b4651b1aa32e823
untime/gc/heap.cc
a98ffd745bbecb2e84a492194950c0b94966546b 26-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix broken runtime SetStatsEnabled logic

Previously, Runtime::SetStatsEnabled wouldn't take stats_enabled_
into account when deciding whether or not to increment / decrement
teh stats enabled counter. This resulted in counter underflows and
other errors which caused some CTS tests to fail.

Also added some locking to prevent race conditions.

Bug: 17360878

Change-Id: I779237d55dda4f35054a4d27fb2c660a38750fc0
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/gc/heap.cc
untime/instrumentation.cc
untime/instrumentation.h
untime/native/dalvik_system_VMDebug.cc
untime/runtime.cc
untime/runtime.h
untime/trace.cc
28a5a9ef5d1f7152e03e6c3d91f3fe5113d1020c 25-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 266b4689731f2c69af0f2854aaab947cf6e89f84
266b4689731f2c69af0f2854aaab947cf6e89f84 25-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Do not hold breakpoint lock when running the verifier" into lmp-dev
9770574a61eaba7f4edd90ff05025c619cf29c9f 24-Sep-2014 Pat Tjin <pattjin@google.com> Merge "x86: evaluation destination should be after load of source in RA [DO NOT MERGE]" into lmp-dev
4dfd0e46cb6cd561693c26ce569f0080fbc0a161 24-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Restore kReasonLogging for kDexoptNeeded and kPatchoatNeeded" into lmp-dev
db273aa1fc12a0e8a0d5a608df540e5d46a16b78 07-Sep-2014 Serguei Katkov <serguei.i.katkov@intel.com> x86: evaluation destination should be after load of source in RA [DO NOT MERGE]

In almost most cases working with Register Allocator we must first
load source and then evaluate the destination. In this particular case
for byte-code shl-int/2addr v10, v10 we first find a destination (memory)
then load source (v10 -> physical register) and generate a shift operation
on memory. This is ok for this bytecode but RA thinks that v10 is in register
(we loaded source) and this is incorrect because updated value in memory
and physycal register is not up to date.

Change-Id: Ib4c71f70dcbf78b76ca89897e3bd605a89d77d08
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
(cherry picked from commit a464466fea8df617a50055230cfe7a16ea52cc14)
ompiler/dex/quick/x86/int_x86.cc
d84e30b278cb6ea7d3e9e0cd539659e00d7c6471 24-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to c95f840e55f0cc4cebefbc3812d351d14d40bc12
c95f840e55f0cc4cebefbc3812d351d14d40bc12 24-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Refactor elf_writer_quick for elf section order" into lmp-dev
3c5ec99e156632a734c2359642ae928102850597 24-Sep-2014 Andreas Gampe <agampe@google.com> ART: Refactor elf_writer_quick for elf section order

This writes ELF sections in approximate order (debug sections are
currently out-of-order) to avoid incompletely written files
appearing OK to ART loading code.

Bug: 17622827
Change-Id: I812fd42fcf2823dbfaf5891bf101d3b59406f263
ompiler/elf_writer_quick.cc
ompiler/elf_writer_quick.h
aa93129ca54cc897fdc2c8ddd0a7136f7b5632ed 24-Sep-2014 Brian Carlstrom <bdc@google.com> dex2oat should truncate files opened from file descriptors

Bug: 17622827
Change-Id: Iff7df6219d517d140f77d2585d32559b440ac497
ex2oat/dex2oat.cc
63582f211b7123d02f18dfa7075f6758ccb2b07c 23-Sep-2014 Brian Carlstrom <bdc@google.com> Restore kReasonLogging for kDexoptNeeded and kPatchoatNeeded

Bug: 17565501
Change-Id: Id40438b3d3deb36450fd56aee2a93c1c77ee26d4
untime/native/dalvik_system_DexFile.cc
23382a66bac208b633d1d9ae58fc1cb3659020a5 23-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 344f4145bdff3c4123d8a1808964ea9761a9edc4
4d6e48392771467b9e37fdeb32479ca29bf9c691 18-Sep-2014 Sebastien Hertz <shertz@google.com> Do not hold breakpoint lock when running the verifier

When setting a breakpoint, we need to know whether the method may be
inlined. We run the method verifier but that may cause thread
suspension. Therefore we must not hold any lock at this time. The
issue is we do hold the breakpoint lock so we fails a check in debug
mode.

This CL ensures we don't hold the breakpoint lock when running the
method verifier to detect inlining.

Bug: 17562442
(cherry picked from commit 4d1e9ab57e4c822e8e678b1d0c1d6ad2abfa9b3e)

Change-Id: I6daae91e3e82f41006f29959a5c6c0ec0a88194e
untime/debugger.cc
81b7065d7e4dc39c7358ddbfddb3eb9f0d5bf9b2 22-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 344f4145bdff3c4123d8a1808964ea9761a9edc4
344f4145bdff3c4123d8a1808964ea9761a9edc4 22-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Fix JDWP crash when reporting exception" into lmp-dev
e1a3950de3eb46504aef5be693417cb8781564fe 21-Sep-2014 Christopher Ferris <cferris@google.com> Merge "Dump kernel/native stacks of pure native threads." into lmp-dev
e70f4a73faefe3bfba023daafbbb4782c5167902 21-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 503b9b08a65ce8acd041aa78eb5e490360cff71b
08731b998960587e5fbbaf3e5add582062e4492b 21-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 3740332e2cb3f72658b7cecda1ebe86d0ebc1e08
908b5aaa915af4e37c320fcabc52ef09d2ea1ca9 20-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to dcfd6cad9670ca3ae460a4af0bbe7d88cae21a3c
503b9b08a65ce8acd041aa78eb5e490360cff71b 11-Sep-2014 Logan Chien <logan.chien@mediatek.com> Fix sput-wide verification flag.

The vA register for sput-wide is a wide register. Thus, the
verification flag should be kVerifyRegAWide instead of
kVerifyRegA.

Without this change, the invalid Dex bytecode won't be
rejected by VerifyInstruction(). As the result, the
DCHECK_LT() in register_line-inl.h will abort the program.

Change-Id: I24b746d8a85ddaf811d9aebed12a3dd9f97d755f
(cherry picked from commit be8d99c228a76e70a19c1122aabe111c25a2121c)
untime/dex_instruction_list.h
7da37cca5a5f71a0cd2442b2a119f76fa62e84b5 20-Sep-2014 Christopher Ferris <cferris@google.com> Dump kernel/native stacks of pure native threads.

Bug: 16463406
Change-Id: Ifa18d7ec6c60721ce4d3e73944851d1f07372043
untime/thread.cc
bbb63897d7f2d99219cb50721fe530521e08ddff 19-Sep-2014 Sebastien Hertz <shertz@google.com> Fix JDWP crash when reporting exception

The exception's throw location may be null so we need to handle that
case. Also fixes a memset issue.

Bug: 17571297
Change-Id: I954b67207b1ba99a8f3240ce936579dc5644cc69
untime/debugger.cc
untime/jdwp/jdwp_event.cc
3740332e2cb3f72658b7cecda1ebe86d0ebc1e08 19-Sep-2014 Andreas Gampe <agampe@google.com> ART: Only allow the zygote to create the global boot image

Do not allow arbitrary processes, even when root, to write the
boot image in /data/dalvik-cache.

Bug: 17478752, 17510489, 17439961
Change-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1
atchoat/patchoat.cc
untime/class_linker.cc
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/native/dalvik_system_DexFile.cc
untime/runtime.cc
untime/utils.cc
untime/utils.h
dcfd6cad9670ca3ae460a4af0bbe7d88cae21a3c 18-Sep-2014 Sebastien Hertz <shertz@google.com> Move spammy logs to JDWP verbose mode

We are spammed by warning messages when debugging, especially each time we
suspend/resume all threads (to update instrumentation or collect monitor info).
It's common to get into the cases where these warnings are logged so they
shouldn't be warning but debug messages.

This CL moves these LOG(WARNING) to VLOG(jdwp) to not disturb developers when
debugging their app (especially when looking for specific messages in logcat).
We keep them in JDWP verbose mode because they help knowing when we initiate
these sequences of "suspend/resume all threads".

Also adds debug suspend count in the log message for more context.

Bug: 17524544
Bug: 17170697

(cherry picked from commit f272af4b9dcd39cdd50fa6655601a26e837eaea9)

Change-Id: I61df70ace1475bf10d83202b6bb774f7036354cb
untime/jdwp/jdwp_event.cc
untime/thread_list.cc
33c36d4f22ab6a5e61eb47b654deaf647c34e49c 19-Sep-2014 Andreas Gampe <agampe@google.com> ART: Only allow the zygote to create the global boot image

Do not allow arbitrary processes, even when root, to write the
boot image in /data/dalvik-cache.

Bug: 17478752, 17510489, 17439961
Change-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1
atchoat/patchoat.cc
untime/class_linker.cc
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/native/dalvik_system_DexFile.cc
untime/runtime.cc
untime/utils.cc
untime/utils.h
63bc11efaac0c041e849ab401f9fc368631a00f5 18-Sep-2014 Ian Rogers <irogers@google.com> DO NOT MERGE. Only have a portable entrypoint in portable builds.

Bug: 16214885

Change-Id: Iff7b7415efdbdabd7e6020e221a540f6a774c852
ompiler/common_compiler_test.cc
ompiler/driver/compiler_driver_test.cc
ompiler/image_writer.cc
ompiler/jni/jni_compiler_test.cc
atchoat/patchoat.cc
untime/asm_support.h
untime/class_linker.cc
untime/class_linker.h
untime/class_linker_test.cc
untime/entrypoints/entrypoint_utils.h
untime/entrypoints/portable/portable_invoke_entrypoints.cc
untime/entrypoints/portable/portable_trampoline_entrypoints.cc
untime/instrumentation.cc
untime/mirror/art_method-inl.h
untime/mirror/art_method.cc
untime/mirror/art_method.h
untime/mirror/object_test.cc
untime/oat_file.cc
untime/runtime.cc
e406e8e9b4ae87c1486cfc553e07ebc96205f81d 18-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to bf5d818f7e59ce33521ad81bbab68b1e7a09e0ba
b87baed15b03e2c853e285253ac92391572502f8 18-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Update JDWP event filtering to avoid useless ids" into lmp-dev
bf5d818f7e59ce33521ad81bbab68b1e7a09e0ba 17-Sep-2014 buzbee <buzbee@google.com> ART: skip compilation of huge methods.

Besides not being worthwhile to compile, it huge methods could cause
overflow of some internal compiler structures.

internal b/17524219

Change-Id: I0e47ff4757eec265809598830a2616ac367af77d
ompiler/dex/frontend.cc
af27485f453b36bdaf63d91710b8799631ff0da8 17-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 177586f54b562bea1f5504b917238b6025f3612d
177586f54b562bea1f5504b917238b6025f3612d 17-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Avoid crash in StringReference.Value JDWP command" into lmp-dev
a4d1aea74c1531c9e90129583354bc0052eb467d 17-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Avoid recursive abort on thread dump" into lmp-dev
412aec93e3acdba1214f1601ceb6202d5c433f09 16-Sep-2014 Andreas Gampe <agampe@google.com> ART: Check for exceptions from unresolved classes

In no-verify mode, classes may be unresolved because of missing
dependencies. Ignore and clear the exception.

Bug: 17506140
Change-Id: I70602b089e6631b1e177dbe8316c5fefdaf777a0
ompiler/driver/compiler_driver.cc
035592c51fee2995a3d90a9043f91a7a3128df2b 17-Sep-2014 Andreas Gampe <agampe@google.com> ART: Sync oat file to disk before patching

Bug: 15567083, 17439961, 17510489, 17478752
Change-Id: I828dc6775044b5050c2520eb097abe6a920fd3ee
ex2oat/dex2oat.cc
2f9e21503c2b6958213f9a2610023c7ab8a01707 17-Sep-2014 Andreas Gampe <agampe@google.com> ART: Avoid recursive abort on thread dump

Also clean up unused variable.

Bug: 15567083
Change-Id: Id83a3784bbe88520a4ffe654b2553d36a7b8e5bc
untime/thread.cc
d0a24b7957f19017db9d2e99cd90e32f0948d457 16-Sep-2014 Jeff Hao <jeffhao@google.com> Merge "Avoid suspending for alloc trace enabling when already suspended." into lmp-dev
1d6ee090fddd4bfd35c304d6ceb929d5c529dfcc 16-Sep-2014 Jeff Hao <jeffhao@google.com> Avoid suspending for alloc trace enabling when already suspended.

Bug: 17499772
Change-Id: Id98c10967b28e8859e5ac46f5878c304fb85c498
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/gc/heap.cc
untime/instrumentation.cc
untime/instrumentation.h
untime/native/dalvik_system_VMDebug.cc
untime/runtime.cc
untime/runtime.h
untime/trace.cc
3dc14e7ee4b6c4378cfa08028a582a9bab5b58c5 16-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Check for exceptions from unresolved classes" into lmp-dev
ba354a97a9742774f57bad7f96ccae2dbbd59f75 16-Sep-2014 Andreas Gampe <agampe@google.com> ART: Check for exceptions from unresolved classes

In no-verify mode, classes may be unresolved because of missing
dependencies. Ignore and clear the exception.

Bug: 17506140
Change-Id: I70602b089e6631b1e177dbe8316c5fefdaf777a0
ompiler/driver/compiler_driver.cc
501cf959475a6a4e445a68d768af4ef35f331b10 16-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Avoid printing absolute addresses in oatdump" into lmp-dev
e1f805a0eb1302531f9ee267ec24d87c315f5ce1 16-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to a597c019b102cdcd48de4ce0fa89197f0e2606b7
34fa79ece5b3a1940d412cd94dbdcc4225aae72f 15-Sep-2014 Brian Carlstrom <bdc@google.com> Avoid printing absolute addresses in oatdump

- Added printing of OatClass offsets.
- Added printing of OatMethod offsets.
- Added bounds checks for code size size, code size, mapping table, gc map, vmap table.
- Added sanity check of 100k for code size.
- Added partial disassembly of questionable code.
- Added --no-disassemble to disable disassembly.
- Added --no-dump:vmap to disable vmap dumping.
- Reordered OatMethod info to be in file order.

Bug: 15567083
Change-Id: Id86a21e06d4a28f29f16fd018cba7e55c57f849a
uild/Android.gtest.mk
isassembler/disassembler.cc
isassembler/disassembler.h
isassembler/disassembler_arm.cc
isassembler/disassembler_arm.h
isassembler/disassembler_arm64.cc
isassembler/disassembler_arm64.h
isassembler/disassembler_mips.cc
isassembler/disassembler_mips.h
isassembler/disassembler_x86.cc
isassembler/disassembler_x86.h
atdump/oatdump.cc
untime/base/stringprintf_test.cc
untime/oat_file-inl.h
untime/oat_file.cc
untime/oat_file.h
untime/verifier/method_verifier.cc
a597c019b102cdcd48de4ce0fa89197f0e2606b7 16-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Do not unlink unreadable ELF files" into lmp-dev
00503dad8139dcf7b7fc7986ace93e3e45198096 16-Sep-2014 Andreas Gampe <agampe@google.com> ART: Do not unlink unreadable ELF files

Unlinking can be racy with respect to secondary oat files.

Bug: 17496483
Change-Id: I53f92a924b34dfcf50d7e02487c5f8f23de627ca
untime/oat_file.cc
605f5ac0cb5764f4b78e7961fea50e7b84d4ef2c 16-Sep-2014 Ian Rogers <irogers@google.com> Merge "Only log an error if an unattached thread is unregistered." into lmp-dev
e2bcf579b0bc2f53db68c38755d69543198c7b00 16-Sep-2014 Ian Rogers <irogers@google.com> Only log an error if an unattached thread is unregistered.

Turn a fatal check into a diagnostic error. It looks like this issue arises
when a runtime shutsdown without properly being started.
Bug: 17011539

Change-Id: I2983c8332e83769e9480e8f30a46ca3b80a2e90e
untime/thread_list.cc
eb124e4d06602e7e1b20a527009e36530bdaa6ff 15-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 3256166df40981f1f1997a5f00303712277c963f
29259fa6b0514866d2d4bf57d58c1557b26abbb7 15-Sep-2014 Sebastien Hertz <shertz@google.com> Avoid crash in StringReference.Value JDWP command

Checks for null or invalid object id. Also checks whether the corresponding
object is a java.lang.String.

Bug: 17492221
Bug: 15005460

Change-Id: I2e9afe2ade69b130e59a5a0c00d02ded20b05b94
untime/debugger.cc
untime/debugger.h
untime/jdwp/jdwp_handler.cc
3256166df40981f1f1997a5f00303712277c963f 12-Sep-2014 Mathieu Chartier <mathieuc@google.com> Add native support for FinalizerList.makeCircularListIfUnenqueued

Called from FinalizerReference.enqueueSentinelReference to prevent
a race where the GC updates pendingNext of the sentinel reference
before enqueueSentinelReference.

Bug: 17462553

Change-Id: I7ad2fd250c2715d1aeb919bd548ef9aab24f30a2
untime/Android.mk
untime/base/mutex.cc
untime/base/mutex.h
untime/gc/reference_processor.cc
untime/gc/reference_processor.h
untime/gc/reference_queue.cc
untime/gc/reference_queue.h
untime/native/java_lang_ref_FinalizerReference.cc
untime/runtime.cc
2e7da09559524d72d6e03d47e834bb32ee680655 14-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to afa6b8e93a0dc0de33c9d404945c7c5621e20b1a
7e121adb75774e23e2db1297c9f43ef68f3f3ac3 13-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 0624965c286ecd0971e44c060059251e75ba4b84
d539167b7f11136fe570a77aff2ee4935842007a 09-Sep-2014 Sebastien Hertz <shertz@google.com> Update JDWP event filtering to avoid useless ids

To reduce the number of JDWP ids in the debugger, we update the event filtering
support to work with runtime objects (Thread, Class, Object, ...) instead of
JDWP ids (ThreadId, RefTypeId, ObjectId, ...).

We used to create useless JDWP ids for events even if they were not reported
because of event filtering (thread only, class only, instance only, ...). Now
we only create JDWP ids when we know we're going to report an event.

Bug: 17343664
Change-Id: Ib83df6d82fbcb40895f5cd9201a1e9ecd0a07e17
untime/debugger.cc
untime/debugger.h
untime/jdwp/jdwp.h
untime/jdwp/jdwp_event.cc
75568f6c604c21ee238446167770a36bf0f194d9 13-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to afa6b8e93a0dc0de33c9d404945c7c5621e20b1a
afa6b8e93a0dc0de33c9d404945c7c5621e20b1a 13-Sep-2014 Andreas Gampe <agampe@google.com> ART: Make elf loading not abort

Changes elf_file code to use less CHECKs and instead return error
values (usually nullptr). This avoids aborts.

In oat_file, when loading an oat file fails, try to unlink at. If
this succeeds, on the next run we may compile again.

Bug: 17491333
Change-Id: I50fdd2edacd86f25d4dacf2180ce2a6105eaf4af
ompiler/elf_fixup.cc
ompiler/elf_patcher.cc
ompiler/elf_stripper.cc
ex2oat/dex2oat.cc
atchoat/patchoat.cc
untime/elf_file.cc
untime/elf_file.h
untime/oat_file.cc
eee3e7025213cf56f894d770d039caba29e20750 13-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix stale root error in verifier" into lmp-dev
6167864e28e4e12658ebdbaf1d5239acdaf4aaa4 13-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix stale root error in verifier

There was a stale root error caused by the static roots from
the reg types. These were visitied if there was an active verifier
in the method_verifiers_ but this is not always the case when a GC
is run. The fix is to always visit the static method verifier roots.

This only showed up as a bug without an image since these roots
were primitive classes and always in the image, and therefore
didn't ever need to be updated due to moving GC.

Bug: 17262039
Change-Id: I592f2770570de97b431671cfbd409f63697892f1
untime/gc/reference_processor.cc
untime/runtime.cc
untime/verifier/method_verifier.cc
untime/verifier/method_verifier.h
untime/verifier/reg_type_cache.cc
untime/verifier/reg_type_cache.h
508e0a8d2be15c41c4001864ffb43be6de55ddbd 13-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Allow quickening in the boot image" into lmp-dev
35439baf287b291b67ee406308e17fc6194facbf 28-Aug-2014 Andreas Gampe <agampe@google.com> ART: Allow quickening in the boot image

Update the class linker to accept class status from the boot image
in compiler mode. Update compiler driver to allow quickening for
boot image classes. Update method verifier to accept quickened
instructions in compiler mode when we just want to dump. Update
oatdump to the new verifier API.

Bug: 17316928
Change-Id: I9ef1bfd78b0d93625b89b3d662131d7d6e5f2903
ompiler/driver/compiler_driver.cc
ompiler/driver/compiler_driver.h
atdump/oatdump.cc
untime/class_linker.cc
untime/verifier/method_verifier.cc
untime/verifier/method_verifier.h
332e1888f8d37267b0668e73aef798876a7b3306 12-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Change access flag behavior in verifier" into lmp-dev
9a3c262484621b4ac291aac96d6b255e9e261203 12-Sep-2014 buzbee <buzbee@google.com> Merge "Quick compiler (arm64) Fix inline Math.round()" into lmp-dev
ca48ef5d12f049178d7d1c1f901d754ac44235ac 12-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix and re-enable FreeList large object space for 64 bit" into lmp-dev
98216e53f8d538b4386b80b896edfa20e9734827 12-Sep-2014 buzbee <buzbee@google.com> Quick compiler (arm64) Fix inline Math.round()

Math.round is detected and inlined for arm64. However, the
arm64 backend incorrectly modified a source operand in place
during the round sequence. Depending on how registers are
allocated, that modification could persist. Changed to use a
temp register for the intermediate result.

Internal b/17411468

Change-Id: I7c636f985e193f8ff838768fde3b741e443bb1bb
ompiler/dex/quick/arm64/fp_arm64.cc
est/083-compiler-regressions/expected.txt
est/083-compiler-regressions/src/Main.java
7fc8f90b7160e879143be5cfd6ea3df866398884 26-Aug-2014 Andreas Gampe <agampe@google.com> ART: Change access flag behavior in verifier

Note: this moves the miranda modifier to the upper 16 bit.

Bug: 16161620
Change-Id: I2f591d53b7d1559171e70aaaf22225d94b4882f5
ompiler/driver/compiler_driver.cc
ompiler/oat_writer.cc
atdump/oatdump.cc
untime/class_linker.cc
untime/dex_file.h
untime/dex_file_verifier.cc
untime/image.cc
untime/modifiers.h
untime/verifier/method_verifier.cc
est/121-modifiers/build
est/121-modifiers/classes/A$B.class
est/121-modifiers/classes/A$C.class
est/121-modifiers/classes/A.class
est/121-modifiers/classes/Inf.class
est/121-modifiers/classes/Main.class
est/121-modifiers/classes/NonInf.class
est/121-modifiers/expected.txt
est/121-modifiers/info.txt
est/121-modifiers/src/Asm.java
est/121-modifiers/src/Inf.java
est/121-modifiers/src/Main.java
est/121-modifiers/src/NonInf.java
28e55dd9a315ef33e2d2fa6506d544362406f759 12-Sep-2014 Andreas Gampe <agampe@google.com> Merge "Fix host 64-bit ISA string" into lmp-dev
66e222aa48e6d2fe4c78a1df938364b82bc83e72 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix and re-enable FreeList large object space for 64 bit

Not enabled on 32 bit due to virtual memory fragmentation concerns.
The new free list large object space ensures that allocations are
page aligned by using a side table for accounting data.

Bug: 17414549

Change-Id: Idbcbe75cb86b6d9b3d8b20f3048631a48c511458
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/large_object_space.cc
untime/gc/space/large_object_space.h
untime/gc/space/large_object_space_test.cc
0f79299e78cb9e304f2a723ce7691f35ecaa4bab 12-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add fast path to VMClassLoader.findLoadedClass" into lmp-dev
6b9f31a7cbdc6d4b590c8c2119ffddbf5f8c0720 12-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Delete pin table" into lmp-dev
776ee7236f3d95ad5b8a1e6af693e636266f8131 12-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Print the command line and ABI in stack dumps like debuggerd." into lmp-dev
09865b8aa2d85f2824fbdac8034cab01629e8adc 11-Sep-2014 Jeff Brown <jeffbrown@google.com> Print the command line and ABI in stack dumps like debuggerd.

Ensure the heading is "Cmd line:" just like debuggerd and
as it used to be in Dalvik.
Fix a missing newline.
Trim all training nulls from the command line.
Don't bother printing the original command line if unset.
Add the ABI to the dump to help the native stack symbol tool.

Bug: 17474152
Change-Id: Ie1da1bd4f38c92b13ea08c7122f4573d8ec8fc73
untime/signal_catcher.cc
53f7ac1d6b96621e9fd0225d7579a0183f6f179e 12-Sep-2014 Jeff Brown <jeffbrown@google.com> Merge "Revert "Print the command line and ABI in stack dumps like debuggerd."" into lmp-dev
c02213080bdda3d99b62dcd66af4941e703a8547 12-Sep-2014 Jeff Brown <jeffbrown@google.com> Revert "Print the command line and ABI in stack dumps like debuggerd."

This reverts commit 38ac77b6fb1fc626299022fe0f16d5b6c365cb9b.

Change-Id: I8e4952b80d03ad61c3ff2afaf8a96b8c2e36f0c7
untime/signal_catcher.cc
d1ae50047c5da787e722e182992bd242540b502a 12-Sep-2014 Jeff Brown <jeffbrown@google.com> Merge "Print the command line and ABI in stack dumps like debuggerd." into lmp-dev
194116c836080de14245a3a7c4617d07b8abf8cf 11-Sep-2014 Mathieu Chartier <mathieuc@google.com> Add fast path to VMClassLoader.findLoadedClass

VMClassLoader.findLoadedClass now calls FindClassInPathClassLoader
as a fast path. Exclusive time results (trace view maps launch):

Before:
nativeFillInStackTrace 1.4%
defineClassNative 1.2%
findLoadedClass 0.2%

After:
nativeFillInStackTrace 0.5%
defineClassNative 0.0%
findLoadedClass 0.9%

Bug: 16828525

Change-Id: I1bde48effcd28529778c00ec0fa0dda4e32026a3
untime/class_linker.cc
untime/class_linker.h
untime/native/java_lang_VMClassLoader.cc
38ac77b6fb1fc626299022fe0f16d5b6c365cb9b 11-Sep-2014 Jeff Brown <jeffbrown@google.com> Print the command line and ABI in stack dumps like debuggerd.

Ensure the heading is "Cmd line:" just like debuggerd and
as it used to be in Dalvik.
Fix a missing newline.
Trim all training nulls from the command line.
Don't bother printing the original command line if unset.
Add the ABI to the dump to help the native stack symbol tool.

Bug: 17474152
Change-Id: I19c585dbd7d31ef6c98270e469445cae40cbd518
untime/signal_catcher.cc
a967c62e4e6675d3553445aa8e95a09e7a3381b0 11-Sep-2014 Mathieu Chartier <mathieuc@google.com> Delete pin table

The pin table was brought over from dalvik but not really needed
since ART doesn't support pinning in movable spaces. The only
thing it did was hold objects live for JNI functions.
This shouldn't be necessary since people keep jni references to
these objects or else they could never release the elements.

Bug: 17456946

Change-Id: Ibed0d029157ffb9e75ecd80d4d544d690986c090
untime/jni_internal.cc
untime/jni_internal.h
0624965c286ecd0971e44c060059251e75ba4b84 11-Sep-2014 Andreas Gampe <agampe@google.com> ART: Fix preverified setting in VerifyClass

Make sure soft-failed classes cannot set methods to pre-verified.

Bug: 16828525, 17465185
Change-Id: I09c0a68ca722978459741311148eae7614f9ca49
untime/class_linker.cc
3892cf8da7d5e76c0dee585fc8f69df773680525 11-Sep-2014 Andreas Gampe <agampe@google.com> ART: Fix preverified setting in VerifyClass

Make sure soft-failed classes cannot set methods to pre-verified.

Bug: 16828525, 17465185
Change-Id: I09c0a68ca722978459741311148eae7614f9ca49
untime/class_linker.cc
f1d9b049b8e61a61dcacfe2fc98a8263c0215042 11-Sep-2014 Sebastien Hertz <shertz@google.com> Fix crash when connected to DDMS

Restore init of WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk_data and
removed duplicated line.

Bug: 17467328
Bug: 17463118
Change-Id: I64638e23615b7c20061b49c41a9c0e9f35a4d537
untime/well_known_classes.cc
0a40828e6f4914968048642e8c0e5fdf6bc3b1af 11-Sep-2014 Vladimir Marko <vmarko@google.com> Merge "Improve dex location canonicalization-related performance." into lmp-dev
11db17c44cdbd71e97a677cdc8fb1e18907ab93d 11-Sep-2014 Vladimir Marko <vmarko@google.com> Merge "Fix GetDexCanonicalLocation test for relative paths." into lmp-dev
96cd6714d94b47512710776761dec98c8be68bef 11-Sep-2014 Sebastien Hertz <shertz@google.com> Fix crash when connected to DDMS

Restore init of WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk_data and
removed duplicated line.

Bug: 17467328
Bug: 17463118
Change-Id: I64638e23615b7c20061b49c41a9c0e9f35a4d537
untime/well_known_classes.cc
29329c2080d3fac76b75141f26d7e0469bd0efc0 11-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 5f0438a4123aeaae55ee034d31c5b1465fcf69cd
5f0438a4123aeaae55ee034d31c5b1465fcf69cd 11-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Fix deadlock in VirtualMachine.AllThreads" into lmp-dev
94aa2482e8ba71e85a875c2afc85ad8b8d3fb0f3 11-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Don't hold any lock when visiting classes from JDWP" into lmp-dev
59d0e8aca127088bc08586add9be38045ad420c0 11-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Use WellKnownClasses in ThrowStackOverflowError to reduce changes of further stack overflow" into lmp-dev
bfc2b98a3cf7a9d580f2477e54aabded5004fd26 11-Sep-2014 Brian Carlstrom <bdc@google.com> Use WellKnownClasses in ThrowStackOverflowError to reduce changes of further stack overflow

Bug: 17463118
Change-Id: Ic05b07803d2d3112e0b67064f380cd46ba9e293f
untime/entrypoints/entrypoint_utils.cc
untime/well_known_classes.cc
untime/well_known_classes.h
df1532b9ba0cda2d00b78fbdef461f8a6cf8a737 11-Sep-2014 Andreas Gampe <agampe@google.com> ART: Correctly make methods preverified

Bug: 16828525
Change-Id: I66756348b2aa50e41dacca59769b6810a91c73b0
untime/class_linker.cc
untime/class_linker.h
untime/class_linker_test.cc
untime/mirror/class-inl.h
untime/mirror/class.h
untime/modifiers.h
be4e64303cc66bda0a12eaab835caa0bcfda3cd9 05-Sep-2014 Vladimir Marko <vmarko@google.com> Improve dex location canonicalization-related performance.

Eagerly add canonical dex file locations to the OatFile's
primary lookup map in Setup(). This moves the boot.oat work
from every app startup to the zygote initialization. Since
we always ended up initializing the canonical location map
anyway due to the way that we're loading dex files, the lazy
initialization didn't save anything.

Clean up dex file name canonicalization to make sure we
free() the memory returned by realpath() rather than using
std::unique_ptr<> with the default deleter.

Avoid some unnecessary duplicate OatDexFile lookups.

Bug: 16828525
Bug: 17346103

(cherry picked from commit aa4497db59f1eeec954f2ba5da6d458fcdf9b3a4)

Change-Id: Icc4b14ebe903282ca91ce24e33a6d7c75dff991c
ompiler/elf_patcher.cc
untime/class_linker.cc
untime/class_linker.h
untime/dex_file.cc
untime/dex_file.h
untime/dex_file_test.cc
untime/oat_file.cc
untime/oat_file.h
untime/runtime.cc
untime/utils.h
est/116-nodex2oat/nodex2oat.cc
est/117-nopatchoat/nopatchoat.cc
est/118-noimage-dex2oat/noimage-dex2oat.cc
a06fff224fcc16da61e9e81c7e2cb85a8ca15471 07-Aug-2014 Calin Juravle <calin@google.com> Fix GetDexCanonicalLocation test for relative paths.

If the reference file is created with a relative path the test will
fail.

(cherry picked from commit 61281dc0aaa22730fd4fee268cac40776b193042)

Change-Id: Ie82b9d381bd884111dfc91cc235b46ad9f3225be
untime/dex_file_test.cc
8165fda0a8e0a54b4b622835f4962e2dd31b89f2 10-Sep-2014 Sebastien Hertz <shertz@google.com> Ensure class is linked before resolution

Adds a missing call to ClassLinker::EnsureResolved to ensure we did link the
class and retired the temp class (placeholder) before doing the resolution.

Bug: 17435441

Change-Id: Ib1a7181d6e5e814ca9299d0504e739a2b69475ef
untime/class_linker.cc
827645f27237f3e77c87cb5e49e90389a22337a6 10-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Ensure class is linked before resolution" into lmp-dev
72da76359aa5599f78ddca79b294e9bf30e004ed 10-Sep-2014 Sebastien Hertz <shertz@google.com> Ensure class is linked before resolution

Adds a missing call to ClassLinker::EnsureResolved to ensure we did link the
class and retired the temp class (placeholder) before doing the resolution.

Bug: 17435441

Change-Id: Ib1a7181d6e5e814ca9299d0504e739a2b69475ef
untime/class_linker.cc
44332cc21494726c9ba90ac8f23af8acc2dc4536 10-Sep-2014 Christopher Ferris <cferris@google.com> Merge "Add proper cfi directives." into lmp-dev
5875a4884efcfc7bf80b0bbb50148611286dbe30 10-Sep-2014 Ian Rogers <irogers@google.com> Merge "VisitClassesWithoutClassesLock isn't safe if classes move." into lmp-dev
3171cb37105fae912c324bbef44953b73430c3d7 10-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 0bff4f375d8013a4a59cf70b3427fb461a17e6de
7fae7c40e62ffe669fc224c57ed530b4d9c8da2c 09-Sep-2014 Christopher Ferris <cferris@google.com> Add proper cfi directives.

This function has a mix of arm and cfi directives. Since our unwinders
can work with both, remove the arm directives and fix the cfi directives.

Bug: 17392751
Change-Id: Ibd4859a4f0b8f2da751a0928a2f5f4afa3df7df8
untime/arch/arm/jni_entrypoints_arm.S
0bff4f375d8013a4a59cf70b3427fb461a17e6de 10-Sep-2014 Mathieu Chartier <mathieuc@google.com> Increase dex2oat timeouts for debug builds

Should fix the 056-const-string-jumbo test.

Change-Id: I04d98dfd59003b964c1feee6eee31079f9f4a476
ex2oat/dex2oat.cc
4e67841e99e4a206133e7010653ccd132682296a 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Change Reference.get() intrinsic to Reference.getReferent().

The reference intrinsic was incorrectly inlining
PhantomReference.get(). We now get around this by adding a
layer of indirection. Reference.get() now calls getReferent()
which is intrinsified and inlined.

Requires:
https://android-review.googlesource.com/#/c/107100/

Bug: 17429865

(cherry picked from commit cd48f2d86197d4fe87cc88077bc4af5ba66e5295)

Change-Id: Ie91e70abf43cedf3c707c7bb8a5059e19d2a2577
ompiler/dex/quick/dex_file_method_inliner.cc
ompiler/dex/quick/dex_file_method_inliner.h
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mir_to_lir.h
untime/native/java_lang_ref_Reference.cc
untime/quick/inline_method_analyser.h
f8aed38fd66b14ca31638362050cbfaa64f6135e 09-Sep-2014 Jeff Hao <jeffhao@google.com> Merge "Change 099-vmdebug test to use File.createTempFile." into lmp-dev
1ae33d6839a0e14a7e37bf9b88896479e30282d2 09-Sep-2014 Jeff Hao <jeffhao@google.com> Change 099-vmdebug test to use File.createTempFile.

Avoids issues with concurrency.

Bug: 17439227
Change-Id: I4a5956d9f26fad416a244216c2c77d5e6f072c62
est/099-vmdebug/src/Main.java
df96098c5d079e20c92a8de06dcbe5dacc6b1ab7 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Temporarily disable LOS on 64 bit

Problem is that MAP_32BIT simulation can take seconds on large object
allocations in the worst case.

Bug: 17414549

Change-Id: I463bb0b728eed14847a32a27a93640ec6080f6b3
untime/gc/heap.h
3298611e205a299612f2e403bfaeb955ec0a2bdd 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Temporarily disable LOS on 64 bit" into lmp-dev
cda850f6a0f50b9888a5d0f04072cd23e28478ae 09-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 1b2140c9bf46388e4f59ecf3d62d99cd78fed12c
d35776413901a6a9d478e06dc354ea4f7d962e04 09-Sep-2014 Sebastien Hertz <shertz@google.com> Fix deadlock in VirtualMachine.AllThreads

We cannot add any object in the JDWP object registry while holding the
Locks::thread_list_lock. Indeed we may need to suspend a thread and take it,
causing a deadlock by waiting for ourself on this lock.

Bug: 17343664
Change-Id: I2335c63e418c0d485daf2c35f8debcd52f943140
untime/debugger.cc
untime/jdwp/object_registry.h
1b2140c9bf46388e4f59ecf3d62d99cd78fed12c 09-Sep-2014 Andreas Gampe <agampe@google.com> ART: Better error reporting on broken oat file

Do not blow up when in GetHashBucket if GetHashBucketNum is zero.
Instead back-step to ElfFileOpen, which prints which symbol was
missing from which file.

Bug: 17422404
Change-Id: I3b890dd1c31c08b1ccc0f7f668afcceee95f8d00
untime/elf_file.cc
6b8f868862de9c8a191462ab2a2c979aea4857d3 09-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Workaround Darwin ContainedWithinExistingMap issue" into lmp-dev
29acd2f2e2d5f953535be1f71bc89cbb3a00f52c 09-Sep-2014 Brian Carlstrom <bdc@google.com> Workaround Darwin ContainedWithinExistingMap issue

Bug: 16861075
Change-Id: I577a0c7ede919e610c356e7c40dd60d87914dd3a
untime/mem_map.cc
77c318d5c22c5db02bd09f80c97bb117ce6f5e4c 09-Sep-2014 Sebastien Hertz <shertz@google.com> Merge "Fix monitor visit for class initializer" into lmp-dev
5300d478fb60f3aa9277f29aef9a901d26f7469a 09-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix unchecked register index validity" into lmp-dev
8a4064e2c0987637b11afcc656478d3113d81618 09-Sep-2014 Brian Carlstrom <bdc@google.com> Fix darwin run-test problems

Bug: 17428908
Change-Id: Id74a0383fdae6753558e27cd447c1ca349819c91
est/etc/host-run-test-jar
est/run-test
eb10cfe7849236ca9eb5a6d05ac0d06be05f19bf 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Temporarily disable LOS on 64 bit

Problem is that MAP_32BIT simulation can take seconds on large object
allocations in the worst case.

Bug: 17414549

Change-Id: I463bb0b728eed14847a32a27a93640ec6080f6b3
untime/gc/heap.h
1e25d9386c7e94761f1eda38e2d699192a915e35 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add fast path for FindClass using the type dex file." into lmp-dev
8a39e7fe02e9a81853dc7a75cb50d9ece07a9b37 05-Sep-2014 Mathieu Chartier <mathieuc@google.com> Add fast path for FindClass using the type dex file.

If we are using the PathClassLoader with a BootClassLoader
parent, we can handle the common case in the FindClass function
without needing to go back to java code.

Around 10% speedup measured of maps launch, could be noise due to
large variation of app launch times. Eliminates defineClassNative
from being anywhere near the top of sampling profiles.

Bug: 17397179
Bug: 16828525
Change-Id: Ide0db2b5f6cf5b96fc46e89178e0799de667cb88
untime/class_linker.cc
untime/mirror/class_loader.h
untime/well_known_classes.cc
untime/well_known_classes.h
dd66899f8d5ca4385937770694d2f2d9fb61ce8e 09-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Change ART for new native bridge sequence" into lmp-dev
c0e1fa7382b2e8e64da07181aff316dbcc84c395 09-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add test for hashCode and System.identityHashCode." into lmp-dev
ec61aea293ee29256fb49b5c27d3f834c9c5f55e 08-Sep-2014 Mathieu Chartier <mathieuc@google.com> Ignore heap trim requests if we are the zygote

Done to prevent app launching lag due to sleep in heap trimmer
daemon.

Bug: 17310019

Change-Id: Ia593e7eced1c1583771985ec9e7b60ee0c0e7912
untime/gc/heap.cc
b087849f5bbbf25bf5b03cf6172d2a50c08119e9 09-Sep-2014 Jeff Hao <jeffhao@google.com> Disable tracing if enabled by default for new tracing test.

Bug: 17412385
Change-Id: If963a9ba2214c72efbef673a840bbeb6fdbb1795
est/099-vmdebug/src/Main.java
afb7de600066cc5daba0112eacbfdb43f1fb9f16 09-Sep-2014 Jeff Hao <jeffhao@google.com> Merge "Change when sampling thread is reset during shutdown to prevent races." into lmp-dev
f8bdd4e783842577e49f418a0b5962ba49dfdd93 08-Sep-2014 Jeff Hao <jeffhao@google.com> Change when sampling thread is reset during shutdown to prevent races.

Also adds some extra argument checking and testing for tracing.

Bug: 17412385
Change-Id: I876378d5bd17d75ab346584713b04dc0656d2120
untime/trace.cc
est/099-vmdebug/expected.txt
est/099-vmdebug/info.txt
est/099-vmdebug/src/Main.java
d5b11363bd5f89a9000b8b3ce449dcd7b901c3b2 08-Sep-2014 Mathieu Chartier <mathieuc@google.com> Add test for hashCode and System.identityHashCode.

(cherry picked from commit bda2836af470c45e30c567b14d6747a7450c4741)

Change-Id: Ieba8f8eb09441ec145a176df00c293695eae0f47
est/120-hashcode/expected.txt
est/120-hashcode/info.txt
est/120-hashcode/src/Main.java
f81bfa3e21c8a4e031505470ea954c93949cb30b 08-Sep-2014 Mathieu Chartier <mathieuc@google.com> Ignore heap trim requests if we are the zygote

Done to prevent app launching lag due to sleep in heap trimmer
daemon.

Bug: 17310019

Change-Id: Ia593e7eced1c1583771985ec9e7b60ee0c0e7912
untime/gc/heap.cc
4d3981c72a546b87c8f5d391ff8b5135b8ca99a7 08-Sep-2014 Mathieu Chartier <mathieuc@google.com> Revert "Fix heap trimmer daemon sleeping."

This reverts commit 698b44634396e8111e96e1116586fde89a838347.

Change-Id: Ifa8c2d554b82289cc31803ad6027735d2c3c9be8
untime/gc/heap.cc
untime/gc/heap.h
74ae47a0590feceea31a2388f98c83e3ec0df0ec 07-Sep-2014 Andreas Gampe <agampe@google.com> ART: Fix unchecked register index validity

The static check of index validity is against the type given by
the instruction, e.g., boolean for SPUT_BOOLEAN, but the target_type
is the resolved field type and can differ. An additional check is
necessary to avoid a read out of bounds.

Bug: 17411109
Change-Id: Ie4ed8bbda79f3f6403a24e727450a943447aa71d
untime/verifier/method_verifier.cc
13e3c6dd64ef3ca350356128d3a3e2fdd57513ee 03-Sep-2014 Andreas Gampe <agampe@google.com> ART: Change ART for new native bridge sequence

Initialize or unload after a fork.

(cherry picked from commit 6be67eeedbe60afce42300ae3e7f0e7180a96efa)

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
untime/native/dalvik_system_ZygoteHooks.cc
untime/runtime.cc
untime/runtime.h
est/115-native-bridge/expected.txt
ca0c8d3f81cdee58bd9a70c0fd26f79917dff3b5 30-Aug-2014 Ian Rogers <irogers@google.com> VisitClassesWithoutClassesLock isn't safe if classes move.

Which they do, so avoid by doing an array allocation.
Also, tidy member variables to the end of ClassLinker.
Remove unnecessary mutable. Tidy and fix a locks required/excluded.

Change-Id: I2404a9e7a1ea997d68ab1206f97d2a20dffbda06
(cherry picked from commit dbf3be0f133c0bdf454f637fee2452dbb5f7c027)
untime/class_linker.cc
untime/class_linker.h
18df1928acf68b2f4de4f837d1ddcbff33b89b1e 08-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 2c63eee334bca18536060eea2e4a2f7883ef8eb9
6d06f1b34322d91226c9dcd61e53c2b6731f8bb6 08-Sep-2014 Sebastien Hertz <shertz@google.com> Fix monitor visit for class initializer

We do not hold class object's lock when invoking class initializer. Therefore
it is wrong to visit it when looking for monitors owned by a thread.

Bug: 17377924

Change-Id: I7fddcdb9a554301e040c571971eec9be6cba5eda
untime/monitor.cc
025d5510b27fa651c8f9aaf1b216788829a71d7f 07-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 2c63eee334bca18536060eea2e4a2f7883ef8eb9
8b0a88b0f71ded1a21cb553f947dbbeaf0e4d12b 06-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to d81877cad7a6e9b97dfdc4c63984f218b7e31df5
bb390ce2e388d85a0f030b37771646e40983bb1e 06-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 2c63eee334bca18536060eea2e4a2f7883ef8eb9
2c63eee334bca18536060eea2e4a2f7883ef8eb9 05-Sep-2014 Brian Carlstrom <bdc@google.com> Merge "Fix numerous issues with DdmVmInternal allocation tracking" into lmp-dev
f4cb036808b88fe60d71a705b2744284155cbc01 05-Sep-2014 Brian Carlstrom <bdc@google.com> Fix numerous issues with DdmVmInternal allocation tracking

Issues addressed:
- Using without JDWP attached caused native crash.
- When buffer is full (64k entries), number of entries reported was 0.
- Disabling tracking after disabling tracking caused native crash.
- Asking for allocations after disabled caused native crash.
- Lock ordering issues between mutator lock and alloc tracker lock.

Adding 098-ddmc test to cover these cases.

Bug: 17392248
Change-Id: I45c0abbfb3dd7a7421aea3bbba2ea8d05225e48b
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/debugger.h
est/098-ddmc/expected.txt
est/098-ddmc/info.txt
est/098-ddmc/src/Main.java
b100ff4f21e034172be9669b18851829bb51e567 05-Sep-2014 Calin Juravle <calin@google.com> Merge "Avoid recomputing the dex checksum during class loading" into lmp-dev
ca3459398018360d9968a52eebf727df085caf83 02-Sep-2014 Calin Juravle <calin@google.com> Avoid recomputing the dex checksum during class loading

Thread the already computed checksum to VerifyOatAndDexFileChecksums and
LoadMultiDexFilesFromOatFile to avoid recomputing it.

Bug:17346103
Change-Id: Ifa0c1cad952853751e98cbb3c999631b9909a9f9
untime/class_linker.cc
untime/class_linker.h
cb7c0e9eb785a8d605da5d5b26ab265d4d635f1e 13-Aug-2014 Ian Rogers <irogers@google.com> Ensure alternate signal stack is minimum size.

On Mac a sigaltstack may need to be 32KB, setting it to 16KB causes
sigaltstack to fail.

(cherry picked from commit c24a1e00b13a7ebf10dd896f6a18b1ad09617ec7)

Change-Id: Ic06d80f1acf5c4eb3d2dd1156bfa2805ab0df492
untime/thread_linux.cc
d81877cad7a6e9b97dfdc4c63984f218b7e31df5 04-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix heap trimmer daemon sleeping.

Problem:
Heap trimmer daemon sleeping caused app launch occasionally to take a
while due stopping the heap trimming thread taking a long time.

The heap trimmer thread now never sleeps, we prevent issues caused
by frequent back and forth process state changes by only
transitioning to background if it has been kCollectorTransitionWait
time since the last transition to background. Similar logic for heap
trimming.

Bug: 17310019

Change-Id: I23980421cc388f36b66a4c03ed15dd11d43f59b5
untime/gc/heap.cc
untime/gc/heap.h
bbcd0a75324dd9554109d91f2e9f7ae5d4c4a28a 04-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix heap trimmer daemon sleeping." into lmp-dev
698b44634396e8111e96e1116586fde89a838347 04-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix heap trimmer daemon sleeping.

Problem:
Heap trimmer daemon sleeping caused app launch occasionally to take a
while due stopping the heap trimming thread taking a long time.

The heap trimmer thread now never sleeps, we prevent issues caused
by frequent back and forth process state changes by only
transitioning to background if it has been kCollectorTransitionWait
time since the last transition to background. Similar logic for heap
trimming.

Bug: 17310019

Change-Id: I23980421cc388f36b66a4c03ed15dd11d43f59b5
untime/gc/heap.cc
untime/gc/heap.h
57f2bbda741d2d3d769a50268b4e0b9b54959684 04-Sep-2014 Jean Christophe Beyler <jean.christophe.beyler@intel.com> ART: Fix x86_64 GenSelect case when destination is Ref

Reference in x86_64 is a 64-bit solo register. As a result, the invocation
of OpRegImm results in an error when Select opcode of the kind:
ref = boolean ? null : null;
because opRegImm does not support 64-bit destination for OpMov.

The case above is only possible for ref because no one other constant except
null is possible.

Bug: 17327895
Change-Id: I7541e744ec1c8619711712fd17be72764efcf3a8
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
(cherry picked from commit 3f51e7d942c22edaab3a7e703a1e6a2dd6a26f77)
ompiler/dex/quick/x86/int_x86.cc
est/003-omnibus-opcodes/expected.txt
est/003-omnibus-opcodes/src/GenSelect.java
est/003-omnibus-opcodes/src/Main.java
607dcd8a2aca4e44a564b7839c285315230545fd 04-Sep-2014 Ian Rogers <irogers@google.com> Merge "ART: Fix computation of frame size for direct proxy methods" into lmp-dev
481458d4e8e9c3677249bfd82d36273bf97412fb 29-Aug-2014 Serguei Katkov <serguei.i.katkov@intel.com> ART: Fix computation of frame size for direct proxy methods

Proxy method has only one direct method and it is a constructor which
is cloned from java.lang.reflect.Proxy class together with code.
As a result its body is a compiled quick code and frame size should be
computed accordingly in contrast with other virtual methods which are
invoked through stub.

Change-Id: I0ac99b2f567b281c9342152bad1149dd6cd39480
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
(cherry picked from commit 805bab1738549b2477b3ad4d9d57fd7c681451b9)
untime/mirror/art_method-inl.h
c78dc139e748bf618e585c48a4508c894052ea2a 04-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to e1a8662792260953efe05fd991d945e508298aa8
e1a8662792260953efe05fd991d945e508298aa8 04-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix native allocation watermark clamping." into lmp-dev
4c7fc5950853b0c368e2148db77ced7c4d3c303c 03-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix native allocation watermark clamping.

The main issue causing the test to fail is that
native_footprint_gc_watermark_ becoming > growth_limit_ due to no
clamping.

Temporary runFinalization fix is calling runFinalization 2x.

Bug: 17371542
Change-Id: I188cb530a44dd109e066a22091f12f8d2d4350c3
untime/gc/heap.cc
untime/gc/heap.h
untime/native/dalvik_system_VMRuntime.cc
c4978258172beb35c3c8f0c31a5f7eb06b9a1de2 04-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add exception check to AllocateInternalWithGc" into lmp-dev
6b28a456b075fe53dfb7e924a44dbf35d0d41eb3 03-Sep-2014 Jeff Hao <jeffhao@google.com> Fix stack overflow and duplicate methods while tracing.

Bug: 16386215
Change-Id: I0d0ae0113a3a00013ce84a1f5a110e2c52f19b86
untime/class_linker.cc
untime/entrypoints/entrypoint_utils.cc
est/Android.run-test.mk
98d43cb0da3c34d1888d1e31d953c2940fd0f897 03-Sep-2014 Mathieu Chartier <mathieuc@google.com> Add exception check to AllocateInternalWithGc

Trying to figure out if the pending exception comes before or during
AllocateInternalWithGc.

Bug: 17164348

Change-Id: Id46d82bfc0f84d16e5ffdafe41658aee4cc2c702
untime/gc/heap.cc
ff4cfe07009ac0b0f07475ef2aa91d9aaf9ab291 30-Aug-2014 Junmo Park <junmoz.park@samsung.com> Fix SetupResourceMasks to pass correct parameters

Calling SetupTargetResourceMasks function with correct parameter.
SetupTargetResourceMasks(lir, flags, use_mask, def_mask) is correct order.

b/17369806

(cherry-picked from commit sha 2a09504334a3a3b4c47100197df0827cc6740433)

Change-Id: I49118c3f2d3d06fac83fa3d5014b7fdaff6a2b00
ompiler/dex/quick/mir_to_lir-inl.h
49b892c921c25677aff73113491a491350577fa5 03-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to c60bdf667b5c6fa767548942f0115547523593b4
f72fd02c4ea0f1aa610b8a4f9f51ef86c285b1cf 03-Sep-2014 buzbee <buzbee@google.com> Merge "Quick compiler: disable GVN DO NOT MERGE" into lmp-dev
95795e286145a4aece5c4a095fa2e7e88ee2115a 28-Aug-2014 Sebastien Hertz <shertz@google.com> Don't hold any lock when visiting classes from JDWP

Computes reference type ids of all loaded classes without holding the class
linker lock. Because computing the JDWP reference type id can cause thread
suspension, we can't hold any lock. This is detected in debug build (using
libartd.so) and causes an abort.

Also adds missing thread safety annotations related to ObjectRegistry::lock_.

Bug: 17305632
Bug: 16720689

Change-Id: Id2cbd56624499c09e4755aaef7a9b15d2bdf4c91
untime/debugger.cc
untime/jdwp/object_registry.h
4c4f4daafbac15b856da91118d9ea55c9eefa54b 03-Sep-2014 buzbee <buzbee@google.com> Quick compiler: disable GVN DO NOT MERGE

Disable global value numbering optimization for lmp (but
keep on for master).

b/16398693

Change-Id: I125c588c987a81db54a15da1eec9dee2b009956f
ompiler/dex/frontend.cc
c60bdf667b5c6fa767548942f0115547523593b4 03-Sep-2014 Mathieu Chartier <mathieuc@google.com> Fix native allocation test.

Forgot to update with last CL.

Change-Id: Id2f57870b8d4f848cd93012d9da69beee5184be4
est/004-NativeAllocations/src/Main.java
4d05d931d3d608f5047e0d9dfb422df018ace716 03-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix read-out-of-bounds in the compiler" into lmp-dev
635531a2d99f413339187ce39b08affdf1b31d9f 03-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Change native allocations to use growth limit." into lmp-dev
d9819ecc0bc21a2bb356a4de9b013e36fe618627 03-Sep-2014 Mathieu Chartier <mathieuc@google.com> Change native allocations to use growth limit.

Previously native allocation tracking used a GC footprint limit
which would cause GC in the allocating thread. This prevented
excessive growth of the heap but could cause jank due to GC in
the allocating thread. The new behavior is using the growth_limit
instead of the native footprint limit.

Bug: 17006948

Change-Id: I40f30af09bb25596a9f57fa50e2a155fb947b5fe
untime/gc/heap.cc
untime/gc/heap.h
37bb8184e091e8d9199cfc2fc888dfb40a5c0f20 03-Sep-2014 Ian Rogers <irogers@google.com> Merge "Pre-allocate the NoClassDefFoundError to be thrown for boot classes." into lmp-dev
9db18e1679800bc57c1e30f7c5ff786949ffe5cf 03-Sep-2014 Ian Rogers <irogers@google.com> Merge "Reduce and speed-up class def searches." into lmp-dev
e610faf917fd280fa0d9e02d5c2d0dbacbb037b7 03-Sep-2014 Andreas Gampe <agampe@google.com> Merge "ART: Tighten verifier list reading and offsets" into lmp-dev
79cfc0e93e210e548b45459478a154168d2d8cc2 05-Jun-2014 Ian Rogers <irogers@google.com> Pre-allocate the NoClassDefFoundError to be thrown for boot classes.

Bring over a Dalvik "optimization".
Bug: 12804658
Bug: 16853450
Change-Id: I6419de7bd2ba18d91479cb52489104954f5c4524

(cherry picked from commit 63557459a4098294a9ff44d035241de2966047c0)
untime/class_linker.cc
untime/class_linker.h
untime/runtime.cc
untime/runtime.h
cc2f2393e69a9b1425bad1a89f41aaaf8c38f9e2 30-Aug-2014 Ian Rogers <irogers@google.com> Reduce and speed-up class def searches.

Use the class linker for descriptor lookups from the compile driver so that
dex caches are populated.
Reduce the scope of functions for scanning class paths to just the class
linker where they are performed.
If we see more than a threshold number of find class def misses on a dex file
lazily compute an index, so that future lookups are constant time (part of the
collection code is taken from
https://android-review.googlesource.com/#/c/103865/3). Note that we take a lazy
approach so that we don't serialize on loading dex files, this avoids the
reason the index was removed in 8b2c0b9abc3f520495f4387ea040132ba85cae69.
Remove an implicit and unnecessary std::string creation for PrintableString.

Single threaded interpret-only dex2oat performance is improved by roughly 10%.

Bug: 16853450

Change-Id: Icf72df76b0a4328f2a24075e81f4ff267b9401f4
(cherry picked from commit 68b56858367e29461ae290fd797443a1ef6d8005)
ompiler/driver/compiler_driver.cc
atdump/oatdump.cc
untime/class_linker-inl.h
untime/class_linker.cc
untime/class_linker.h
untime/dex_file.cc
untime/dex_file.h
untime/jdwp/jdwp_handler.cc
untime/utf.cc
untime/utf.h
untime/utils.cc
untime/utils.h
70c71ab1c2e44a74fc4eb76d6a0530f773850196 30-Aug-2014 Mathieu Chartier <mathieuc@google.com> Change intern table to unordered set.

Intern table active used bytes goes from 430k to 317k on system
server. Similar %wise savings on other apps.

Bug: 16238192

Change-Id: I92de72de3eae0b76629e9da83db2c2d0fa613052
untime/gc_root-inl.h
untime/gc_root.h
untime/intern_table.cc
untime/intern_table.h
untime/mirror/string-inl.h
untime/mirror/string.cc
untime/mirror/string.h
untime/runtime.cc
untime/runtime.h
untime/transaction.cc
untime/transaction.h
23590fd094df6a4a2360b722763249adf1689f15 02-Sep-2014 Mathieu Chartier <mathieuc@google.com> Merge "Change intern table to unordered set." into lmp-dev
8bd2961b385c870953e650c253a04ee24b76809b 02-Sep-2014 Mathieu Chartier <mathieuc@google.com> Change heap transitions + hspace compation to use VLOG(heap)

VLOG(gc) is spammy since it is enabled.

Change-Id: I07d1d40e2f19134f885d6777b60533a9010ae164
untime/gc/heap.cc
78d639ef4be3ad7314846e1e6c1261d7d30f83fa 02-Sep-2014 Andreas Gampe <agampe@google.com> ART: Tighten verifier list reading and offsets

Check offsets and sizes for header entries of a dex file.

Bug: 17347459
Change-Id: Ia1727c33dea51f7a8e345f3799f1ba414708239c
untime/dex_file_verifier.cc
untime/dex_file_verifier.h
b373ba1bf7e67d4dd8286df08065ac76aa8ac1ee 02-Sep-2014 Andreas Gampe <agampe@google.com> ART: Fix typo

Bug: 17327877
Change-Id: I6132a8afb4b69c8d22a01b477f6f324c789ed666
untime/dex_file_verifier.cc
6bb98c53a69ee1bae8f8475597214b7687b4972f 02-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 20632daac36995947d2d1943f89f07ac277e61f0
5cabb095799032772cedb34e79352c6222e8e670 01-Sep-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 20632daac36995947d2d1943f89f07ac277e61f0
d30c16eb57f6808ec0e0b882789ab8fb6971c3cb 31-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 20632daac36995947d2d1943f89f07ac277e61f0
277a7c7b4bb9c421380592fd3998d2e79e4035b3 30-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix dex file verifier type-list handling

It is rare, but valid, to have an empty type list.

Bug: 17327877
Change-Id: Ib3a8ff3e5ccd8fe7c04b1e97485bf3e6de72aa4d
untime/dex_file.h
untime/dex_file_verifier.cc
d910fcef539e12ab181e56ec80684f39c4e95733 30-Aug-2014 Mathieu Chartier <mathieuc@google.com> Change intern table to unordered set.

Intern table active used bytes goes from 430k to 317k on system
server. Similar %wise savings on other apps.

Bug: 16238192

Change-Id: I92de72de3eae0b76629e9da83db2c2d0fa613052
untime/gc_root-inl.h
untime/gc_root.h
untime/intern_table.cc
untime/intern_table.h
untime/mirror/string-inl.h
untime/mirror/string.cc
untime/mirror/string.h
untime/runtime.cc
untime/runtime.h
untime/transaction.cc
untime/transaction.h
20632daac36995947d2d1943f89f07ac277e61f0 30-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add native memory accounting through custom allocator." into lmp-dev
5369c40f75fdcb1be7a7c06db212ce965c83a164 25-Aug-2014 Mathieu Chartier <mathieuc@google.com> Add native memory accounting through custom allocator.

Added a custom allocator that lets you pass in a special tag which
specifices where the allocation came from. This is used when
dumping. The performance overhead is low since each allocation only
does a atomic add/sub for each allocation/free.

The measurements are dumped to traces.txt during SIGQUIT.

Example output:
I/art (27274): AllocatorTagHeap active=120 max=120 total=168
I/art (27274): AllocatorTagMonitorList active=1572 max=6240 total=11724
I/art (27274): AllocatorTagClassTable active=185208 max=185208 total=268608
I/art (27274): AllocatorTagInternTable active=430368 max=430368 total=436080
I/art (27274): AllocatorTagMaps active=5616 max=6168 total=34392
I/art (27274): AllocatorTagLOS active=1024 max=1536 total=2044
I/art (27274): AllocatorTagSafeMap active=0 max=51936 total=533688
I/art (27274): AllocatorTagLOSMaps active=144 max=1248 total=5760
I/art (27274): AllocatorTagReferenceTable active=10944 max=11840 total=19136
I/art (27274): AllocatorTagHeapBitmap active=32 max=40 total=56
I/art (27274): AllocatorTagHeapBitmapLOS active=8 max=8 total=8
I/art (27274): AllocatorTagVerifier active=0 max=18844 total=1073156
I/art (27274): AllocatorTagModUnionCardSet active=5300 max=5920 total=56020
I/art (27274): AllocatorTagModUnionReferenceArray active=24864 max=24864 total=24864
I/art (27274): AllocatorTagJNILibrarires active=320 max=320 total=320
I/art (27274): AllocatorTagOatFile active=1400 max=1400 total=5852

Bug: 16238192

Change-Id: Ibb470ef2e9c9a24563bb46422d46a55799704d82
untime/Android.mk
untime/base/allocator.cc
untime/base/allocator.h
untime/class_linker.h
untime/dex_file_verifier.h
untime/gc/accounting/gc_allocator.cc
untime/gc/accounting/gc_allocator.h
untime/gc/accounting/heap_bitmap.h
untime/gc/accounting/mod_union_table.h
untime/gc/accounting/remembered_set.h
untime/gc/accounting/space_bitmap.h
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/large_object_space.h
untime/gc_root.h
untime/intern_table.h
untime/jni_internal.cc
untime/mem_map.cc
untime/mem_map.h
untime/monitor.h
untime/monitor_pool.cc
untime/monitor_pool.h
untime/oat_file.h
untime/reference_table.h
untime/runtime.cc
untime/runtime.h
untime/safe_map.h
untime/verifier/register_line.h
9bf1b088e4e12121037090dd9c92393fbe805cb6 29-Aug-2014 Dave Allison <dallison@google.com> Merge "Fix mips build for nested signal handler" into lmp-dev
5a18dde067daeb55f1368d5791c61e315bfa1d99 29-Aug-2014 Dave Allison <dallison@google.com> Fix mips build for nested signal handler

Bug: 17006816

Change-Id: If41c6d7a2f12f1822ca36d9e2f0f22b3ca854098
untime/arch/mips/fault_handler_mips.cc
496cd337c19ca8386fec24633160f82c01993bbd 29-Aug-2014 Alex Light <allight@google.com> Fix segfault if running without image.

Bug: 17325091

(cherry picked from commit 7adb7ac3913364de8cc57b8934024dd12e1d3bea)

Change-Id: I343099543ce0abf02219da84d61d9ce2dfc47980
untime/class_linker.cc
2cc42e3029182ad6c6443376c1a4cbf9c1e6a784 29-Aug-2014 buzbee <buzbee@google.com> Merge "Quick compiler: Fix MIPS build" into lmp-dev
b41b93a2b7916fb56b50cc6180d80e8d86d78433 28-Aug-2014 buzbee <buzbee@google.com> Quick compiler: Fix MIPS build

b/16484538

In debug builds, the Quick compiler frequently runs a sanity checker
over the register pool. Among other things, it attempts to verify
consistent representation of register pairs. However, a register's
"wide" flag is meaningful only when the register pair is associated
with a Dalvik wide value (sreg != INVALID_SREG) rather than a temp
wide value.

The MIPS build was tripping over this bad assertion. Fixed here.

Note related cl/105461

(cherry-picked from commit sha 3a658077af2a931e5d7f6cd22b777c57112c19df)

Change-Id: Id726ff1ea0f5cbcc8dba6fa3aacb3fd4fc043a63
ompiler/dex/quick/ralloc_util.cc
8ac3356db74f5e38c70406cc5f5e65a49ff41fd7 28-Aug-2014 Sebastien Hertz <shertz@google.com> Avoid null pointer dereference when sending JDWP packets

Bug: 16218394

(cherry picked from commit 60ed7da4d193e0f90b05c4236af77d3b276c0ea4)

Change-Id: I4882b3b6bb97facb8fca4c7ece65f4c7c96c57fe
untime/jdwp/jdwp_main.cc
6a6a896572a76e3871f5f6b2901e3bb5dec1e2f3 29-Aug-2014 Brian Carlstrom <bdc@google.com> Fix Mac build

Bug: 17000769,16875245

(cherry picked from commit debdda0262bfbcb966a89e693d933cc74eb412ac)

Change-Id: I158f090c89587f176813a15e9edad917bd134cd0
untime/gc/space/image_space.cc
6c050b5f782b61a16083ae35c98931a2d51d0a33 29-Aug-2014 Alex Light <allight@google.com> Fix incorect variable name.

Bug: 16875245
(cherry picked from commit 1291e9bc87edc8fde56434bc66bef0c62d44a8e6)
Change-Id: Idd0f7ac677568a53569308a67f1ad613584949a5
untime/gc/space/image_space.cc
1f0198162044d015072cbb7824f4a6688d0300ee 28-Aug-2014 Alex Light <allight@google.com> Change /dalvik-cache to be owned by root.

Also prune the dalvik-cache during startup if we need to generate or
relocate an image.

Bug: 17000769,16875245

(cherry picked from commit 2539613be94f599c1713627f80c7398028d1a6aa)

Change-Id: I29a70215a2207bc4e0db02ab751d32a68edf4b66
untime/gc/space/image_space.cc
e6caf04639aec134f7b668bf71cd6797a4759dd9 29-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Fix issue with Thread.setName hanging after Thread.start" into lmp-dev
7654123b2fd7abeb40522dac791fa26a1364d030 28-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Ensure proxy constructor is in dex cache" into lmp-dev
679c3cedaf1550113104f5113b23f0fdec6175c0 28-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Prevent exception bugs in class linker" into lmp-dev
440d3da1284f7c7333b4fc5d09072664ae7a370a 27-Aug-2014 Sebastien Hertz <shertz@google.com> Ensure proxy constructor is in dex cache

Bug: 17262039

(cherry picked from commit ae94e350f100207359b8345d8d21e78e7cfb44c4)

Change-Id: I1cfc8dac1f63b9012fa098804135be8847b1daee
untime/class_linker.cc
37c16453a92bbf1a47f042000318a1b60381017d 28-Aug-2014 Brian Carlstrom <bdc@google.com> Fix issue with Thread.setName hanging after Thread.start

When suspending a thread by peer the invariant that only attached threads are
suspended must be maintained. Add a ThreadList::Contains check which requires
making this method non-static.
Add some extra thread logging.

Bug: 17302037
Change-Id: I89af9840e398c2ceadeb736c431dfe3be8f3ba06
untime/debugger.cc
untime/native/dalvik_system_VMStack.cc
untime/native/java_lang_Thread.cc
untime/thread_list.cc
untime/thread_list.h
est/051-thread/expected.txt
est/051-thread/src/Main.java
58c016c3f85d6d5496cea25325778de3a8d9a3ac 28-Aug-2014 Mathieu Chartier <mathieuc@google.com> Prevent exception bugs in class linker

There were some places that could throw exceptions but still succeed.
This caused the allocation entrypoints to occasionally allocate a
heap object with a pending exception.
Also added some additional AssertNoExceptionPending.

Bug: 17164348

Change-Id: Ic6dd3b0cce9955349176503dd7f6c3da7ab0a6f1
untime/class_linker.cc
untime/entrypoints/entrypoint_utils-inl.h
5b41c2a8f8e4a745b18685413b51c883cd993403 28-Aug-2014 Elliott Hughes <enh@google.com> Merge "Actually ask the pthread implementation for the stack guard size." into lmp-dev
d1e4e735cdf98e2ece7fa9a5dfeaad98d0c37cd1 28-Aug-2014 Ian Rogers <irogers@google.com> Merge "Revert "Avoid using NanoTime for compiler and verifier"" into lmp-dev
cd7a048cfac23e6ec3e1ba3ab4c1dddb322eaadf 28-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Support booting without functioning boot.oat/art patchoat." into lmp-dev
307091dc306c34ce9e4ee6cc3b467807b3a3bd12 27-Aug-2014 Elliott Hughes <enh@google.com> Actually ask the pthread implementation for the stack guard size.

Bug: 17111575
Change-Id: I23919b1e8aeff627a65daf57f1109bec60b196cc
untime/thread.cc
untime/utils.cc
untime/utils.h
6dd35ccbfbb29201c84a54261d75977c598ef2e6 27-Aug-2014 Ian Rogers <irogers@google.com> Revert "Avoid using NanoTime for compiler and verifier"

This reverts commit c89e6edbdce97c7d199b54bf63aed7ea01ebf1ff.

Change-Id: Id3b89121a19e64bf3c457c39b375f3d3c0fcc579
ompiler/driver/compiler_driver.cc
untime/verifier/method_verifier.cc
074c8c6aac3bd42a173befd1a4eafd479ef12dc9 27-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Avoid using NanoTime for compiler and verifier" into lmp-dev
c89e6edbdce97c7d199b54bf63aed7ea01ebf1ff 27-Aug-2014 Mathieu Chartier <mathieuc@google.com> Avoid using NanoTime for compiler and verifier

Target timings before with -j2 --compiler-filter=interpret-only:
Approximate speedup 3%.

Before:
real 0m36.852s
real 0m36.050s
real 0m36.246s

After:
real 0m35.667s
real 0m35.779s
real 0m35.458s

Bug: 16853450

Change-Id: Id996172d8283639fe293ddfc26d01fc1a0beed0b
ompiler/driver/compiler_driver.cc
untime/verifier/method_verifier.cc
ade731854d18839823e57fb2d3d67238c5467d15 27-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix read-out-of-bounds in the compiler

In case of a wide dalvik register, asking for the constant value
can lead to a read out of bounds.

Bug: 17302671
Change-Id: Ie1849cd67cc418c97cbd7a8524f027f9b66e4c96
ompiler/dex/mir_graph.h
ompiler/dex/quick/codegen_util.cc
fb7775981c7e6ecca78dcce774e9cc4db63e6e99 23-Aug-2014 Alex Light <allight@google.com> Support booting without functioning boot.oat/art patchoat.

Bug: 17000769

(cherry picked from commit 84d7605f93f1e6e86a16e02017e305c90e93117a)

Change-Id: I89c26a905af12ea288742368c2c038afd57a879a
untime/class_linker.cc
untime/oat_file.cc
untime/oat_file.h
untime/runtime.cc
est/119-noimage-patchoat/expected.txt
est/119-noimage-patchoat/info.txt
est/119-noimage-patchoat/run
est/119-noimage-patchoat/src/Main.java
52fb2a636a082cf5dc4c669a4b34085135709645 27-Aug-2014 Dave Allison <dallison@google.com> Merge "Handle nested signals" into lmp-dev
b68c6e578a28a9717d78dfd522d9d9b8befaedf2 19-Aug-2014 Mathieu Chartier <mathieuc@google.com> Reduce interpret-only compile time.

Before:
39.04user 5.18system 0:29.24elapsed 151%CPU (0avgtext+0avgdata 164176maxresident)k
38.87user 5.16system 0:29.14elapsed 151%CPU (0avgtext+0avgdata 164144maxresident)k

After:
36.26user 3.25system 0:27.00elapsed 146%CPU (0avgtext+0avgdata 162592maxresident)k
36.25user 3.28system 0:26.28elapsed 150%CPU (0avgtext+0avgdata 162688maxresident)k

Disabled implicit stack protection for the compiler, this reduces page faults.

Added support for not timing every method compilation and verification. NanoTime is
slow and adds ~2 seconds of real time. This is currently enabled since people want
to know which methods are slow to compile.

Bug: 16853450

(cherry picked from commit 8e219ae27624116b6d23e858fb21e93342f81d66)

Change-Id: I349ffb3f36db8c437137387aa6914dc17d743f09
ompiler/driver/compiler_driver.cc
untime/gc/heap.cc
untime/thread.cc
untime/verifier/method_verifier.cc
fabe91e0d558936ac26b98d2b4ee1af08f58831d 26-Aug-2014 Dave Allison <dallison@google.com> Handle nested signals

This allows for signals to be raised inside the ART signal handler.
This can occur when the JavaStackTraceHandler attempts to generate
a stack trace and something goes wrong.

It also fixes an issue where the fault manager was not being
correctly shut down inside the signal chaining code. In this
case the signal handler was not restored to the original.

Bug: 17006816
Bug: 17133266
Change-Id: I9c25bf4f6921e6a107aefbdf47d2c0db9f41508f
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/quick_entrypoints_x86_64.S
untime/entrypoints_order_test.cc
untime/fault_handler.cc
untime/fault_handler.h
untime/thread.cc
untime/thread.h
igchainlib/sigchain.cc
6f586deff90b72d8e98482c4ead8f3d4593f90ac 27-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to f59b605f82c0e2b7bfc6019ee7bd650628f50d3a
d04f113d1471c3d6b6dadc342835ec6370da2507 26-Aug-2014 Mathieu Chartier <mathieuc@google.com> Map heap maps at a lower address.

We now map the heap mmaps at a lower address in case the app needs
larger continuous address space.

Bug: 16502380

Change-Id: I2cc11d0c207c0eae8db0c5025a48b11119c5a802
untime/gc/heap.cc
fe45af389ac6a28c0544f1f1f5ffb3565cfa52d1 26-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to lmp-dev
f59b605f82c0e2b7bfc6019ee7bd650628f50d3a 26-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix race condition in TransitionCollector." into lmp-dev
de2233bbf64c7dde96513a729f6a97aebc2f0424 23-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix race condition in TransitionCollector.

There was a minor race condition that could happen if multiple
threads called TransitionCollector at the same time. Starting out
in CMS:

Thread 1: TransitionCollector(SS).
Thread 2: TransitionCollector(CMS) sees that it is already CMS so
has copying_transition == false. But then thread 2 changes to SS.
Thread 1 resumes but incorrectly doesn't check the
disable_moving_gc_count_ possibly resulting in errors if
disable_moving_gc_count_ != 0 due to JNI since we are going from
SS -> CMS and are goign to move objects.

Bug: 17189964

Change-Id: I4f0d002717516b81355d66f26e0e8ebe3958348d
untime/gc/heap.cc
ccb1a5d46bc1b4ee888e74775f5c1291d600ff54 22-Aug-2014 Stephen Kyle <stephen.kyle@arm.com> ART: Reject field accesses to non-reference vregs.

The verifier will now reject any iget/iput insts
that do not have a reference object in vB.

Bug: 17207857
Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>

(cherry picked from commit 695c5982eeddee18c643cc2f94c9d78fa75599ab)

Change-Id: I3790b8687673643bb142549d74f36a3e2978bf13
untime/verifier/method_verifier.cc
506bcfc66454555f792fbc7893ff3b2877c9b288 26-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Map heap maps at a lower address." into lmp-dev
b2634e9790a7099cf84d3509afe7af18f4349f11 26-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: kSuper also has IncompatibleClassChangeError" into lmp-dev
7f28597bfa4b5e11911e4d4caa13fe2ab234a53e 26-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix IncompatibleClassChange check for ArtMethod" into lmp-dev
83182ed48c55729cd34780fc598f269cc98af739 26-Aug-2014 Sebastien Hertz <shertz@google.com> Merge "Reduce lock contention when debugging" into lmp-dev
93834a59dd9b262e85ab9c286a59b4b98b636650 26-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 0699fbf769befd3a850005790b26941c38fa2fb4
cb50ed40fc39a1c1786e57f5c839a3cd230e1744 26-Aug-2014 buzbee <buzbee@google.com> Merge "Quick compiler: fix DCHECK" into lmp-dev
118785c6f82ac1ec7074b5efe367b3dafd904940 26-Aug-2014 Brian Carlstrom <bdc@google.com> CheckAndClearResolveException should allow LinkageError

Bug: 16565964
Change-Id: Ibf236c627519a5cdef9479b7bc21e931d5474abf
ompiler/driver/compiler_driver.cc
9cb8d7a9a5013dd1e6734d9643573a4750d869e2 26-Aug-2014 Andreas Gampe <agampe@google.com> ART: kSuper also has IncompatibleClassChangeError

When resolving methods, kSuper can also have
IncompatibleClassChangeError.

Bug: 17266767
Change-Id: I5fafe03ad578f605825a3d0c89f1254a4a385b76
untime/class_linker.cc
249907fe09afd9243c9675a67b157b98378fa3cf 26-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix IncompatibleClassChange check for ArtMethod

In case of kSuper we should complain sometimes.

Bug: 17265201
Change-Id: Ifad903a750495963c7128296713fbd7c4add71cd
untime/mirror/art_method-inl.h
eac98d7cb0f84c664d22deebf1ae5062730d7a31 26-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Reduce GC log spam." into lmp-dev
0ab56e95e203806dae347056d3331a3e6037457d 26-Aug-2014 Mathieu Chartier <mathieuc@google.com> Reduce GC log spam.

Homogeneous compaction and collector transitions now print to
VLOG(gc) instead of LOG(INFO).

Bug: 17166556
Change-Id: I5d54acf36a9b2763922e6329596a2f191d45535c
untime/gc/heap.cc
18bacb60e09fa8aa20ae0a1d7a4a8968d4913fb0 26-Aug-2014 Mathieu Chartier <mathieuc@google.com> Map heap maps at a lower address.

We now map the heap mmaps at a lower address in case the app needs
larger continuous address space.

Bug: 16502380

Change-Id: I2cc11d0c207c0eae8db0c5025a48b11119c5a802
untime/gc/heap.cc
28b066ad8baa23f918e99d2e9b4771c00b5a3eca 25-Aug-2014 buzbee <buzbee@google.com> Quick compiler: fix DCHECK

A DCHECK intended to verify the soundness of the mapping between
a wide Dalvik value and a pair of temp registers incorrectly fired
when the temp register pair was associated with a wide temporary
(i.e. - when (SReg() == INVALID_SREG)).

In this particular situation, the wideness flag is meaningful only when
there is an associated valid vreg. Code rearranged to only perform
the DCHECK and reset the partner's wideness bit when we're dealing with
a live wide value.

b/16484538

Change-Id: I3b8a7bebc5d918c65ea56ae8db0a8a5cd8003386
ompiler/dex/quick/ralloc_util.cc
6c4da4e0ac87955f45702b00edc532c344b9f874 21-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix GC memory overhead accounting.

There was some missing null checks.

Bug: 16238192

Change-Id: Iaf8d752db5f21e76f668c0066a063239ff374eee
untime/gc/accounting/gc_allocator.cc
untime/gc/accounting/gc_allocator.h
0699fbf769befd3a850005790b26941c38fa2fb4 21-Aug-2014 Alex Light <allight@google.com> Reduce log spam by changing a LOG(INFO) to VLOG(startup)

Bug: 17166556

(cherry picked from commit b6cabc1345ec307559a6e85141fb69b7caa9413c)

Change-Id: I9975ba07ad8f119a6e367e2770a60040a462149b
untime/gc/space/image_space.cc
507e6180ad271eb719c67ce7394852c731d975a5 19-Aug-2014 Alex Light <allight@google.com> Support running without a boot image.

Bug: 17000769

(cherry picked from commit 64ad14dbe2225441fb7734bf6d89358d96692eea)

Change-Id: I6404d5050c8a2f4ee6e70d58532eb25ee9de248e
untime/class_linker.cc
untime/class_linker.h
untime/entrypoints/quick/quick_instrumentation_entrypoints.cc
untime/gc/heap.cc
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
untime/runtime.h
est/118-noimage-dex2oat/expected.txt
est/118-noimage-dex2oat/info.txt
est/118-noimage-dex2oat/noimage-dex2oat.cc
est/118-noimage-dex2oat/run
est/118-noimage-dex2oat/src/Main.java
est/Android.libarttest.mk
73aa0b03a56a19b73c51136c32624bc5069782e0 25-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix GC memory overhead accounting." into lmp-dev
44db326dd4e78b6cf364c14f2c534d3f1576a22e 25-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 83a2192d360cdf678c9d4422b5f1bc73d5df602b
16378362310eb88d5dcb3f9f8b396ba71d0a9448 24-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 83a2192d360cdf678c9d4422b5f1bc73d5df602b
1b832a5b6d6119d9842c44a0a0604021c2e3a99d 23-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 83a2192d360cdf678c9d4422b5f1bc73d5df602b
83a2192d360cdf678c9d4422b5f1bc73d5df602b 23-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add fallback for non moving space being full." into lmp-dev
4c5a469683e433f126c9863cd393747d2e7c4a29 22-Aug-2014 Mathieu Chartier <mathieuc@google.com> Add fallback for non moving space being full.

When the non moving space becomes full, we disable moving GC and
make the main space the new non moving space.

Also added a runtime option for changing the non moving space size:
-XX:NonMovingSpaceCapacity.

Bug: 17189964
Change-Id: I04d00d0f457f6c1f5724bf32932b6b6ce4d341b1
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/malloc_space.h
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
1e4fbd8b7d65064d087c5afe812943b203ed205a 22-Aug-2014 Ian Rogers <irogers@google.com> Merge "Using the correct time for wait_start_ms when lock contention logging is enabled" into lmp-dev
b894a19dfd668b6779de939cf5265b7e409d8809 22-Aug-2014 Xin Guan <a18772@motorola.com> Using the correct time for wait_start_ms when lock contention logging is enabled

Bug: 17208457
Change-Id: I35555e0acf3b37bb3776a62c64d59ae93403b237
untime/monitor.cc
2e290fb35ba1959e5a0ac85e87591ab9623808c1 21-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix GC memory overhead accounting.

There was some missing null checks.

Bug: 16238192

Change-Id: Iaf8d752db5f21e76f668c0066a063239ff374eee
untime/gc/accounting/gc_allocator.cc
untime/gc/accounting/gc_allocator.h
1f8ea0402915b394461bb6a3ca58e05c62f63082 22-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Allow uninitialized runtime in oat code" into lmp-dev
fd684f6d51cf4bee6e7bf62c9d632fbebd7dd8b7 22-Aug-2014 Calin Juravle <calin@google.com> Merge "Always setup the native bridge library" into lmp-dev
84a9ba10a826b8480be53ea164fc6168544b2a48 22-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix testing wrong variable for non zygote." into lmp-dev
a12c2a945fe3f10d3ed31aa5db3e422cc1ad7f98 22-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix testing wrong variable for non zygote.

For non zygote we want to only have a single non moving space to
let dex2oat use RosAlloc for all allocations.

Fixed stale low memory logic in parsed options.

Bug: 17189964
Change-Id: I85a565002fd18ae30105df084796521abd60ea12
untime/gc/heap.cc
untime/parsed_options.cc
59d9d668d4f4286813afe2b4e7c6db839222ce96 19-Aug-2014 Sebastien Hertz <shertz@google.com> Reduce lock contention when debugging

Uses a ReaderWriterMutex for the breakpoint lock to reduce contention during
debugging session.

Also adds missing thread safety annotations on fields and methods related to
instrumentation and debugging.

Bug: 16814665
Bug: 11667502
Change-Id: I056cdafa91109e0c83806c8d8df75c37ade0a354
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/instrumentation.h
untime/thread_list.cc
ccdd4a5be1db2588767ed230b7064e5fe802ce8d 22-Aug-2014 Calin Juravle <calin@google.com> Always setup the native bridge library

... even if the string is empty. This will initialize the native bridge
library but mark it as unavailable.

- also, rename native_bridge_library_path to
native_bridge_library_filename to be closer to the actual meaning (it's
just the filename without any path).

Bug: 16404669.
Change-Id: I94628639691459d48d1fbf0841f36b68d51818e7
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
untime/runtime.h
b9eb15bc4bdf87194be945dd2cf35d655b8853f7 22-Aug-2014 Andreas Gampe <agampe@google.com> ART: Allow uninitialized runtime in oat code

Oatdump does not initialize a runtime. Avoid a segfault.

Bug: 17194559
Change-Id: I1a1bd3fc7762ff4714251617a975e832522fa879
untime/oat_file.cc
e246f33605a2d6b96f2c7221fa0165dc067c3079 21-Aug-2014 Daniel Mihalyi <daniel.mihalyi@mattakis.com> Fixed wrong field usage in Instrumentation::RemoveListener

Signed-off-by: Daniel Mihalyi <daniel.mihalyi@mattakis.com>

Bug: 16814665

(cherry picked from commit 6644521cfaff718a55e3602efb3b54bf19a0cd1a)

Change-Id: Ie68c70ba6ee2e0bd918717c8659c057f98e66ff7
untime/instrumentation.cc
96add97815ba8418fb4e8c0fc08dbf9c7198f244 18-Aug-2014 Daniel Mihalyi <daniel.mihalyi@mattakis.com> Optimized instrumentation listener handling

Some instrumentation listener lists may be modified while iterating
over the list to deliver an instrumentation event. Therefore the
previous implementation copied the list of listeners before starting
the iteration.

This new implementation only copies the list of instrumentation
listeners when the list is changed. Instances of the list are
reference counted using std::shared_ptr<>.

Bug: 16814665

(cherry picked from commit ca1d06cfa2f2b8d2be4390644e126cb68cdbb5ba)

Change-Id: Ib2e6b980de85b75f1c8f4a8825bdc7767154663a
untime/instrumentation.cc
untime/instrumentation.h
39c2a379795460374b41e627257130e3c4ab961f 22-Aug-2014 Dave Allison <dallison@google.com> Merge "Fix fugu build" into lmp-dev
b9d6a55eb4eb5872739ed26ac535f0c6342e813b 22-Aug-2014 Dave Allison <dallison@google.com> Fix fugu build

Bug: 17188805
Change-Id: Ibbfc759b42ec0f08a1beb35bf52d3ca92b8fe1ea
est/004-SignalTest/signaltest.cc
c6dccb18b071adf98f02fe647ebe4abf8646665f 21-Aug-2014 Alex Light <allight@google.com> Fix host 64-bit ISA string

Bug: 17185619, 15358152

(cherry picked from commit 60ffbcac792f3a2de687e85ab4aaccffe5264b21)

Change-Id: I08faa0b7368834e264ef05b4ea3bce1c3237876a
est/etc/host-run-test-jar
9660918229e895c4d6c4c361fd84a75abc683de0 21-Aug-2014 Narayan Kamath <narayan@google.com> Make a couple of map checks debug only.

This cost us close to 80ms in app startup times.

The checks that a reused region was within an already
existent map has been demoted to a debug check.

A couple of other negative checks have been removed
outright because one of them was superflous and the other
wasn't guaranteed to be correct.

bug: 16828525
Change-Id: I00f76de06df0ea4ced40fdcb7825248d4b662045
untime/mem_map.cc
untime/mem_map.h
574758ef03b0930ebd1cb8d9afe741cb374419a1 21-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Make a couple of map checks debug only." into lmp-dev
bddaea2b88b0a19d9cc7a4dea772af8e829323b3 21-Aug-2014 Narayan Kamath <narayan@google.com> Make a couple of map checks debug only.

This cost us close to 80ms in app startup times.

The checks that a reused region was within an already
existent map has been demoted to a debug check.

A couple of other negative checks have been removed
outright because one of them was superflous and the other
wasn't guaranteed to be correct.

bug: 16828525
Change-Id: I00f76de06df0ea4ced40fdcb7825248d4b662045
untime/mem_map.cc
untime/mem_map.h
b9c3888380666a7b44718f04f787693787cd57c6 21-Aug-2014 Dave Allison <dallison@google.com> Remove profiler log line

This removes a LOG(INFO) saying that the profile is disabled.

Bug: 17166556
Change-Id: I4ddb4b0f792eb60ed5c927e17d06cff4ae0c073f
untime/profiler.cc
9beaac31f89ad9f47c6e99e81cbfbefa25940c1d 21-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Check pending exception result in AllocObjectWithAllocator." into lmp-dev
03324d0e4b983863a75800d9973fcb7a1eb809b5 21-Aug-2014 Dave Allison <dallison@google.com> Merge "Fix fault handler to unregister on shutdown" into lmp-dev
45c3ea10b918ed8bb6834a1f4c2356b5874a8c75 21-Aug-2014 Dave Allison <dallison@google.com> Merge "Add supported architectures to signal test." into lmp-dev
1bd96acce3d16c07a7ee2cf013fe6f8b82abfb8e 21-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to c7fa9e3018434eed890034b14bd85645077ec2e9
27f5ae830c5418fa92094608a6e9f693ea88bb69 21-Aug-2014 Mathieu Chartier <mathieuc@google.com> Check pending exception result in AllocObjectWithAllocator.

Possible previous bug:
Allocation fails due to OOM and the collector transitions.
This caused us to incorrectly retry the allocation with a pending
exception. We now return null if there is a pending exception.

Bug: 17164348
Change-Id: I22eab472afb2fdea6e800963ccb35ec0755ba0e6
untime/gc/heap-inl.h
e8b9afcd0cd86b8808af29a97332038aab70c604 21-Aug-2014 Dave Allison <dallison@google.com> Fix fault handler to unregister on shutdown

This fixes a problem with the fault handler where it wasn't
unregistering itself during shutdown of the runtime.

Bug: 17133266
Change-Id: If4758b14ded0fba194897191b1a8d8d7b0b3e6e5
untime/fault_handler.cc
untime/fault_handler.h
untime/runtime.cc
igchainlib/sigchain.cc
d4af31aa69fe8786a291c566c375bbac04da9ced 20-Aug-2014 Dave Allison <dallison@google.com> Add supported architectures to signal test.

This adds ARM, AARCH64, i386 and x86_64 to the supported architectures
in 004-SignalTest

Bug: 16948053
Change-Id: I82b3f053e9340b9e2e8fc04775d03fb0592fa06e
est/004-SignalTest/signaltest.cc
167350d9c781c5e3893714bb26ab5cb1c4abf6b4 20-Aug-2014 Mathieu Chartier <mathieuc@google.com> Add null check to CheckVirtualMethod

There was a runtime SIGSEGV that should have been a check jni
failure.

Also added regression test.

Bug: 16320699
Change-Id: If6c8e73959cefb24e4703f1562cdddb343d86630
untime/check_jni.cc
untime/jni_internal_test.cc
595a33a64417071ff48e9b847cfc598d11ed6a80 20-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to d6ee5033433619a893a8f20319efcf8c8b1d1016
c6a62592836612b09ff1a8021e49b1328d85493b 20-Aug-2014 buzbee <buzbee@google.com> Merge "Quick compiler: fix Arm64 inline locking code" into lmp-dev
ebc56bd68743dfffcfeb04f938181b18efaed85c 20-Aug-2014 buzbee <buzbee@google.com> Quick compiler: fix Arm64 inline locking code

The Arm64 monitor enter code was incorrectly comparing the
thread ID to zero rather than the lock value to determine if the
inline fast path was doable. As a result, we ended up always
using the out-of-line case.

This fix delivers a 6% improvement to DeltaBlue.

b/16707253

Change-Id: I499530da84beecf1f3f5c5ebb666e3eb12599ac0
ompiler/dex/quick/arm64/call_arm64.cc
e22c03ceaa847e3b6c8fcb7ee9d838f61945cda7 19-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Set default visibility to protected" into lmp-dev
5afe466c027c6ac821bf7c9a88cd7de5260a639b 19-Aug-2014 Jeff Hao <jeffhao@google.com> Check for constructor first when installing tracing stubs.

Addresses comments in
https://android-review.googlesource.com/#/c/104383/ made after the commit.

Bug: 16386215
Change-Id: I0e59b8507f601fd6508fbda8d24dd3c98ead1537
untime/instrumentation.cc
8d83fcb1e46ffdd8a26aeb72b4747c2c8029f375 19-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 214f4f15fe0137c285a05b3f70e52a211aecfdb5
c7fa9e3018434eed890034b14bd85645077ec2e9 21-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Use homogeneous space compact by default if not low memory." into lmp-dev
a33a7fadadc7cb42c83b4aaed01f3a4c126d3075 20-Aug-2014 Mathieu Chartier <mathieuc@google.com> Use homogeneous space compact by default if not low memory.

Otherwise we use semispace as the background collector.

Bug: 16401001
Change-Id: I7b20e0888695521604758c98d09f0709fa2158ef
untime/parsed_options.cc
d6ee5033433619a893a8f20319efcf8c8b1d1016 20-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Make apps able to run with a failing patchoat" into lmp-dev
0a112bbbcd761c749c346bfec0ec39c1ef37a590 14-Aug-2014 Alex Light <allight@google.com> Make apps able to run with a failing patchoat

Bug: 17000769

(cherry picked from commit 9dcc4572949f6a8231a1b4ed859676ba6f411726)

Change-Id: I0a1a4dc7f5d4bb268530840302ecfb1555231e05
untime/class_linker.cc
untime/class_linker.h
untime/oat_file.cc
untime/oat_file.h
est/117-nopatchoat/expected.txt
est/117-nopatchoat/info.txt
est/117-nopatchoat/nopatchoat.cc
est/117-nopatchoat/run
est/117-nopatchoat/src/Main.java
est/Android.libarttest.mk
est/Android.run-test.mk
20e4afeb1ad9d142fe9e46efe812f0d562c28f1f 20-Aug-2014 Dave Allison <dallison@google.com> Merge "Workaround problem reading main stack on intel devices." into lmp-dev
38bd1e1b8aa39bdc6e67c5dc205cc8d294d985c5 19-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test

On devices which support it, run all jni compiler tests also with
the Generic JNI infrastructure.

Fix art_quick_invoke_stub for ARM32 to enforce 16B stack alignment.
As the native convention does not require as much, the previous
code would keep it unaligned.

Bug: 17107929

(cherry picked from commit 6e498695b60f1532d2264ec6badb1cd6e10ecaa9)

Change-Id: I1481500ff7c627ab4e5bfbfd7245099a639aa049
ompiler/jni/jni_compiler_test.cc
untime/arch/arm/quick_entrypoints_arm.S
d970bac690baa6f735b0cd187440546869088a0f 19-Aug-2014 Dave Allison <dallison@google.com> Workaround problem reading main stack on intel devices.

This works around a problem where ART can't read the lowest page
of the main stack. The workaround is to add 4K to the stack
start address on the main stack on Intel.

Please see https://b2.corp.google.com/issues/17111575 for
underlying cause.

Bug: 17031544
Change-Id: Ifc3216e10160bb1eec9d989fd57b10345bc89537
untime/thread.cc
16dd4dfd01c0ac432a32d081a15205222ffb1f1c 21-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Relax GetInstructionSetFromString" into lmp-dev
aabbb2066a715b3fd8e752291f74c6d77b970450 20-Aug-2014 Andreas Gampe <agampe@google.com> ART: Relax GetInstructionSetFromString

Do not abort on an unknown instruction set string. Instead return
kNone and let the caller handle this.

Also simplify the patchoat tool to use this.

Bug: 17136416
Change-Id: I24131914bcf91c04ae93179bf809a2907f1f2b7a
atchoat/patchoat.cc
untime/instruction_set.cc
untime/instruction_set.h
untime/instruction_set_test.cc
untime/native/dalvik_system_DexFile.cc
untime/parsed_options.cc
71f5f74050fdeb3c40f460432bf07897170b84dd 18-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 5e8a63ae39cb5db996229c6c4a1a21a4b8dec5a2
dfa7a6c8711623bf20aad58f57ae980b497ef4d7 18-Aug-2014 Vladimir Marko <vmarko@google.com> Disable load/store elimination. DO NOT MERGE

The optimization has several issues and it has been
effectively disabled by
https://android-review.googlesource.com/103511
Disable it completely to avoid wasting compilation time.

Bug: 16862804
Change-Id: I42f69ae64170dc44f5fd6455b6a51c9bd3f93672
ompiler/dex/frontend.cc
9a5a9ec039a46364f08a24252f03869be30b75a8 17-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to d84f916d35bb0dc74d7daa075b883e5ee1ce1109
d84f916d35bb0dc74d7daa075b883e5ee1ce1109 16-Aug-2014 Andreas Gampe <agampe@google.com> ART: Avoid expensive class lookup in compiler driver

When we are not compiling multidex, avoid an expensive by-descriptor
lookup for classes when deciding whether to skip compilation.

Bug: 17072698
Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4
ompiler/driver/compiler_driver.cc
a846c1ac65b197844380b8d28377a850dfa1fc94 20-Aug-2014 Vladimir Marko <vmarko@google.com> Merge "X86: Fix alias info in GenInlinedIndexOf()." into lmp-dev
b5874a47a4d2c4d2971116b031b4068021ffda05 19-Aug-2014 Vladimir Marko <vmarko@google.com> X86: Fix alias info in GenInlinedIndexOf().

For 32-bit X86, GenInlinedIndexOf() pushes and pops EDI. In
one branch it then calls Load32Disp() with adjusted stack
offset. That calculates wrong alias_info for the generated
insn. If left unfixed, this could confuse load hoisting.

Bug: 17128502

(cherry picked from commit 74de63bb1cc275b411cae28a96f9b3a78b939bc2)

Change-Id: I5dc82b7aae9e9655e75843a952b8ebb04269f46b
ompiler/dex/quick/x86/target_x86.cc
214f4f15fe0137c285a05b3f70e52a211aecfdb5 19-Aug-2014 Sebastien Hertz <shertz@google.com> Merge "Fix JDWP event races" into lmp-dev
d8b3537b89fa68599534a65afc3b272639cd4a75 18-Aug-2014 Sebastien Hertz <shertz@google.com> Fix JDWP event races

Fix a race where the JDWP connection could be closed before the VM_DEATH event
is sent during runtime shutdown.

Fix potential race where we could wait forever for the JDWP thread to establish
connection.

Bug: 16720689

Change-Id: I227e0a15a2fd17d7bfe2a66a35d719d558fcd32d
untime/debugger.cc
untime/jdwp/jdwp_main.cc
5a001b3e4a4b4d066fd987071eb38b2b97493807 19-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled." into lmp-dev
21ecab6effd08ed781d55fbb53b0e71c526c25fa 19-Aug-2014 Brian Carlstrom <bdc@google.com> AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.

Bug: 17108693

(cherry picked from commit 3ea69c0abce1b81b3c45033867d49b00e6d6b709)

Change-Id: Ide8158cc3e12e604f4fa344cd881fe6f68476ab7
untime/runtime.cc
untime/thread.cc
6724d8649ab73e4fb86c8014bda51b13bddf2f3f 19-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix heap corruption and verification.

There was a faulty assumption that space End() was always aligned to
card boundaries. This was true for all spaces other than the image
and resulted in heap corruption when the last object of the image
space contained a reference to an object in another space.

Also fixed an error where we called the pre GC verification post GC.

Bug: 17080623

Change-Id: I041ee564518f53b79c6e8dc2ad782a3152577a4e
untime/gc/accounting/card_table-inl.h
untime/gc/heap.cc
5e8a63ae39cb5db996229c6c4a1a21a4b8dec5a2 18-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Do not recursively abort when visiting locks in a bad state" into lmp-dev
760172c3ccd6e75f6f1a89d8006934e8ffb1303e 16-Aug-2014 Andreas Gampe <agampe@google.com> ART: Do not recursively abort when visiting locks in a bad state

This avoids a nested abort in VisitLocks.

Bug: 17080621, 16382675
Change-Id: Id604976ac9dcac0e319fb25cab4d2cbc98d7ee24
untime/monitor.cc
untime/monitor.h
untime/thread.cc
a4962aaa16a401da6f9db3ef26209b4ba6e99045 15-Aug-2014 Ian Rogers <irogers@google.com> Make Monitor::Wait more robust to spurious Inflate failures.

Bug: 17062710
Change-Id: Ife5f6b335caacc70cab543cd568676d277d3beb6
untime/mirror/object.cc
untime/monitor.cc
untime/monitor.h
ebee8de725d5fa83483642786b19ea453d865762 13-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> Fix bugs in the x86 and arm versions of generic JNI.

Also fix the run script of 116-nodex2oat to use the non-prebuild
script for target.

Bug: 17000769

(cherry-picked from commit 54accbca0b549b1b1ad3ef09655dad438bc1e104)

Change-Id: I439fcd710fb8bb408f3288ff8fb34fef23890adb
ompiler/jni/jni_compiler_test.cc
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/x86/quick_entrypoints_x86.S
untime/common_runtime_test.h
untime/entrypoints/quick/quick_trampoline_entrypoints.cc
est/116-nodex2oat/run
est/MyClassNatives/MyClassNatives.java
9c290012b7f505ae1943ab87236f775b97a46e2d 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Execute an application even when dex2oat crashes.

Bug: 17000769

(cherry picked from commit 4fcdc94d22a4608e355aa8df36240181149d10e8)

Change-Id: Iccb1fec94fe64ce4c3097510952f275482b86aa9
untime/class_linker.cc
untime/class_linker.h
untime/native/dalvik_system_DexFile.cc
untime/oat_file.h
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
untime/runtime.h
est/116-nodex2oat/expected.txt
est/116-nodex2oat/info.txt
est/116-nodex2oat/nodex2oat.cc
est/116-nodex2oat/run
est/116-nodex2oat/src/Main.java
est/Android.libarttest.mk
93de4273d72a2558a7b3423547b5074cd76c5796 12-Aug-2014 Calin Juravle <calin@google.com> [ART] Move to system/core native bridge library

Some cleanups on the way:
- move NativeBridgeRuntimeCallbacks from a global to a field
- rename native_bridge_library_string to the more suggestive
navtive_bridge_library_path
- clean up imports

Bug: 16884833

(cherry picked from commit I73aab8e212860ba5aee9444d801806d3da326a41)

Change-Id: I67f037ea81d2a4ede4294afd8b84b7640e534a13
untime/Android.mk
untime/jni_internal.cc
untime/native_bridge.cc
untime/native_bridge.h
untime/native_bridge_art_interface.cc
untime/native_bridge_art_interface.h
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
untime/runtime.h
est/115-native-bridge/nativebridge.cc
378fe3d39d3a55f61d82ea482b8ce3082aee0e21 15-Aug-2014 Ian Rogers <irogers@google.com> Merge "Make Monitor::Wait more robust to spurious Inflate failures." into lmp-dev
6f22fc166ed6c11cad229bff442c064e704de101 15-Aug-2014 Ian Rogers <irogers@google.com> Make Monitor::Wait more robust to spurious Inflate failures.

Bug: 17062710
Change-Id: Ife5f6b335caacc70cab543cd568676d277d3beb6
untime/mirror/object.cc
untime/monitor.cc
untime/monitor.h
4f1d05f0531b980b16dbff18161f02160919ec31 15-Aug-2014 Narayan Kamath <narayan@google.com> Merge "More efficient stack walk in exception throwing." into lmp-dev
bb6eccca7dcd673e24eed2fe95915780aa38a5d6 15-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Use handle in one case that spans a gc-point." into lmp-dev
82546347f86440b5e6317e304b04383f5d1ce326 13-Aug-2014 Mingyao Yang <mingyao@google.com> Use handle in one case that spans a gc-point.

Bug: 16689428

(cherry picked from commit 38eecb0f4288a374c9b0b4b4df8793eb5fc6697c)

Change-Id: Id4a1bde9012e4dd333493e46997c200537c9cf55
untime/class_linker.cc
95b4c65da93500cdbdcaa3e01010771ef3f466f1 15-Aug-2014 Jeff Hao <jeffhao@google.com> Prevent stubs from being installed in java.lang.reflect.Proxy.<init>.

This CL is a better fix for proxy tracing and undoes the changes in
https://android-review.googlesource.com/#/c/103025/

Bug: 16386215

(cherry picked from commit db8a664e0b68c7c4d36270cd21dce8de1912d7f9)

Change-Id: Ic9e0ea2af7cb2da5d90c56aa009de92dba14cc47
uild/Android.gtest.mk
untime/class_linker.cc
untime/common_runtime_test.cc
untime/common_runtime_test.h
untime/instrumentation.cc
untime/proxy_test.cc
4bf8d11df5dccc1b276cd9c40a98e8a14d79a9c8 25-Jul-2014 Jeff Hao <jeffhao@google.com> Fix proxy tracing and enable tests that now work with tracing.

Also updates proxy_test to generate an image for GetQuickOatCodeFor.

Bug: 16386215

(cherry picked from commit f0a3f09c3d54646166a55c05a6b39c7dd504129c)

Change-Id: I138edbad9e1646db8590f2b1b73f2788d9710e68
uild/Android.gtest.mk
untime/class_linker.cc
untime/common_runtime_test.cc
untime/common_runtime_test.h
untime/entrypoints/quick/quick_trampoline_entrypoints.cc
untime/mirror/art_method.cc
untime/proxy_test.cc
est/Android.run-test.mk
b84d7a226399dcc60bc0a421715ffc90ce9213f7 15-Aug-2014 Andreas Gampe <agampe@google.com> Revert "Revert "ART: Fix mac build""

This reverts commit 350b03bca65f87895275d1ed4bb895d5afeeeff1.

Also fixes a fault_handler symbol.

Change-Id: I1315527400bffc8ded9f2a7e7fdb1c8a6c104b96
untime/arch/x86/fault_handler_x86.cc
untime/thread.cc
2d5a21cf732ebc00396eedb3b97e951c65ec1449 14-Aug-2014 Mathieu Chartier <mathieuc@google.com> Use homogeneous space compaction if proper flag is set.

If the flag ART_USE_HSPACE_COMPACT is set then we use
hspace compaction.

Bug: 16401001

Change-Id: I74e1db764f9ff16c007fa3bd16cb2c9b468ec83c
untime/Android.mk
untime/parsed_options.cc
03c9785a8a6d712775cf406c4371d0227c44148f 14-Aug-2014 Dave Allison <dallison@google.com> Revert "Revert "Reduce stack usage for overflow checks""

Fixes stack protection issue.
Fixes mac build issue.

This reverts commit 83b1940e6482b9d8feba5c492507735686650ea5.

Change-Id: I7ba17252882b23a740bcda2ea94aacf398255406
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/mips/call_mips.cc
ompiler/dex/quick/x86/call_x86.cc
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86_64.cc
ompiler/utils/stack_checks.h
untime/arch/arm/asm_support_arm.h
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/arm64/asm_support_arm64.h
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/arm64/quick_entrypoints_arm64.S
untime/arch/x86/asm_support_x86.h
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/asm_support_x86_64.h
untime/arch/x86_64/quick_entrypoints_x86_64.S
untime/entrypoints/entrypoint_utils.cc
untime/entrypoints/quick/quick_throw_entrypoints.cc
untime/entrypoints_order_test.cc
untime/instruction_set.cc
untime/mirror/art_method.cc
untime/oat.cc
untime/reflection.cc
untime/thread.cc
untime/thread.h
est/004-InterfaceTest/src/Main.java
est/004-SignalTest/signaltest.cc
2e981cbaa2e869ec3910ebdc5cce9d4ab9edb758 13-Aug-2014 Hiroshi Yamauchi <yamauchi@google.com> More efficient stack walk in exception throwing.

In the exception handling code, we currently walk down the stack
twice, once to get the stack height which we use to compute frame IDs
(the bottom frame is zero), and once more to find the catch block to
jump to.

For a deep stack, this could result in very slow exception
handling. That is, if have a lot of finally or catch blocks that we
end up jumping to in a deep stack, we need to do a lot of
catch/rethrow chains. Since we'd need to walk down to the bottom each
time to compute frames IDs in each catch/rethrow, we'd need to walk
down O(N^2) frames at the worst case.

Instead of frames IDs ((the bottom frame is zero), we will use the
frame depth (the top frame is zero) and no longer need to walk down
the stack just to get the stack height. We walk down O(N) frames.

This was what was happening with
code.google.gson.functional.CircularReferenceTest. With this change,
the test run time went from ~120s down to ~3s on N5 and it no longer
crashes due to the thread suspension timeout.

(cherry pick commit 649278cec7119cdd1bea3d0b710dbb2aa7c650b6)

Bug: 16800209
Change-Id: Ie815df1e3e8fb9d82e40685d4cc2b8838fd8aa07
untime/quick_exception_handler.cc
untime/quick_exception_handler.h
untime/stack.h
b162bf5af5c2e508c6947471ceffaa98991794f4 14-Aug-2014 Mathieu Chartier <mathieuc@google.com> Use homogeneous space compaction if proper flag is set.

If the flag ART_USE_HSPACE_COMPACT is set then we use
hspace compaction.

Bug: 16401001

Change-Id: I74e1db764f9ff16c007fa3bd16cb2c9b468ec83c
untime/Android.mk
untime/parsed_options.cc
ab9a0dbf3b63d517da5278b8298e6cd316e09f68 14-Aug-2014 Dave Allison <dallison@google.com> Revert "Reduce stack usage for overflow checks"

This reverts commit 63c051a540e6dfc806f656b88ac3a63e99395429.

Change-Id: I282a048994fcd130fe73842b16c21680053c592f
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/mips/call_mips.cc
ompiler/dex/quick/x86/call_x86.cc
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86_64.cc
ompiler/utils/stack_checks.h
untime/arch/arm/asm_support_arm.h
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/arm64/asm_support_arm64.h
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/arm64/quick_entrypoints_arm64.S
untime/arch/x86/asm_support_x86.h
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/asm_support_x86_64.h
untime/arch/x86_64/quick_entrypoints_x86_64.S
untime/entrypoints/entrypoint_utils.cc
untime/entrypoints/quick/quick_throw_entrypoints.cc
untime/entrypoints_order_test.cc
untime/instruction_set.cc
untime/mirror/art_method.cc
untime/oat.cc
untime/reflection.cc
untime/thread.cc
untime/thread.h
est/004-InterfaceTest/src/Main.java
est/004-SignalTest/signaltest.cc
106135dec72c2391756fa8ff8482e9ec2cf6c33f 14-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 7e9cdbbc14c015028d4b239a09c5af33ffc2087c
235e77bd9f19e4faefda109be40f8744f3a66f40 13-Aug-2014 Andreas Gampe <agampe@google.com> ART: Set default visibility to protected

Set default visibility of symbols to protected. This allows the
linker to optimize internal calls and helps avoid plt calls.

Make almost all assembly stubs hidden, as -fvisibility does not
seem to apply to them. Change the assembly tests accordingly. Also
allows to clean up previous hacks to avoid plt calls.

Bug: 16974467
Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652
uild/Android.common_build.mk
untime/arch/arm/arm_sdiv.S
untime/arch/arm/asm_support_arm.S
untime/arch/arm/portable_entrypoints_arm.S
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/arm64/asm_support_arm64.S
untime/arch/arm64/portable_entrypoints_arm64.S
untime/arch/arm64/quick_entrypoints_arm64.S
untime/arch/memcmp16.cc
untime/arch/memcmp16.h
untime/arch/memcmp16_test.cc
untime/arch/stub_test.cc
untime/arch/x86/asm_support_x86.S
untime/arch/x86/portable_entrypoints_x86.S
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/asm_support_x86_64.S
untime/arch/x86_64/portable_entrypoints_x86_64.S
untime/arch/x86_64/quick_entrypoints_x86_64.S
63c051a540e6dfc806f656b88ac3a63e99395429 26-Jul-2014 Dave Allison <dallison@google.com> Reduce stack usage for overflow checks

This reduces the stack space reserved for overflow checks to 12K, split
into an 8K gap and a 4K protected region. GC needs over 8K when running
in a stack overflow situation.

Also prevents signal runaway by detecting a signal inside code that
resulted from a signal handler invokation. And adds a max signal count to
the SignalTest to prevent it running forever.

Also reduces the number of iterations for the InterfaceTest as this was
taking (almost) forever with the --trace option on run-test.

Bug: 15435566

Change-Id: Id4fd46f22d52d42a9eb431ca07948673e8fda694

Conflicts:
compiler/optimizing/code_generator_x86_64.cc
runtime/arch/x86/fault_handler_x86.cc
runtime/arch/x86_64/quick_entrypoints_x86_64.S
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/mips/call_mips.cc
ompiler/dex/quick/x86/call_x86.cc
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86_64.cc
ompiler/utils/stack_checks.h
untime/arch/arm/asm_support_arm.h
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/arm64/asm_support_arm64.h
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/arm64/quick_entrypoints_arm64.S
untime/arch/x86/asm_support_x86.h
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/asm_support_x86_64.h
untime/arch/x86_64/quick_entrypoints_x86_64.S
untime/entrypoints/entrypoint_utils.cc
untime/entrypoints/quick/quick_throw_entrypoints.cc
untime/entrypoints_order_test.cc
untime/instruction_set.cc
untime/mirror/art_method.cc
untime/oat.cc
untime/reflection.cc
untime/thread.cc
untime/thread.h
est/004-InterfaceTest/src/Main.java
est/004-SignalTest/signaltest.cc
7e9cdbbc14c015028d4b239a09c5af33ffc2087c 14-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Tolerate shallow call stack in VMStack_getCallingClassLoader" into lmp-dev
c85a899b23327c3d5693c8dabf5b482c3fb5ded8 12-Aug-2014 Dan Albert <danalbert@google.com> Revert "Revert "Remove GCC atomic workarounds.""

This reverts commit 626a2468e4e4f39db7b0f35a4fee87293e360e92.

(cherry picked from commit aab0f86e3b079598d41c3a00bfa765a7589c5110)

Change-Id: I2333b54dcfd5ee8227a6479d2e3814b25377bdfd
untime/atomic.h
f0a37663309e468f11858bffa3221e7223cf577d 12-Aug-2014 Dan Albert <danalbert@google.com> Initialize art::Atomic's value to 0.

art::Mutex and art::ConditionVariable were DCHECKing that the value was
zero on entering the constructor without ever initializing the value.
Since 0 is a sensible default, make it the default for art::Atomic
rather than initializing for each use.

Bug: 16301104

(cherry picked from commit 6a3f8d93ddf09b5f6667820089e488958cba8361)

Change-Id: Iab69bccac9f904111a72eff8162c7f0ca979a08a
untime/atomic.h
61bf6a1c80bf797af5d7911ff71fc367fdb36742 12-Aug-2014 Andreas Gampe <agampe@google.com> ART: Tolerate shallow call stack in VMStack_getCallingClassLoader

When the call stack does not have the three methods we expect,
the visitor will return a nullptr value.

Add a test to JniTest (and refactor the test a little for code reuse).

Bug: 16867274
Change-Id: I5fb8f91f372a41e0bc11ef9f70640834591afa53
untime/native/dalvik_system_VMStack.cc
est/004-JniTest/jni_test.cc
est/004-JniTest/src/Main.java
837150818af0eee993f7d93c5a50c3c7b46f1dab 13-Aug-2014 Mathieu Chartier <mathieuc@google.com> Add allocation rate tracking to systrace.

Bug: 16956980

Change-Id: I7074f4ae0f75d1bb58e9860ded4e17ce6978d74e
untime/gc/heap.cc
b0f05b9654eb005bc8c8e15f615a7f5a312f640c 17-Jul-2014 Dave Allison <dallison@google.com> Add implicit checks for x86_64 architecture.

This combines the x86 and x86_64 fault handlers into one. It also
merges in the change to the entrypoints for X86_64.

Replaces generic instruction length calculator with one that only
works with the specific instructions we use.

Bug: 16256184

Change-Id: I1e8ab5ad43f46060de9597615b423c89a836035c
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
ompiler/dex/quick/x86/target_x86.cc
ex2oat/dex2oat.cc
untime/Android.mk
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/mips/fault_handler_mips.cc
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86_64/fault_handler_x86_64.cc
untime/arch/x86_64/quick_entrypoints_x86_64.S
untime/fault_handler.cc
untime/fault_handler.h
untime/runtime.cc
untime/thread_linux.cc
2e73658964257aaaf54439f43fdd91e34512d7bb 13-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 4527f61cbc1a3b01ab249181900b8ea547edaf90
4527f61cbc1a3b01ab249181900b8ea547edaf90 13-Aug-2014 Andreas Gampe <agampe@google.com> ART: Don't leave rex_ & length_ uninitialized

Don't leave fields uninitialized in the x86-64 utils assembler.

Bug: 16993295

(cherry picked from commit 181211de89df5615395a55114fe551b08e86bc4d)

Change-Id: I2d648991fc2a6a4d5f518eb9ef0bb10857f6318a
ompiler/utils/x86_64/assembler_x86_64.h
13cccfa3ce61a41a176358ff2aa53e60d0acacd5 13-Aug-2014 Sebastien Hertz <shertz@google.com> Merge "Fix crash in VirtualMachine.AllThreads JDWP command" into lmp-dev
1d7785704cafca20629c4bfb87c60d99dd69f72a 14-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix run-test in case of relative TMPDIR" into lmp-dev
f8b9bbb9680fff693d1056d884c96eaf5360d0d6 14-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix run-test in case of relative TMPDIR

Relative paths should be resolved to absolute paths, as we are
chdir-ing in the test.

Bug: 16499668
Change-Id: Ic7db35e21f519ced77c4ac468d8e909bcb40b24d
est/run-test
c739de01b905729b8587003a52a55b62358e979d 13-Aug-2014 Ian Rogers <irogers@google.com> Merge "Avoid use of std::string where we have const char*." into lmp-dev
cb6b0f31ede2275e79e6199ec391147585a37a2a 12-Aug-2014 Ian Rogers <irogers@google.com> Avoid use of std::string where we have const char*.

Removing the ClassHelper caused std::string creation for all calls to
Class::GetDescriptor and a significant performance regression. Make the
std::string an out argument so the caller can maintain it and its life time
while allowing GetDescriptor to return the common const char* case.

Don't generate GC maps when compilation is disabled.

Remove other uses of std::string that are occuring on critical paths.
Use the cheaper SkipClass in CompileMethod in CompilerDriver.
Specialize the utf8 as utf16 comparison code for the common shorter byte
encoding.
Force a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing
code), add some LIKELYs.

x86-64 host 1-thread interpret-only of 57 apks:
Before: 29.539s
After: 23.467s

Regular compile:
Before: 1m35.347s
After: 1m20.056s

Bug: 16853450
Change-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad

Conflicts:
runtime/utils.cc
ompiler/common_compiler_test.cc
ompiler/dex/frontend.cc
ompiler/dex/verification_results.cc
ompiler/dex/verification_results.h
ompiler/driver/compiler_driver.cc
ompiler/driver/compiler_driver.h
ompiler/image_test.cc
ompiler/image_writer.cc
ex2oat/dex2oat.cc
atdump/oatdump.cc
untime/base/mutex-inl.h
untime/class_linker-inl.h
untime/class_linker.cc
untime/class_linker_test.cc
untime/common_throws.cc
untime/debugger.cc
untime/field_helper.cc
untime/gc/heap.cc
untime/interpreter/interpreter_common.cc
untime/interpreter/interpreter_goto_table_impl.cc
untime/interpreter/interpreter_switch_impl.cc
untime/jni_internal.cc
untime/leb128.h
untime/method_helper-inl.h
untime/method_helper.cc
untime/method_helper.h
untime/mirror/art_method-inl.h
untime/mirror/art_method.cc
untime/mirror/art_method.h
untime/mirror/class-inl.h
untime/mirror/class.cc
untime/mirror/class.h
untime/mirror/object_test.cc
untime/native/java_lang_reflect_Array.cc
untime/proxy_test.cc
untime/reflection.cc
untime/utf-inl.h
untime/utf.h
untime/utils.cc
untime/utils.h
untime/verifier/method_verifier.cc
untime/verifier/reg_type.cc
untime/verifier/reg_type_cache.cc
untime/verifier/reg_type_cache.h
0b6952cac86de294fb01898694b6a55f0a162a43 14-Aug-2014 Andreas Gampe <agampe@google.com> Merge "Revert "ART: Fix mac build"" into lmp-dev
350b03bca65f87895275d1ed4bb895d5afeeeff1 14-Aug-2014 Andreas Gampe <agampe@google.com> Revert "ART: Fix mac build"

The underlying CL was reverted.

This reverts commit 564f58305961986591ccb2fff04b9ccdd430a6db.

Change-Id: Ic9fe93a95c4357d0045a430713be7da517f626b5
untime/thread.cc
564f58305961986591ccb2fff04b9ccdd430a6db 14-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix mac build

is_main_thread is unused in the case of a mac.

Bug: 15435566

(cherry picked from commit 7b1bf42dbc765524d54d45a70cb7eb1cccf0c617)

Change-Id: I9848d0156a4903ce73d20b5ce282b61ceb3039ff
untime/thread.cc
c483a73cc2f9d63c1b6bccd1007117cf0d6dcd56 14-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix class-linker handling" into lmp-dev
f8c4ed08832ec5302c9ea8441ec8cb39b87075ab 08-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix wrong command line parameter

Bug: 16843953

(cherry picked from commit c4a7acf505944e7d937f0670b322e12302dd38dc)

Change-Id: Ib59e10a5d97a20ea1a013587645e0eeb204eda8d
untime/parsed_options.cc
4c37afb7b207424ff788ab8d8778ea4e8d4ac324 07-Aug-2014 Calin Juravle <calin@google.com> Get the native bridge library from the framework.

Framework now passes the name of the native bridge to the runtime so
there's no need to do the reading in libart.

Bug: 16843953

(cherry picked from commit 421b6466977d4b1ccd453f23b7b492f219099702)

Change-Id: I9a0a8b8c64949e05c6f90bc846d68f0797640f6d
untime/native_bridge.cc
untime/parsed_options.cc
20ae1d77463d1c3f206eac8d541124b4555464de 17-Jul-2014 Ian Rogers <irogers@google.com> Clean up native bridge

(partially cherry picked from commit
68d8b42ddec39ec0174162d90d4abaa004d1983e)

Change-Id: I85813e97d73b1b331646dd0e880108dfbfe80f69
untime/jni_internal.cc
untime/native_bridge.cc
untime/native_bridge.h
untime/runtime.cc
est/115-native-bridge/nativebridge.cc
b5d1efa0012d31f7c52c0a2e2b70c77c8708c885 14-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix class-linker handling

ResolveMethod did not account correctly for the mutual exclusivity
of direct and static methods. In such a case we threw a NoSuchMethodError,
while the correct behavior is to throw an IncompatibleClassChangeError.

Bug: 16956477
Change-Id: Id014affe0b8a43dbd75570b123b921d5853ab135
untime/class_linker.cc
e470a02792ce584fe0ff1b9a7dd6aebe62ca9be5 14-Aug-2014 Vladimir Marko <vmarko@google.com> Merge "Fix intrinsic Math.abs(double) for ARM." into lmp-dev
397297f92ff3004cfcd623690d98bc49edf8c032 14-Aug-2014 Vladimir Marko <vmarko@google.com> Fix intrinsic Math.abs(double) for ARM.

Bug: 16930909

(cherry picked from commit a5f90b6f0f5b33487e71eaeb05508555f17dcf30)

Change-Id: I3ee40ffbeeabf53c72ea5781d02cda1b92b13289
ompiler/dex/quick/arm/fp_arm.cc
b0bf089c2d80f861e4d8798e97828452b2e0b99b 14-Aug-2014 Dave Allison <dallison@google.com> Merge "Revert "Reduce stack usage for overflow checks"" into lmp-dev
83b1940e6482b9d8feba5c492507735686650ea5 14-Aug-2014 Dave Allison <dallison@google.com> Revert "Reduce stack usage for overflow checks"

This reverts commit 63c051a540e6dfc806f656b88ac3a63e99395429.

Change-Id: I282a048994fcd130fe73842b16c21680053c592f
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/mips/call_mips.cc
ompiler/dex/quick/x86/call_x86.cc
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86_64.cc
ompiler/utils/stack_checks.h
untime/arch/arm/asm_support_arm.h
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/arm64/asm_support_arm64.h
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/arm64/quick_entrypoints_arm64.S
untime/arch/x86/asm_support_x86.h
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/asm_support_x86_64.h
untime/arch/x86_64/quick_entrypoints_x86_64.S
untime/entrypoints/entrypoint_utils.cc
untime/entrypoints/quick/quick_throw_entrypoints.cc
untime/entrypoints_order_test.cc
untime/instruction_set.cc
untime/mirror/art_method.cc
untime/oat.cc
untime/reflection.cc
untime/thread.cc
untime/thread.h
est/004-InterfaceTest/src/Main.java
est/004-SignalTest/signaltest.cc
a73a8b55415b544355438522524a640378698d85 11-Aug-2014 Mathieu Chartier <mathieuc@google.com> Move explicit GC after we are done initalizing all classes.

Previously we had the GC happen for each dex file, this added a
few seconds of time on boot.oat creation.

Bug: 16853450

(cherry picked from commit 093ef212b7db4c17ed62df5cac0c1ac3a24e691d)

Change-Id: Ia469838eff1550c175c3465a478d8081023601bd
ompiler/driver/compiler_driver.cc
0c2a6d76ccedb77e79adc68c723cd4ed8278fee9 14-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix another potential N-th visitor issue" into lmp-dev
ab61295e55c38072095e498053b8f5bebf46ad63 14-Aug-2014 Andreas Gampe <agampe@google.com> ART: Fix another potential N-th visitor issue

Bug: 16867274
Change-Id: I5466af563032041ef4a547894f40f303871302c6
untime/native/dalvik_system_VMStack.cc
est/004-JniTest/jni_test.cc
est/004-JniTest/src/Main.java
aeb5f8142e8ea3f63636334a22b9a8b8a089eeb6 12-Aug-2014 Zheng Xu <zheng.xu@arm.com> AArch64: Fix art_quick_string_compareto.

Though __memcmp16() is implemented in the same module as the caller, it
is still possible that the toolchain would put __memcmp16() into plt. In
that case, IP registers can be trashed when loading the function address.
Use x14/x15 to replace IP0/IP1.

Bug: 16974467

(cherry picked from commit 62ddb328860e907eb76ccd3abed63ba75438fea8)

Change-Id: I40e39d075860bc78624ce6ef8b4f8e33e57fc58c
untime/arch/arm64/quick_entrypoints_arm64.S
5f1dcee2b3cdaf0f745958ff366a84279940c65e 12-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Change FreeMemory and TotalMemory behavior." into lmp-dev
b21f1336be9dd0c2607b2ff53834d62a218d1c83 12-Aug-2014 Jeff Hao <jeffhao@google.com> Make method tracing deoptimize on startup.

Bug: 16848366

(cherry picked from commit bc678bba8ec45dfcb1865676dd6d8188da9e56fc)

Change-Id: Idf75288026a837b95f4619acadec57e38bacbd7b
untime/instrumentation.cc
b225890e02bc8d5864217743eaef306d5387e0e9 07-Aug-2014 Mathieu Chartier <mathieuc@google.com> Change FreeMemory and TotalMemory behavior.

TotalMemory is now equal to the footprint limit (around when the
next GC will occur).
FreeMemory is now equal to TotalMemory() - bytes_allocated_.
Also added more memory dumping info to DumpGcPerformanceInfo.

Bug: 16520008
Bug: 15819878

(cherry picked from commit dd162fb5990cedf80a5093ecc0e77df82af5f754)

Change-Id: I68239a5295cc1372b3995eb781d67b9e25d6eaed
untime/gc/heap.cc
untime/gc/heap.h
a22d115711b5158cfc67b4f260a5b40f3ab303ca 12-Aug-2014 Sebastien Hertz <shertz@google.com> Fix crash in VirtualMachine.AllThreads JDWP command

When collecting all the started threads, we may encounter a thread in the
process of being started from Java code (Thread.start) in the threads list. The
crash occurs when we attempt to access the java.lang.Thread peer (calling
Thread::GetPeer) but the JNI global reference to it (Thread::jpeer) has not
been destroyed yet (which is verified with a check). This only happens when the
thread is starting up.

We now check the thread finished starting up before accessing the Java peer.
This also prevents from returning non-started threads in the reply.

Bug: 16660101

Change-Id: I9e445e5da3a6951143d6c3c9a0d4f136398fde2f
untime/debugger.cc
d74824bdd01b2a76b310e1275a1114d39833a708 12-Aug-2014 Zheng Xu <zheng.xu@arm.com> AArch64: Fix art_quick_string_compareto.

Though __memcmp16() is implemented in the same module as the caller, it
is still possible that the toolchain would put __memcmp16() into plt. In
that case, IP registers can be trashed when loading the function address.
Use x14/x15 to replace IP0/IP1.

Bug: 16974467

(cherry picked from commit 62ddb328860e907eb76ccd3abed63ba75438fea8)

Change-Id: I40e39d075860bc78624ce6ef8b4f8e33e57fc58c
untime/arch/arm64/quick_entrypoints_arm64.S
92d6b0efd05147236dc2eb2e2516bddd523c4465 12-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 8c6c52110c5afd438741694520203a6d7e81a2a4
8c6c52110c5afd438741694520203a6d7e81a2a4 06-Aug-2014 Calin Juravle <calin@google.com> Revert "Rename openDexFileNative to openDexFile."

https://android-review.googlesource.com/#/c/103383/ introduces
absolute paths so we need back the old method name

Bug: 16644204
Bug: 16930747

This reverts commit 350b626eb1cfbaee7619e9453a4c018c07aed003.

(cherry picked from commit a2069c7152eb46e8c64b4c8d7e19e5fab5de6df4)

Change-Id: I55c8cb31bb79b1ed8ea51f63ec504d77f76a582a
untime/native/dalvik_system_DexFile.cc
8ee5073cec71632399d8a9452c4737daaa2b6364 11-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to a0b530dd5e76662156b40c8a84ebb446b6332598
1c98286d8ceaf3715e06f50acd6f3b0aa5a06f2e 11-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Skip compiling redefined classes in apps" into lmp-dev
c8ea15e3e13a6bebe909d1816759aa5614bb1c5e 10-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 6a763f149f0c6f705cab8fb1984aa6f9198b2841
a0b530dd5e76662156b40c8a84ebb446b6332598 10-Aug-2014 Dan Albert <danalbert@google.com> Fix the Mac build.

Apparently Mac uses a different assembler directive for .hidden.

Change-Id: Ic2adb6bef82e376c3e5f4a29258a85a0dac00cd5
untime/arch/x86/asm_support_x86.S
untime/arch/x86/quick_entrypoints_x86.S
6a763f149f0c6f705cab8fb1984aa6f9198b2841 10-Aug-2014 Dan Albert <danalbert@google.com> Proper fix after -Bsymbolic change.

Marking the offending symbols as hidden allows the linker to resolve
them at build time.

Bug: 16853291
Change-Id: I1480c1520c23f81e42831a66737bba7bdf3433c2
untime/Android.mk
untime/arch/arm/quick_entrypoints_arm.S
untime/arch/x86/quick_entrypoints_x86.S
4f2870793d2e00428a84726a305b87c8dfcdc527 09-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 679ec1bf0fb5cfd2c74cdf0747b5b8b8f4a5bc06
0171987facdea1f4e22d0b5880dcde38a816adb1 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Skip compiling redefined classes in apps

If for an app a class is defined in more than one dex file, skip
all classes after the first.

Bug: 16057120

(cherry picked from commit de7b43626c49567cefb258669aac70a289b74b85)

Change-Id: I461942f762354b696c305dcae3a0d1c7de40f9df
ompiler/driver/compiler_driver.cc
ompiler/driver/compiler_driver.h
679ec1bf0fb5cfd2c74cdf0747b5b8b8f4a5bc06 09-Aug-2014 Dan Albert <danalbert@google.com> Merge "Workaround for test failures after Bsymbolic fix." into lmp-dev
55a39dbfae0935a60e0de3a05573b3b1ee25f579 09-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Turn on dex2oat watchdog on target" into lmp-dev
b28a16147f5b3503d9ca9e95ff56bdeb449e17d6 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Turn on dex2oat watchdog on target

Activates the watchdog on device.

Bug: 16364458

(cherry picked from commit bf40ddb83e1ea05ba4bc101149cd79f0160c8996)

Change-Id: I06deafa4436991f07bce44ecc6fd9df333f905ee
ex2oat/dex2oat.cc
8c18c2aaedb171f9b03ec49c94b0e33449dc411b 06-Aug-2014 Andreas Gampe <agampe@google.com> ART: Generate chained compare-and-branch for short switches

Refactor Mir2Lir to generate chained compare-and-branch sequences
for short switches on all architectures.

Bug: 16241558

(cherry picked from commit 48971b3242e5126bcd800cc9c68df64596b43d13)

Change-Id: I0bb3071b8676523e90e0258e9b0e3fd69c1237f4
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/mips/call_mips.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/call_x86.cc
ompiler/dex/quick/x86/codegen_x86.h
est/015-switch/expected.txt
est/015-switch/src/Main.java
9f642e83c176fec52e496be0ae4b0b97fb2905b4 09-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Use TMPDIR for test directories" into lmp-dev
2d48bb7109802c8a7a4580288f3a5bde270f062f 09-Aug-2014 Brian Carlstrom <bdc@google.com> Remove clang detected warning on tautological comparison

Bug: 16903117

(cherry picked from commit c991107a90698012c2b0babc030b8ab85491d1e3)

Change-Id: I94d36d8d26d4090b4c2ad128fde9dab2b1173533
untime/dex_file.cc
2994e29b57ff57ce3d59a26a01e27e674bd6238b 06-Aug-2014 Andreas Gampe <agampe@google.com> ART: Use TMPDIR for test directories

Bug: 16499668

(cherry picked from commit 5a79fdecffbea657ebecd4cf19078925239eb1c3)

Change-Id: I6981f707862bf4a9cc79800db85b0416f30115af
ndroid.mk
untime/common_runtime_test.cc
est/run-test
3a56e4d089b58bcb61e0c5b7c0ebdcc266a89d82 09-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Do not check interface being subclass for member access" into lmp-dev
81db6a7c20aa008c7edbb7377b4bc3a9afe91bb7 09-Aug-2014 Andreas Gampe <agampe@google.com> ART: Do not check interface being subclass for member access

When checking access to a protected member, do not try to see
whether an interface is a subclass of the declaring class.

Bug: 16904661
Change-Id: I3e1fa4ce9753e0a96633fff0fba807d72bc0b19d
untime/mirror/class.h
est/026-access/expected.txt
est/026-access/src/Iface.java
est/026-access/src/Iface2.java
est/026-access/src/Main.java
est/026-access/src/Unrelated.java
f896965072343a2d6ad64d46a61112b10b3645dd 06-Aug-2014 Andreas Gampe <agampe@google.com> ART: Remove test files after test

The unix_file tests should remove files and directories when they
are done testing.

Bug: 16505797

(cherry picked from commit 7747c8de402f64e3009ca3bcccebddbb70f617ee)

Change-Id: I9c3c8f1a80ec0d37628a742193267e182c25b0cd
ompiler/utils/assembler_test.h
untime/base/unix_file/fd_file_test.cc
untime/base/unix_file/mapped_file_test.cc
untime/base/unix_file/random_access_file_test.h
untime/common_runtime_test.cc
untime/common_runtime_test.h
4ef12f5b0e26c6016c87866f6a33da5ed8e98d74 01-Aug-2014 Andreas Gampe <agampe@google.com> ART: Add guards to the dex cache and its shortcuts

Do not return fields, methods or classes if the (declaring) class is
erroneous.

Bug: 16692788

(cherry picked from commit 58a5af8568d224ca7eccf2483396ff9862f8d1ee)

Change-Id: I7d3e4cb8113e2e764ed7433eed25e1031e6a0f14
ompiler/driver/compiler_driver.cc
untime/class_linker-inl.h
untime/class_linker.cc
untime/class_linker_test.cc
untime/entrypoints/entrypoint_utils-inl.h
untime/entrypoints/entrypoint_utils.cc
untime/entrypoints/portable/portable_throw_entrypoints.cc
untime/entrypoints/quick/quick_trampoline_entrypoints.cc
untime/method_helper-inl.h
untime/mirror/art_method-inl.h
untime/mirror/art_method.h
untime/mirror/dex_cache.h
untime/verifier/reg_type_cache.cc
564db521eeccf24e44ce63966573294ca0863c6e 08-Aug-2014 Narayan Kamath <narayan@google.com> Use the right instruction set for checking dex-cache staleness.

We should use the instruction set we're asked to use, and not
the instruction set of the current runtime.

bug: 16876489
Change-Id: Ic2a30b7e7d23192b0189c1f868b73c5f4c7eb8f9
untime/native/dalvik_system_DexFile.cc
6b932180c768d2150386e4e6c8e415d935b25471 07-Aug-2014 Vladimir Marko <vmarko@google.com> Fix performance regression in OatFile::GetOatDexFile().

Try to avoid calculating the canonical location of the
dex file if possible and when we have to calculate it,
cache the lookup result for subsequent lookups.

Bug: 16828525
Bug: 16859671

(cherry picked from commit 3f5838d7d0b9fc63db0ccc35c2ea05ed29264986)

Change-Id: Ifd9a45dada2cc724382fd03c10f6437a6b71e666
untime/base/mutex.h
untime/oat_file.cc
untime/oat_file.h
f70a5f4517c6b8cbf1377b7cfd8d33f1a8abf8d4 08-Aug-2014 Dan Albert <danalbert@google.com> Workaround for test failures after Bsymbolic fix.

Bug: 16853291
Change-Id: I0c2e2efbeb5060d4ec5ba706dab422b3c2caaa96
(cherry picked from commit 3bed41cf3ace3105686f626fed2ac802376852f3)
untime/Android.mk
fa9c8ec37c66574654e448513e1bb59af7cb9365 07-Aug-2014 Zheng Xu <zheng.xu@arm.com> Add arraycopy intrinsic for arm and arm64.

Implement intrinsic for
java.lang.System.arraycopy(char[], int, char[], int, int).

Bug: 16241558

(cherry picked from commit 947717a2b085f36ea007ac64f728e19ff1c8db0b)

Change-Id: I8199f5c9ce9827f869f0f93aaff7ec359a84d922
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/int_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
35388e93f7dc45257bbffc675710728aeb663394 06-Aug-2014 Christopher Ferris <cferris@google.com> Check for a NULL pointer, do not call Build.

When calling BacktraceMap::Create(), a NULL pointer is returned if Build
fails. Building twice can cause problems and might leak memory.

(cherry picked from commit 836572a07142627ff291d686a4e9e03a0988344b)

Change-Id: I59d29bb6e5324de6eb099916045c2ab1d9e56630
untime/mem_map.cc
7204c04dd86ae8ce05690e38737b2abf017a0a69 11-Jun-2014 Stuart Monteith <stuart.monteith@arm.com> AArch64: Implicit StackOverflow/NPE/Suspend checks.

This implements implicit stack overflow checks and null pointer exceptions
for AArch64. Suspend checks are implemented but not switched on yet.

Bug: 16256184
Change-Id: I2eb076f2c0c9d94793d5a898fea49cf409b4eb66
Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>
ompiler/dex/quick/arm64/call_arm64.cc
ex2oat/dex2oat.cc
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/arm64/quick_entrypoints_arm64.S
untime/runtime.cc
a7894cdb063edb88f1420a42207e0c4bd27ab4f9 06-Aug-2014 Dave Allison <dallison@google.com> Fix checks for kLiteral in local optimizations.

The check for kLiteral (literal load) just checked the kLiteral
bit in the def mask. The kEncodeAll mask has the kLiteral bit
set so this check was triggering. The fix is to check for
only the kLiteral bit being set and no other special bits.

The semantics of the special bits in the use/def mask is that
only one of them can be set at the same time.

Bug: 16824330

Change-Id: I0f1c1157e017870414ffef11767e5433d1fd4401
ompiler/dex/quick/local_optimizations.cc
47ba978e95896c932300fb3236ce5eb4b438d971 08-Aug-2014 Hiroshi Yamauchi <yamauchi@google.com> Merge "Fix a SIGSEGV at background-to-foreground collector transition." into lmp-dev
f0d30ed8fcffc839ceb91359a547c0efb7641d53 07-Aug-2014 Andreas Gampe <agampe@google.com> ART: Make assembler_test less chatty

Do not save temporaries in case we use a different encoding than
the host assembler.

Bug: 16505797

(cherry picked from commit 54e15de4a3ea869488d50694fa01138901e70c4e)

Change-Id: I9508d9b09d930db70587a69c04bb3c8950339d79
ompiler/utils/assembler_test.h
e0d6421cdb42508f4d36f28cc9eddc31271bb37a 07-Aug-2014 Hiroshi Yamauchi <yamauchi@google.com> Fix a SIGSEGV at background-to-foreground collector transition.

The mem map that's used to create the backup main rosalloc space is
set to PROT_NONE by the compaction and the rosalloc space creation
attempts to write the debug magic number in the first page.

This is a debug build only issue.

Cherry pick commit c1276c838d1d0896048b8c14458432b94274e869.

Bug: 16854263
Change-Id: Ide2545d92bcafd3a095ac7f0c89c5b43d6dd78de
untime/gc/heap.cc
31fa14fdbbccfcd9b50bc6db6aae6168b4fc2249 08-Aug-2014 Narayan Kamath <narayan@google.com> Merge "Use the right instruction set for checking dex-cache staleness." into lmp-dev
24e928bddaf8b4af6cdf6d64a7c35bfde059995c 08-Aug-2014 Narayan Kamath <narayan@google.com> Use the right instruction set for checking dex-cache staleness.

We should use the instruction set we're asked to use, and not
the instruction set of the current runtime.

bug: 16876489
Change-Id: Ic2a30b7e7d23192b0189c1f868b73c5f4c7eb8f9
untime/native/dalvik_system_DexFile.cc
4bb932773e47b1ce04602d81ffa5a8a7d863eb10 07-Aug-2014 Vladimir Marko <vmarko@google.com> Fix performance regression in OatFile::GetOatDexFile().

Try to avoid calculating the canonical location of the
dex file if possible and when we have to calculate it,
cache the lookup result for subsequent lookups.

Bug: 16828525
Bug: 16859671

(cherry picked from commit 3f5838d7d0b9fc63db0ccc35c2ea05ed29264986)

Change-Id: Ifd9a45dada2cc724382fd03c10f6437a6b71e666
untime/base/mutex.h
untime/oat_file.cc
untime/oat_file.h
aa9d1c19e510a828ccaeb6c3d5a024614c0ea0c4 07-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 1e6554c0479b7548da18e511a7ac39dd1c6db1b7
1e6554c0479b7548da18e511a7ac39dd1c6db1b7 06-Aug-2014 Brian Carlstrom <bdc@google.com> Reset goog/lmp-dev to goog/master

Change-Id: If30071b5f86bfe723abf799c9248397e8840a8a0
17a199022d1f4f329fa9979a0025b6658a04219f 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> am 56a49adb: am 860feb0a: Merge "Add card table test."

* commit '56a49adb43fa1c8c8485f7ce07286d3b3829ee7d':
Add card table test.
56a49adb43fa1c8c8485f7ce07286d3b3829ee7d 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> am 860feb0a: Merge "Add card table test."

* commit '860feb0a60d0fe9311f28bd590058f6660d130b1':
Add card table test.
b25911f574db6c0d5cfa697340e19789dbf88c29 06-Aug-2014 Brian Carlstrom <bdc@google.com> am 82ec2f07: am 484e2c2d: Merge "Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.""

* commit '82ec2f0790eb59a7ed71490d503a9b7cdef25ce4':
Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."
d1d20f439add20f65fb715cc4e95acb03691aa70 06-Aug-2014 Jeff Hao <jeffhao@google.com> am c75dc324: am 38449637: Merge "When performing a long jump, update SP last."

* commit 'c75dc3242ab3d1a1d8684b049b6299a4b2ca57cf':
When performing a long jump, update SP last.
45bb505981a960389f63198e0f5093b9c501d788 06-Aug-2014 Jeff Hao <jeffhao@google.com> am dc6414fe: am cd0d9b5a: Merge "When performing a long jump, update SP last." into lmp-dev

* commit 'dc6414fe6b56f2854dacbaac82c2b0b4b57d1e6f':
When performing a long jump, update SP last.
994a9eebf3be47495a150e9207e81d37ab3e1187 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> am da113966: am 1d5c4953: Merge "Fix SIB for base + index addressing in x86_64 assembler."

* commit 'da113966c3a06facd1073e71436c12a4d470f12b':
Fix SIB for base + index addressing in x86_64 assembler.
45a394e73d71edfb81a9df1ab6fa613e69624dca 06-Aug-2014 Andreas Gampe <agampe@google.com> am a84690e3: am 0a1143de: Merge "Add x86_64 optimized __memcmp16 implementation; fix tabs in 32-bit implementation."

* commit 'a84690e3b0607f286e4680350b98d54e208fa614':
Add x86_64 optimized __memcmp16 implementation; fix tabs in 32-bit implementation.
3477d28126fb6c6bd98544d6d249f27c7c988130 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> am 0b8c1530: am a1227a18: Fix byte_cas to use uintptr_t Atomic.

* commit '0b8c153082caf6a970e238c9ac34ce0601947dd2':
Fix byte_cas to use uintptr_t Atomic.
a0732174679239ff2dc34b33493f3cf71ce666ae 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> am 5ce0921f: am 4853f940: Merge "Fix byte_cas to use uintptr_t Atomic."

* commit '5ce0921fbaf6a8eead373a253fc8813cde54770a':
Fix byte_cas to use uintptr_t Atomic.
04ca04851477ae18485462860eb408698c51d35b 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> am 1d874ca3: am ae5092fc: Merge "Fix movw in x86_64 assembler."

* commit '1d874ca361749a062f9a8861425873f46242b98c':
Fix movw in x86_64 assembler.
dc2af636bf8ca01d540d5b6e4ff04b278ac2c727 06-Aug-2014 Ian Rogers <irogers@google.com> am c598f8f8: am 4b6d27c2: Merge "x86: Fix assembler for Pextr"

* commit 'c598f8f88ca70283472434fcfc0ab5af8ddb30f1':
x86: Fix assembler for Pextr
0d96407690e74bdbc7eda80194b028ffafcf210d 06-Aug-2014 Ian Rogers <irogers@google.com> am 1622baf3: am cbb5747b: Merge "ART: Fix lock max count definition"

* commit '1622baf30c9ef3897fd80d8d4fb0860511608573':
ART: Fix lock max count definition
82ec2f0790eb59a7ed71490d503a9b7cdef25ce4 06-Aug-2014 Brian Carlstrom <bdc@google.com> am 484e2c2d: Merge "Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.""

* commit '484e2c2d3531e5bb36f0e1e12f26c708939c6579':
Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."
c75dc3242ab3d1a1d8684b049b6299a4b2ca57cf 06-Aug-2014 Jeff Hao <jeffhao@google.com> am 38449637: Merge "When performing a long jump, update SP last."

* commit '38449637b1ee8209e2eb81b3f27f40bb9ab3934f':
When performing a long jump, update SP last.
dc6414fe6b56f2854dacbaac82c2b0b4b57d1e6f 06-Aug-2014 Jeff Hao <jeffhao@google.com> am cd0d9b5a: Merge "When performing a long jump, update SP last." into lmp-dev

* commit 'cd0d9b5aaec7125dd62775d9f970151a1e0eab90':
When performing a long jump, update SP last.
da113966c3a06facd1073e71436c12a4d470f12b 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> am 1d5c4953: Merge "Fix SIB for base + index addressing in x86_64 assembler."

* commit '1d5c4953fa8cfa5c7276ab1a2d2c12c1baacbf08':
Fix SIB for base + index addressing in x86_64 assembler.
a84690e3b0607f286e4680350b98d54e208fa614 06-Aug-2014 Andreas Gampe <agampe@google.com> am 0a1143de: Merge "Add x86_64 optimized __memcmp16 implementation; fix tabs in 32-bit implementation."

* commit '0a1143de1414abc73634f2ff8941cdd6acd5e9a8':
Add x86_64 optimized __memcmp16 implementation; fix tabs in 32-bit implementation.
c9ed2c906d78d82e89234b3f196857c6415503e2 06-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to a1227a185a5d6e2af83c532379b2f9b4600f6e16
126ca6c41f63ca65e994a0ba5418ae7fd4fd1c22 06-Aug-2014 Ian Rogers <irogers@google.com> am c276c14f: am f768db4c: Merge "X86: Assembler: Correct r8_form for some cases"

* commit 'c276c14f16c6dde063311631bcb0e9096d822aeb':
X86: Assembler: Correct r8_form for some cases
2b2defaff0f52cc2aedb7092776477c3195bfb1b 06-Aug-2014 Ian Rogers <irogers@google.com> am b74629b7: am f6e8d030: Merge "x86_64: Load double constant using core register"

* commit 'b74629b7136a7ca8eec19215847ba808b01d2648':
x86_64: Load double constant using core register
d7d0c53d7abd2720efa65a40212af1bf99837e00 06-Aug-2014 Brian Carlstrom <bdc@google.com> am 277c6bb7: am 6175442a: Merge changes Ibe92d8b5,I9bada598

* commit '277c6bb72a0899dd7c4462bcd8a67fcdeab90650':
Make system use patchoat to relocate during runtime.
Temporary fix for bad LIR generation in GenInlinedGet.
345c4b19758703793ed31024cfb79940e2c63b75 18-Jul-2014 Alex Light <allight@google.com> Make system use patchoat to relocate during runtime.

Change dalvik_system_DexFile.cc so that isDexOptNeededInternal will be
able to indicate that a patchoat is required. Change default of relocate
option to be on.

Bug: 15358152

(cherry picked from commit 6e183f2e973a20f2eaca135c240908e1bf98c5d0)

Change-Id: Ib21f4f41b6cbf18094e3ca1a30d65a3b197b71b0
ndroid.mk
ompiler/driver/compiler_driver.cc
ompiler/elf_patcher.cc
ompiler/image_test.cc
untime/class_linker.cc
untime/class_linker.h
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/globals.h
untime/native/dalvik_system_DexFile.cc
untime/parsed_options.h
untime/utils.cc
untime/utils_test.cc
cd0d9b5aaec7125dd62775d9f970151a1e0eab90 06-Aug-2014 Jeff Hao <jeffhao@google.com> Merge "When performing a long jump, update SP last." into lmp-dev
76a0723959c2185ace249e705774af9a679a0e0d 06-Aug-2014 Jeff Hao <jeffhao@google.com> When performing a long jump, update SP last.

Bug: 16571371
Change-Id: I719d9880a64e277330a2da698d5f6f7d320014d0
untime/arch/arm/quick_entrypoints_arm.S
eaec11c954383665c9305a7b2eac240566630d88 06-Aug-2014 Ian Rogers <irogers@google.com> am e94cddb6: am a7975e0d: Merge "ART: Enable x86_64 bit support for intrinsic for System.arraycopy(char[], ..)"

* commit 'e94cddb6c748511f068dc9ea9afeab9b54b132db':
ART: Enable x86_64 bit support for intrinsic for System.arraycopy(char[], ..)
0b8c153082caf6a970e238c9ac34ce0601947dd2 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> am a1227a18: Fix byte_cas to use uintptr_t Atomic.

* commit 'a1227a185a5d6e2af83c532379b2f9b4600f6e16':
Fix byte_cas to use uintptr_t Atomic.
5ce0921fbaf6a8eead373a253fc8813cde54770a 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> am 4853f940: Merge "Fix byte_cas to use uintptr_t Atomic."

* commit '4853f940efe0aaccf83a4af55a8dd640d8ef7274':
Fix byte_cas to use uintptr_t Atomic.
a1227a185a5d6e2af83c532379b2f9b4600f6e16 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix byte_cas to use uintptr_t Atomic.

Previously we used int32_t Atomic with a uintptr_t bit shift.
This was a mismatch on 64 bit and resulted in occasionally
having the cas return without having succeeded.

Bug: 16819816

(cherry picked from commit aa3c3e5ee83c061e7f387c75b1b29c9f248ac39c)

Change-Id: Ib97bf5880153ddfacf52409be3e9e821657bac59
untime/gc/accounting/card_table-inl.h
1d874ca361749a062f9a8861425873f46242b98c 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> am ae5092fc: Merge "Fix movw in x86_64 assembler."

* commit 'ae5092fcaf2175df9f8c7cf7f5542b31e829ac72':
Fix movw in x86_64 assembler.
c598f8f88ca70283472434fcfc0ab5af8ddb30f1 06-Aug-2014 Ian Rogers <irogers@google.com> am 4b6d27c2: Merge "x86: Fix assembler for Pextr"

* commit '4b6d27c2079e246cdeb56dca6648539a16493dca':
x86: Fix assembler for Pextr
1622baf30c9ef3897fd80d8d4fb0860511608573 05-Aug-2014 Ian Rogers <irogers@google.com> am cbb5747b: Merge "ART: Fix lock max count definition"

* commit 'cbb5747ba911d12cfe8fd97d96441c7e40ab193e':
ART: Fix lock max count definition
c276c14f16c6dde063311631bcb0e9096d822aeb 05-Aug-2014 Ian Rogers <irogers@google.com> am f768db4c: Merge "X86: Assembler: Correct r8_form for some cases"

* commit 'f768db4c1cb7ec9374e203305cf3582f32147302':
X86: Assembler: Correct r8_form for some cases
b74629b7136a7ca8eec19215847ba808b01d2648 05-Aug-2014 Ian Rogers <irogers@google.com> am f6e8d030: Merge "x86_64: Load double constant using core register"

* commit 'f6e8d0304d0b0024f1af8e63c2a3a3ad78761d59':
x86_64: Load double constant using core register
277c6bb72a0899dd7c4462bcd8a67fcdeab90650 05-Aug-2014 Brian Carlstrom <bdc@google.com> am 6175442a: Merge changes Ibe92d8b5,I9bada598

* commit '6175442a246cded6a9caae4658a0a1dc7cf49071':
Make system use patchoat to relocate during runtime.
Temporary fix for bad LIR generation in GenInlinedGet.
e94cddb6c748511f068dc9ea9afeab9b54b132db 05-Aug-2014 Ian Rogers <irogers@google.com> am a7975e0d: Merge "ART: Enable x86_64 bit support for intrinsic for System.arraycopy(char[], ..)"

* commit 'a7975e0db7ce521b60ac5d4861a69bc76b7fbddc':
ART: Enable x86_64 bit support for intrinsic for System.arraycopy(char[], ..)
4853f940efe0aaccf83a4af55a8dd640d8ef7274 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix byte_cas to use uintptr_t Atomic."
aa3c3e5ee83c061e7f387c75b1b29c9f248ac39c 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> Fix byte_cas to use uintptr_t Atomic.

Previously we used int32_t Atomic with a uintptr_t bit shift.
This was a mismatch on 64 bit and resulted in occasionally
having the cas return without having succeeded.

Bug: 16819816

Change-Id: I10fa9c2f09ae8fe0997a4c9293fa123c6bde5920
untime/gc/accounting/card_table-inl.h
ae5092fcaf2175df9f8c7cf7f5542b31e829ac72 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Fix movw in x86_64 assembler."
e4ded41ae2648973d5fed8c6bafaebf917ea7d17 05-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> Fix movw in x86_64 assembler.

Change-Id: Ibceb03fd57adea09643aa77a9399be196fa14709
ompiler/utils/x86_64/assembler_x86_64.cc
ompiler/utils/x86_64/assembler_x86_64_test.cc
9693b1bea2e27be274b65f2a7cf6dbddf9c511aa 05-Aug-2014 Ian Rogers <irogers@google.com> am 29c1a6d5: am 35d9a38d: Merge "Set REG0_USED on X86 Set8R instruction"

* commit '29c1a6d596ad5a8ed3ac9b21e1a0a5a62d6f6626':
Set REG0_USED on X86 Set8R instruction
29c1a6d596ad5a8ed3ac9b21e1a0a5a62d6f6626 05-Aug-2014 Ian Rogers <irogers@google.com> am 35d9a38d: Merge "Set REG0_USED on X86 Set8R instruction"

* commit '35d9a38d14fe8528310dced6d6a41f112ad95fcd':
Set REG0_USED on X86 Set8R instruction
1319509287f00de11968fbaf521d11e09035977e 05-Aug-2014 Calin Juravle <calin@google.com> am 420d6990: am 09f60a9f: Merge "Use canonical paths when searching for dex files" into lmp-dev

* commit '420d6990cf9a31113b5ae5397e10a657fba9e42c':
Use canonical paths when searching for dex files
420d6990cf9a31113b5ae5397e10a657fba9e42c 05-Aug-2014 Calin Juravle <calin@google.com> am 09f60a9f: Merge "Use canonical paths when searching for dex files" into lmp-dev

* commit '09f60a9f53e6a87d5be84388f7fbf9a091fe0345':
Use canonical paths when searching for dex files
2f8a1551b3a45061d74b15ddd0d3530ca43f4b2b 05-Aug-2014 Brian Carlstrom <bdc@google.com> am f6735280: resolved conflicts for merge of ac304133 to lmp-dev-plus-aosp

* commit 'f6735280cdb627985ec10a10391211aba7a67a57':
ART: Fix memory unmapped twice issue in ElfFile::Load(bool)
f6735280cdb627985ec10a10391211aba7a67a57 05-Aug-2014 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of ac304133 to lmp-dev-plus-aosp

Change-Id: I6886aa3f4066eead9242eb77042d89c4ee28da1b
6f0ddc443f65cff3bd7de3f2aa0f34326f3272b7 05-Aug-2014 Ian Rogers <irogers@google.com> am d77c40a8: am 6bdbec76: Merge "ART: Correct disassembling of 64bit immediates on x86_64"

* commit 'd77c40a890bd1b30b0da64f4e240d9ea2dbc7040':
ART: Correct disassembling of 64bit immediates on x86_64
5f0bc81633ed1bc4d24a1a9ba1ddfd52fdc68571 05-Aug-2014 Ian Rogers <irogers@google.com> am 2fb8b8b9: am 4d3401e8: Merge "x86_64: Fix Test32RM"

* commit '2fb8b8b9abc001ab840c0327dd30e39291901fbc':
x86_64: Fix Test32RM
d77c40a890bd1b30b0da64f4e240d9ea2dbc7040 05-Aug-2014 Ian Rogers <irogers@google.com> am 6bdbec76: Merge "ART: Correct disassembling of 64bit immediates on x86_64"

* commit '6bdbec76e16494e68632bab45f655e13aac477b8':
ART: Correct disassembling of 64bit immediates on x86_64
2fb8b8b9abc001ab840c0327dd30e39291901fbc 05-Aug-2014 Ian Rogers <irogers@google.com> am 4d3401e8: Merge "x86_64: Fix Test32RM"

* commit '4d3401e8e3c45203707431494739cb0a7181972b':
x86_64: Fix Test32RM
8067802ec334edc523df4192e8fb36b52e55aa52 05-Aug-2014 Calin Juravle <calin@google.com> am 3c1a3200: am 32155e0a: Merge "Use canonical paths when searching for dex files"

* commit '3c1a32000553b919803c8c125fcd5533d2cf99ae':
Use canonical paths when searching for dex files
3c31fc9b70b1b93f557d1bc3e90e1cb1ab546bb4 05-Aug-2014 Vladimir Marko <vmarko@google.com> am 582d9367: am 3513cd30: Merge "Create allocator adapter for using Arena in std containers."

* commit '582d936772cc167d9337c98cf193f59f62d9079a':
Create allocator adapter for using Arena in std containers.
f959c6a77dabf747e1bcbc75d071d8a06ae4ac82 05-Aug-2014 Brian Carlstrom <bdc@google.com> am e339cbfe: am 8f1dc7a2: Merge "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)"

* commit 'e339cbfe36ea45dbecd9428ade7697dbda9acdf3':
ART: Fix memory unmapped twice issue in ElfFile::Load(bool)
3c1a32000553b919803c8c125fcd5533d2cf99ae 05-Aug-2014 Calin Juravle <calin@google.com> am 32155e0a: Merge "Use canonical paths when searching for dex files"

* commit '32155e0a3373b7ce6e490fceb40ca24074dbcbb5':
Use canonical paths when searching for dex files
582d936772cc167d9337c98cf193f59f62d9079a 05-Aug-2014 Vladimir Marko <vmarko@google.com> am 3513cd30: Merge "Create allocator adapter for using Arena in std containers."

* commit '3513cd30ee8e710d58a289a52104e0eb6be9e277':
Create allocator adapter for using Arena in std containers.
e339cbfe36ea45dbecd9428ade7697dbda9acdf3 05-Aug-2014 Brian Carlstrom <bdc@google.com> am 8f1dc7a2: Merge "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)"

* commit '8f1dc7a20049ba6e2f3c7f800908bff811cdbea1':
ART: Fix memory unmapped twice issue in ElfFile::Load(bool)
44b44797bd92bac43fe8a59ce99431235d6939cf 05-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 09f60a9f53e6a87d5be84388f7fbf9a091fe0345
ac304133ab4b988777bcc5ad12257cbb99c3871e 28-Apr-2014 Jim_Guo <jim_guo@htc.com> ART: Fix memory unmapped twice issue in ElfFile::Load(bool)

Root Cause:
The overlapped memory region will be unmapped by
(1) ~MemMap() of reservation MemMap (reserve) and
(2) ~MemMap() of "reuse" MemMap (segment).
Someone takes the memory region after (1) and it will be unmapped in (2).
So, SIGSEGV occurs when using the unmapped memory region.

Solution:
Fixes this issue by skip unmap "reuse" MemMap in destructor.
And always create reservation MemMap before "reuse" MemMap. (It also solved
the fixupELF case which does not reserve the whole needed memory region).

Bug: 16486685

(cherry picked from commit a62a588a9202f69e53fbeb3045ea8ea5ec2587f8)

Change-Id: Icb83c8e87fa168027d9d8adb34925000399d3d2a
untime/elf_file.cc
untime/mem_map.cc
untime/mem_map.h
00949be420e7d4f79703176cd78a1cebbe429770 05-Aug-2014 Christopher Ferris <cferris@google.com> am 940cb994: am b5c5646b: Merge "Use the uncached form of BacktraceMap::Create."

* commit '940cb994fa06b7c6d1226c2d3744817d615185e9':
Use the uncached form of BacktraceMap::Create.
940cb994fa06b7c6d1226c2d3744817d615185e9 05-Aug-2014 Christopher Ferris <cferris@google.com> am b5c5646b: Merge "Use the uncached form of BacktraceMap::Create."

* commit 'b5c5646b5ffd3d451af5e8d52b50743bf61d4c40':
Use the uncached form of BacktraceMap::Create.
aa6dc8fb6780d308e1cd7a50518d6078355e3b8e 05-Aug-2014 Christopher Ferris <cferris@google.com> am f0bddada: am 27a10f61: Use the uncached form of BacktraceMap::Create.

* commit 'f0bddada64f2cc2bb6fbd8f3cc3049b3a00575bd':
Use the uncached form of BacktraceMap::Create.
f0bddada64f2cc2bb6fbd8f3cc3049b3a00575bd 05-Aug-2014 Christopher Ferris <cferris@google.com> am 27a10f61: Use the uncached form of BacktraceMap::Create.

* commit '27a10f618357cf85cc0677a04f0a5a3a8a437aed':
Use the uncached form of BacktraceMap::Create.
d3e97261f045fba03f3295765bd9b43857c53451 05-Aug-2014 Andreas Gampe <agampe@google.com> am 154c3c93: am c52361cf: Merge "ART: Refactor long ops in quick compiler"

* commit '154c3c9308ee8342355862d377b7d1c6864dda66':
ART: Refactor long ops in quick compiler
154c3c9308ee8342355862d377b7d1c6864dda66 05-Aug-2014 Andreas Gampe <agampe@google.com> am c52361cf: Merge "ART: Refactor long ops in quick compiler"

* commit 'c52361cfaae8be2fbaa25b175d4f6c37d4110764':
ART: Refactor long ops in quick compiler
6bdbec76e16494e68632bab45f655e13aac477b8 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "ART: Correct disassembling of 64bit immediates on x86_64"
4d3401e8e3c45203707431494739cb0a7181972b 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "x86_64: Fix Test32RM"
cf8184164650d7686b9f685850463f5976bc3251 24-Jul-2014 Chao-ying Fu <chao-ying.fu@intel.com> x86_64: Fix Test32RM

This patch fixes Test32RM use flags and the format.

Change-Id: I486cb7f27e65caeefccbd3bbcc38257ddca033c8
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
ompiler/dex/quick/x86/assemble_x86.cc
c52361cfaae8be2fbaa25b175d4f6c37d4110764 05-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Refactor long ops in quick compiler"
c76c614d681d187d815760eb909e5faf488a3c35 05-Aug-2014 Andreas Gampe <agampe@google.com> ART: Refactor long ops in quick compiler

Make GenArithOpLong virtual. Let the implementation in gen_common be
very basic, without instruction-set checks, and meant as a fall-back.
Backends should implement and dispatch to code for better implementations.
This allows to remove the GenXXXLong virtual methods from Mir2Lir, and
clean up the backends (especially removing some LOG(FATAL) implementations).

Change-Id: I6366443c0c325c1999582d281608b4fa229343cf
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/int_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mips/int_mips.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
860feb0a60d0fe9311f28bd590058f6660d130b1 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add card table test."
2c26501d24d929abe096ecce44f91410290b33c0 06-Aug-2014 Mathieu Chartier <mathieuc@google.com> Add card table test.

Tests some of the functionality supported by the card table.

Removed some logcat spam from monitor_pool.

Change-Id: I1423816a72572f78aca44552effa2b4c6aac46c8
uild/Android.gtest.mk
untime/gc/accounting/card_table.cc
untime/gc/accounting/card_table.h
untime/gc/accounting/card_table_test.cc
untime/monitor_pool.cc
4b6d27c2079e246cdeb56dca6648539a16493dca 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "x86: Fix assembler for Pextr"
32155e0a3373b7ce6e490fceb40ca24074dbcbb5 05-Aug-2014 Calin Juravle <calin@google.com> Merge "Use canonical paths when searching for dex files"
3513cd30ee8e710d58a289a52104e0eb6be9e277 05-Aug-2014 Vladimir Marko <vmarko@google.com> Merge "Create allocator adapter for using Arena in std containers."
8081d2b8d7a743729557051d0294e040e61c747a 31-Jul-2014 Vladimir Marko <vmarko@google.com> Create allocator adapter for using Arena in std containers.

Create ArenaAllocatorAdapter, similar to the existing
ScopedArenaAllocatorAdapter, for allocating memory for
standard containers via the ArenaAllocator. Add the ability
to specify allocation kind rather than just kArenaAllocSTL
to both adapters. Move the scoped arena allocator to the
scoped_arena_containers.h header file.

Define template aliases for containers using the new adapter
and change a few MIRGraph and Mir2Lir members to use them.

Change-Id: I9bbc50248e0fed81729497b848cb29bf68444268
ompiler/dex/mir_graph.cc
ompiler/dex/mir_graph.h
ompiler/dex/quick/codegen_util.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/utils/arena_allocator.h
ompiler/utils/arena_containers.h
ompiler/utils/scoped_arena_allocator.h
ompiler/utils/scoped_arena_containers.h
484e2c2d3531e5bb36f0e1e12f26c708939c6579 06-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.""
3d4e684d05a43bb7ae182112b58bd8322fd64b2b 29-Jul-2014 Brian Carlstrom <bdc@google.com> Revert "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."

This reverts commit b1efe9746724f28773d185c7137c16ca8207ed47.

Change-Id: I5af2fae2c7b72e6ded72f00d3f7d4f306f6703ee
ndroid.mk
uild/Android.oat.mk
b5c5646b5ffd3d451af5e8d52b50743bf61d4c40 05-Aug-2014 Christopher Ferris <cferris@google.com> Merge "Use the uncached form of BacktraceMap::Create."
422f4733ce76eda8f4ebb5a3dce5c0a5a2264886 05-Aug-2014 Christopher Ferris <cferris@google.com> Use the uncached form of BacktraceMap::Create.

The code assumes that calling BacktraceMap::Create creates a map based
on the current state of the maps. This is not true by default, so
call the Create function indicating we want an uncached BacktraceMap object.

(cherry picked from 27a10f618357cf85cc0677a04f0a5a3a8a437aed)

Change-Id: Ic7a2dedaea9950174b24ede4dcda30ffe036fe93
untime/mem_map.cc
1d5c4953fa8cfa5c7276ab1a2d2c12c1baacbf08 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Fix SIB for base + index addressing in x86_64 assembler."
30687af6830f1d09aa510d864557528038b33284 06-Aug-2014 Nicolas Geoffray <ngeoffray@google.com> Fix SIB for base + index addressing in x86_64 assembler.

Change-Id: Ib630bc28e6d694ffbe4a4a71cc988e36d00f6633
ompiler/utils/x86_64/assembler_x86_64.h
ompiler/utils/x86_64/assembler_x86_64_test.cc
6175442a246cded6a9caae4658a0a1dc7cf49071 05-Aug-2014 Brian Carlstrom <bdc@google.com> Merge changes Ibe92d8b5,I9bada598

* changes:
Make system use patchoat to relocate during runtime.
Temporary fix for bad LIR generation in GenInlinedGet.
6e183f2e973a20f2eaca135c240908e1bf98c5d0 18-Jul-2014 Alex Light <allight@google.com> Make system use patchoat to relocate during runtime.

Change dalvik_system_DexFile.cc so that isDexOptNeededInternal will be
able to indicate that a patchoat is required. Change default of relocate
option to be on.

Bug: 15358152

Change-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26
ndroid.mk
ompiler/driver/compiler_driver.cc
ompiler/elf_patcher.cc
ompiler/image_test.cc
untime/class_linker.cc
untime/class_linker.h
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/globals.h
untime/native/dalvik_system_DexFile.cc
untime/parsed_options.h
untime/utils.cc
untime/utils_test.cc
eb76e11d836ea953b4e40a28e3e69d3b0f4c86fa 30-Jul-2014 Alex Light <allight@google.com> Temporary fix for bad LIR generation in GenInlinedGet.

In GenInlinedGet we will sometimes try to load a class directly. If
we are doing that and find one, but cannot get the direct pointer
(due to image compilation or including patch information) we might
end up generating incorrect patching code due to the changing of the
cu_->dex_file attribute.

Bug: 16656190
Change-Id: I9bada598bf4fd972d6164163eedd4a496da306d6
ompiler/dex/quick/gen_invoke.cc
cbb5747ba911d12cfe8fd97d96441c7e40ab193e 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "ART: Fix lock max count definition"
f768db4c1cb7ec9374e203305cf3582f32147302 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "X86: Assembler: Correct r8_form for some cases"
a7975e0db7ce521b60ac5d4861a69bc76b7fbddc 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "ART: Enable x86_64 bit support for intrinsic for System.arraycopy(char[], ..)"
5a5e85693b1d5952d88377be5826068b67b0dcec 18-Jul-2014 DaniilSokolov <daniil.y.sokolov@intel.com> ART: Enable x86_64 bit support for intrinsic for System.arraycopy(char[], ..)

Implements x86_64 support for intrinsic for java.lang.System.arraycopy(char[], int, char[], int, int).

With this fix the intrinsic works on x86 and x86_64 architectures.

Change-Id: Icc2889ccd0cf7d821522abb7437893e3149e7c99
Signed-off-by: Daniil Sokolov <daniil.y.sokolov@intel.com>
ompiler/dex/quick/x86/target_x86.cc
09f60a9f53e6a87d5be84388f7fbf9a091fe0345 05-Aug-2014 Calin Juravle <calin@google.com> Merge "Use canonical paths when searching for dex files" into lmp-dev
27a10f618357cf85cc0677a04f0a5a3a8a437aed 05-Aug-2014 Christopher Ferris <cferris@google.com> Use the uncached form of BacktraceMap::Create.

The code assumes that calling BacktraceMap::Create creates a map based
on the current state of the maps. This is not true by default, so
call the Create function indicating we want an uncached BacktraceMap object.

Change-Id: I2c35149ba43db29ef0a9411fa5d9267d7c4dcbb3
untime/mem_map.cc
38449637b1ee8209e2eb81b3f27f40bb9ab3934f 06-Aug-2014 Jeff Hao <jeffhao@google.com> Merge "When performing a long jump, update SP last."
467f816c3c4483fb7766db3fc50e2fff10a92554 06-Aug-2014 Jeff Hao <jeffhao@google.com> When performing a long jump, update SP last.

Bug: 16571371

(cherry picked from commit 76a0723959c2185ace249e705774af9a679a0e0d)

Change-Id: Ib3a7bcda8aecdf7e92ea40a76de32aed83a42ee0
untime/arch/arm/quick_entrypoints_arm.S
0a1143de1414abc73634f2ff8941cdd6acd5e9a8 06-Aug-2014 Andreas Gampe <agampe@google.com> Merge "Add x86_64 optimized __memcmp16 implementation; fix tabs in 32-bit implementation."
2a0bffd2ae4725a89b400279a2d58f07ff610685 30-Jul-2014 Varvara Rainchik <varvara.rainchik@intel.com> Add x86_64 optimized __memcmp16 implementation;
fix tabs in 32-bit implementation.

Change-Id: I7bbfb344074aed66511c1a845998dc38798116ea
Signed-off-by: Varvara Rainchik <varvara.rainchik@intel.com>
untime/Android.mk
untime/arch/memcmp16.h
untime/arch/x86/memcmp16_x86.S
untime/arch/x86_64/memcmp16_x86_64.S
f6e8d0304d0b0024f1af8e63c2a3a3ad78761d59 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "x86_64: Load double constant using core register"
0e63ce19bdb04d31180d7eb4a8bf6605333ade5a 10-Jul-2014 Alexei Zavjalov <alexei.zavjalov@intel.com> x86_64: Load double constant using core register

This changes the double const loading scheme for x86_64 in order to
reduce number of memory accesses.

Change-Id: If6ee34b890287ed616ca4ea5d1c13f06a06293a9
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
ompiler/dex/quick/x86/utility_x86.cc
35d9a38d14fe8528310dced6d6a41f112ad95fcd 05-Aug-2014 Ian Rogers <irogers@google.com> Merge "Set REG0_USED on X86 Set8R instruction"
2bc477043b6ab2d7b4719ba8debf0a6a5b10c225 31-Jul-2014 Mark Mendell <mark.p.mendell@intel.com> Set REG0_USED on X86 Set8R instruction

Since this instruction only affects the low byte of the register, it is
preceded by an XOR to zero the upper 3 bytes. Set8R isn't marked as
using operand 0 as an input. In practice, this works for now, as the
Xor sets the CC and Set8R uses the CC (although not that of the Xor, but
of a Cmp generally).

This just marks REG0 as using the previous contents of the register, as
it is modifying only 1 byte of 4.

Change-Id: I7a69cbdb06979da5d5d2ae17fabd7c22c5a17701
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
ompiler/dex/quick/x86/assemble_x86.cc
8f1dc7a20049ba6e2f3c7f800908bff811cdbea1 05-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "ART: Fix memory unmapped twice issue in ElfFile::Load(bool)"
a62a588a9202f69e53fbeb3045ea8ea5ec2587f8 28-Apr-2014 Jim_Guo <jim_guo@htc.com> ART: Fix memory unmapped twice issue in ElfFile::Load(bool)

Root Cause:
The overlapped memory region will be unmapped by
(1) ~MemMap() of reservation MemMap (reserve) and
(2) ~MemMap() of "reuse" MemMap (segment).
Someone takes the memory region after (1) and it will be unmapped in (2).
So, SIGSEGV occurs when using the unmapped memory region.

Solution:
Fixes this issue by skip unmap "reuse" MemMap in destructor.
And always create reservation MemMap before "reuse" MemMap. (It also solved
the fixupELF case which does not reserve the whole needed memory region).

Bug: 16486685
Change-Id: I8f2538861d5c3fa7b9a04d2c3f516319cc060291
ex2oat/dex2oat.cc
untime/elf_file.cc
untime/mem_map.cc
untime/mem_map.h
6d3caa2914638b1a21d44886ba6bb5fd8f7618cc 05-Aug-2014 Andreas Gampe <agampe@google.com> am dcc3394c: am 9e9b15dd: Merge "Add trampoline invoke and ART callback tests for native-bridge"

* commit 'dcc3394c6e0a12e501f981646f686a144fe645ce':
Add trampoline invoke and ART callback tests for native-bridge
dcc3394c6e0a12e501f981646f686a144fe645ce 05-Aug-2014 Andreas Gampe <agampe@google.com> am 9e9b15dd: Merge "Add trampoline invoke and ART callback tests for native-bridge"

* commit '9e9b15dd29ff4d91f31ed1063561963b2f99ad1c':
Add trampoline invoke and ART callback tests for native-bridge
d5fa4cef5b2bc2d4dab8bbab863812f4a137be88 05-Aug-2014 Andreas Gampe <agampe@google.com> am efd9c223: am 1a09d286: Merge "AArch64: Implement InexpensiveConstant methods."

* commit 'efd9c223ae1875659b055604d0ab20d88b2cc417':
AArch64: Implement InexpensiveConstant methods.
efd9c223ae1875659b055604d0ab20d88b2cc417 05-Aug-2014 Andreas Gampe <agampe@google.com> am 1a09d286: Merge "AArch64: Implement InexpensiveConstant methods."

* commit '1a09d286bdb4abc9aae06dcf4a8b052648816e2b':
AArch64: Implement InexpensiveConstant methods.
65ccf44708f3cb3eb1721c8abd95b17ab794dd83 05-Aug-2014 Andreas Gampe <agampe@google.com> am e691eae0: am c7975a33: Merge "AArch64: Add inlining support for ceil(), floor(), rint(), round()"

* commit 'e691eae05760282d6c22bbe5ae05a5fca56474d1':
AArch64: Add inlining support for ceil(), floor(), rint(), round()
e691eae05760282d6c22bbe5ae05a5fca56474d1 05-Aug-2014 Andreas Gampe <agampe@google.com> am c7975a33: Merge "AArch64: Add inlining support for ceil(), floor(), rint(), round()"

* commit 'c7975a33b9c8fb36e85c41162462aeec8e76232a':
AArch64: Add inlining support for ceil(), floor(), rint(), round()
1a09d286bdb4abc9aae06dcf4a8b052648816e2b 05-Aug-2014 Andreas Gampe <agampe@google.com> Merge "AArch64: Implement InexpensiveConstant methods."
c763e350da562b0c6bebf10599588d4901140e45 04-Jul-2014 Matteo Franchin <matteo.franchin@arm.com> AArch64: Implement InexpensiveConstant methods.

Implement IsInexpensiveConstant and friends for A64.
Also extending the methods to take the opcode with respect to which
the constant is inexpensive. Additionally, logical operations (i.e.
and, or, xor) can now handle the immediates 0 and ~0 (which are not
logical immediates).

Change-Id: I46ce1287703765c5ab54983d13c1b3a1f5838622
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/utility_arm64.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/mir_to_lir.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/ralloc_util.cc
dd5de8c09ff88df55bf163066d7c55f9868d976c 05-Aug-2014 Jeff Hao <jeffhao@google.com> am b3f024c9: am 316fb6e4: Merge "Make verifier identify unresolved methods as constructors by <init>."

* commit 'b3f024c94b3de16395c938241c03b9ea19d8a31e':
Make verifier identify unresolved methods as constructors by <init>.
b3f024c94b3de16395c938241c03b9ea19d8a31e 05-Aug-2014 Jeff Hao <jeffhao@google.com> am 316fb6e4: Merge "Make verifier identify unresolved methods as constructors by <init>."

* commit '316fb6e4992f41fa0742f1360c6497787c9433e3':
Make verifier identify unresolved methods as constructors by <init>.
d5c10162a7fe8fdea287ae38d34c45c527763fbf 05-Aug-2014 Jeff Hao <jeffhao@google.com> am 18e6cd21: am 04ce1134: Make verifier identify unresolved methods as constructors by <init>.

* commit '18e6cd215ea1be67001074aded59e0d852005197':
Make verifier identify unresolved methods as constructors by <init>.
18e6cd215ea1be67001074aded59e0d852005197 05-Aug-2014 Jeff Hao <jeffhao@google.com> am 04ce1134: Make verifier identify unresolved methods as constructors by <init>.

* commit '04ce113458b6b01f96d58dbb4c41682ee22d8b5d':
Make verifier identify unresolved methods as constructors by <init>.
04ce113458b6b01f96d58dbb4c41682ee22d8b5d 04-Aug-2014 Jeff Hao <jeffhao@google.com> Make verifier identify unresolved methods as constructors by <init>.

Check was previously missing brackets in the method name.

Bug: 16560516
Change-Id: I6b28f8413f3d4c14269a6de38731213d7c964af6
untime/verifier/method_verifier.cc
1a96ca0bfeb3c2748bb91720254d11c71a8df7f4 04-Aug-2014 Andreas Gampe <agampe@google.com> am 34679315: am 7aaa8dbf: Merge "ART: Implement the easy long division/remainder by a constant"

* commit '346793153db6cbe7bc34db05866fcd1e2dedc16f':
ART: Implement the easy long division/remainder by a constant
346793153db6cbe7bc34db05866fcd1e2dedc16f 04-Aug-2014 Andreas Gampe <agampe@google.com> am 7aaa8dbf: Merge "ART: Implement the easy long division/remainder by a constant"

* commit '7aaa8dbfbcde7f58564b42044892891559669838':
ART: Implement the easy long division/remainder by a constant
72e86b016a4735d465d59a6adbc8c79a09fa988f 04-Aug-2014 Brian Carlstrom <bdc@google.com> am 51e9956f: am 4e97f656: Merge "Move image classes options from art to AndroidRuntime [art]"

* commit '51e9956fd7ba9a43b7a907e89e9e82aec530fb50':
Move image classes options from art to AndroidRuntime [art]
0df4bfd51a13c78e11391393b9037a3292ef165f 04-Aug-2014 Brian Carlstrom <bdc@google.com> am 8cfccae4: am dc3ca147: Merge "Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]"

* commit '8cfccae464825bc263245f898d4d45967c714356':
Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]
51e9956fd7ba9a43b7a907e89e9e82aec530fb50 04-Aug-2014 Brian Carlstrom <bdc@google.com> am 4e97f656: Merge "Move image classes options from art to AndroidRuntime [art]"

* commit '4e97f6564fa51609d5651374dcdd2a8f4e79f272':
Move image classes options from art to AndroidRuntime [art]
8cfccae464825bc263245f898d4d45967c714356 04-Aug-2014 Brian Carlstrom <bdc@google.com> am dc3ca147: Merge "Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]"

* commit 'dc3ca147ee880088eb2f52b7b0355062ba5749be':
Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]
9e8496b55fecc7553a22d99898a79c2712456be8 04-Aug-2014 Andreas Gampe <agampe@google.com> am d1831615: am 77a5b501: Merge "AArch64: Remove unnecessary work around for sp."

* commit 'd18316153256c5c2ef46db1cdd6c3e45b85b674f':
AArch64: Remove unnecessary work around for sp.
d18316153256c5c2ef46db1cdd6c3e45b85b674f 04-Aug-2014 Andreas Gampe <agampe@google.com> am 77a5b501: Merge "AArch64: Remove unnecessary work around for sp."

* commit '77a5b50148633c2651edb7f35f5254e40cc878dc':
AArch64: Remove unnecessary work around for sp.
dd512e2cae054f3b076492bfb1f7df4a1a5ea8f4 04-Aug-2014 Narayan Kamath <narayan@google.com> am e7187d7f: am f7f6c978: Merge "Inform about System.exit() call in logcat"

* commit 'e7187d7f3f184910139abcad630d0f7f653aa388':
Inform about System.exit() call in logcat
e7187d7f3f184910139abcad630d0f7f653aa388 04-Aug-2014 Narayan Kamath <narayan@google.com> am f7f6c978: Merge "Inform about System.exit() call in logcat"

* commit 'f7f6c978d44a785d4c12879c6ca20ca1832d3217':
Inform about System.exit() call in logcat
66d1caf42c20efba8305efb3a819993126e8abbf 16-Jul-2014 Calin Juravle <calin@google.com> Use canonical paths when searching for dex files

Apps which use the DexPathClassLoader directly may
pass symlinks when trying to load dex files. This
will not work as we use string comparision to find
the dex in an oat file. The CL fixes this issue by
using using dex conical paths for comparisons.

Bug: 15313272

(cherry picked from commit 4e1d579d6401fef2dd57b16f8d406e33221a69d9)

Change-Id: I441f1ef18388c4a17c747a7e55b57f917724db85
untime/class_linker.cc
untime/dex_file.cc
untime/dex_file.h
untime/dex_file_test.cc
untime/oat_file.cc
4e1d579d6401fef2dd57b16f8d406e33221a69d9 16-Jul-2014 Calin Juravle <calin@google.com> Use canonical paths when searching for dex files

Apps which use the DexPathClassLoader directly may
pass symlinks when trying to load dex files. This
will not work as we use string comparision to find
the dex in an oat file. The CL fixes this issue by
using using dex conical paths for comparisons.

Bug: 15313272

Change-Id: Ic314374b17612c3afbcadec93a88b2515a0aca5e
untime/class_linker.cc
untime/dex_file.cc
untime/dex_file.h
untime/dex_file_test.cc
untime/oat_file.cc
2a20878cd5c8a6f72bb4da892ff716961773d674 04-Aug-2014 Andreas Gampe <agampe@google.com> am 65b62ba0: am 7906b25f: Merge "ART: Rework ARM64 entry sequence"

* commit '65b62ba00c01602f3eb22a2b88594fc9f2da5370':
ART: Rework ARM64 entry sequence
65b62ba00c01602f3eb22a2b88594fc9f2da5370 04-Aug-2014 Andreas Gampe <agampe@google.com> am 7906b25f: Merge "ART: Rework ARM64 entry sequence"

* commit '7906b25f79f24af3a8b8eee0454b4db1278b9b77':
ART: Rework ARM64 entry sequence
5f6769ea318ce66c5c727694329623cef4a4c5bd 04-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 07206af370746e6d7cf528e655b4854e7a865cfa
7609be55d1cbba091fffd101515f2c3e2ffa3e1a 04-Aug-2014 Narayan Kamath <narayan@google.com> am ddce1213: am d4c3c62c: Fix broken JNI IsAssignableFrom.

* commit 'ddce1213efce14fd9973eb47ef2fdcffec300550':
Fix broken JNI IsAssignableFrom.
ddce1213efce14fd9973eb47ef2fdcffec300550 04-Aug-2014 Narayan Kamath <narayan@google.com> am d4c3c62c: Fix broken JNI IsAssignableFrom.

* commit 'd4c3c62cc68296fbaf35e7b37108c2fde2278a3b':
Fix broken JNI IsAssignableFrom.
90e7d16445efc6f7b46343f4ef127b90d8a57878 04-Aug-2014 Narayan Kamath <narayan@google.com> am 93c6171c: am 43c63b5a: Merge "Fix broken JNI IsAssignableFrom."

* commit '93c6171cfb3e4da2a5b07bcc647c15223cc90b12':
Fix broken JNI IsAssignableFrom.
93c6171cfb3e4da2a5b07bcc647c15223cc90b12 04-Aug-2014 Narayan Kamath <narayan@google.com> am 43c63b5a: Merge "Fix broken JNI IsAssignableFrom."

* commit '43c63b5aaa7cd1c6d0ca13b7ea28cc321848d127':
Fix broken JNI IsAssignableFrom.
d4c3c62cc68296fbaf35e7b37108c2fde2278a3b 11-Jul-2014 Narayan Kamath <narayan@google.com> Fix broken JNI IsAssignableFrom.

The expected argument order was the opposite of what the spec
dictated.

Reported-By: Mikhail Naganov <mnaganov@google.com>
bug: 16531674

(cherry picked from commit 1268b742c8cff7318dc0b5b283cbaeabfe0725ba)

Change-Id: I2b6636998c4e15c1eb10dc96a57940aca56c4d0d
untime/jni_internal.cc
untime/jni_internal_test.cc
est/JniTest/JniTest.java
est/JniTest/jni_test.cc
f7f6c978d44a785d4c12879c6ca20ca1832d3217 04-Aug-2014 Narayan Kamath <narayan@google.com> Merge "Inform about System.exit() call in logcat"
108437eb35895e7fd461b131c6ceb383a7ca6ca2 03-Jul-2014 Dmitry Petrochenko <dmitry.petrochenko@intel.com> Inform about System.exit() call in logcat

This diagnostic message helps to filter out crashes during System.exit()
when thread's behaviour is undefined.

Change-Id: I772932a35b503b1efca695e7da7bf2e562c03a7c
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
untime/native/java_lang_Runtime.cc
43c63b5aaa7cd1c6d0ca13b7ea28cc321848d127 04-Aug-2014 Narayan Kamath <narayan@google.com> Merge "Fix broken JNI IsAssignableFrom."
8d82de5d7b04b8f43e7d2bb7ee8a66b0c7e71e1b 28-Jul-2014 Dmitry Petrochenko <dmitry.petrochenko@intel.com> ART: Fix lock max count definition

The lock max count should utilize 14 bits since 2 highest bits are reserved for lock state.

Change-Id: I9d562f7bca9c0853231800a706a8523204e8aa9d
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
untime/lock_word.h
c91c673422c9024a0fff7d3e1ef5a04bf27044c5 03-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 07206af370746e6d7cf528e655b4854e7a865cfa
b94108df25c18d1b4503438b8e174d856174e33e 02-Aug-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 07206af370746e6d7cf528e655b4854e7a865cfa
1268b742c8cff7318dc0b5b283cbaeabfe0725ba 11-Jul-2014 Narayan Kamath <narayan@google.com> Fix broken JNI IsAssignableFrom.

The expected argument order was the opposite of what the spec
dictated.

Reported-By: Mikhail Naganov <mnaganov@google.com>
bug: 16531674

Change-Id: I1ebc6d5814ebb4feeb96f3ecdf1a4602da4ba7ce
untime/jni_internal.cc
untime/jni_internal_test.cc
est/004-JniTest/jni_test.cc
est/004-JniTest/src/Main.java
316fb6e4992f41fa0742f1360c6497787c9433e3 05-Aug-2014 Jeff Hao <jeffhao@google.com> Merge "Make verifier identify unresolved methods as constructors by <init>."
0d08727e19b46770f0f27633d08caf13d9bb3e98 04-Aug-2014 Jeff Hao <jeffhao@google.com> Make verifier identify unresolved methods as constructors by <init>.

Check was previously missing brackets in the method name.

Bug: 16560516

(cherry picked from commit 04ce113458b6b01f96d58dbb4c41682ee22d8b5d)

Change-Id: Ie98c5b84e73ffc43ea08e1b08ae9c6e41bcd5891
untime/verifier/method_verifier.cc
7aaa8dbfbcde7f58564b42044892891559669838 04-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Implement the easy long division/remainder by a constant"
6bbf0967d217ab2b7bdbb78bfd076b8fb07a44e8 14-Jul-2014 Alexei Zavjalov <alexei.zavjalov@intel.com> ART: Implement the easy long division/remainder by a constant

Also optimizes long/int divisions by power-of-two values.

Also do some clean-up.

Change-Id: Ie414e64aac251c81361ae107d157c14439e6dab5
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
ompiler/dex/quick/x86/target_x86.cc
est/003-omnibus-opcodes/src/IntMath.java
4e97f6564fa51609d5651374dcdd2a8f4e79f272 04-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Move image classes options from art to AndroidRuntime [art]"
9e9b15dd29ff4d91f31ed1063561963b2f99ad1c 05-Aug-2014 Andreas Gampe <agampe@google.com> Merge "Add trampoline invoke and ART callback tests for native-bridge"
f7a68c1bd01db4e80003eb19cc8a4cdc8330adbe 03-Aug-2014 Yong WU <yong.wu@intel.com> Add trampoline invoke and ART callback tests for native-bridge

Create trampolines for JNI functions in native-bridge. Test trampoline
invoking from ART side.

Add tests for ART callbacks which called from native-bridge. In this test
they are invoked from the trampoline of JNI_OnLoad.

Change-Id: Ibaa5103fdf49a6b29a1c12f45410fe5f82d46b1e
est/115-native-bridge/expected.txt
est/115-native-bridge/nativebridge.cc
dc3ca147ee880088eb2f52b7b0355062ba5749be 04-Aug-2014 Brian Carlstrom <bdc@google.com> Merge "Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]"
7906b25f79f24af3a8b8eee0454b4db1278b9b77 04-Aug-2014 Andreas Gampe <agampe@google.com> Merge "ART: Rework ARM64 entry sequence"
f29ecd69af2743a425314baa4abd6c44d8d88649 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Rework ARM64 entry sequence

Try to fold one sub of SP in the ARM64 entry sequence. When the
framesize is small, generate a sub over the full frame-size, and
adjust the spill offsets accordingly. If the framesize is too
large, use a pre-indexed store and fill upwards from there.

Change-Id: I1c15ac6276fb62b8164372de02fd92437f605938
ompiler/dex/quick/arm64/arm64_lir.h
ompiler/dex/quick/arm64/assemble_arm64.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
c7975a33b9c8fb36e85c41162462aeec8e76232a 05-Aug-2014 Andreas Gampe <agampe@google.com> Merge "AArch64: Add inlining support for ceil(), floor(), rint(), round()"
2eba1fa7e9e5f91e18ae3778d529520bd2c78d55 31-Jul-2014 Serban Constantinescu <serban.constantinescu@arm.com> AArch64: Add inlining support for ceil(), floor(), rint(), round()

This patch adds inlining support for the following Math, StrictMath
methods in the ARM64 backend:
* double ceil(double)
* double floor(double)
* double rint(double)
* long round(double)
* int round(float)

Also some cleanup.

Change-Id: I9f5a2f4065b1313649f4b0c4380b8176703c3fe1
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
ompiler/dex/quick/arm64/arm64_lir.h
ompiler/dex/quick/arm64/assemble_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/fp_arm64.cc
ompiler/dex/quick/arm64/utility_arm64.cc
ompiler/dex/quick/dex_file_method_inliner.cc
ompiler/dex/quick/dex_file_method_inliner.h
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mir_to_lir.h
untime/quick/inline_method_analyser.h
est/082-inline-execute/src/Main.java
77a5b50148633c2651edb7f35f5254e40cc878dc 04-Aug-2014 Andreas Gampe <agampe@google.com> Merge "AArch64: Remove unnecessary work around for sp."
cedee4744c2d4f3611a7bb9fe98ef1bf4c37d915 01-Jul-2014 Zheng Xu <zheng.xu@arm.com> AArch64: Remove unnecessary work around for sp.

Use RegRegRegExtend to encode instruction for "sub/add sp, sp, Xm".

Change-Id: I13d3d2d386a7bd827e1396f291a7dcb9bffd5a29
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/utility_arm64.cc
1ea25836a14a24653fdeba9e9c6a05e2817d96c4 01-Aug-2014 Bill Buzbee <buzbee@android.com> am dbfae92c: am 89c210bf: Merge "Revert "Revert "Enable Load Store Elimination for ARM and ARM64"""

* commit 'dbfae92cdf7bc446f52dbfa807b112b20be0119e':
Revert "Revert "Enable Load Store Elimination for ARM and ARM64""
a7983df368587703864ddcc7768a0e99a7be3bd1 01-Aug-2014 Hiroshi Yamauchi <yamauchi@google.com> am 212704ab: am 59a5525e: Merge "Add read barriers for the roots in the verifier."

* commit '212704ab469ef40cd74c796b767f04808bc15ac9':
Add read barriers for the roots in the verifier.
dbfae92cdf7bc446f52dbfa807b112b20be0119e 01-Aug-2014 Bill Buzbee <buzbee@android.com> am 89c210bf: Merge "Revert "Revert "Enable Load Store Elimination for ARM and ARM64"""

* commit '89c210bf418a152ccabfbbf853ddcce33aea450d':
Revert "Revert "Enable Load Store Elimination for ARM and ARM64""
212704ab469ef40cd74c796b767f04808bc15ac9 01-Aug-2014 Hiroshi Yamauchi <yamauchi@google.com> am 59a5525e: Merge "Add read barriers for the roots in the verifier."

* commit '59a5525e72d723c8598b6271c7b09845999beeb0':
Add read barriers for the roots in the verifier.
89c210bf418a152ccabfbbf853ddcce33aea450d 31-Jul-2014 Bill Buzbee <buzbee@android.com> Merge "Revert "Revert "Enable Load Store Elimination for ARM and ARM64"""
65b622a6253821de657e9e3bc4d89a12f0a6dcf1 31-Jul-2014 Narayan Kamath <narayan@google.com> am b8642b03: am 2eb3769c: Merge "Make ImageSpace skip validation if we are using a relocated image"

* commit 'b8642b0353e3128fed986bbdfd64ed0d3851bd06':
Make ImageSpace skip validation if we are using a relocated image
b8642b0353e3128fed986bbdfd64ed0d3851bd06 31-Jul-2014 Narayan Kamath <narayan@google.com> am 2eb3769c: Merge "Make ImageSpace skip validation if we are using a relocated image"

* commit '2eb3769cf75724ce84dcb1b11bddcc1247444799':
Make ImageSpace skip validation if we are using a relocated image
fd0c237e7d80ad567399e760203f3cda404bf4c5 31-Jul-2014 Mark Mendell <mark.p.mendell@intel.com> X86: Assembler: Correct r8_form for some cases

Set r8_form to false for instruction formats that don't reference
registers.

Change-Id: Ib01edef4ef7f22de25a31dc4207889bff97d163d
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
ompiler/dex/quick/x86/assemble_x86.cc
b441cb9539196b95e32ecc28a0f845cb705d43d0 31-Jul-2014 Narayan Kamath <narayan@google.com> am 46bf004f: am 1175aec5: Merge "Fix image not regenerating on changes to bootclasspath"

* commit '46bf004f3825802adc439e8934e9610ddc7fc46a':
Fix image not regenerating on changes to bootclasspath
46bf004f3825802adc439e8934e9610ddc7fc46a 31-Jul-2014 Narayan Kamath <narayan@google.com> am 1175aec5: Merge "Fix image not regenerating on changes to bootclasspath"

* commit '1175aec5f686b9e3d429282d7d4022c39436f71f':
Fix image not regenerating on changes to bootclasspath
01ce9cbfdb8741ce6991427c450d0e54989bd339 31-Jul-2014 Vladimir Marko <vmarko@google.com> am b17235f4: am 07206af3: Reduce time and memory usage of GVN.

* commit 'b17235f4b5d3d60085e4c39db03697e48f3e2c85':
Reduce time and memory usage of GVN.
b17235f4b5d3d60085e4c39db03697e48f3e2c85 31-Jul-2014 Vladimir Marko <vmarko@google.com> am 07206af3: Reduce time and memory usage of GVN.

* commit '07206af370746e6d7cf528e655b4854e7a865cfa':
Reduce time and memory usage of GVN.
2582bf7f404a3e4767d408d9a8fbd7ef0402ec67 31-Jul-2014 Bill Buzbee <buzbee@android.com> am 334c6c33: am 00d1ef41: Merge "ART: LoadConstWide should clobber temp reg"

* commit '334c6c337dcdb221983a6ffd7c4b696348ba5989':
ART: LoadConstWide should clobber temp reg
334c6c337dcdb221983a6ffd7c4b696348ba5989 31-Jul-2014 Bill Buzbee <buzbee@android.com> am 00d1ef41: Merge "ART: LoadConstWide should clobber temp reg"

* commit '00d1ef41d0d0d438d604d102183a6bfac58643e7':
ART: LoadConstWide should clobber temp reg
b802efecc77b722b74cc5cb0df3ed8ac7a007f27 31-Jul-2014 Vladimir Marko <vmarko@google.com> am 608d1dac: am 70f7d48b: Merge "Reduce time and memory usage of GVN."

* commit '608d1dac29e2f48edc47f979fa4736dfda28a04c':
Reduce time and memory usage of GVN.
fb30033ec16365bf3a21ca3aebac536d976c1bac 31-Jul-2014 Andreas Gampe <agampe@google.com> am 805fbf31: am 36b111c7: Merge "ART: Build fix"

* commit '805fbf3182e1835507558c678c477ac56e12aa52':
ART: Build fix
051b07665eedfd9db8bc86e05c65fa840a8f41bb 31-Jul-2014 Ian Rogers <irogers@google.com> am 2a3e3d02: am cc75c1b3: Merge "1. Fix CFI for quick compiled code in x86 & x86_64; 2. Emit CFI in .eh_frame instead of .debug_frame."

* commit '2a3e3d02d322725134972ef1fb22d1974e21c684':
1. Fix CFI for quick compiled code in x86 & x86_64; 2. Emit CFI in .eh_frame instead of .debug_frame.
2ec2865fa770ef899376eb50775d72fb65b944cb 31-Jul-2014 Ian Rogers <irogers@google.com> am c7636760: am 9900a610: Merge "Add --always-clean flag to run-test."

* commit 'c7636760460013494d3204445b22aa86fb873226':
Add --always-clean flag to run-test.
608d1dac29e2f48edc47f979fa4736dfda28a04c 31-Jul-2014 Vladimir Marko <vmarko@google.com> am 70f7d48b: Merge "Reduce time and memory usage of GVN."

* commit '70f7d48b9f2ad768c1e1a5bd96979870379f05e2':
Reduce time and memory usage of GVN.
805fbf3182e1835507558c678c477ac56e12aa52 31-Jul-2014 Andreas Gampe <agampe@google.com> am 36b111c7: Merge "ART: Build fix"

* commit '36b111c7d3d635e262114dabde4c26952c7dcbe6':
ART: Build fix
2a3e3d02d322725134972ef1fb22d1974e21c684 31-Jul-2014 Ian Rogers <irogers@google.com> am cc75c1b3: Merge "1. Fix CFI for quick compiled code in x86 & x86_64; 2. Emit CFI in .eh_frame instead of .debug_frame."

* commit 'cc75c1b38e811cc1cb93ce8f8fcc9a83e20844fb':
1. Fix CFI for quick compiled code in x86 & x86_64; 2. Emit CFI in .eh_frame instead of .debug_frame.
c7636760460013494d3204445b22aa86fb873226 31-Jul-2014 Ian Rogers <irogers@google.com> am 9900a610: Merge "Add --always-clean flag to run-test."

* commit '9900a610fbb40c49b0503183b79c4bbb376c4128':
Add --always-clean flag to run-test.
07206af370746e6d7cf528e655b4854e7a865cfa 29-Jul-2014 Vladimir Marko <vmarko@google.com> Reduce time and memory usage of GVN.

Filter out dead sregs in GVN. Reclaim memory after each LVN
in the GVN modification phase.

Bug: 16398693

(cherry picked from commit b19955d3c8fbd9588f7e17299e559d02938154b6)

Change-Id: I33c7912258a768b4c99d787056979fbc3b023b3b
ompiler/dex/frontend.cc
ompiler/dex/global_value_numbering.cc
ompiler/dex/global_value_numbering.h
ompiler/dex/global_value_numbering_test.cc
ompiler/dex/local_value_numbering.cc
ompiler/dex/local_value_numbering.h
ompiler/dex/local_value_numbering_test.cc
ompiler/dex/mir_optimization.cc
ompiler/utils/scoped_arena_allocator.h
untime/safe_map.h
cd21f85f65197b7d52be1bd793d09cdfb05238ad 31-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix verifier mishandling erroneous array component types

The verifier must not assume that component types are not erroneous.

Bug: 16661259

(cherry picked from commit aa910d5ef43256102809e397de305c23f1c315e6)

Change-Id: I6d607310593ac337616581bfdff5eb29a8dd1b9d
ompiler/dex/quick/gen_common.cc
untime/mirror/dex_cache-inl.h
untime/mirror/dex_cache.h
untime/verifier/reg_type_cache.cc
untime/verifier/reg_type_cache.h
09ceaf9e7693ec0c80c760694a7a41b3c33ea27f 31-Jul-2014 Andreas Gampe <agampe@google.com> am 5cc3f418: am b99b8d6c: ART: Fix verifier mishandling erroneous array component types

* commit '5cc3f4182ffd952e17f1924fb76df112d76e9e86':
ART: Fix verifier mishandling erroneous array component types
5cc3f4182ffd952e17f1924fb76df112d76e9e86 31-Jul-2014 Andreas Gampe <agampe@google.com> am b99b8d6c: ART: Fix verifier mishandling erroneous array component types

* commit 'b99b8d6cffe08d8c9d30175c936e5c88d3101802':
ART: Fix verifier mishandling erroneous array component types
872dfcb6aa44afbb812f1236b64d03cc6b5ec6bd 31-Jul-2014 Andreas Gampe <agampe@google.com> am 58c8f556: am e34e467f: Merge "ART: Fix verifier mishandling erroneous array component types"

* commit '58c8f556dac34ce4e0cfc5f364116e67d513638f':
ART: Fix verifier mishandling erroneous array component types
58c8f556dac34ce4e0cfc5f364116e67d513638f 31-Jul-2014 Andreas Gampe <agampe@google.com> am e34e467f: Merge "ART: Fix verifier mishandling erroneous array component types"

* commit 'e34e467f9adf59ba7febdc22b6329ef4b853e123':
ART: Fix verifier mishandling erroneous array component types
b99b8d6cffe08d8c9d30175c936e5c88d3101802 31-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix verifier mishandling erroneous array component types

The verifier must not assume that component types are not erroneous.

Bug: 16661259

(cherry picked from commit aa910d5ef43256102809e397de305c23f1c315e6)

Change-Id: I6d607310593ac337616581bfdff5eb29a8dd1b9d
ompiler/dex/quick/gen_common.cc
untime/mirror/dex_cache-inl.h
untime/mirror/dex_cache.h
untime/verifier/reg_type_cache.cc
untime/verifier/reg_type_cache.h
73989ddbf04cdfcb81fa4a2f597290976aec1ea1 31-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 87a14afc: am 6bff7130: Add support for bump pointer spaces to DdmSendHeapSegments.

* commit '87a14afc7b69ac36c9cf8ca14c5036b500458576':
Add support for bump pointer spaces to DdmSendHeapSegments.
87a14afc7b69ac36c9cf8ca14c5036b500458576 31-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 6bff7130: Add support for bump pointer spaces to DdmSendHeapSegments.

* commit '6bff7130878128c9836a21ae58d0cfdb0075b1b5':
Add support for bump pointer spaces to DdmSendHeapSegments.
afb2fcf3f36f3f7cd840476a32823ec1450c10b1 31-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 4ce0c3b4: am da4a1264: Merge "Add support for bump pointer spaces to DdmSendHeapSegments."

* commit '4ce0c3b4c3d26d97f6547c988494182584d53761':
Add support for bump pointer spaces to DdmSendHeapSegments.
4ce0c3b4c3d26d97f6547c988494182584d53761 31-Jul-2014 Mathieu Chartier <mathieuc@google.com> am da4a1264: Merge "Add support for bump pointer spaces to DdmSendHeapSegments."

* commit 'da4a1264cd7d5db9ed01cfd1eeaed71cb11c6c71':
Add support for bump pointer spaces to DdmSendHeapSegments.
6bff7130878128c9836a21ae58d0cfdb0075b1b5 30-Jul-2014 Mathieu Chartier <mathieuc@google.com> Add support for bump pointer spaces to DdmSendHeapSegments.

Added support for bump pointer spaces as well as
differentiating between DlMallocSpaces and RosAllocSpaces.
Added logic to reset the start of next chunk to prevent
inbetween space regions counted as free.

Fixed a debug build bug where we were doing an mprotect after
creating a rosalloc space. In debug builds, this writes a magic
value in the page. This was faulting since it was set to PROT_NONE.
The fix moves the mprotect before the RosAlloc space creation.

Bug: 16408851

(cherry picked from commit 36dab3607e77505ce139eacef1c62a1c4bc4affd)

Change-Id: I5095feb01fa7e248178a2833da7f821f4fd52c89
untime/debugger.cc
untime/gc/heap.cc
57309dbec7a119670bfae722f7399dd308042bbc 31-Jul-2014 Brian Carlstrom <bdc@google.com> Move image classes options from art to AndroidRuntime [art]

Bug: 15165413
Change-Id: I3dfa702ac29279cf76d4cc451138c03a5158ac3a
untime/gc/space/image_space.cc
2e879694544744436a595eb30cd0b8ad4580c9db 29-Jul-2014 Brian Carlstrom <bdc@google.com> Move from dalvik.vm.image-dex2oat-flags to dalvik.vm.dex2oat-filter [art]

This will allow us to conditionally change the compiler-filter based on other properties.

Bug: 15165413
Change-Id: I6877a6eab221ab142909b595fd28191b5d3a095b
ndroid.mk
36b111c7d3d635e262114dabde4c26952c7dcbe6 31-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Build fix"
bda2722ba62e5be9f9fd6a6eb0db8259bb383629 31-Jul-2014 Andreas Gampe <agampe@google.com> ART: Build fix

Make lint happy, as comments should be separated from code.

Change-Id: I4bfd88357302be9a6a104f1152e3b1fda386371e
ompiler/dex/quick/x86/target_x86.cc
e34e467f9adf59ba7febdc22b6329ef4b853e123 31-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix verifier mishandling erroneous array component types"
aa910d5ef43256102809e397de305c23f1c315e6 31-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix verifier mishandling erroneous array component types

The verifier must not assume that component types are not erroneous.

Bug: 16661259
Change-Id: I23b2f517259ca9c0b8a1aa38f6348fcd61e0b22e
ompiler/dex/quick/gen_common.cc
untime/mirror/dex_cache-inl.h
untime/mirror/dex_cache.h
untime/verifier/reg_type_cache.cc
untime/verifier/reg_type_cache.h
da4a1264cd7d5db9ed01cfd1eeaed71cb11c6c71 31-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add support for bump pointer spaces to DdmSendHeapSegments."
36dab3607e77505ce139eacef1c62a1c4bc4affd 30-Jul-2014 Mathieu Chartier <mathieuc@google.com> Add support for bump pointer spaces to DdmSendHeapSegments.

Added support for bump pointer spaces as well as
differentiating between DlMallocSpaces and RosAllocSpaces.
Added logic to reset the start of next chunk to prevent
inbetween space regions counted as free.

Fixed a debug build bug where we were doing an mprotect after
creating a rosalloc space. In debug builds, this writes a magic
value in the page. This was faulting since it was set to PROT_NONE.
The fix moves the mprotect before the RosAlloc space creation.

Bug: 16408851
Change-Id: Ibe18198d05ff353fbb57d10b2f7719fdcbf1c5f0
untime/debugger.cc
untime/gc/heap.cc
958a8da3e5c9f135e09b048cf85c55c98d30d8c6 30-Jul-2014 Brian Carlstrom <bdc@google.com> am 3623c1c2: am 01a0ebb6: Merge "Make 32bit run-tests work correctly on 64bit default devices."

* commit '3623c1c254f660e51605d9f02aeb8c41441201b5':
Make 32bit run-tests work correctly on 64bit default devices.
3623c1c254f660e51605d9f02aeb8c41441201b5 30-Jul-2014 Brian Carlstrom <bdc@google.com> am 01a0ebb6: Merge "Make 32bit run-tests work correctly on 64bit default devices."

* commit '01a0ebb6b96c32879dcad99d515fc0cd8de2a266':
Make 32bit run-tests work correctly on 64bit default devices.
dffdfacb8bd6ee71942cc1f744189ec84ccb12f2 30-Jul-2014 Jeff Hao <jeffhao@google.com> am edf7bbb9: am c7c6d18a: Stop thread from reattaching during runtime shutdown while tracing.

* commit 'edf7bbb9c32ca62a6bdfa8ecb9ba19c08c36177d':
Stop thread from reattaching during runtime shutdown while tracing.
1c60e60a30890279643971770bceaca0d416e403 30-Jul-2014 Jeff Hao <jeffhao@google.com> am 923c7b00: am 78b367a6: Merge "Submitted wrong changelist!" into lmp-dev

* commit '923c7b00ce0bea0578a5687837f8c7e531300cc3':
Submitted wrong changelist!
b0e4cd5c0973e8f49a002f40e9535c580710addf 30-Jul-2014 Jeff Hao <jeffhao@google.com> am 69c914e8: am fb74d873: Merge "Stop thread from reattaching during runtime shutdown while tracing." into lmp-dev

* commit '69c914e85145439d5145ff9be702ab17950a24e9':
Stop thread from reattaching during runtime shutdown while tracing.
d11dff042c01349be54c316e450ff55fa67e2e11 30-Jul-2014 Andreas Gampe <agampe@google.com> am 1ff86944: am 5cac343e: ART: Check for duplicate class definitions in dex file verifier

* commit '1ff86944b70dd42a1d5235afc1ee41061db2ea5c':
ART: Check for duplicate class definitions in dex file verifier
edf7bbb9c32ca62a6bdfa8ecb9ba19c08c36177d 30-Jul-2014 Jeff Hao <jeffhao@google.com> am c7c6d18a: Stop thread from reattaching during runtime shutdown while tracing.

* commit 'c7c6d18a90079b67a7592d3f2cb3d4c6f0081512':
Stop thread from reattaching during runtime shutdown while tracing.
923c7b00ce0bea0578a5687837f8c7e531300cc3 30-Jul-2014 Jeff Hao <jeffhao@google.com> am 78b367a6: Merge "Submitted wrong changelist!" into lmp-dev

* commit '78b367a666deb0325b5f509021b14a53625d3786':
Submitted wrong changelist!
69c914e85145439d5145ff9be702ab17950a24e9 30-Jul-2014 Jeff Hao <jeffhao@google.com> am fb74d873: Merge "Stop thread from reattaching during runtime shutdown while tracing." into lmp-dev

* commit 'fb74d873bde1ea396f5e8603f2c193e7b539345f':
Stop thread from reattaching during runtime shutdown while tracing.
1ff86944b70dd42a1d5235afc1ee41061db2ea5c 30-Jul-2014 Andreas Gampe <agampe@google.com> am 5cac343e: ART: Check for duplicate class definitions in dex file verifier

* commit '5cac343e28fe28d4bc9ccc6db5cab38db1f2b59d':
ART: Check for duplicate class definitions in dex file verifier
4c045f8ef0c76f80a8387c30da05d4c5c4cdd26b 30-Jul-2014 Andreas Gampe <agampe@google.com> am 610b4492: am ef57ed72: Merge "ART: Remove bogus dcheck"

* commit '610b449297336ccec25697352ad3c5d1bdb1af01':
ART: Remove bogus dcheck
610b449297336ccec25697352ad3c5d1bdb1af01 30-Jul-2014 Andreas Gampe <agampe@google.com> am ef57ed72: Merge "ART: Remove bogus dcheck"

* commit 'ef57ed72a3ac856f6115ae89c609d4fd892e8c41':
ART: Remove bogus dcheck
1efac0ece5cae71ffb2563be16b68341c6b71f33 30-Jul-2014 Andreas Gampe <agampe@google.com> am ecce76be: am eaa6da1b: ART: Bump oat version for embedded vtable

* commit 'ecce76be903f430c1889c8759fcc091dc5637b5f':
ART: Bump oat version for embedded vtable
1ebc21fabc041130f3051af875d702cb567d4db5 30-Jul-2014 Mingyao Yang <mingyao@google.com> am 865a18bf: am 9854fe24: Fix build, missing spaces around =/<.

* commit '865a18bfe79aaca1dfafdcb84d6a3a134d6394cc':
Fix build, missing spaces around =/<.
ecce76be903f430c1889c8759fcc091dc5637b5f 30-Jul-2014 Andreas Gampe <agampe@google.com> am eaa6da1b: ART: Bump oat version for embedded vtable

* commit 'eaa6da1b8381bc7cb9076e90b7ec06812b9d0d2d':
ART: Bump oat version for embedded vtable
865a18bfe79aaca1dfafdcb84d6a3a134d6394cc 30-Jul-2014 Mingyao Yang <mingyao@google.com> am 9854fe24: Fix build, missing spaces around =/<.

* commit '9854fe24d3e22a2e232597b4334ac93205ff17ed':
Fix build, missing spaces around =/<.
f33784e3a386a28e0e543e4b1c83e5baebb8a3c2 30-Jul-2014 Mingyao Yang <mingyao@google.com> am f3fc5a6d: resolved conflicts for merge of e19f2b00 to lmp-dev-plus-aosp

* commit 'f3fc5a6d29cf7cadc0ac1bd4567042aac27ec543':
Set vtable in class object to null after linking.
ec95f72490de0a7f86c35de3d00b50bb80d036a1 22-Jul-2014 Vladimir Kostyukov <vladimir.kostyukov@intel.com> ART: Correct disassembling of 64bit immediates on x86_64

The patch fixes an issue with disassembling 'movsxd' and 'movabsq'
instructions altered with 64bit immediates: not only a REX.W prefix
may be prepended to these instructions.

Change-Id: Ida7c7b368327a6b5cae1ff12ec00ceb0769c0a3d
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
isassembler/disassembler_x86.cc
f3fc5a6d29cf7cadc0ac1bd4567042aac27ec543 30-Jul-2014 Mingyao Yang <mingyao@google.com> resolved conflicts for merge of e19f2b00 to lmp-dev-plus-aosp

Change-Id: I678a541f0bcef726db44ccb50cb6feb71ec498e5
c7c6d18a90079b67a7592d3f2cb3d4c6f0081512 29-Jul-2014 Jeff Hao <jeffhao@google.com> Stop thread from reattaching during runtime shutdown while tracing.

Bug: 16024763

(cherry picked from commit c5d824a20c225763761a6dff43294b229ff35469)

Change-Id: Ideab9adedabf3c58f5162e43e79c72af0642bdfa
untime/runtime.cc
untime/thread_list.cc
untime/trace.cc
untime/trace.h
b91ce0a6889b29c007521dd39c1f1bc16714af1a 30-Jul-2014 Andreas Gampe <agampe@google.com> am 4b8fb144: am f90283f6: Merge "ART: Check for duplicate class definitions in dex file verifier"

* commit '4b8fb144c790ccfa7556d2c4bda143d3725d5d9c':
ART: Check for duplicate class definitions in dex file verifier
4b8fb144c790ccfa7556d2c4bda143d3725d5d9c 30-Jul-2014 Andreas Gampe <agampe@google.com> am f90283f6: Merge "ART: Check for duplicate class definitions in dex file verifier"

* commit 'f90283f61d6ca37abf3a9fb8447d05e79caf0160':
ART: Check for duplicate class definitions in dex file verifier
5cac343e28fe28d4bc9ccc6db5cab38db1f2b59d 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Check for duplicate class definitions in dex file verifier

Reject dex files that try to define two classes with the same type id.

Bug: 16016492

(cherry picked from commit 0ba238dcc21ae3544e1e8cb5d108725db8a1c134)

Change-Id: Ie04a684b41b50313449b87c5c3574e89f800e254
untime/dex_file_verifier.cc
untime/dex_file_verifier.h
2eb3769cf75724ce84dcb1b11bddcc1247444799 31-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Make ImageSpace skip validation if we are using a relocated image"
b93637a01831e697725753541083f04b1e2df6fb 31-Jul-2014 Alex Light <allight@google.com> Make ImageSpace skip validation if we are using a relocated image

Change-Id: I0682d1870f5b3e27adb9c9de803fbb7d364ad00d
untime/gc/space/image_space.cc
1175aec5f686b9e3d429282d7d4022c39436f71f 31-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Fix image not regenerating on changes to bootclasspath"
1a762136398ffa4ed2c366d344b45ca4244d6c6c 31-Jul-2014 Alex Light <allight@google.com> Fix image not regenerating on changes to bootclasspath

Bug: 16367410
Change-Id: I10e81d068ffc2ab712a287f88ef67f6a1be4df4c
untime/gc/space/image_space.cc
26b3daf89712f29f20c555635e965dcd5165865b 30-Jul-2014 Jeff Hao <jeffhao@google.com> am 83e33c05: am 58e17cea: Merge "Stop thread from reattaching during runtime shutdown while tracing."

* commit '83e33c05267e64085c7454bbfbe29dc00b70536d':
Stop thread from reattaching during runtime shutdown while tracing.
eb2d297bb4c190cb04bf8062c8eb5582c44c9907 30-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> am 88e251f0: am f2e92073: Merge "Add GcRoot to clean up and enforce read barriers."

* commit '88e251f031cec2b81818e7b7b836bfdfb229ac1e':
Add GcRoot to clean up and enforce read barriers.
83e33c05267e64085c7454bbfbe29dc00b70536d 30-Jul-2014 Jeff Hao <jeffhao@google.com> am 58e17cea: Merge "Stop thread from reattaching during runtime shutdown while tracing."

* commit '58e17cea2da3e541610e9bcdf8ef3efd983e1390':
Stop thread from reattaching during runtime shutdown while tracing.
88e251f031cec2b81818e7b7b836bfdfb229ac1e 30-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> am f2e92073: Merge "Add GcRoot to clean up and enforce read barriers."

* commit 'f2e920734dddbc0eee35c3ba27b88b732df4f82c':
Add GcRoot to clean up and enforce read barriers.
320299b32285fe638ab46036759e374c905112ce 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Bump oat version for embedded vtable

Change-Id: Ieb84a8d9486a3d99d48e8395ef3634a365142f2f
untime/oat.cc
95e15588732684223ed7291e33af2e03e8e8ebfb 23-Jul-2014 Mingyao Yang <mingyao@google.com> Fix build, missing spaces around =/<.

(cherry picked from commit 1a12858eb15a14788478c4aca82c052bc84fcafa)

Change-Id: Id2d276cd1fb8bb95c46ff5ceacc7cfe1f5acf192
untime/class_linker.cc
0e7f37de5bcebb413712eddd1831f30bd0818664 16-Jul-2014 Mingyao Yang <mingyao@google.com> Set vtable in class object to null after linking.

This is follow-up work of embedding imt and vtable for
faster interface/virtual call dispatching.
Once vtable becomes embedded, the original vtable is nulled.

(cherry picked from commit 2cdbad7c62f126581ec5177104de961c4d71adaa)

Change-Id: I6acdcd1ee560d387fb77c55c58bbe3598c197ba1
ompiler/driver/compiler_driver-inl.h
untime/class_linker.cc
untime/class_linker_test.cc
untime/entrypoints/entrypoint_utils-inl.h
untime/interpreter/interpreter_common.h
untime/mirror/art_method.cc
untime/mirror/class-inl.h
untime/mirror/class.cc
untime/mirror/class.h
untime/verifier/method_verifier.cc
est/100-reflect2/expected.txt
eaa6da1b8381bc7cb9076e90b7ec06812b9d0d2d 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Bump oat version for embedded vtable

Change-Id: Ieb84a8d9486a3d99d48e8395ef3634a365142f2f
untime/oat.cc
9854fe24d3e22a2e232597b4334ac93205ff17ed 23-Jul-2014 Mingyao Yang <mingyao@google.com> Fix build, missing spaces around =/<.

(cherry picked from commit 1a12858eb15a14788478c4aca82c052bc84fcafa)

Change-Id: Id2d276cd1fb8bb95c46ff5ceacc7cfe1f5acf192
untime/class_linker.cc
e19f2b00eebd61e73761ab531866654f08968711 16-Jul-2014 Mingyao Yang <mingyao@google.com> Set vtable in class object to null after linking.

This is follow-up work of embedding imt and vtable for
faster interface/virtual call dispatching.
Once vtable becomes embedded, the original vtable is nulled.

(cherry picked from commit 2cdbad7c62f126581ec5177104de961c4d71adaa)

Change-Id: I6acdcd1ee560d387fb77c55c58bbe3598c197ba1
ompiler/driver/compiler_driver-inl.h
untime/class_linker.cc
untime/class_linker_test.cc
untime/entrypoints/entrypoint_utils-inl.h
untime/interpreter/interpreter_common.h
untime/mirror/art_method.cc
untime/mirror/class-inl.h
untime/mirror/class.cc
untime/mirror/class.h
untime/verifier/method_verifier.cc
est/100-reflect2/expected.txt
00d1ef41d0d0d438d604d102183a6bfac58643e7 31-Jul-2014 Bill Buzbee <buzbee@android.com> Merge "ART: LoadConstWide should clobber temp reg"
54659e3a2c83d3949957a10436e55e525a430a15 30-Jul-2014 Alexei Zavjalov <alexei.zavjalov@intel.com> ART: LoadConstWide should clobber temp reg

If we have 2+ LoadConstWide(FP) calls in one method it is possible
that LoadConstWide will load the method poiner only once. In some
cases, for example, if we have branches, initialization might not be
done and it may lead to a segmentation fault.

Change-Id: If45fc2d1109d7ce9bd272f5c56446b2a6884daac
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
ompiler/dex/quick/x86/utility_x86.cc
est/083-compiler-regressions/expected.txt
est/083-compiler-regressions/src/Main.java
59a5525e72d723c8598b6271c7b09845999beeb0 31-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Merge "Add read barriers for the roots in the verifier."
7da9586b559290e1c16207c6513ffe485de61655 30-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Add read barriers for the roots in the verifier.

Note: Because the roots (the class references in RegType objects) can
be updated by the read barriers, a lot of uses of type "const RegType"
were replaced with "RegType".

Bug: 12687968
Change-Id: I6cf37a87f352938d43fb51560a8d927ada104f50
ompiler/dex/verified_method.cc
untime/verifier/method_verifier-inl.h
untime/verifier/method_verifier.cc
untime/verifier/method_verifier.h
untime/verifier/reg_type.cc
untime/verifier/reg_type.h
untime/verifier/reg_type_cache-inl.h
untime/verifier/reg_type_cache.cc
untime/verifier/reg_type_cache.h
untime/verifier/reg_type_test.cc
untime/verifier/register_line-inl.h
untime/verifier/register_line.cc
untime/verifier/register_line.h
cc75c1b38e811cc1cb93ce8f8fcc9a83e20844fb 31-Jul-2014 Ian Rogers <irogers@google.com> Merge "1. Fix CFI for quick compiled code in x86 & x86_64; 2. Emit CFI in .eh_frame instead of .debug_frame."
35e1e6ad4b50f1adbe9f93fe467766f042491896 30-Jul-2014 Tong Shen <endlessroad@google.com> 1. Fix CFI for quick compiled code in x86 & x86_64;
2. Emit CFI in .eh_frame instead of .debug_frame.

With CFI, we can correctly unwind past quick generated code.
Now gdb should unwind to main() for both x86 & x86_64 host-side ART.

Note that it does not work with relocation yet.

Testing:
1. art/test/run-test --host --gdb [--64] --no-relocate 005
2. In gdb, run 'b art_quick_invoke_stub', then 'r', then 'c' a few times
3. In gdb, run 'bt'. You should see stack frames down to main()

Change-Id: I5350d4097dc3d360a60cb17c94f1d02b99bc58bb
ompiler/compilers.cc
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/target_x86.cc
ompiler/elf_writer_quick.cc
ompiler/oat_writer.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/elf_file.cc
9900a610fbb40c49b0503183b79c4bbb376c4128 31-Jul-2014 Ian Rogers <irogers@google.com> Merge "Add --always-clean flag to run-test."
bfac14acef0c2327ef8c28f146dd17d009aa8669 30-Jul-2014 Alex Light <allight@google.com> Add --always-clean flag to run-test.

This flag makes run-test remove the test-artifacts even if it fails. Also
enable this option by default when doing run-tests with make. Add
a ART_TEST_RUN_TEST_ALWAYS_CLEAN environment variable to control this
option.

Change-Id: I7867b400d570d8d679d9822d1fa65f49eb3522ae
uild/Android.common_test.mk
est/Android.run-test.mk
est/run-all-tests
est/run-test
01a0ebb6b96c32879dcad99d515fc0cd8de2a266 30-Jul-2014 Brian Carlstrom <bdc@google.com> Merge "Make 32bit run-tests work correctly on 64bit default devices."
fc0082be5e28eda30833ad627409d94ccf1bfed2 30-Jul-2014 Alex Light <allight@google.com> Make 32bit run-tests work correctly on 64bit default devices.

Change-Id: I7a5ca303ab91dec0df95358435e4a56c18a7fce3
est/etc/push-and-run-prebuilt-test-jar
est/etc/push-and-run-test-jar
78b367a666deb0325b5f509021b14a53625d3786 30-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Submitted wrong changelist!" into lmp-dev
82558acbca3eae5b7e47748bcfb8070855266676 30-Jul-2014 Jeff Hao <jeffhao@google.com> Submitted wrong changelist!

Revert "Stop thread from reattaching during runtime shutdown while tracing."

This reverts commit c96657c4243e04888d5948fa023d78cc9213800b.

Change-Id: I859347f93704a94d23f72ef7d483298b08bbed0d
untime/runtime.cc
untime/thread_list.cc
untime/trace.cc
untime/trace.h
c96657c4243e04888d5948fa023d78cc9213800b 29-Jul-2014 Jeff Hao <jeffhao@google.com> Stop thread from reattaching during runtime shutdown while tracing.

Bug: 16024763

(cherry picked from commit c5d824a20c225763761a6dff43294b229ff35469)

Change-Id: Id5dcd4c8a131b93de00023c3ae9f518ea182614a
untime/runtime.cc
untime/thread_list.cc
untime/trace.cc
untime/trace.h
fb74d873bde1ea396f5e8603f2c193e7b539345f 30-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Stop thread from reattaching during runtime shutdown while tracing." into lmp-dev
70f7d48b9f2ad768c1e1a5bd96979870379f05e2 31-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Reduce time and memory usage of GVN."
b19955d3c8fbd9588f7e17299e559d02938154b6 29-Jul-2014 Vladimir Marko <vmarko@google.com> Reduce time and memory usage of GVN.

Filter out dead sregs in GVN. Reclaim memory after each LVN
in the GVN modification phase.

Bug: 16398693
Change-Id: I8c88c3009663754e1b66c0ef3f62c3b93276e385
ompiler/dex/frontend.cc
ompiler/dex/global_value_numbering.cc
ompiler/dex/global_value_numbering.h
ompiler/dex/global_value_numbering_test.cc
ompiler/dex/local_value_numbering.cc
ompiler/dex/local_value_numbering.h
ompiler/dex/local_value_numbering_test.cc
ompiler/dex/mir_optimization.cc
ompiler/utils/scoped_arena_allocator.h
untime/safe_map.h
e1ca9e954470a5d5abfcafe57e5805528e2b0c96 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am cf66c48a: am 8df73882: Merge "Revert "Fix proxy tracing and enable tests that now work with tracing.""

* commit 'cf66c48a6fde13c914a663f93fa43a7648ce20a3':
Revert "Fix proxy tracing and enable tests that now work with tracing."
6648a7009329082b673a7eac3bbc2359f3a91dad 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 8a586a35: am 01be6e3c: Merge "Fix braino in Makefile."

* commit '8a586a3546958ce426f5e4c70b5360248ad68e22':
Fix braino in Makefile.
701f7c0a69e038386b22b9f1cc136b666cfe2951 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 649aa045: am 2dd6f729: Merge "Add a variable to disable PREBUILD in run-tests."

* commit '649aa0454285cc44fa8e2e380255a8672b2cf33e':
Add a variable to disable PREBUILD in run-tests.
6f71e85e6ca984759f8d1721edd6a175be24aea1 29-Jul-2014 Andreas Gampe <agampe@google.com> am 75f9858d: am 9d2f0100: Merge "AArch64: Clean up CalleeSaveMethod frame and the use of temp registers."

* commit '75f9858dd2fb3dd5a0a9525c1a0f5380ef7b28b0':
AArch64: Clean up CalleeSaveMethod frame and the use of temp registers.
cf66c48a6fde13c914a663f93fa43a7648ce20a3 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 8df73882: Merge "Revert "Fix proxy tracing and enable tests that now work with tracing.""

* commit '8df73882c60451e7f789bf9b1f3db2d7dc228640':
Revert "Fix proxy tracing and enable tests that now work with tracing."
8a586a3546958ce426f5e4c70b5360248ad68e22 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 01be6e3c: Merge "Fix braino in Makefile."

* commit '01be6e3c4e4f083842ac9a6f8f9e6c2c937b8a15':
Fix braino in Makefile.
649aa0454285cc44fa8e2e380255a8672b2cf33e 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 2dd6f729: Merge "Add a variable to disable PREBUILD in run-tests."

* commit '2dd6f729c05ff9a6c687888707c68e7894392c38':
Add a variable to disable PREBUILD in run-tests.
75f9858dd2fb3dd5a0a9525c1a0f5380ef7b28b0 29-Jul-2014 Andreas Gampe <agampe@google.com> am 9d2f0100: Merge "AArch64: Clean up CalleeSaveMethod frame and the use of temp registers."

* commit '9d2f0100840a41ed6c6c95f92994db7975a8a211':
AArch64: Clean up CalleeSaveMethod frame and the use of temp registers.
dce2732ba17fb1e0eb7134c03903b771b1dfdaf5 29-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 4c6427a757cae2b1c79aafca71be780e54620e68
6291d4b283d419f51189d0c6480e83f1fcc045f9 29-Jul-2014 Jeff Hao <jeffhao@google.com> am 5cd7604c: am 2815f124: Merge "Fix proxy tracing and enable tests that now work with tracing."

* commit '5cd7604cb578d715ee3898295fa65b131a1ecd25':
Fix proxy tracing and enable tests that now work with tracing.
5cd7604cb578d715ee3898295fa65b131a1ecd25 29-Jul-2014 Jeff Hao <jeffhao@google.com> am 2815f124: Merge "Fix proxy tracing and enable tests that now work with tracing."

* commit '2815f1242c6c3ea1fc2df7bb5e4bd1924f4e75f7':
Fix proxy tracing and enable tests that now work with tracing.
76e6eec7caf34f19a9cc22b51a323624ca017bef 29-Jul-2014 Andreas Gampe <agampe@google.com> am 146409dc: am 4c6427a7: ART: Reject array-length on non-reference register

* commit '146409dc095f18a95e283f8a5d667d67ad861f92':
ART: Reject array-length on non-reference register
db7e9624ca088adf647f8d6d555cb1d25759e5c7 29-Jul-2014 Andreas Gampe <agampe@google.com> am 462e333c: am e5647289: Merge "ART: Fix missing initialization in stack_map_stream.h"

* commit '462e333c67fa6c02759dfe4b2feb207ee38b0050':
ART: Fix missing initialization in stack_map_stream.h
146409dc095f18a95e283f8a5d667d67ad861f92 29-Jul-2014 Andreas Gampe <agampe@google.com> am 4c6427a7: ART: Reject array-length on non-reference register

* commit '4c6427a757cae2b1c79aafca71be780e54620e68':
ART: Reject array-length on non-reference register
462e333c67fa6c02759dfe4b2feb207ee38b0050 29-Jul-2014 Andreas Gampe <agampe@google.com> am e5647289: Merge "ART: Fix missing initialization in stack_map_stream.h"

* commit 'e5647289ccc7dafd8b91771a7bd1cd19416aed66':
ART: Fix missing initialization in stack_map_stream.h
58e17cea2da3e541610e9bcdf8ef3efd983e1390 30-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Stop thread from reattaching during runtime shutdown while tracing."
c5d824a20c225763761a6dff43294b229ff35469 29-Jul-2014 Jeff Hao <jeffhao@google.com> Stop thread from reattaching during runtime shutdown while tracing.

Bug: 16024763
Change-Id: Iad5ba180241ff74b15baf5c3a15ed2d2ed60fcf0
untime/runtime.cc
untime/thread_list.cc
untime/trace.cc
untime/trace.h
f2e920734dddbc0eee35c3ba27b88b732df4f82c 30-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Merge "Add GcRoot to clean up and enforce read barriers."
94f7b49578b6aaa80de8ffed230648d601393905 23-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Add GcRoot to clean up and enforce read barriers.

Introduce a value-type wrapper around Object* for GC roots so that 1)
we won't have to directly add the read barrier code in many places and
2) we can avoid accidentally bypassing/missing read barriers on GC
roots (the GcRoot interface ensures that the read barrier is executed
on a read).

The jdwp test passed.

Bug: 12687968
Change-Id: Ib167c7c325b3c7e3900133578815f04d219972a1
untime/class_linker-inl.h
untime/class_linker.cc
untime/class_linker.h
untime/common_runtime_test.cc
untime/gc_root-inl.h
untime/gc_root.h
untime/indirect_reference_table-inl.h
untime/indirect_reference_table.cc
untime/indirect_reference_table.h
untime/instrumentation.cc
untime/instrumentation.h
untime/intern_table.cc
untime/intern_table.h
untime/jni_internal.cc
untime/jni_internal.h
untime/mirror/array-inl.h
untime/mirror/array.cc
untime/mirror/array.h
untime/mirror/art_field.cc
untime/mirror/art_field.h
untime/mirror/art_method-inl.h
untime/mirror/art_method.cc
untime/mirror/art_method.h
untime/mirror/class.cc
untime/mirror/class.h
untime/mirror/reference.cc
untime/mirror/reference.h
untime/mirror/stack_trace_element.cc
untime/mirror/stack_trace_element.h
untime/mirror/string.cc
untime/mirror/string.h
untime/mirror/throwable.cc
untime/mirror/throwable.h
untime/monitor.cc
untime/monitor.h
untime/reference_table.cc
untime/reference_table.h
untime/runtime-inl.h
untime/runtime.cc
untime/runtime.h
untime/scoped_thread_state_change.h
9d2f0100840a41ed6c6c95f92994db7975a8a211 29-Jul-2014 Andreas Gampe <agampe@google.com> Merge "AArch64: Clean up CalleeSaveMethod frame and the use of temp registers."
b551fdcda9eb128c80de37c4fb978968bec6d4b3 25-Jul-2014 Zheng Xu <zheng.xu@arm.com> AArch64: Clean up CalleeSaveMethod frame and the use of temp registers.

CalleeSaveMethod frame size changes :
SaveAll : 368 -> 176
RefOnly : 176 -> 96
RefsAndArgs : 304 -> 224

JNI register spill size changes :
160 -> 88

In the transition assembly, use registers following the rules:
1. x0-x7 as temp/argument registers.
2. IP0, IP1 as scratch registers.
3. After correct type of callee-save-frame has been setup, all registers
are scratch-able(probably except xSELF and xSUSPEND).
4. When restore callee-save-frame, IP0 and IP1 should be untouched.
5. From C to managed code, we assume all callee save register in AAPCS
will be restored by managed code except x19(SUSPEND).

In quick compiler:
1. Use IP0, IP1 as scratch register.
2. Use IP1 as hidden argument register(IP0 will be scratched by
trampoline.)

Change-Id: I05ed9d418b01b9e87218a7608536f57e7a286e4c
ompiler/dex/quick/arm64/arm64_lir.h
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/arm64/target_arm64.cc
ompiler/jni/quick/arm64/calling_convention_arm64.cc
ompiler/utils/arm64/assembler_arm64.cc
ompiler/utils/arm64/constants_arm64.h
untime/arch/arm/quick_method_frame_info_arm.h
untime/arch/arm64/asm_support_arm64.S
untime/arch/arm64/asm_support_arm64.h
untime/arch/arm64/quick_entrypoints_arm64.S
untime/arch/arm64/quick_method_frame_info_arm64.h
untime/arch/arm64/registers_arm64.h
untime/entrypoints/quick/quick_trampoline_entrypoints.cc
2815f1242c6c3ea1fc2df7bb5e4bd1924f4e75f7 29-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Fix proxy tracing and enable tests that now work with tracing."
0398e171f206cd3b140a358ac31b0a3760380df1 25-Jul-2014 Jeff Hao <jeffhao@google.com> Fix proxy tracing and enable tests that now work with tracing.

Bug: 16386215
Change-Id: Iec2a372c921caceb050c6baf72d48b3d822899a4
untime/class_linker.cc
untime/entrypoints/quick/quick_trampoline_entrypoints.cc
untime/mirror/art_method.cc
est/Android.run-test.mk
cb55bbf206a591c4433cc32594ea58efe65770d7 28-Jul-2014 Andreas Gampe <agampe@google.com> am d20288ba: am daa31c58: Merge "ART: Reject array-length on non-reference register"

* commit 'd20288ba90d0f9a9b06ae49066eecf711001cdc8':
ART: Reject array-length on non-reference register
d20288ba90d0f9a9b06ae49066eecf711001cdc8 28-Jul-2014 Andreas Gampe <agampe@google.com> am daa31c58: Merge "ART: Reject array-length on non-reference register"

* commit 'daa31c58ec2fec209f8fdc383bf10dd2e2c64512':
ART: Reject array-length on non-reference register
4c6427a757cae2b1c79aafca71be780e54620e68 28-Jul-2014 Andreas Gampe <agampe@google.com> ART: Reject array-length on non-reference register

It should be a hard verifier failure if we detect an array-length
instruction over a non-reference-type register.

Bug: 16595896

(cherry picked from commit 65c9db8dfbeea3f708f95f058f4fed7c2af71052)

Change-Id: I56babcbe95d50fd66a132cf4434cf5fa780beb4e
untime/verifier/method_verifier.cc
63999683329612292d534e6be09dbde9480f1250 15-Jul-2014 Serban Constantinescu <serban.constantinescu@arm.com> Revert "Revert "Enable Load Store Elimination for ARM and ARM64""

This patch refactors the implementation of the LoadStoreElimination
optimisation pass. Please note that this pass was disabled and not
functional for any of the backends.

The current implementation tracks aliases and handles DalvikRegs as well
as Heap memory regions. It has been tested and it is known to optimise
out the following:
* Load - Load
* Store - Load
* Store - Store
* Load Literals

Change-Id: I3aadb12a787164146a95bc314e85fa73ad91e12b
ompiler/dex/compiler_enums.h
ompiler/dex/frontend.cc
ompiler/dex/quick/arm/assemble_arm.cc
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/utility_arm.cc
ompiler/dex/quick/arm64/assemble_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/utility_arm64.cc
ompiler/dex/quick/local_optimizations.cc
ompiler/dex/quick/mir_to_lir-inl.h
ompiler/dex/quick/mir_to_lir.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/reg_storage.h
095a35b78188bfe1ea12283b1940c1462e1ebe0b 28-Jul-2014 Andreas Gampe <agampe@google.com> am eaf570cc: am 3f49507c: Merge "ART: Rework quick entrypoint code in Mir2Lir, cleanup"

* commit 'eaf570cc58f3e65e9f54991dba746edeb620d596':
ART: Rework quick entrypoint code in Mir2Lir, cleanup
eaf570cc58f3e65e9f54991dba746edeb620d596 28-Jul-2014 Andreas Gampe <agampe@google.com> am 3f49507c: Merge "ART: Rework quick entrypoint code in Mir2Lir, cleanup"

* commit '3f49507c333b7c8d36620870522a7a1055987ef8':
ART: Rework quick entrypoint code in Mir2Lir, cleanup
312a551611f72dd8e57c23dda274d90d3d58f729 28-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 0a059b4b: am 37f1c7c6: Merge "Implement array get and array put in optimizing."

* commit '0a059b4bdbe9b596722bd2838a7166b21e84aaa2':
Implement array get and array put in optimizing.
0a059b4bdbe9b596722bd2838a7166b21e84aaa2 28-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 37f1c7c6: Merge "Implement array get and array put in optimizing."

* commit '37f1c7c6e084c1160eb1b156ab63ac114a82625a':
Implement array get and array put in optimizing.
3bbc976ff0fcc844132abde3fb03d1834d46e065 28-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 22e59fd2861a4aab16adb2b80a1d5166382a6617
4e22bb2b05755ccbfef3d28de24c060cac711fd7 28-Jul-2014 Andreas Gampe <agampe@google.com> am fbd05080: am 98cc1e55: Merge "ART: Fix target test paths"

* commit 'fbd05080b6f8d8de5578285141a383dd7d4e667a':
ART: Fix target test paths
fbd05080b6f8d8de5578285141a383dd7d4e667a 28-Jul-2014 Andreas Gampe <agampe@google.com> am 98cc1e55: Merge "ART: Fix target test paths"

* commit '98cc1e552c2ccbe5d51bc81d49e79119280f5416':
ART: Fix target test paths
2624b4b3017d9201201241ce92c6d135791bfcd9 27-Jul-2014 Ian Rogers <irogers@google.com> am fae7418d: am b3bf7afc: Merge "Remove the per-project FDO support. Use the common FDO support from build/core. LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds."

* commit 'fae7418d376c42cfc7ca6816aaf821056762b2a4':
Remove the per-project FDO support. Use the common FDO support from build/core. LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds.
fae7418d376c42cfc7ca6816aaf821056762b2a4 27-Jul-2014 Ian Rogers <irogers@google.com> am b3bf7afc: Merge "Remove the per-project FDO support. Use the common FDO support from build/core. LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds."

* commit 'b3bf7afc4288f97f9b591d19f03362e0577ed0ec':
Remove the per-project FDO support. Use the common FDO support from build/core. LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds.
771d1636ee72fabffb664bae961d4cdba6c9ad58 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 736cfc92: am 4483fbfd: Merge "Revert "Enable Load Store Elimination for ARM and ARM64""

* commit '736cfc9260976ae62fb8b8a3c087d466bdebbd4d':
Revert "Enable Load Store Elimination for ARM and ARM64"
736cfc9260976ae62fb8b8a3c087d466bdebbd4d 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 4483fbfd: Merge "Revert "Enable Load Store Elimination for ARM and ARM64""

* commit '4483fbfdf17fd7230a52cc54bc5f7fbca82bbd75':
Revert "Enable Load Store Elimination for ARM and ARM64"
eb9f0d7d471bec3bafac6f264e08745b7ee39cf5 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 54d560d5: am 123c5743: Merge "Enable Load Store Elimination for ARM and ARM64"

* commit '54d560d5b111eda9ed281f6e66246b99e811a4d0':
Enable Load Store Elimination for ARM and ARM64
54d560d5b111eda9ed281f6e66246b99e811a4d0 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 123c5743: Merge "Enable Load Store Elimination for ARM and ARM64"

* commit '123c5743374137711163346e75aaad587d142317':
Enable Load Store Elimination for ARM and ARM64
68f929e6c8462416c071a9b89c345860b3602ce3 27-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 22e59fd2861a4aab16adb2b80a1d5166382a6617
94f8973aee23d7fddf7828d1c8021353ab144662 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 2ba30eb2: am a65d63e4: Merge "SetConstantWide should mark both SSA regs as constant"

* commit '2ba30eb2136a828c54267a2b1a48848d01108252':
SetConstantWide should mark both SSA regs as constant
01888a16585284ff660001cb9d0663d3e5f43c70 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 6b4f0a54: am 5e3f45bd: Merge "ART: ReEnable check for a gap between method\'s arg "in" vregs and rest of its vregs"

* commit '6b4f0a54d2caa0bc9f4d568082379fb7597abee5':
ART: ReEnable check for a gap between method's arg "in" vregs and rest of its vregs
2ba30eb2136a828c54267a2b1a48848d01108252 27-Jul-2014 Bill Buzbee <buzbee@android.com> am a65d63e4: Merge "SetConstantWide should mark both SSA regs as constant"

* commit 'a65d63e4eb81605fd798f1ca038d651b0faa29eb':
SetConstantWide should mark both SSA regs as constant
6b4f0a54d2caa0bc9f4d568082379fb7597abee5 27-Jul-2014 Bill Buzbee <buzbee@android.com> am 5e3f45bd: Merge "ART: ReEnable check for a gap between method\'s arg "in" vregs and rest of its vregs"

* commit '5e3f45bdb987ba7fe7a4114cb5fe8483432015b6':
ART: ReEnable check for a gap between method's arg "in" vregs and rest of its vregs
1ac2c73abb18ef4fa8aa15e3bb2b96dbcfa1c878 27-Jul-2014 Andreas Gampe <agampe@google.com> am 80d45bd1: am b97df048: Merge "ART: Native bridge command-line parameter"

* commit '80d45bd196978c41af29eea7b2b58f67f637e0ed':
ART: Native bridge command-line parameter
80d45bd196978c41af29eea7b2b58f67f637e0ed 27-Jul-2014 Andreas Gampe <agampe@google.com> am b97df048: Merge "ART: Native bridge command-line parameter"

* commit 'b97df0488b5391564b5ea195a0765c943787f88d':
ART: Native bridge command-line parameter
ac5ba8412a675880d8fe489d2d4c20d08bd363ab 27-Jul-2014 Andreas Gampe <agampe@google.com> am edeb6dec: am 22e59fd2: ART: Allow arrays with erroneous component type

* commit 'edeb6decfbf84911480095585230fb13bf348c5e':
ART: Allow arrays with erroneous component type
92d7085f6f9be3024b505e812a8bc916525e0b79 27-Jul-2014 Andreas Gampe <agampe@google.com> am 0e7c2272: am 0db2c431: Merge "ART: Allow arrays with erroneous component type"

* commit '0e7c227295de2dfd7c80ada9fb8a32fcad1a8f61':
ART: Allow arrays with erroneous component type
edeb6decfbf84911480095585230fb13bf348c5e 27-Jul-2014 Andreas Gampe <agampe@google.com> am 22e59fd2: ART: Allow arrays with erroneous component type

* commit '22e59fd2861a4aab16adb2b80a1d5166382a6617':
ART: Allow arrays with erroneous component type
0e7c227295de2dfd7c80ada9fb8a32fcad1a8f61 27-Jul-2014 Andreas Gampe <agampe@google.com> am 0db2c431: Merge "ART: Allow arrays with erroneous component type"

* commit '0db2c431a3971781a52629be62f572cc5b0d35df':
ART: Allow arrays with erroneous component type
22e59fd2861a4aab16adb2b80a1d5166382a6617 24-Jul-2014 Andreas Gampe <agampe@google.com> ART: Allow arrays with erroneous component type

Array classes must tolerate having component type classes that are
erroneous. Change CreateArrayClass to use LookupClass when FindClass
failed.

Bug: 16019155

(cherry picked from commit dc13d7df5da49e93963035633a82699c68fa0971)

Change-Id: I506250949a1802898433e9099dcb8ef31dd89659
untime/class_linker.cc
214689f4bd0fd175fffb2c53ca49af0f3c1c4e11 26-Jul-2014 Andreas Gampe <agampe@google.com> am 5b5c051a: am 0237ac84: ART: Special-case cb(n)z even for in-reg constant

* commit '5b5c051a75f2da4dbd5815091be79fca7753ea6d':
ART: Special-case cb(n)z even for in-reg constant
562e7d3119bd3b6721e6e18f6d2ab7899cd02527 26-Jul-2014 Andreas Gampe <agampe@google.com> am 342baf06: am c4a5f588: Merge "ART: Special-case cb(n)z even for in-reg constant"

* commit '342baf06935538598c6c02f22c77bb0baa654617':
ART: Special-case cb(n)z even for in-reg constant
5b5c051a75f2da4dbd5815091be79fca7753ea6d 26-Jul-2014 Andreas Gampe <agampe@google.com> am 0237ac84: ART: Special-case cb(n)z even for in-reg constant

* commit '0237ac84b1459cb1718dce23f3572ae2fe1bd77e':
ART: Special-case cb(n)z even for in-reg constant
342baf06935538598c6c02f22c77bb0baa654617 26-Jul-2014 Andreas Gampe <agampe@google.com> am c4a5f588: Merge "ART: Special-case cb(n)z even for in-reg constant"

* commit 'c4a5f588c5c17ae226b56d25539ea4672f0ea9a3':
ART: Special-case cb(n)z even for in-reg constant
0237ac84b1459cb1718dce23f3572ae2fe1bd77e 26-Jul-2014 Andreas Gampe <agampe@google.com> ART: Special-case cb(n)z even for in-reg constant

Call out to OpCmpImmBranch in GenCompareAndBranch if the constant
is zero and we are testing == or !=, even when zero has been loaded
to a register already. This avoids a register size mismatch on 64b
architectures when basically doing a null check, and generally
squashes a cmp + branch to a cbz or cbnz on Arm and Mips. X86 is
not degraded.

Bug: 16562601

(cherry picked from commit b07c1f9f4d6088ca2d4c1a10819e57b19acf7f22)

Change-Id: I42701e827feb848470aa991297755d808fa0a077
ompiler/dex/quick/gen_common.cc
80713f2850e5a6d9bf6c9a2f64d2c0a056062ce6 26-Jul-2014 Andreas Gampe <agampe@google.com> am a1997328: am 9646172b: Merge "ART: Rewrite ParallelGC run-test"

* commit 'a1997328e8c8b7807de7c06589787062aa020806':
ART: Rewrite ParallelGC run-test
3fc02f3aa324a92880a9e1ac334fdde72cacae0a 26-Jul-2014 Andreas Gampe <agampe@google.com> am d596a671: am ff9d95d5: Merge "Tweaks to patchoat and other related things."

* commit 'd596a671f5de02174369b96af6739158cb67428f':
Tweaks to patchoat and other related things.
a1997328e8c8b7807de7c06589787062aa020806 26-Jul-2014 Andreas Gampe <agampe@google.com> am 9646172b: Merge "ART: Rewrite ParallelGC run-test"

* commit '9646172b4e04f981a3b1cd3af0e8c9e8a610bfd1':
ART: Rewrite ParallelGC run-test
d596a671f5de02174369b96af6739158cb67428f 26-Jul-2014 Andreas Gampe <agampe@google.com> am ff9d95d5: Merge "Tweaks to patchoat and other related things."

* commit 'ff9d95d58ea9c36d26b96f52c9a7ac4bf92fed2d':
Tweaks to patchoat and other related things.
e0720c6e9c308b68f529a9a6e7d91f7afa9f858d 26-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to f071e86c901a230f55e76bc6b55e19cca16a74cb
6d21f09582c009bdd58a9dd9dff088c327b62b03 26-Jul-2014 Andreas Gampe <agampe@google.com> am 840a873f: am f071e86c: Merge "ART: Use array-inl.h in reference_table_test" into lmp-dev

* commit '840a873f5c8dd556db3bd127ba3c606a83bab3b8':
ART: Use array-inl.h in reference_table_test
840a873f5c8dd556db3bd127ba3c606a83bab3b8 26-Jul-2014 Andreas Gampe <agampe@google.com> am f071e86c: Merge "ART: Use array-inl.h in reference_table_test" into lmp-dev

* commit 'f071e86c901a230f55e76bc6b55e19cca16a74cb':
ART: Use array-inl.h in reference_table_test
b3bf7afc4288f97f9b591d19f03362e0577ed0ec 27-Jul-2014 Ian Rogers <irogers@google.com> Merge "Remove the per-project FDO support. Use the common FDO support from build/core. LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds."
1740eca19de8870a319033eacde16793ef391825 25-Jul-2014 Dehao Chen <dehao@google.com> Remove the per-project FDO support. Use the common FDO support from build/core.
LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds.

Change-Id: I1eab8bf418b7ceb060eea18bdd304a06597af3d3
uild/Android.common_build.mk
ompiler/Android.mk
untime/Android.mk
4483fbfdf17fd7230a52cc54bc5f7fbca82bbd75 27-Jul-2014 Bill Buzbee <buzbee@android.com> Merge "Revert "Enable Load Store Elimination for ARM and ARM64""
c32447bcc8c36ee8ff265ed678c7df86936a9ebe 27-Jul-2014 Bill Buzbee <buzbee@android.com> Revert "Enable Load Store Elimination for ARM and ARM64"

On extended testing, I'm seeing a CHECK failure at utility_arm.cc:1201.

This reverts commit fcc36ba2a2b8fd10e6eebd21ecb6329606443ded.

Change-Id: Icae3d49cd7c8fcab09f2f989cbcb1d7e5c6d137a
ompiler/dex/compiler_enums.h
ompiler/dex/frontend.cc
ompiler/dex/quick/arm/assemble_arm.cc
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/utility_arm.cc
ompiler/dex/quick/arm64/assemble_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/utility_arm64.cc
ompiler/dex/quick/local_optimizations.cc
ompiler/dex/quick/mir_to_lir-inl.h
ompiler/dex/quick/mir_to_lir.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/reg_storage.h
fcc36ba2a2b8fd10e6eebd21ecb6329606443ded 15-Jul-2014 Serban Constantinescu <serban.constantinescu@arm.com> Enable Load Store Elimination for ARM and ARM64

This patch refactors the implementation of the LoadStoreElimination
optimisation pass. Please note that this pass was disabled and not
functional for any of the backends.

The current implementation tracks aliases and handles DalvikRegs as well
as Heap memory regions. It has been tested and it is known to optimise
out the following:
* Load - Load
* Store - Load
* Store - Store
* Load Literals

Change-Id: Iefae9b696f87f833ef35c451ed4d49c5a1b6fde0
ompiler/dex/compiler_enums.h
ompiler/dex/frontend.cc
ompiler/dex/quick/arm/assemble_arm.cc
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/utility_arm.cc
ompiler/dex/quick/arm64/assemble_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/utility_arm64.cc
ompiler/dex/quick/local_optimizations.cc
ompiler/dex/quick/mir_to_lir-inl.h
ompiler/dex/quick/mir_to_lir.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/reg_storage.h
b7f548495f60fcde52db11edcb9327636cc2c65a 26-Jul-2014 Andreas Gampe <agampe@google.com> am 0cadcc4b: am 3bcac48f: Merge "ART: Fix run-test 114 ParallelGC to account for OOM"

* commit '0cadcc4b53f260e4e0e2a2ef0c8f4e668a9c1a18':
ART: Fix run-test 114 ParallelGC to account for OOM
0cadcc4b53f260e4e0e2a2ef0c8f4e668a9c1a18 26-Jul-2014 Andreas Gampe <agampe@google.com> am 3bcac48f: Merge "ART: Fix run-test 114 ParallelGC to account for OOM"

* commit '3bcac48f23094fa0f46315a080ec47fc368fd4c2':
ART: Fix run-test 114 ParallelGC to account for OOM
1166458bdc50aaca5f52051631750e3adfd07b79 26-Jul-2014 Andreas Gampe <agampe@google.com> am 6a30278b: am 698d79d1: ART: Clean up API after change 102631

* commit '6a30278bf73b0db5a5107f6cac445b01a79097a1':
ART: Clean up API after change 102631
8eeca4d0551ff6840d5ed68a27e957eb48e5837e 26-Jul-2014 Andreas Gampe <agampe@google.com> am 6995c859: am 4dd37adc: Merge "ART: Clean up API after change 102631"

* commit '6995c8591f2257ec4e419aed3458a28a960d3ba4':
ART: Clean up API after change 102631
6a30278bf73b0db5a5107f6cac445b01a79097a1 26-Jul-2014 Andreas Gampe <agampe@google.com> am 698d79d1: ART: Clean up API after change 102631

* commit '698d79d1e3f348102deaa03b5e0fc23641107239':
ART: Clean up API after change 102631
6995c8591f2257ec4e419aed3458a28a960d3ba4 26-Jul-2014 Andreas Gampe <agampe@google.com> am 4dd37adc: Merge "ART: Clean up API after change 102631"

* commit '4dd37adcf68a72758236ca770272a5597cd84767':
ART: Clean up API after change 102631
698d79d1e3f348102deaa03b5e0fc23641107239 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Clean up API after change 102631

This adds an abort_on_error parameter to GetCurrentMethod, which is
by default true. This restores all previous behavior, except for
monitor installation, where it follows 101639.

Bug: 16556938

(cherry picked from commit 6ec8ebd178ed39aa09e4c7fad194900114c4121a)

Change-Id: I2dee19d30674f2ffda33b3dc963e12470f39edb9
untime/monitor.cc
untime/thread.cc
untime/thread.h
ef57ed72a3ac856f6115ae89c609d4fd892e8c41 30-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Remove bogus dcheck"
1c7c3990fe5fc5f1afe74f3d94e95015d7419186 30-Jul-2014 Andreas Gampe <agampe@google.com> ART: Remove bogus dcheck

Mea culpa.

Change-Id: I6fd3b678e30354c5ab5ec6da5b3619c26d486563
ompiler/dex/quick/gen_invoke.cc
f90283f61d6ca37abf3a9fb8447d05e79caf0160 30-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Check for duplicate class definitions in dex file verifier"
0ba238dcc21ae3544e1e8cb5d108725db8a1c134 29-Jul-2014 Andreas Gampe <agampe@google.com> ART: Check for duplicate class definitions in dex file verifier

Reject dex files that try to define two classes with the same type id.

Bug: 16016492
Change-Id: I82cc99c00b3e3cb2b3d537ec14beed9049fe900f
untime/dex_file_verifier.cc
untime/dex_file_verifier.h
e5647289ccc7dafd8b91771a7bd1cd19416aed66 29-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix missing initialization in stack_map_stream.h"
8eddd2a379e1d3c76b22f40d3d4387d12ed1a8d1 28-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix missing initialization in stack_map_stream.h

Fixes stack_map_test.

Change-Id: Ibd6659b589ec595a7af21ad3d727c0ab2dceb45c
ompiler/optimizing/stack_map_stream.h
3f49507c333b7c8d36620870522a7a1055987ef8 28-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Rework quick entrypoint code in Mir2Lir, cleanup"
984305917bf57b3f8d92965e4715a0370cc5bcfb 28-Jul-2014 Andreas Gampe <agampe@google.com> ART: Rework quick entrypoint code in Mir2Lir, cleanup

To reduce the complexity of calling trampolines in generic code,
introduce an enumeration for entrypoints. Introduce a header that lists
the entrypoint enum and exposes a templatized method that translates an
enum value to the corresponding thread offset value.

Call helpers are rewritten to have an enum parameter instead of the
thread offset. Also rewrite LoadHelper and GenConversionCall this way.
It is now LoadHelper's duty to select the right thread offset size.

Introduce InvokeTrampoline virtual method to Mir2Lir. This allows to
further simplify the call helpers, as well as make OpThreadMem specific
to X86 only (removed from Mir2Lir).

Make GenInlinedCharAt virtual, move a copy to X86 backend, and simplify
both copies. Remove LoadBaseIndexedDisp and OpRegMem from Mir2Lir, as they
are now specific to X86 only.

Remove StoreBaseIndexedDisp from Mir2Lir, as it was only ever used in the
X86 backend.

Remove OpTlsCmp from Mir2Lir, as it was only ever used in the X86 backend.

Remove OpLea from Mir2Lir, as it was only ever defined in the X86 backend.

Remove GenImmedCheck from Mir2Lir as it was neither used nor implemented.

Change-Id: If0a6182288c5d57653e3979bf547840a4c47626e
ompiler/dex/compiler_enums.h
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/fp_arm.cc
ompiler/dex/quick/arm/int_arm.cc
ompiler/dex/quick/arm/target_arm.cc
ompiler/dex/quick/arm/utility_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/fp_arm64.cc
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/target_arm64.cc
ompiler/dex/quick/arm64/utility_arm64.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mips/call_mips.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mips/fp_mips.cc
ompiler/dex/quick/mips/int_mips.cc
ompiler/dex/quick/mips/target_mips.cc
ompiler/dex/quick/mips/utility_mips.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/call_x86.cc
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/fp_x86.cc
ompiler/dex/quick/x86/int_x86.cc
ompiler/dex/quick/x86/target_x86.cc
ompiler/dex/quick/x86/utility_x86.cc
untime/entrypoints/quick/quick_entrypoints.h
untime/entrypoints/quick/quick_entrypoints_enum.h
untime/entrypoints/quick/quick_entrypoints_list.h
a65d63e4eb81605fd798f1ca038d651b0faa29eb 27-Jul-2014 Bill Buzbee <buzbee@android.com> Merge "SetConstantWide should mark both SSA regs as constant"
0db2c431a3971781a52629be62f572cc5b0d35df 27-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Allow arrays with erroneous component type"
dc13d7df5da49e93963035633a82699c68fa0971 24-Jul-2014 Andreas Gampe <agampe@google.com> ART: Allow arrays with erroneous component type

Array classes must tolerate having component type classes that are
erroneous. Change CreateArrayClass to use LookupClass when FindClass
failed.

Bug: 16019155
Change-Id: Id4868c5498431c85c199aa3cbecd23566dce3601
untime/class_linker.cc
c4a5f588c5c17ae226b56d25539ea4672f0ea9a3 26-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Special-case cb(n)z even for in-reg constant"
b07c1f9f4d6088ca2d4c1a10819e57b19acf7f22 26-Jul-2014 Andreas Gampe <agampe@google.com> ART: Special-case cb(n)z even for in-reg constant

Call out to OpCmpImmBranch in GenCompareAndBranch if the constant
is zero and we are testing == or !=, even when zero has been loaded
to a register already. This avoids a register size mismatch on 64b
architectures when basically doing a null check, and generally
squashes a cmp + branch to a cbz or cbnz on Arm and Mips. X86 is
not degraded.

Bug: 16562601
Change-Id: I1997760f43dc186a84247ad30ae91053f71d102d
ompiler/dex/quick/gen_common.cc
e4d703ae40ada1ee67eef12517a4475fffd9133d 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 0aac1d69: am 9c81c0cb: Merge "Fix main space memory leak and add checks."

* commit '0aac1d69999a77d0de68b3f19f231b71452a8ea7':
Fix main space memory leak and add checks.
0aac1d69999a77d0de68b3f19f231b71452a8ea7 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 9c81c0cb: Merge "Fix main space memory leak and add checks."

* commit '9c81c0cb0dc8c8d8ae5dca3d2d82b0eec7af589f':
Fix main space memory leak and add checks.
1c46a24c1ddaac587b8baa38626cbc9e502872d1 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix main space memory leak and add checks.

The hypothesis is that we were leaking the main space and its
bitmaps, then eventually we would run out of virtual address space,
which would cause a null bitmap (DCHECK). Finally when we tried
adding the space with a null bitmap to the heap bitmap it segfaulted.

Changed some non performance critical DCHECK -> CHECK.

Bug: 16563323

(cherry picked from commit 2796a1669ae0f3b96db8432fbd8be1b93bf335c4)

Change-Id: Ifa9d866c6c89eff22a547af4db70bc79a77690ed
untime/gc/heap.cc
untime/gc/space/malloc_space.cc
a1b730c90691321edeb67bd11baea261da59128e 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix dangling pointer bug when transitioning to background.

Dangling pointer left behind from the old rosalloc / dlmalloc
spaces. We now avoid using this pointer by using main_space_
and non_moving_space_ as well as clear the pointer when we remove
the space.

Bug: 16567203

(cherry picked from commit 00b5915828f89daaefd9e8fb215658360f76762c)

Change-Id: I5962929e4a0bb4db6f531d25ee322da7ab3f5dd4
untime/gc/heap.cc
3f8d8cc4c8bfbadbd90300894af6c1436093ac06 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am d24091d6: am b2ac1ab4: Fix main space memory leak and add checks.

* commit 'd24091d6fe2aa363efca29e44b4dafc89ae47015':
Fix main space memory leak and add checks.
89ad86ed9a4df379b79170dd307fc349a971f7a5 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 3847e645: am 5d790444: Merge "Fix dangling pointer bug when transitioning to background." into lmp-dev

* commit '3847e645ffde285b665de2ae96560afe67b2754f':
Fix dangling pointer bug when transitioning to background.
d24091d6fe2aa363efca29e44b4dafc89ae47015 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am b2ac1ab4: Fix main space memory leak and add checks.

* commit 'b2ac1ab47f84bd989fb2c94a532f5dc7d177ebe4':
Fix main space memory leak and add checks.
3847e645ffde285b665de2ae96560afe67b2754f 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 5d790444: Merge "Fix dangling pointer bug when transitioning to background." into lmp-dev

* commit '5d79044420e2cb03c0cd27c47f834943983aeb4b':
Fix dangling pointer bug when transitioning to background.
8ac76de45adf4a6cbf2d88cce0d079d211f2cb15 25-Jul-2014 Will Leshner <wleshner@google.com> am d305c3ad: Merge branch \'lmp-dev-plus-aosp\' of https://googleplex-android.googlesource.com/_direct/platform/art into lmp-dev-plus-aosp

* commit 'd305c3ad8ead4e24cee0591dd64f46355e69adfc':
79f6fcc17c9df7ee6f98e872b70a4bb647c05aef 25-Jul-2014 Stephen Hines <srhines@google.com> am 0545d972: am 3847d663: Merge "Increase limit to 2600 on host clang builds for frame size." into lmp-dev

* commit '0545d972cf95bdc58141a585016ca782d1a2274d':
Increase limit to 2600 on host clang builds for frame size.
61cccd1acb201dd7b9488436b2f5a46055b9f77e 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am b98e0d8a: am d190d989: Merge "Fix dangling pointer bug when transitioning to background."

* commit 'b98e0d8a3ada42f0eb0cc6749f7edff1431bad1a':
Fix dangling pointer bug when transitioning to background.
c7893719e61875cfe92d95585888535fb1e71dd3 25-Jul-2014 Stephen Hines <srhines@google.com> am 8cac6317: resolved conflicts for merge of 76fb6019 to lmp-dev-plus-aosp

* commit '8cac6317c5301ae1235fcb1e1befa4c6ca3ca185':
Update frame-larger-than limit to 2440 for new clang.
d305c3ad8ead4e24cee0591dd64f46355e69adfc 25-Jul-2014 Will Leshner <wleshner@google.com> Merge branch 'lmp-dev-plus-aosp' of https://googleplex-android.googlesource.com/_direct/platform/art into lmp-dev-plus-aosp
b98e0d8a3ada42f0eb0cc6749f7edff1431bad1a 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am d190d989: Merge "Fix dangling pointer bug when transitioning to background."

* commit 'd190d989ac92d2a5b9a342692564f40bd2080895':
Fix dangling pointer bug when transitioning to background.
0545d972cf95bdc58141a585016ca782d1a2274d 25-Jul-2014 Stephen Hines <srhines@google.com> am 3847d663: Merge "Increase limit to 2600 on host clang builds for frame size." into lmp-dev

* commit '3847d66393a9b14ae9b896543780dc02c038d3fa':
Increase limit to 2600 on host clang builds for frame size.
b2ac1ab47f84bd989fb2c94a532f5dc7d177ebe4 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix main space memory leak and add checks.

The hypothesis is that we were leaking the main space and its
bitmaps, then eventually we would run out of virtual address space,
which would cause a null bitmap (DCHECK). Finally when we tried
adding the space with a null bitmap to the heap bitmap it segfaulted.

Changed some non performance critical DCHECK -> CHECK.

Bug: 16563323

(cherry picked from commit 2796a1669ae0f3b96db8432fbd8be1b93bf335c4)

Change-Id: Ifa9d866c6c89eff22a547af4db70bc79a77690ed
untime/gc/heap.cc
untime/gc/space/malloc_space.cc
8cac6317c5301ae1235fcb1e1befa4c6ca3ca185 25-Jul-2014 Stephen Hines <srhines@google.com> resolved conflicts for merge of 76fb6019 to lmp-dev-plus-aosp

Change-Id: Ifc9f9fa95dda1dbe60b3be35ef30d2ca707c72d5
6c7cfdc1957de8c62025a67143d9b2826a3ae39c 25-Jul-2014 Stephen Hines <srhines@google.com> am 8b605381: am bacabce9: Merge "Add back a deleted check related to verification." into lmp-dev

* commit '8b605381493ad3421bb5f91c1b2cb14a22cb14e2':
Add back a deleted check related to verification.
cc3b794e056f62ea2425532bc85f061e9c524652 25-Jul-2014 Stephen Hines <srhines@google.com> am d85bd526: Merge "resolved conflicts for merge of 9ef2ec9b to lmp-dev-plus-aosp" into lmp-dev-plus-aosp

* commit 'd85bd5266effc37650c38e90033ffca2214e86aa':
Remove errors/warnings from tautological comparisons.
94e8c63c1e6fe3fd85b33a4af65b64ece7abba4e 25-Jul-2014 Vladimir Marko <vmarko@google.com> am 28c284f2: am 9fbe946f: Merge "Fix JNI compiler frame size adjustments."

* commit '28c284f29f8659afe47c426aad6c075cf3e3e05d':
Fix JNI compiler frame size adjustments.
5eb6962a6ed3fdd38c543adcea034462958376d4 25-Jul-2014 Narayan Kamath <narayan@google.com> am ec107544: am 1ad334e6: Merge "Rename openDexFileNative to openDexFile."

* commit 'ec107544ed34fe60e24cf5f59165a4d3a98e3951':
Rename openDexFileNative to openDexFile.
42cc070f5b5c5fd9742fad02089a561d3f387777 25-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 2307ee06: am 86507ed4: Merge "Add a new stack map scheme that encodes compilation info per pc."

* commit '2307ee06fd7aa453aa4efb9e964e44e03da9dcbd':
Add a new stack map scheme that encodes compilation info per pc.
f29579552a731bcc97a29e03e8b368dbce068188 25-Jul-2014 Andreas Gampe <agampe@google.com> am 1174dfe1: am e2f654a4: Merge "ART: Fix wrong CHECK in GetCurrentLocationForThrow"

* commit '1174dfe12410e9c864113d5c3d0a4bab4482c1e3':
ART: Fix wrong CHECK in GetCurrentLocationForThrow
4e3e065b2d2013f525ba33f27f015cf5f0b8ea2f 25-Jul-2014 Andreas Gampe <agampe@google.com> am c7808809: am b7563b64: Merge "ART: Turn on ART_TEST_KEEP_GOING by default, clean up unused vars"

* commit 'c7808809c92f756d8b309d40aef7ddce4ae06582':
ART: Turn on ART_TEST_KEEP_GOING by default, clean up unused vars
5e76656565d0980830c15192be59eb47e97bd5d8 25-Jul-2014 Andreas Gampe <agampe@google.com> am b3c3f938: resolved conflicts for merge of 307f6508 to lmp-dev-plus-aosp

* commit 'b3c3f9384f3ba864baac1ea7d0f7ed6e9c125ff2':
ART: Relax CurrentMethodVisitor requirements on GetDexPC
8b605381493ad3421bb5f91c1b2cb14a22cb14e2 25-Jul-2014 Stephen Hines <srhines@google.com> am bacabce9: Merge "Add back a deleted check related to verification." into lmp-dev

* commit 'bacabce9abe54e67192f835ebd4e013728a2121e':
Add back a deleted check related to verification.
28c284f29f8659afe47c426aad6c075cf3e3e05d 25-Jul-2014 Vladimir Marko <vmarko@google.com> am 9fbe946f: Merge "Fix JNI compiler frame size adjustments."

* commit '9fbe946f49724ff7ae30da5d366a002d1e6addfa':
Fix JNI compiler frame size adjustments.
ec107544ed34fe60e24cf5f59165a4d3a98e3951 25-Jul-2014 Narayan Kamath <narayan@google.com> am 1ad334e6: Merge "Rename openDexFileNative to openDexFile."

* commit '1ad334e6519c274b504c4d5d222c8e40920d02ee':
Rename openDexFileNative to openDexFile.
2307ee06fd7aa453aa4efb9e964e44e03da9dcbd 25-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 86507ed4: Merge "Add a new stack map scheme that encodes compilation info per pc."

* commit '86507ed48af6046ee9e5bc84daeb795fc8acc3bf':
Add a new stack map scheme that encodes compilation info per pc.
1174dfe12410e9c864113d5c3d0a4bab4482c1e3 25-Jul-2014 Andreas Gampe <agampe@google.com> am e2f654a4: Merge "ART: Fix wrong CHECK in GetCurrentLocationForThrow"

* commit 'e2f654a463976f811c5358fc0de68c0492601274':
ART: Fix wrong CHECK in GetCurrentLocationForThrow
c7808809c92f756d8b309d40aef7ddce4ae06582 25-Jul-2014 Andreas Gampe <agampe@google.com> am b7563b64: Merge "ART: Turn on ART_TEST_KEEP_GOING by default, clean up unused vars"

* commit 'b7563b641059bcff82eb4624edb806a7ce7f39c0':
ART: Turn on ART_TEST_KEEP_GOING by default, clean up unused vars
b3c3f9384f3ba864baac1ea7d0f7ed6e9c125ff2 25-Jul-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 307f6508 to lmp-dev-plus-aosp

Change-Id: If49761765f3346993fb67068e79dad65e161c6a5
5be1837da21f4581c26a3dd803cb573bc646a417 25-Jul-2014 Vladimir Marko <vmarko@google.com> am 749647c9: am ee2d1ada: Fix JNI compiler frame size adjustments.

* commit '749647c974791ce91e179e465f0b275d6cf54111':
Fix JNI compiler frame size adjustments.
749647c974791ce91e179e465f0b275d6cf54111 25-Jul-2014 Vladimir Marko <vmarko@google.com> am ee2d1ada: Fix JNI compiler frame size adjustments.

* commit 'ee2d1ada2b9d0400e56c63656f9abfbccc880377':
Fix JNI compiler frame size adjustments.
ee2d1ada2b9d0400e56c63656f9abfbccc880377 24-Jul-2014 Vladimir Marko <vmarko@google.com> Fix JNI compiler frame size adjustments.

Bug: 16321952

(cherry picked from 4e24b9da7c5ea6e517ecdbc09aa14a0995100b7e)

Change-Id: I486b7ad7ebefc7db9b56fe92809ef495c316292b
ompiler/jni/jni_compiler_test.cc
ompiler/jni/quick/jni_compiler.cc
5659725a0645066ec0b83207a120f2bd0d5ab093 25-Jul-2014 Andreas Gampe <agampe@google.com> am 51cc4322: am 195bb33e: Merge "ART: Account for multidex location strings in VMClassLoader"

* commit '51cc4322e50f73559212abc7aeafe6e5ad4948ad':
ART: Account for multidex location strings in VMClassLoader
51cc4322e50f73559212abc7aeafe6e5ad4948ad 25-Jul-2014 Andreas Gampe <agampe@google.com> am 195bb33e: Merge "ART: Account for multidex location strings in VMClassLoader"

* commit '195bb33e08f262bde1e4367f14690f8328653ab6':
ART: Account for multidex location strings in VMClassLoader
a7b1246d0cd5bcca096230a450fbfe76c0443a99 25-Jul-2014 Andreas Gampe <agampe@google.com> am 829cfffd: am 6d5e82f7: ART: Fix wrong CHECK in GetCurrentLocationForThrow

* commit '829cfffdfccb25361b479e9799cf3ae18fed5c3a':
ART: Fix wrong CHECK in GetCurrentLocationForThrow
5b70ff5e8d38a40792fe786dd55313c6733f6df8 25-Jul-2014 Andreas Gampe <agampe@google.com> am c6dfd89a: am b3ec51e6: ART: Relax CurrentMethodVisitor requirements on GetDexPC

* commit 'c6dfd89a8015ce8894f48a9881a6dc77ebcc6a13':
ART: Relax CurrentMethodVisitor requirements on GetDexPC
9a6e25962a672a92e5fd28c0df1d20cd8ad84e2c 25-Jul-2014 Andreas Gampe <agampe@google.com> am 6380efcb: am 9157c0ca: ART: Account for multidex location strings in VMClassLoader

* commit '6380efcb50fcefeca53de6ff2f376314516f6e41':
ART: Account for multidex location strings in VMClassLoader
829cfffdfccb25361b479e9799cf3ae18fed5c3a 25-Jul-2014 Andreas Gampe <agampe@google.com> am 6d5e82f7: ART: Fix wrong CHECK in GetCurrentLocationForThrow

* commit '6d5e82f78d7b121a33f935521e0a7f5335cab213':
ART: Fix wrong CHECK in GetCurrentLocationForThrow
c6dfd89a8015ce8894f48a9881a6dc77ebcc6a13 25-Jul-2014 Andreas Gampe <agampe@google.com> am b3ec51e6: ART: Relax CurrentMethodVisitor requirements on GetDexPC

* commit 'b3ec51e63c5041f77389ee001b47a8897b2a7acc':
ART: Relax CurrentMethodVisitor requirements on GetDexPC
6380efcb50fcefeca53de6ff2f376314516f6e41 25-Jul-2014 Andreas Gampe <agampe@google.com> am 9157c0ca: ART: Account for multidex location strings in VMClassLoader

* commit '9157c0ca6a57fa9f6378aebcfb2e3ff76622499a':
ART: Account for multidex location strings in VMClassLoader
6d5e82f78d7b121a33f935521e0a7f5335cab213 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix wrong CHECK in GetCurrentLocationForThrow

Under certain circumstances kDexNoIndex is actually an encoded
dex pc. Change the setup of CurrentMethodVisitor to account for that.

Bug: 16556938

(cherry picked from commit f9df5c1639a9418fcdf70476556a4c30b210701e)

Change-Id: Icb1d42ccd22296e2e0c629ebbd7e4d8c7d87f07a
untime/monitor_android.cc
untime/thread.cc
b3ec51e63c5041f77389ee001b47a8897b2a7acc 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Relax CurrentMethodVisitor requirements on GetDexPC

In case we want to dump a Java stack after an unhandled fault, in
case we hold a thinlocked monitor, that monitor might get inflated.
That can cause an abort as we may not have enough/correct information
for the state at the bottom-most call.

Relax GetDexPc in the CurrentMethodVisitor to not abort when it cannot
find a dex pc. Instead, let the caller handle such a case. This CL
allows the locking_dex_pc_ in Monitor to be DexFile::kDexNoIndex,
which avoids the above abort.

Bug: 16352802, 16556938

(cherry picked from commit 4a8c3fa4bd8d95fac5671ab778dd00b6dc3ec0e4)

Change-Id: I60d3d89603de65752d9230ceac6abb0242388c18
untime/monitor_android.cc
untime/thread.cc
9157c0ca6a57fa9f6378aebcfb2e3ff76622499a 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Account for multidex location strings in VMClassLoader

To look up resources, look in the unadorned location.

Bug: 16530747

(cherry picked from commit cb8f9e8a2941971c049b26745ea713c859342d9b)

Change-Id: I5dce30c5e3c9f38fb5436c43a3f4a51fe4062c24
untime/dex_file.h
untime/native/java_lang_VMClassLoader.cc
47654a37395692a7619df915cfb4ec5fa7093c2a 25-Jul-2014 Andreas Gampe <agampe@google.com> am e751e9a4: am 4857b868: Merge "Integrate ART with NativeBridge interfaces"

* commit 'e751e9a47a586c112dc606ea233f3307cb343618':
Integrate ART with NativeBridge interfaces
e751e9a47a586c112dc606ea233f3307cb343618 25-Jul-2014 Andreas Gampe <agampe@google.com> am 4857b868: Merge "Integrate ART with NativeBridge interfaces"

* commit '4857b868f7d5941255afc847c07f49ae496d0e1c':
Integrate ART with NativeBridge interfaces
981bb0be9b84ca755de29fd6939fd17549d9941f 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 32de2140: am c0dcf291: Fix stale remembered sets error.

* commit '32de214054f510286a277bb8c8a375a1178d13f9':
Fix stale remembered sets error.
17c10a2e5dec30687c48e4bbb29c02269cb331e4 25-Jul-2014 Sebastien Hertz <shertz@google.com> am 56aa8922: am 5dc158e9: Fix access to long/double stack values from debugger

* commit '56aa89229481bbabd243867b07a6b74ff072d7af':
Fix access to long/double stack values from debugger
32de214054f510286a277bb8c8a375a1178d13f9 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> am c0dcf291: Fix stale remembered sets error.

* commit 'c0dcf29143051cf34d6c032a7b385ac4579bd4ec':
Fix stale remembered sets error.
56aa89229481bbabd243867b07a6b74ff072d7af 25-Jul-2014 Sebastien Hertz <shertz@google.com> am 5dc158e9: Fix access to long/double stack values from debugger

* commit '5dc158e9b6635b6c5d3916ae4094e8886feb4580':
Fix access to long/double stack values from debugger
9c81c0cb0dc8c8d8ae5dca3d2d82b0eec7af589f 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix main space memory leak and add checks."
2796a1669ae0f3b96db8432fbd8be1b93bf335c4 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix main space memory leak and add checks.

The hypothesis is that we were leaking the main space and its
bitmaps, then eventually we would run out of virtual address space,
which would cause a null bitmap (DCHECK). Finally when we tried
adding the space with a null bitmap to the heap bitmap it segfaulted.

Changed some non performance critical DCHECK -> CHECK.

Bug: 16563323
Change-Id: I08a1f873752e28ebcf63ebbd90f92d994d7ca96b
untime/gc/heap.cc
untime/gc/space/malloc_space.cc
d190d989ac92d2a5b9a342692564f40bd2080895 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix dangling pointer bug when transitioning to background."
00b5915828f89daaefd9e8fb215658360f76762c 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix dangling pointer bug when transitioning to background.

Dangling pointer left behind from the old rosalloc / dlmalloc
spaces. We now avoid using this pointer by using main_space_
and non_moving_space_ as well as clear the pointer when we remove
the space.

Bug: 16567203

Change-Id: Ida9ff30783e89cd4a4d86a4d0e912701692101f1
untime/gc/heap.cc
5d79044420e2cb03c0cd27c47f834943983aeb4b 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix dangling pointer bug when transitioning to background." into lmp-dev
27c84b64bdd3302d8260c6f330513e484d97fc98 25-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix dangling pointer bug when transitioning to background.

Dangling pointer left behind from the old rosalloc / dlmalloc
spaces. We now avoid using this pointer by using main_space_
and non_moving_space_ as well as clear the pointer when we remove
the space.

Bug: 16567203

(cherry picked from commit 00b5915828f89daaefd9e8fb215658360f76762c)

Change-Id: I5962929e4a0bb4db6f531d25ee322da7ab3f5dd4
untime/gc/heap.cc
d85bd5266effc37650c38e90033ffca2214e86aa 25-Jul-2014 Stephen Hines <srhines@google.com> Merge "resolved conflicts for merge of 9ef2ec9b to lmp-dev-plus-aosp" into lmp-dev-plus-aosp
305e60ba0222a9e1edb43a3daba96f2555f83d85 25-Jul-2014 Stephen Hines <srhines@google.com> resolved conflicts for merge of 9ef2ec9b to lmp-dev-plus-aosp

Change-Id: I22a24179518bf5de94a22b21cb4c86fce3e012e6
9ef2ec9b8a80899c65db212693b43aceb6c79196 25-Jul-2014 Stephen Hines <srhines@google.com> Merge "Remove errors/warnings from tautological comparisons." into lmp-dev
4df72b8a198e2d649c6be76628d80d984cc33395 16-Jul-2014 Stephen Hines <srhines@google.com> Remove errors/warnings from tautological comparisons.

Change-Id: I2728b08d55abccd14c111c6c9da93068d4e14275
untime/gc/heap.cc
3579ffbe843ffee516726c405a4450742165f888 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 338eb238: am 54f3c041: Merge "Fix memory leak in RemoveRememberedSet."

* commit '338eb2386f251d949fdf54c9cde130b2496e6319':
Fix memory leak in RemoveRememberedSet.
daa31c58ec2fec209f8fdc383bf10dd2e2c64512 28-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Reject array-length on non-reference register"
65c9db8dfbeea3f708f95f058f4fed7c2af71052 28-Jul-2014 Andreas Gampe <agampe@google.com> ART: Reject array-length on non-reference register

It should be a hard verifier failure if we detect an array-length
instruction over a non-reference-type register.

Bug: 16595896
Change-Id: I059510b15c846551b2f8ded86cfd8127543324f4
untime/verifier/method_verifier.cc
98cc1e552c2ccbe5d51bc81d49e79119280f5416 27-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix target test paths"
1fe5e5cce85a3cdc64a8d226a8ef4e6134c2b9eb 12-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix target test paths

Nativetest is now nativetest64 on 64b targets.

Change-Id: I4c4c6bba1a56525df2993708caaae3e6f7f5f2f6
uild/Android.common_path.mk
uild/Android.common_test.mk
untime/common_runtime_test.cc
123c5743374137711163346e75aaad587d142317 27-Jul-2014 Bill Buzbee <buzbee@android.com> Merge "Enable Load Store Elimination for ARM and ARM64"
5e3f45bdb987ba7fe7a4114cb5fe8483432015b6 27-Jul-2014 Bill Buzbee <buzbee@android.com> Merge "ART: ReEnable check for a gap between method's arg "in" vregs and rest of its vregs"
b97df0488b5391564b5ea195a0765c943787f88d 27-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Native bridge command-line parameter"
855564b83db7b106d2995d0e784f1f4b62e52371 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Native bridge command-line parameter

Add a command-line parameter for the native bridge library, slight
refactor/cleanup.

Add run-test 115 to test the native bridge interface. Currently the
tests are black-listed for the target, as the setup for the test
is too complicated in the current infrastructure.

Change-Id: I6ccf19485e8c30b96e9f2fd5425278cb1ebd403f
untime/native_bridge.cc
untime/native_bridge.h
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
est/115-native-bridge/expected.txt
est/115-native-bridge/info.txt
est/115-native-bridge/nativebridge.cc
est/115-native-bridge/run
est/115-native-bridge/src/NativeBridgeMain.java
est/Android.libnativebridgetest.mk
est/Android.run-test.mk
est/etc/host-run-test-jar
est/run-test
4857b868f7d5941255afc847c07f49ae496d0e1c 25-Jul-2014 Andreas Gampe <agampe@google.com> Merge "Integrate ART with NativeBridge interfaces"
355383f61d28f2dc8072fbde2639c80627adf16d 24-Jul-2014 Yong WU <yong.wu@intel.com> Integrate ART with NativeBridge interfaces

Native-bridge will provide the following interfaces to ART:

struct NativeBridgeCallbacks {
bool (*initialize )(NativeBridgeArtCallbacks* vm_itf);
void* (*loadLibrary )(const char* libpath, int flag);
void* (*getTrampoline)(void* handle, const char* name, const char* shorty,
uint32_t len);
bool (*isSupported )(const char* libpath);
};

Native-bridge will expose a symbol NativeBridgeItf with the
type of NativeBridgeCallbacks to ART.

And ART will provide the interfaces below to native-bridge:

struct NativeBridgeArtCallbacks {
int (*logger )(int prio, const char* tag, const char* fmt, ...);
const char* (*getMethodShorty)(JNIEnv* env, jmethodID mid);
int (*getNativeMethodCount )(JNIEnv* env, jclass clazz);
int (*getNativeMethods )(JNIEnv* env, jclass clazz, JNINativeMethod* methods,
uint32_t method_count);
};

Based on the interfaces, if an ART call to dlopen fails to open a native library,
it queries the native bridge by using NativeBridgeCallbacks::isSupported(). If the
native library is supported by native-bridge, ART can load the native library
using NativeBridgeCallbacks::loadLibrary() and get a trampoline for a specific
native method using NativeBridgeCallbacks::getTrampoline(). ART can then call
the native method using the normal signature and the address of the trampoline.

On the other side, in the case of a native method calling JNI native function
CallXXXXMethodY(), native-bridge calls back to Art for the shorty of the method
using NativeBridgeArtCallbacks::getMethodShorty() so that it can prepare based
on host calling convention.

In case of JNI function RegisterNatives()/UnregisterNatives(), native bridge can
call back to NativeBridgeArtCallbacks::getNativeMethodCount() and NativeBridgeArtCallbacks
::getNativeMethods() to get all native methods of specified class so that all
corresponding trampolines can be prepared/destroyed.

Class NativeBridge is created to encapsulate the function pointers of
NativeBridgeCallbacks and provides better abstraction to ART.

Note: functionality is turned off in native_bridge.cc at the moment.

Change-Id: I652755044957a7960254648652b538cce70dd011
untime/Android.mk
untime/jni_internal.cc
untime/native_bridge.cc
untime/native_bridge.h
338eb2386f251d949fdf54c9cde130b2496e6319 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 54f3c041: Merge "Fix memory leak in RemoveRememberedSet."

* commit '54f3c041365647fc79260b65e70b4290d0b50f1c':
Fix memory leak in RemoveRememberedSet.
3847d66393a9b14ae9b896543780dc02c038d3fa 25-Jul-2014 Stephen Hines <srhines@google.com> Merge "Increase limit to 2600 on host clang builds for frame size." into lmp-dev
e1b3cc7059461027ec767c78ee21d1f0e17be69c 24-Jul-2014 Stephen Hines <srhines@google.com> Increase limit to 2600 on host clang builds for frame size.

Change-Id: I573e1bcdc7a935145e88077def9c90a5573d2e90
uild/Android.common_build.mk
137e5b22fe6672134dd2c7bb11b2ab26aff4724a 17-Jul-2014 Stephen Hines <srhines@google.com> Update frame-larger-than limit to 2440 for new clang.

Bug: 16362912

The latest version of clang is generating larger frames on elf_writer_quick.cc
and dex2oat.cc than we had previously encountered. This change unblocks the
LLVM rebase temporarily.

Change-Id: I20d9f88959b91e0509e58f01c22532720225f44d
uild/Android.common_build.mk
79ce45ce0f57ed27f280507163b7ba954307e2ba 16-Jul-2014 Stephen Hines <srhines@google.com> Add back a deleted check related to verification.

Change-Id: Ib939d1a7395a4b6cc9a7256cfb0a3498ba296744
untime/gc/heap.cc
76fb6019feacda82ea3112cb0231860bfd916287 25-Jul-2014 Stephen Hines <srhines@google.com> Merge "Update frame-larger-than limit to 2440 for new clang." into lmp-dev
bacabce9abe54e67192f835ebd4e013728a2121e 25-Jul-2014 Stephen Hines <srhines@google.com> Merge "Add back a deleted check related to verification." into lmp-dev
ebde53d23fbdebd2d82f034fdc44f1cd7adc1830 24-Jul-2014 Andreas Gampe <agampe@google.com> am fcc91b80: resolved conflicts for merge of bebee4fd to lmp-dev-plus-aosp

* commit 'fcc91b80ae77827726ab93d237f794f87b97a2e6':
ART: Refactor GenSelect, refactor gen_common accordingly
fcc91b80ae77827726ab93d237f794f87b97a2e6 24-Jul-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of bebee4fd to lmp-dev-plus-aosp
53dd11052146c8779fdbafa5bb3946ffe86d46e7 24-Jul-2014 Andreas Gampe <agampe@google.com> am b8eb3ad3: am d68168e9: Merge "ART: Do not attempt to compile a method with too many registers" into lmp-dev

* commit 'b8eb3ad343be4fbef8b90225f52f4776303289be':
ART: Do not attempt to compile a method with too many registers
89433913f013c27a1be9b97d4f134c097633dee1 24-Jul-2014 Andreas Gampe <agampe@google.com> am 337dfe0d: am 1f710373: Merge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev

* commit '337dfe0db204e7cfc6743046c7c11e08e3e3de32':
ART: Check high part of dalvik register pairs on put-wide
0b6641121477f840e8e612e329fe2dff24bad199 24-Jul-2014 Andreas Gampe <agampe@google.com> am 15b707b6: am 0f45f22e: (-s ours) ART: Throw StackOverflowError in native code

* commit '15b707b6d627976f34626d11da51c25046a04612':
ART: Throw StackOverflowError in native code
b8eb3ad343be4fbef8b90225f52f4776303289be 24-Jul-2014 Andreas Gampe <agampe@google.com> am d68168e9: Merge "ART: Do not attempt to compile a method with too many registers" into lmp-dev

* commit 'd68168e9f0c416a3ef29d9b9504ae436fa482c44':
ART: Do not attempt to compile a method with too many registers
337dfe0db204e7cfc6743046c7c11e08e3e3de32 24-Jul-2014 Andreas Gampe <agampe@google.com> am 1f710373: Merge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev

* commit '1f7103731d5a13925fbb6730d4f65d2a314c9e6d':
ART: Check high part of dalvik register pairs on put-wide
15b707b6d627976f34626d11da51c25046a04612 24-Jul-2014 Andreas Gampe <agampe@google.com> am 0f45f22e: (-s ours) ART: Throw StackOverflowError in native code

* commit '0f45f22eb3c52f0ece4c56989180e79c6680d825':
ART: Throw StackOverflowError in native code
c5c82589bc012f775dc22d4a1f576ac2992382c8 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix stale remembered sets error.

We were forgetting to remove the remembered set in transition to
background. This resulted in remembered sets being added for
spaces which no longer existed. This finally caused an error when
a new space happened to have the same address as the old space,
resulting in a CHECK failure.

Also tuned the number of ParallelGC to prevent spurrious failures
and removed the ParallelGC from broken tests in the make file.

Bug: 16532086
Bug: 16406852

Change-Id: I00bbcbd7daa03c867732d165be62b72e6c43bce1

(cherry picked from c5a8347ac491a5f521945d3835a322123830456b)
untime/gc/heap.cc
est/ParallelGC/ParallelGC.java
0dafebaf07fbf6f80b3ff669a0add4343a4eb709 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 204e57c4: resolved conflicts for merge of 7521704f to lmp-dev-plus-aosp

* commit '204e57c43824413d6e15fdf05c490ed4d869d44e':
Fix stale remembered sets error.
204e57c43824413d6e15fdf05c490ed4d869d44e 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> resolved conflicts for merge of 7521704f to lmp-dev-plus-aosp

Change-Id: Id4fe1e4c222c79a9b743e267ddca407976295248
c0dcf29143051cf34d6c032a7b385ac4579bd4ec 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix stale remembered sets error.

We were forgetting to remove the remembered set in transition to
background. This resulted in remembered sets being added for
spaces which no longer existed. This finally caused an error when
a new space happened to have the same address as the old space,
resulting in a CHECK failure.

Also tuned the number of ParallelGC to prevent spurrious failures
and removed the ParallelGC from broken tests in the make file.

Bug: 16532086
Bug: 16406852

Change-Id: I00bbcbd7daa03c867732d165be62b72e6c43bce1

(cherry picked from c5a8347ac491a5f521945d3835a322123830456b)
untime/gc/heap.cc
est/ParallelGC/ParallelGC.java
f071e86c901a230f55e76bc6b55e19cca16a74cb 26-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Use array-inl.h in reference_table_test" into lmp-dev
eb88be2ac9347decf230a4e5149c43bce0160586 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Use array-inl.h in reference_table_test

The test allocates arrays, which is an inline definition.

(cherry picked from commit 8db4c882a8d1996852163ebec966c8b4eb1e00df)

Change-Id: I1423c5419949d7c352ed0e614d4f9c5920831deb
untime/reference_table_test.cc
7e9edafd60a76f32796e8f21edb4847aa0af107c 24-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to bebee4fd10e5db6cb07f59bc0f73297c900ea5f0
8d19f7c3312029751a640abf659e80563111f4e9 24-Jul-2014 Sebastien Hertz <shertz@google.com> am 797517aa: am ca928ba8: Merge "Fix access to long/double stack values from debugger"

* commit '797517aa6226f5f34ea70d0963e703ce888b5726':
Fix access to long/double stack values from debugger
797517aa6226f5f34ea70d0963e703ce888b5726 24-Jul-2014 Sebastien Hertz <shertz@google.com> am ca928ba8: Merge "Fix access to long/double stack values from debugger"

* commit 'ca928ba8b9e109ced2b9d72622dc34bda63ac211':
Fix access to long/double stack values from debugger
5dc158e9b6635b6c5d3916ae4094e8886feb4580 16-Jul-2014 Sebastien Hertz <shertz@google.com> Fix access to long/double stack values from debugger

Long and double values live in a pair of DEX registers. When we compile DEX
code with the Quick compiler, a DEX register either lives in the stack or is
promoted to a physical register. In the case of a pair of DEX registers, the
Quick compiler assumes both registers live in the same "area": both live in
the stack or both are promoted to physical registers.

From the debugger, we used to access these values by reading/writing each DEX
register separately. However, this does not work when only one DEX register of
a pair is promoted and the other lives in the stack. In this case, the compiled
code reads from/writes to the stack only.

To fix that, the debugger must follow the same rule than the Quick compiler: if
both DEX registers are promoted, read/write them from/to physical registers,
otherwise read/write them from/to the stack. We add StackVisitor:GetVRegPair and
StackVisitor:SetVRegPair for this purpose.

We also follow the same rule when deoptimizing. However we need to do that only
when we know two consecutive DEX registers are part of a pair (long or double).
We know that thanks to the verifier.

Bug: 15527793

(cherry picked from commit c901dd7bdc80b953d04100ef2f54b8d1ca5f466b)

Change-Id: I981e088295254d75352f83a3e6ba0b292cfe3ed3
untime/debugger.cc
untime/quick_exception_handler.cc
untime/stack.cc
untime/stack.h
688e7c5c9f36573dd4da2edd889470d930b0054b 15-Jul-2014 Alexei Zavjalov <alexei.zavjalov@intel.com> ART: ReEnable check for a gap between method's arg "in" vregs and rest of its vregs

The Quick backend's runtime model includes a gap between a method's
argument ("in") vregs and the rest of its vregs. Handling a range instruction
which spans the gap is somewhat complicated, and should not happen
in normal usage of dx. Punt to the interpreter if it happened.

This issue relates to https://code.google.com/p/android/issues/detail?id=66371
Which was fixed, but the problem returned after some changes in the verify
flags set for the range bytecodes.

Change-Id: I214f32e7b4227a450257f30607135930d0adff53
Signed-off-by: Katkov, Serguei I <serguei.i.katkov@intel.com>
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
ompiler/dex/mir_graph.cc
b8b1a93a022585cd8510a7e44992d4710a3a4dd3 24-Jul-2014 Stephen Hines <srhines@google.com> am 118dbba9: am 3017527b: Merge "Increase limit to 2600 on host clang builds for frame size."

* commit '118dbba980cb2cf9dba5bad7d5ef32b6bba12abe':
Increase limit to 2600 on host clang builds for frame size.
118dbba980cb2cf9dba5bad7d5ef32b6bba12abe 24-Jul-2014 Stephen Hines <srhines@google.com> am 3017527b: Merge "Increase limit to 2600 on host clang builds for frame size."

* commit '3017527bf4ceced296b8885426b86ac939ab755f':
Increase limit to 2600 on host clang builds for frame size.
9fa2857ca18e8cb4c8b39508ea3ece8864496373 24-Jul-2014 Stephen Hines <srhines@google.com> am 50985c8f: am 7f9c8f7b: Merge "Update frame-larger-than limit to 2440 for new clang."

* commit '50985c8fe8e390e665d2207e01631f5d47e2fa14':
Update frame-larger-than limit to 2440 for new clang.
50985c8fe8e390e665d2207e01631f5d47e2fa14 24-Jul-2014 Stephen Hines <srhines@google.com> am 7f9c8f7b: Merge "Update frame-larger-than limit to 2440 for new clang."

* commit '7f9c8f7b6ce6c936d234771d2a4103a13850c422':
Update frame-larger-than limit to 2440 for new clang.
24a44cb51755259e90a75308768388dfb1665293 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 8eb38942: am 488deba5: Merge "Reduce allocations in ParallelGC test."

* commit '8eb3894224dccaf59ef203d0b5ad15484fa6dabc':
Reduce allocations in ParallelGC test.
8eb3894224dccaf59ef203d0b5ad15484fa6dabc 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 488deba5: Merge "Reduce allocations in ParallelGC test."

* commit '488deba5896104cfba15d5fe44ff618c59c6456f':
Reduce allocations in ParallelGC test.
3e2d4c85050f6bba65b7f6b3f2279416ee373a1d 24-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 26ff0b18: am cfd31c5e: Merge "Use a (somewhat) more documented environment variable."

* commit '26ff0b189ee05c8aaa81e850335132ccf4bfd466':
Use a (somewhat) more documented environment variable.
26ff0b189ee05c8aaa81e850335132ccf4bfd466 24-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am cfd31c5e: Merge "Use a (somewhat) more documented environment variable."

* commit 'cfd31c5e266d1aecc66278fdea46e88e323a181d':
Use a (somewhat) more documented environment variable.
4dd37adcf68a72758236ca770272a5597cd84767 26-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Clean up API after change 102631"
6ec8ebd178ed39aa09e4c7fad194900114c4121a 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Clean up API after change 102631

This adds an abort_on_error parameter to GetCurrentMethod, which is
by default true. This restores all previous behavior, except for
monitor installation, where it follows 101639.

Bug: 16556938
Change-Id: I9a12b9a21ccb9f558c86236bb58d15ff2fafaec0
untime/monitor.cc
untime/thread.cc
untime/thread.h
b7563b641059bcff82eb4624edb806a7ce7f39c0 25-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Turn on ART_TEST_KEEP_GOING by default, clean up unused vars"
e7655c554403dbac5110b7e3aa875116814a8dc3 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Turn on ART_TEST_KEEP_GOING by default, clean up unused vars

Change-Id: I8db60eade0338e53e76a87ef38ad661550475e3c
uild/Android.common_test.mk
195bb33e08f262bde1e4367f14690f8328653ab6 25-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Account for multidex location strings in VMClassLoader"
cb8f9e8a2941971c049b26745ea713c859342d9b 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Account for multidex location strings in VMClassLoader

To look up resources, look in the unadorned location.

Bug: 16530747
Change-Id: Ia97e39366444f6666a78ade7298d3c22b4b79f8a
untime/dex_file.h
untime/native/java_lang_VMClassLoader.cc
e55e780aad3f70750a4132a4a6f8dded46344b80 24-Jul-2014 Andreas Gampe <agampe@google.com> am 2bdbeece: am 75c99e9d: Merge "x86: GenSelect utility update"

* commit '2bdbeece0ab3fdaa6cfcd34ba9a1e3aa44d7f3ab':
x86: GenSelect utility update
bebee4fd10e5db6cb07f59bc0f73297c900ea5f0 16-Jul-2014 Andreas Gampe <agampe@google.com> ART: Refactor GenSelect, refactor gen_common accordingly

This adds a GenSelect method meant for selection of constants. The
general-purpose GenInstanceof code is refactored to take advantage of
this. This cleans up code and squashes a branch-over on ARM64 to a
cset.

Also add a slow-path for type initialization in GenInstanceof.

Bug: 16241558

(cherry picked from commit 90969af6deb19b1dbe356d62fe68d8f5698d3d8f)

Change-Id: Ie4494858bb8c26d386cf2e628172b81bba911ae5
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/int_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mips/int_mips.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
2bdbeece0ab3fdaa6cfcd34ba9a1e3aa44d7f3ab 24-Jul-2014 Andreas Gampe <agampe@google.com> am 75c99e9d: Merge "x86: GenSelect utility update"

* commit '75c99e9dd8512a44d97d9818a74a69065ad82df0':
x86: GenSelect utility update
0f45f22eb3c52f0ece4c56989180e79c6680d825 15-Jul-2014 Andreas Gampe <agampe@google.com> ART: Throw StackOverflowError in native code

Initialize stack-overflow errors in native code to be able to reduce
the preserved area size of the stack.

Includes a refactoring away from constexpr in instruction_set.h to allow
for easy changing of the values.

Bug: 16256184

(cherry picked from commit 7ea6f79bbddd69d5db86a8656a31aaaf64ae2582)

Change-Id: I117cc8485f43da5f0a470f0f5e5b3dc3b5a06246
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/mir_to_lir.h
untime/arch/arm/fault_handler_arm.cc
untime/entrypoints/entrypoint_utils.cc
untime/instruction_set.cc
untime/instruction_set.h
untime/thread.cc
untime/thread.h
untime/well_known_classes.cc
untime/well_known_classes.h
est/018-stack-overflow/expected.txt
est/018-stack-overflow/run
est/018-stack-overflow/src/Main.java
d368e81988636b834f312a6411e58cad2b9143db 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> am b94ed50a: resolved conflicts for merge of 38c488bc to lmp-dev-plus-aosp

* commit 'b94ed50a53ecbfbd360a2771a22ec91283b9a5f3':
Recycle mem-maps for collector transitions.
b94ed50a53ecbfbd360a2771a22ec91283b9a5f3 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> resolved conflicts for merge of 38c488bc to lmp-dev-plus-aosp

Change-Id: If8fbbd51232fd01a481cb47df426de169c0c830c
24078acfe850a7b37e31aaa3ae87ccb6826cabef 23-Jul-2014 Jeff Hao <jeffhao@google.com> am f4afc70f: am 0346b6be: Merge "Fix run-test --trace option if --host is specified after."

* commit 'f4afc70f8b31867587e12772465bb09489c3cebb':
Fix run-test --trace option if --host is specified after.
38c488bcd41ba632a646d7a1d790ec71a2fcf6fa 16-Jul-2014 Mathieu Chartier <mathieuc@google.com> Recycle mem-maps for collector transitions.

We now create spaces when we need them for collector transitions or
homogeneous compaction by recycling mem maps. Change the bump
pointer space size to be as large as the heap capacity instead of
1/2 heap capacity like it used to be. For GSS, bump pointer spaces
are set to 32MB currently.

Changed GSS to have main space == non moving space since we don't
need to copy from the main space.

Fixes GC stress tests 074, 096.
Fixed test 080 oom throw with -Xmx2m for GC stress test, this was
broken since it was allocating a 4 MB array before starting the
OOM process.

Bug: 14059466
Bug: 16406852

(cherry picked from commit b363f666883860d40823d5528df3c98c897f74f4)

Change-Id: I62877cfa24ec944a6f34ffac30334f454a8002fd
untime/Android.mk
untime/gc/collector/semi_space.cc
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/bump_pointer_space.cc
untime/gc/space/bump_pointer_space.h
untime/gc/space/large_object_space.cc
untime/gc/space/large_object_space.h
untime/gc/space/malloc_space.h
untime/gc/space/space.h
untime/gc/space/zygote_space.cc
untime/gc/space/zygote_space.h
untime/monitor.cc
untime/runtime.h
est/080-oom-throw/src/Main.java
f4afc70f8b31867587e12772465bb09489c3cebb 23-Jul-2014 Jeff Hao <jeffhao@google.com> am 0346b6be: Merge "Fix run-test --trace option if --host is specified after."

* commit '0346b6bef939517b45216ee0eff4cf7a0c0667f4':
Fix run-test --trace option if --host is specified after.
db78925b9c0afdf46dd46a3d75167b8786ce0a1e 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 8060f68b: am b76cac63: Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""

* commit '8060f68b0eb74acb0b89a0a32373fd1d66a9fc7f':
Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""
8060f68b0eb74acb0b89a0a32373fd1d66a9fc7f 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> am b76cac63: Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""

* commit 'b76cac637691c29daa9c44e493b5bc26346ed116':
Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""
b76cac637691c29daa9c44e493b5bc26346ed116 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> Revert "Revert "Disable adding main and non moving spaces to immune region in GSS""

This reverts commit f85c2fb317399ab540854cd7551ac47690366543.
untime/base/macros.h
untime/check_jni.cc
untime/class_linker.h
untime/gc/accounting/mod_union_table.cc
untime/gc/collector/mark_sweep-inl.h
untime/gc/collector/mark_sweep.cc
untime/gc/collector/semi_space-inl.h
untime/gc/collector/semi_space.cc
untime/gc/collector/semi_space.h
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/space.h
untime/object_callbacks.h
untime/utils.h
2dd6f729c05ff9a6c687888707c68e7894392c38 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Add a variable to disable PREBUILD in run-tests."
3bb12b9bea020e2b797ec3fe6bc253d33189ed97 28-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Add a variable to disable PREBUILD in run-tests.

Change-Id: I318d37a2d98972c689829258e129ec8973bdc038
uild/Android.common_test.mk
est/Android.run-test.mk
1ad334e6519c274b504c4d5d222c8e40920d02ee 25-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Rename openDexFileNative to openDexFile."
350b626eb1cfbaee7619e9453a4c018c07aed003 16-Jul-2014 Calin Juravle <calin@google.com> Rename openDexFileNative to openDexFile.

We no longer need two distinct methods.

Bug: 15563230

(cherry picked from commit 8edcb9c8bc62fcbd181e136c32086f2b970306a4)

Change-Id: Ib95098af0dd26733b5946d8e24ae4dfbcdbec3ba
untime/native/dalvik_system_DexFile.cc
cfd31c5e266d1aecc66278fdea46e88e323a181d 24-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Use a (somewhat) more documented environment variable."
6fbcc12a1e8c2b98ed89a290becd23e5eb38692d 24-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Use a (somewhat) more documented environment variable.

I believe OUT is not mandatory to define, whereas
ANDROID_PRODUCT_OUT is. Not sure our continuous tests define it.

Change-Id: I7cd23971384df265e59587b49760aba29133a59c
est/run-test
9fbe946f49724ff7ae30da5d366a002d1e6addfa 25-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Fix JNI compiler frame size adjustments."
4e24b9da7c5ea6e517ecdbc09aa14a0995100b7e 24-Jul-2014 Vladimir Marko <vmarko@google.com> Fix JNI compiler frame size adjustments.

Bug: 16321952
Change-Id: I6f84a59c679e335e02a8e70944a5d0bc8d73f90b
ompiler/jni/jni_compiler_test.cc
ompiler/jni/quick/jni_compiler.cc
8df73882c60451e7f789bf9b1f3db2d7dc228640 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Revert "Fix proxy tracing and enable tests that now work with tracing.""
167cc7c33f7100e3f7acc1594c066daa0122e27a 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Revert "Fix proxy tracing and enable tests that now work with tracing."

This reverts commit 0398e171f206cd3b140a358ac31b0a3760380df1.

Change-Id: I1346ab01485cc7207be0ecb4d8788c500c0df903
untime/class_linker.cc
untime/entrypoints/quick/quick_trampoline_entrypoints.cc
untime/mirror/art_method.cc
est/Android.run-test.mk
01be6e3c4e4f083842ac9a6f8f9e6c2c937b8a15 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Fix braino in Makefile."
0a0a20b44775f17519fea577401f71c4d336a673 29-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Fix braino in Makefile.

Change-Id: I7cbf694f35db97946823de148ff6dd6053091de6
est/Android.run-test.mk
37f1c7c6e084c1160eb1b156ab63ac114a82625a 28-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Implement array get and array put in optimizing."
3c7bb98698f77af10372cf31824d3bb115d9bf0f 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Implement array get and array put in optimizing.

Also fix a couple of assembler/disassembler issues.

Change-Id: I705c8572988c1a9c4df3172b304678529636d5f6
ompiler/optimizing/builder.cc
ompiler/optimizing/builder.h
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_arm.h
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86.h
ompiler/optimizing/code_generator_x86_64.cc
ompiler/optimizing/code_generator_x86_64.h
ompiler/optimizing/nodes.h
ompiler/utils/arm/assembler_thumb2.cc
ompiler/utils/assembler_thumb_test.cc
ompiler/utils/assembler_thumb_test_expected.cc.inc
isassembler/disassembler.h
isassembler/disassembler_arm.cc
est/407-arrays/expected.txt
est/407-arrays/info.txt
est/407-arrays/src/Main.java
est/407-arrays/src/TestCase.java
86507ed48af6046ee9e5bc84daeb795fc8acc3bf 25-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Add a new stack map scheme that encodes compilation info per pc."
ca928ba8b9e109ced2b9d72622dc34bda63ac211 24-Jul-2014 Sebastien Hertz <shertz@google.com> Merge "Fix access to long/double stack values from debugger"
635b8032cfb39ccc533a954b32364665716cfbac 23-Jul-2014 Andreas Gampe <agampe@google.com> am 6590cb04: am cf60db36: Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"

* commit '6590cb04e7e889756f913bf4fdddce112ba471ab':
ART: Fix x86_64 instrumentation_exit, also movsd -> movq
6f17810786baf5a1f358629a48ef9d5aac4c9d25 23-Jul-2014 Andreas Gampe <agampe@google.com> am 40f53491: am 80b3f96e: Merge "Add test-art-*-run-test-###-test-name32/64 test targets."

* commit '40f53491b67513fba358c685757ba5bcd846a4f7':
Add test-art-*-run-test-###-test-name32/64 test targets.
e0305e9b16d9f4a98ceffd218400c6848e4c528f 23-Jul-2014 Andreas Gampe <agampe@google.com> am e1603a5f: am b37576bb: Merge "ART: Fix erroneous output"

* commit 'e1603a5fec42cfc92b314e31a3abc05a7c48176a':
ART: Fix erroneous output
468a40e55e755c23eb50e66b82645cd3c2c1fa9e 23-Jul-2014 Andreas Gampe <agampe@google.com> am 9871afaf: resolved conflicts for merge of 525f2f30 to lmp-dev-plus-aosp

* commit '9871afafd29015856be3da4920809e77e1a1321b':
ART: Make run tests out of oat tests
6590cb04e7e889756f913bf4fdddce112ba471ab 23-Jul-2014 Andreas Gampe <agampe@google.com> am cf60db36: Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"

* commit 'cf60db36f19943242fb14657dd5a452a650d42dc':
ART: Fix x86_64 instrumentation_exit, also movsd -> movq
40f53491b67513fba358c685757ba5bcd846a4f7 23-Jul-2014 Andreas Gampe <agampe@google.com> am 80b3f96e: Merge "Add test-art-*-run-test-###-test-name32/64 test targets."

* commit '80b3f96ec1e408f34b8e7b76b14774794fa1abd8':
Add test-art-*-run-test-###-test-name32/64 test targets.
e1603a5fec42cfc92b314e31a3abc05a7c48176a 23-Jul-2014 Andreas Gampe <agampe@google.com> am b37576bb: Merge "ART: Fix erroneous output"

* commit 'b37576bbb133593387a0a5b7a03202e380798e64':
ART: Fix erroneous output
9871afafd29015856be3da4920809e77e1a1321b 23-Jul-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 525f2f30 to lmp-dev-plus-aosp

Change-Id: I74f36b70583f4faf57befc9c6371ffd69e9a7cf8
54f3c041365647fc79260b65e70b4290d0b50f1c 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix memory leak in RemoveRememberedSet."
5189e24fb6d42c04c48169ab2f15de56ecf3c828 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix memory leak in RemoveRememberedSet.

RemoveRememberedSet now deletes the remembered set.

Bug: 16532086
Change-Id: I01092931cc20cd0688dd42eed3dde9ad140889b2
untime/gc/heap.cc
untime/gc/heap.h
3017527bf4ceced296b8885426b86ac939ab755f 24-Jul-2014 Stephen Hines <srhines@google.com> Merge "Increase limit to 2600 on host clang builds for frame size."
1159727e271ad3dbc5f84859e3f3c463842e821e 24-Jul-2014 Stephen Hines <srhines@google.com> Increase limit to 2600 on host clang builds for frame size.

Change-Id: I573e1bcdc7a935145e88077def9c90a5573d2e90
uild/Android.common_build.mk
488deba5896104cfba15d5fe44ff618c59c6456f 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Reduce allocations in ParallelGC test."
ac3cea0c728205ad079d67f83c97408f5d81e0df 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Reduce allocations in ParallelGC test.

Fixes GC stress test mode.

Bug: 16406852
Change-Id: I86c8fd7516c3f41075bca00c7d5b4dab2bb7b1d4
est/114-ParallelGC/src/Main.java
7f9c8f7b6ce6c936d234771d2a4103a13850c422 24-Jul-2014 Stephen Hines <srhines@google.com> Merge "Update frame-larger-than limit to 2440 for new clang."
67a4338c5cc91ad3a8a3b99f06e1cf03b232d156 17-Jul-2014 Stephen Hines <srhines@google.com> Update frame-larger-than limit to 2440 for new clang.

Bug: 16362912

The latest version of clang is generating larger frames on elf_writer_quick.cc
and dex2oat.cc than we had previously encountered. This change unblocks the
LLVM rebase temporarily.

Change-Id: I20d9f88959b91e0509e58f01c22532720225f44d
uild/Android.common_build.mk
75c99e9dd8512a44d97d9818a74a69065ad82df0 24-Jul-2014 Andreas Gampe <agampe@google.com> Merge "x86: GenSelect utility update"
0346b6bef939517b45216ee0eff4cf7a0c0667f4 23-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Fix run-test --trace option if --host is specified after."
85139a3b78d942c810a157687dee0fb6a67207ae 23-Jul-2014 Jeff Hao <jeffhao@google.com> Fix run-test --trace option if --host is specified after.

Change-Id: I3911428ba762657c4433ab23e60f1771c9ddb2fe
est/run-test
7521704fef0c0ce302f3c36749cb6c830cb6b569 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Fix stale remembered sets error."
c5a8347ac491a5f521945d3835a322123830456b 24-Jul-2014 Mathieu Chartier <mathieuc@google.com> Fix stale remembered sets error.

We were forgetting to remove the remembered set in transition to
background. This resulted in remembered sets being added for
spaces which no longer existed. This finally caused an error when
a new space happened to have the same address as the old space,
resulting in a CHECK failure.

Also tuned the number of ParallelGC to prevent spurrious failures
and removed the ParallelGC from broken tests in the make file.

Bug: 16532086
Bug: 16406852

Change-Id: I00bbcbd7daa03c867732d165be62b72e6c43bce1
untime/gc/heap.cc
est/114-ParallelGC/src/Main.java
est/Android.run-test.mk
d68168e9f0c416a3ef29d9b9504ae436fa482c44 24-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Do not attempt to compile a method with too many registers" into lmp-dev
b07bba178cf18e44c4872000a0ee8907452e0aec 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Do not attempt to compile a method with too many registers

The mir_graph has a hard limit on how many ssa registers it can
handle, and will silently fail or fatal out in debug builds when
more SSA registers are necessary. This adds a check in the frontend
that tries to catch some of these cases, and makes the DCHECK a
CHECK to not silently fail.

Bug: 16018097

(cherry picked from commit 0d8ea4661c584fc095129f853d0d72b0fa09cda5)

Change-Id: Iad82178945a8f8c34943cc7573fd73d2b4decade
ompiler/dex/frontend.cc
ompiler/dex/mir_graph.h
1f7103731d5a13925fbb6730d4f65d2a314c9e6d 24-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Check high part of dalvik register pairs on put-wide" into lmp-dev
328fbbf9b2de27f02dbbee4e91bb5e612ef43203 22-Jul-2014 Andreas Gampe <agampe@google.com> ART: Check high part of dalvik register pairs on put-wide

When verifying a put-wide, it is necessary to check the lo and the hi
register for the right type.

Bug: 16018242

(cherry picked from commit 2a593a14e8e0df01a50139e0d48c7be46fb057ef)

Change-Id: I9e661951d592e155e0f281ea959e778d8f4a67ab
untime/verifier/method_verifier.cc
84ab885002deb8ad7d42b358464dde3b9ccca10e 23-Jul-2014 Andreas Gampe <agampe@google.com> am 0ebe2f82: am f5881ed6: ART: Fix x86_64 instrumentation_exit, also movsd -> movq

* commit '0ebe2f82849766ad0130bcc81ff906a1905b175e':
ART: Fix x86_64 instrumentation_exit, also movsd -> movq
9eb7e682902456e66dab7853542a5fd8b1cda23c 23-Jul-2014 Jeff Hao <jeffhao@google.com> am 80a98c06: am 2c240f79: Fix x86 instrumentation exit entrypoint and trace size limit.

* commit '80a98c068878e4a4301bdcb2677b07acd1a0558b':
Fix x86 instrumentation exit entrypoint and trace size limit.
0ebe2f82849766ad0130bcc81ff906a1905b175e 23-Jul-2014 Andreas Gampe <agampe@google.com> am f5881ed6: ART: Fix x86_64 instrumentation_exit, also movsd -> movq

* commit 'f5881ed68a05b371e7578966470ff3801b180578':
ART: Fix x86_64 instrumentation_exit, also movsd -> movq
80a98c068878e4a4301bdcb2677b07acd1a0558b 23-Jul-2014 Jeff Hao <jeffhao@google.com> am 2c240f79: Fix x86 instrumentation exit entrypoint and trace size limit.

* commit '2c240f7972dc4e6c7cbfb5d4ddcae64720230109':
Fix x86 instrumentation exit entrypoint and trace size limit.
f5881ed68a05b371e7578966470ff3801b180578 23-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix x86_64 instrumentation_exit, also movsd -> movq

Change movd/movsd to movq.

Bug: 16386215

(cherry picked from commit fea29016a79f39ac12a4ba4ebdcbc86800c03427)

Change-Id: Icca71ca2aeeb2917aff46043051d6046f04395d4
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/quick_entrypoints_x86_64.S
2c240f7972dc4e6c7cbfb5d4ddcae64720230109 23-Jul-2014 Jeff Hao <jeffhao@google.com> Fix x86 instrumentation exit entrypoint and trace size limit.

The x86 instruction movd only copies a 32-bit value when used with a
memory location. movsd properly copies 64-bits.

Bug: 16386215

(cherry picked from commit cf2e7b0621dfe7fcacd56555dffabab65d1130e7)

Change-Id: I102db8aaa5e8a6b3a88f01e545d1bb51b4f3d5d4
untime/arch/x86/quick_entrypoints_x86.S
est/run-test
e2f654a463976f811c5358fc0de68c0492601274 25-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix wrong CHECK in GetCurrentLocationForThrow"
f9df5c1639a9418fcdf70476556a4c30b210701e 25-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix wrong CHECK in GetCurrentLocationForThrow

Under certain circumstances kDexNoIndex is actually an encoded
dex pc. Change the setup of CurrentMethodVisitor to account for that.

Bug: 16556938
Change-Id: I4671f8c71c76f3e17e02db10f6da8ecc8331c87d
untime/monitor_android.cc
untime/thread.cc
9646172b4e04f981a3b1cd3af0e8c9e8a610bfd1 26-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Rewrite ParallelGC run-test"
93f3da1578bf25d3bc8cf1d121477bf29b4d760a 26-Jul-2014 Andreas Gampe <agampe@google.com> ART: Rewrite ParallelGC run-test

To better test what ParallelGC is intended to do, write a version
that will more fairly allocate objects between the threads, and
will let each thread OOM only once. Use a barrier to wait for
completion of all threads, and force a final GC by allocating some
more objects.

Bug: 16406852
Change-Id: I019ddc08515b9610c18d55280cd46cbe3ae3e5ac
est/114-ParallelGC/src/Main.java
ff9d95d58ea9c36d26b96f52c9a7ac4bf92fed2d 26-Jul-2014 Andreas Gampe <agampe@google.com> Merge "Tweaks to patchoat and other related things."
cf4bf386ef3f527825c70e01130b9276da4f786a 24-Jul-2014 Alex Light <allight@google.com> Tweaks to patchoat and other related things.

Removed some flags from patchoat that were poorly specified and fixed
some other issues with the relocation system.

Bug: 15358152

Change-Id: Ia6d47b1a008f02373307d833ba45f00ea408d76f
ex2oat/dex2oat.cc
atchoat/patchoat.cc
untime/gc/space/image_space.cc
3bcac48f23094fa0f46315a080ec47fc368fd4c2 26-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix run-test 114 ParallelGC to account for OOM"
21b4bf89b4454d2af88762200e5d8b42e0d36cf4 26-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix run-test 114 ParallelGC to account for OOM

This catches any OOMs and doesn't pollute the log.

Bug: 16406852
Change-Id: I1bc95091ccae35a8cb5f2ef0a789f8c8ce5209d0
est/114-ParallelGC/src/Main.java
307f650806e55ea54e7562a25a20b4b79f65271b 25-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Relax CurrentMethodVisitor requirements on GetDexPC"
4a8c3fa4bd8d95fac5671ab778dd00b6dc3ec0e4 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Relax CurrentMethodVisitor requirements on GetDexPC

In case we want to dump a Java stack after an unhandled fault, in
case we hold a thinlocked monitor, that monitor might get inflated.
That can cause an abort as we may not have enough/correct information
for the state at the bottom-most call.

Relax GetDexPc in the CurrentMethodVisitor to not abort when it cannot
find a dex pc. Instead, let the caller handle such a case. This CL
allows the locking_dex_pc_ in Monitor to be DexFile::kDexNoIndex,
which avoids the above abort.

Bug: 16352802, 16556938
Change-Id: I3adf89b2d8f018a0c3e3abdd26e542f46ee59eef
untime/monitor_android.cc
untime/thread.cc
3ae1533c901ceedbfb4a5e8bd8ba8964f76de1a2 23-Jul-2014 Ian Rogers <irogers@google.com> am a7dfd3c4: am 7dfc30b5: Merge "Use the TMPDIR environment variable for test directory if set."

* commit 'a7dfd3c4647b98d7fa792c39fa3f5fa2d0835ef2':
Use the TMPDIR environment variable for test directory if set.
a7dfd3c4647b98d7fa792c39fa3f5fa2d0835ef2 23-Jul-2014 Ian Rogers <irogers@google.com> am 7dfc30b5: Merge "Use the TMPDIR environment variable for test directory if set."

* commit '7dfc30b591aee167f0a38ab61a90894cc76f2066':
Use the TMPDIR environment variable for test directory if set.
7019fd9a18a426e688a1582a5650f99d70955bd7 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 51b24bf9: am 4490ff42: Merge "Rewrite topological sort order and improve GVN." into lmp-dev

* commit '51b24bf94b452e6e39b303fc6597423721ef31ba':
Rewrite topological sort order and improve GVN.
51b24bf94b452e6e39b303fc6597423721ef31ba 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 4490ff42: Merge "Rewrite topological sort order and improve GVN." into lmp-dev

* commit '4490ff42ecf8a22f4bda9cd49b889d6e4b2683ce':
Rewrite topological sort order and improve GVN.
39016a7283183386b4198a2b2e69dd25754c2961 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 20098526: am 293caab6: Fix null pointer check elimination for catch entries.

* commit '200985267b05292aa2799047bc1fd97989fb607a':
Fix null pointer check elimination for catch entries.
200985267b05292aa2799047bc1fd97989fb607a 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 293caab6: Fix null pointer check elimination for catch entries.

* commit '293caab66e9b1e4129843f6bdeb31353bb77ccef':
Fix null pointer check elimination for catch entries.
04a39b6e210bb827cd81b2cbcfdf1cc0c0d66755 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 4de0d3fe: am 0edcfd64: Merge "Fix implicit stack overflow check on optimizing/x86."

* commit '4de0d3fe0d899f858c376b3544a3dd70d005521e':
Fix implicit stack overflow check on optimizing/x86.
f719c744759417abc2146a69e89c65b2900c931d 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 93fcbaab: am 8bf67c21: Merge "Rewrite topological sort order and improve GVN."

* commit '93fcbaab1adec6b3ce79ae9c06474006ad2adc46':
Rewrite topological sort order and improve GVN.
ba928c435f69fd4f69b2ebfa00cbd2a64f5f523c 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am c518fae8: am 055fb15e: Merge "Use the correct HOST_ARCH for oat files."

* commit 'c518fae8ba05ae6dc91a2e51af744500800ba7e2':
Use the correct HOST_ARCH for oat files.
092909cd21a5052977e46084bcbde25095ac0963 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 31d09c74: am 7c66c8df: Merge "Fix null pointer check elimination for catch entries."

* commit '31d09c74caef1feed8d3c4d8931889d4fd07f8bc':
Fix null pointer check elimination for catch entries.
4de0d3fe0d899f858c376b3544a3dd70d005521e 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 0edcfd64: Merge "Fix implicit stack overflow check on optimizing/x86."

* commit '0edcfd64f5d187b9f571b00c0309be6e209d474e':
Fix implicit stack overflow check on optimizing/x86.
93fcbaab1adec6b3ce79ae9c06474006ad2adc46 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 8bf67c21: Merge "Rewrite topological sort order and improve GVN."

* commit '8bf67c21c6b5bc6c218cd5ab30fcb715b1aeb446':
Rewrite topological sort order and improve GVN.
c518fae8ba05ae6dc91a2e51af744500800ba7e2 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 055fb15e: Merge "Use the correct HOST_ARCH for oat files."

* commit '055fb15e980347d7975d8f88c531b752c0f9b316':
Use the correct HOST_ARCH for oat files.
31d09c74caef1feed8d3c4d8931889d4fd07f8bc 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 7c66c8df: Merge "Fix null pointer check elimination for catch entries."

* commit '7c66c8dffeb299743e6180b36a74018fa563ab44':
Fix null pointer check elimination for catch entries.
d066b56776230406ec4751045f5db1b759a615e0 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am f75cf7de: am cdd185b8: Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."

* commit 'f75cf7debc30335981772c77f74edf3e7180500d':
Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.
f75cf7debc30335981772c77f74edf3e7180500d 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am cdd185b8: Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."

* commit 'cdd185b893d3003236d9b79f3532201b2c5f32ca':
Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.
3f3c0c71cf6d03654f4bb4442b2436a836156eaa 23-Jul-2014 Vladimir Marko <vmarko@google.com> am 8faf95fd: am f9d6aede: Use vabs/fabs on arm/arm64 for intrinsic abs().

* commit '8faf95fd835db35ed8584de29bc095069b3251db':
Use vabs/fabs on arm/arm64 for intrinsic abs().
293caab66e9b1e4129843f6bdeb31353bb77ccef 11-Jul-2014 Vladimir Marko <vmarko@google.com> Fix null pointer check elimination for catch entries.

Remove the special treatment of catch blocks for null
pointer check elimination and class initialization check
elimination. In both cases this can help optimizing
previously missed cases. In the null check case, this
avoids incorrect optimization as exposed by the new test.

Bug: 16230771

(cherry picked from 0a810d2eab27cd097ebd09a44f0ce83aa608285b)

Change-Id: I0764f47fa0aacfa89904a82e9528177b3ad67e31
ompiler/dex/mir_optimization.cc
ompiler/dex/mir_optimization_test.cc
est/083-compiler-regressions/expected.txt
est/083-compiler-regressions/src/Main.java
e01e98b1cf17cb654b5ddfe242514a1ff005f4fc 23-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 01bd8e3d8e663fcc48d6941e4876a09657fee6c9
8faf95fd835db35ed8584de29bc095069b3251db 23-Jul-2014 Vladimir Marko <vmarko@google.com> am f9d6aede: Use vabs/fabs on arm/arm64 for intrinsic abs().

* commit 'f9d6aede77c700118e225f8312cd888262b77862':
Use vabs/fabs on arm/arm64 for intrinsic abs().
9ee4519afd97121f893f82d41d23164fc6c9ed34 17-Jul-2014 Serguei Katkov <serguei.i.katkov@intel.com> x86: GenSelect utility update

The is follow-up https://android-review.googlesource.com/#/c/101396/
to make x86 GenSelectConst32 implementation complete.

Change-Id: I69f318e18093f9a5b00f8f00f0f1c2e4ff7a9ab2
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
ompiler/dex/quick/arm/utility_arm.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/ralloc_util.cc
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
4490ff42ecf8a22f4bda9cd49b889d6e4b2683ce 23-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Rewrite topological sort order and improve GVN." into lmp-dev
1fd4821f6b3ac57a44c2ce91025686da4641d197 10-Jul-2014 Vladimir Marko <vmarko@google.com> Rewrite topological sort order and improve GVN.

Rewrite the topological sort order to include a full loop
before the blocks that go after the loop. Add a new iterator
class LoopRepeatingTopologicalSortIterator that differs from
the RepeatingTopologicalSortIterator by repeating only loops
and repeating them early. It returns to the loop head if the
head needs recalculation when we reach the end of the loop.

In GVN, use the new loop-repeating topological sort iterator
and for a loop head merge only the preceding blocks' LVNs
if we're not currently recalculating this loop.

Also fix LocalValueNumbering::InPlaceIntersectMaps() which
was keeping only the last element of the intersection, avoid
some unnecessary processing during LVN merge and add some
missing braces to MIRGraph::InferTypeAndSize().

Bug: 16398693

(cherry picked from 55fff044d3a4f7196098e25bab1dad106d9b54a2)

Change-Id: Id7bcd99c8abed1b7500b9ef723313d4c5fc6f1e8
uild/Android.gtest.mk
ompiler/dex/bb_optimizations.h
ompiler/dex/dataflow_iterator-inl.h
ompiler/dex/dataflow_iterator.h
ompiler/dex/global_value_numbering.cc
ompiler/dex/global_value_numbering.h
ompiler/dex/global_value_numbering_test.cc
ompiler/dex/local_value_numbering.cc
ompiler/dex/mir_graph.cc
ompiler/dex/mir_graph.h
ompiler/dex/mir_graph_test.cc
ompiler/dex/mir_optimization.cc
ompiler/dex/mir_optimization_test.cc
ompiler/dex/pass_driver_me.h
ompiler/dex/pass_me.h
ompiler/dex/vreg_analysis.cc
8bf67c21c6b5bc6c218cd5ab30fcb715b1aeb446 23-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Rewrite topological sort order and improve GVN."
55fff044d3a4f7196098e25bab1dad106d9b54a2 10-Jul-2014 Vladimir Marko <vmarko@google.com> Rewrite topological sort order and improve GVN.

Rewrite the topological sort order to include a full loop
before the blocks that go after the loop. Add a new iterator
class LoopRepeatingTopologicalSortIterator that differs from
the RepeatingTopologicalSortIterator by repeating only loops
and repeating them early. It returns to the loop head if the
head needs recalculation when we reach the end of the loop.

In GVN, use the new loop-repeating topological sort iterator
and for a loop head merge only the preceding blocks' LVNs
if we're not currently recalculating this loop.

Also fix LocalValueNumbering::InPlaceIntersectMaps() which
was keeping only the last element of the intersection, avoid
some unnecessary processing during LVN merge and add some
missing braces to MIRGraph::InferTypeAndSize().

Bug: 16398693
Change-Id: I4e10d4acb626a5b8a28ec0de106a7b37f9cbca32
uild/Android.gtest.mk
ompiler/dex/bb_optimizations.h
ompiler/dex/dataflow_iterator-inl.h
ompiler/dex/dataflow_iterator.h
ompiler/dex/global_value_numbering.cc
ompiler/dex/global_value_numbering.h
ompiler/dex/global_value_numbering_test.cc
ompiler/dex/local_value_numbering.cc
ompiler/dex/mir_graph.cc
ompiler/dex/mir_graph.h
ompiler/dex/mir_graph_test.cc
ompiler/dex/mir_optimization.cc
ompiler/dex/mir_optimization_test.cc
ompiler/dex/pass_driver_me.h
ompiler/dex/pass_me.h
ompiler/dex/vreg_analysis.cc
055fb15e980347d7975d8f88c531b752c0f9b316 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Use the correct HOST_ARCH for oat files."
d0f04f70cc76e9f3119bbff1ebf559396993b154 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Use the correct HOST_ARCH for oat files.

This typo explains why test-art-host-oat-optimizing-SignalTest32
would work on a 32bit host build and fail on a 64bit host build:
because dex2oat does not generate the code in the expected path
(x86_64 instead of x86), dalvikvm would re-generate it, with
the default settings (that is with quick compiler), and hence the
test would not fail.

Change-Id: I08b5ec316deb4d669fe76066d33a91fc3ed9e3f9
est/Android.oat.mk
7c66c8dffeb299743e6180b36a74018fa563ab44 23-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Fix null pointer check elimination for catch entries."
0edcfd64f5d187b9f571b00c0309be6e209d474e 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Fix implicit stack overflow check on optimizing/x86."
397f2e42beadb77d98e550bd1b25b9b61237c943 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Fix implicit stack overflow check on optimizing/x86.

They need to happen before changing ESP, and require a suspend point.

Change-Id: Id41aa9c99714f7ab8591367ea5cb9ca105b17ce8
ompiler/optimizing/code_generator_x86.cc
cdd185b893d3003236d9b79f3532201b2c5f32ca 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY."
b1efe9746724f28773d185c7137c16ca8207ed47 23-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Rules depend on DEX2OATD, not DEX2OATD_DEPENDENCY.

If dex2oatd changes, we need to re-run .oat/.art file generation.

Change-Id: I43487e024745b22b1681f4ff558bac6fd07d9881
ndroid.mk
uild/Android.oat.mk
73972b4e86b4114ccd2d1d6f7386e7fdbbbe6db8 23-Jul-2014 Jeff Hao <jeffhao@google.com> am 386f173b: am d83d1a7e: Merge "Fix x86 instrumentation exit entrypoint and trace size limit."

* commit '386f173b154578d704688629f808531c3e098e76':
Fix x86 instrumentation exit entrypoint and trace size limit.
9275a26cd4c43195f22a06d7075a1fb4c3040906 23-Jul-2014 Andreas Gampe <agampe@google.com> am 97ef2475: am ab9167bd: Merge "Changed default non-full tests to be prebuild."

* commit '97ef2475f82fd1f3388f883741fd8251a9906f66':
Changed default non-full tests to be prebuild.
386f173b154578d704688629f808531c3e098e76 23-Jul-2014 Jeff Hao <jeffhao@google.com> am d83d1a7e: Merge "Fix x86 instrumentation exit entrypoint and trace size limit."

* commit 'd83d1a7edf07c33336935faff918424b23247320':
Fix x86 instrumentation exit entrypoint and trace size limit.
97ef2475f82fd1f3388f883741fd8251a9906f66 23-Jul-2014 Andreas Gampe <agampe@google.com> am ab9167bd: Merge "Changed default non-full tests to be prebuild."

* commit 'ab9167bd054eaa8469a73250e33034b5109a7b6e':
Changed default non-full tests to be prebuild.
a86e547658e0b6b3cd701ce8e50895235d6a8867 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 4e996f6d: am 2ac30da0: (-s ours) Merge "Recycle mem-maps for collector transitions."

* commit '4e996f6dab895da9cfedd750ae674dea3b829761':
Recycle mem-maps for collector transitions.
4e996f6dab895da9cfedd750ae674dea3b829761 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 2ac30da0: (-s ours) Merge "Recycle mem-maps for collector transitions."

* commit '2ac30da089ed9f2a27c177a972f4d67754454637':
Recycle mem-maps for collector transitions.
ea267700ffcff37a5ff85f6ce0dca0027041dff0 23-Jul-2014 Mingyao Yang <mingyao@google.com> am 2ed7af23: am 7326ff0a: Merge "Fix build, missing spaces around =/<."

* commit '2ed7af23676ee4b65740f8116b25e1acf258cb0f':
Fix build, missing spaces around =/<.
2ed7af23676ee4b65740f8116b25e1acf258cb0f 23-Jul-2014 Mingyao Yang <mingyao@google.com> am 7326ff0a: Merge "Fix build, missing spaces around =/<."

* commit '7326ff0a5a602ebefde76b2785a0c6c0401e815a':
Fix build, missing spaces around =/<.
e195887f89d2859993993115317c4ae45b567415 23-Jul-2014 Ian Rogers <irogers@google.com> am 7d4c57b9: am ddc21198: Merge "Put oat test output on stderr."

* commit '7d4c57b903d89e1bd0d10be4df9e5be0477b76a3':
Put oat test output on stderr.
5adc90cdd850b91a42d462df2d5b87de945c08a4 23-Jul-2014 Mingyao Yang <mingyao@google.com> am 228b65b7: am c389c97c: Merge "Set vtable in class object to null after linking."

* commit '228b65b7687781b8d19e0e69a29619f150318ba2':
Set vtable in class object to null after linking.
7d4c57b903d89e1bd0d10be4df9e5be0477b76a3 23-Jul-2014 Ian Rogers <irogers@google.com> am ddc21198: Merge "Put oat test output on stderr."

* commit 'ddc211980aa2f6149905d8d26f67201ac8e400b3':
Put oat test output on stderr.
228b65b7687781b8d19e0e69a29619f150318ba2 23-Jul-2014 Mingyao Yang <mingyao@google.com> am c389c97c: Merge "Set vtable in class object to null after linking."

* commit 'c389c97ca93b73b3cb380cedfe438d153b524225':
Set vtable in class object to null after linking.
1cf9745ff3dee74a9383687543ca53f027e024fc 22-Jul-2014 Andreas Gampe <agampe@google.com> am 00b3a966: am c836fcbb: Merge "Made sync-test actually wait for first thread to start."

* commit '00b3a9660bc8b0b8c908cc7b75e07d1c449a57be':
Made sync-test actually wait for first thread to start.
00b3a9660bc8b0b8c908cc7b75e07d1c449a57be 22-Jul-2014 Andreas Gampe <agampe@google.com> am c836fcbb: Merge "Made sync-test actually wait for first thread to start."

* commit 'c836fcbb52d99efdd9ed4f5c104aebd0c37cb121':
Made sync-test actually wait for first thread to start.
1aee68d6ccb1849d6ee7accfdc5daa54157a3a08 22-Jul-2014 Andreas Gampe <agampe@google.com> am 8e87e14d: am f645a02c: Merge "ART: Fix checks for relocation delta"

* commit '8e87e14d559a585840aac499a6fa4113b4dcb6d3':
ART: Fix checks for relocation delta
41b2a8731d2278a86ad61774b9449b91fecb6e02 22-Jul-2014 Andreas Gampe <agampe@google.com> am 990f4e7d: am 306cd217: Merge "ART: Blacklist relocate option in oat tests"

* commit '990f4e7d9d644956e8bdea7adf94a5b4a2786f6b':
ART: Blacklist relocate option in oat tests
8e87e14d559a585840aac499a6fa4113b4dcb6d3 22-Jul-2014 Andreas Gampe <agampe@google.com> am f645a02c: Merge "ART: Fix checks for relocation delta"

* commit 'f645a02cc669232a33b2c2a3c309ed878615d4a9':
ART: Fix checks for relocation delta
990f4e7d9d644956e8bdea7adf94a5b4a2786f6b 22-Jul-2014 Andreas Gampe <agampe@google.com> am 306cd217: Merge "ART: Blacklist relocate option in oat tests"

* commit '306cd2179fc73c0b187102b7e70abf12cb47debf':
ART: Blacklist relocate option in oat tests
2ac30da089ed9f2a27c177a972f4d67754454637 23-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Recycle mem-maps for collector transitions."
b363f666883860d40823d5528df3c98c897f74f4 16-Jul-2014 Mathieu Chartier <mathieuc@google.com> Recycle mem-maps for collector transitions.

We now create spaces when we need them for collector transitions or
homogeneous compaction by recycling mem maps. Change the bump
pointer space size to be as large as the heap capacity instead of
1/2 heap capacity like it used to be. For GSS, bump pointer spaces
are set to 32MB currently.

Changed GSS to have main space == non moving space since we don't
need to copy from the main space.

Fixes GC stress tests 074, 096.
Fixed test 080 oom throw with -Xmx2m for GC stress test, this was
broken since it was allocating a 4 MB array before starting the
OOM process.

Bug: 14059466
Bug: 16406852
Change-Id: I62877cfa24ec944a6f34ffac30334f454a8002fd
untime/Android.mk
untime/gc/collector/semi_space.cc
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/bump_pointer_space.cc
untime/gc/space/bump_pointer_space.h
untime/gc/space/large_object_space.cc
untime/gc/space/large_object_space.h
untime/gc/space/malloc_space.h
untime/gc/space/space.h
untime/gc/space/zygote_space.cc
untime/gc/space/zygote_space.h
untime/monitor.cc
untime/runtime.h
est/080-oom-throw/src/Main.java
est/Android.run-test.mk
0a810d2eab27cd097ebd09a44f0ce83aa608285b 11-Jul-2014 Vladimir Marko <vmarko@google.com> Fix null pointer check elimination for catch entries.

Remove the special treatment of catch blocks for null
pointer check elimination and class initialization check
elimination. In both cases this can help optimizing
previously missed cases. In the null check case, this
avoids incorrect optimization as exposed by the new test.

Bug: 16230771
Change-Id: I834b7a1835d9ca8572f4f8d8516d93913c701ad1
ompiler/dex/mir_optimization.cc
ompiler/dex/mir_optimization_test.cc
est/083-compiler-regressions/expected.txt
est/083-compiler-regressions/src/Main.java
5bdeba10f69f8150f8458cdd759d8a91864f2063 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 7cd14d4d: am d2d90ecc: Merge "Make unit test tell if a method is a leaf."

* commit '7cd14d4d25526b943b0ef2ca9815da15659ebdef':
Make unit test tell if a method is a leaf.
7cd14d4d25526b943b0ef2ca9815da15659ebdef 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am d2d90ecc: Merge "Make unit test tell if a method is a leaf."

* commit 'd2d90ecc099eee55b2c9b38c921951ff9288b020':
Make unit test tell if a method is a leaf.
80b3f96ec1e408f34b8e7b76b14774794fa1abd8 23-Jul-2014 Andreas Gampe <agampe@google.com> Merge "Add test-art-*-run-test-###-test-name32/64 test targets."
7eeecb7de492483024dcd7198d3e9fa5497cd89b 23-Jul-2014 Alex Light <allight@google.com> Add test-art-*-run-test-###-test-name32/64 test targets.

This allows one to run only a single architecture for one of the run-tests.

Change-Id: Icb06c2b36074cbec7f7808a2fcaba97ec5501578
est/Android.run-test.mk
cf60db36f19943242fb14657dd5a452a650d42dc 23-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix x86_64 instrumentation_exit, also movsd -> movq"
fea29016a79f39ac12a4ba4ebdcbc86800c03427 23-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix x86_64 instrumentation_exit, also movsd -> movq

Change movd/movsd to movq.

Bug: 16386215
Change-Id: Icca71ca2aeeb2917aff46043051d6046f04395d4
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/quick_entrypoints_x86_64.S
c836fcbb52d99efdd9ed4f5c104aebd0c37cb121 22-Jul-2014 Andreas Gampe <agampe@google.com> Merge "Made sync-test actually wait for first thread to start."
8d9044bb4039bfd46b20edce4cff929906e492c6 22-Jul-2014 Alex Light <allight@google.com> Made sync-test actually wait for first thread to start.

This makes sure that the threads execute in the order we expect.

Change-Id: I0c4976e72ef2eb9e5fd66184eb1cd4821ea1e42b
est/050-sync-test/src/Main.java
f645a02cc669232a33b2c2a3c309ed878615d4a9 22-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix checks for relocation delta"
45232a423e8ceb64abf51100c26b693781c0d897 22-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix checks for relocation delta

Change < to <= and > to >=.

Change-Id: I7579e3c13dc1b33801ace3a0f8d85cadaee41e6e
untime/gc/space/image_space.cc
306cd2179fc73c0b187102b7e70abf12cb47debf 22-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Blacklist relocate option in oat tests"
508c1c1b89d37ba74c01de7c1b8c01342770be8a 22-Jul-2014 Andreas Gampe <agampe@google.com> ART: Blacklist relocate option in oat tests

To avoid overwriting issues when running the relocate option for
oat tests, blacklist them.

Change-Id: I37685a761fd0949502da134690d88ba2a399ea44
est/Android.oat.mk
b37576bbb133593387a0a5b7a03202e380798e64 23-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fix erroneous output"
e8b46af9c9e9ac28ea868de41bb0679fbad0dfda 23-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fix erroneous output

Make run-tests quiet.

Change-Id: I80da9ac04fa95a4094dee874c8703ea563acc1ee
est/etc/push-and-run-prebuilt-test-jar
525f2f30851f5e809451fc01a7d0a8baac0abb2b 23-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Make run tests out of oat tests"
1c83cbc4a817acbd7f9abb5b29a2d418a958e6a1 23-Jul-2014 Andreas Gampe <agampe@google.com> ART: Make run tests out of oat tests

Transforms all former oat tests into run tests.

Change-Id: I190dd39456454c36e5538a2c044d993965a67533
ndroid.mk
uild/Android.common_test.mk
atchoat/patchoat.cc
est/000-nop/build
est/000-nop/expected.txt
est/000-nop/info.txt
est/000-nop/run
est/001-HelloWorld/expected.txt
est/001-HelloWorld/info.txt
est/001-HelloWorld/src/Main.java
est/001-Main/expected.txt
est/001-Main/info.txt
est/001-Main/src/Main.java
est/001-nop/build
est/001-nop/expected.txt
est/001-nop/info.txt
est/001-nop/run
est/004-InterfaceTest/expected.txt
est/004-InterfaceTest/info.txt
est/004-InterfaceTest/src/Main.java
est/004-JniTest/expected.txt
est/004-JniTest/info.txt
est/004-JniTest/jni_test.cc
est/004-JniTest/src/Main.java
est/004-NativeAllocations/expected.txt
est/004-NativeAllocations/info.txt
est/004-NativeAllocations/src/Main.java
est/004-ReferenceMap/expected.txt
est/004-ReferenceMap/info.txt
est/004-ReferenceMap/src/Main.java
est/004-ReferenceMap/stack_walk_refmap_jni.cc
est/004-SignalTest/expected.txt
est/004-SignalTest/info.txt
est/004-SignalTest/signaltest.cc
est/004-SignalTest/src/Main.java
est/004-StackWalk/expected.txt
est/004-StackWalk/info.txt
est/004-StackWalk/src/Main.java
est/004-StackWalk/stack_walk_jni.cc
est/004-ThreadStress/check
est/004-ThreadStress/expected.txt
est/004-ThreadStress/info.txt
est/004-ThreadStress/src/Main.java
est/004-UnsafeTest/expected.txt
est/004-UnsafeTest/info.txt
est/004-UnsafeTest/src/Main.java
est/004-UnsafeTest/unsafe_test.cc
est/004-annotations/build
est/004-annotations/expected.txt
est/004-annotations/info.txt
est/004-annotations/src/Main.java
est/004-annotations/src/android/test/AnnoSimplePackage1.java
est/004-annotations/src/android/test/anno/AnnoArrayField.java
est/004-annotations/src/android/test/anno/AnnoFancyConstructor.java
est/004-annotations/src/android/test/anno/AnnoFancyField.java
est/004-annotations/src/android/test/anno/AnnoFancyMethod.java
est/004-annotations/src/android/test/anno/AnnoFancyParameter.java
est/004-annotations/src/android/test/anno/AnnoFancyType.java
est/004-annotations/src/android/test/anno/AnnoSimpleConstructor.java
est/004-annotations/src/android/test/anno/AnnoSimpleField.java
est/004-annotations/src/android/test/anno/AnnoSimpleLocalVariable.java
est/004-annotations/src/android/test/anno/AnnoSimpleMethod.java
est/004-annotations/src/android/test/anno/AnnoSimplePackage.java
est/004-annotations/src/android/test/anno/AnnoSimpleParameter.java
est/004-annotations/src/android/test/anno/AnnoSimpleType.java
est/004-annotations/src/android/test/anno/AnnoSimpleType2.java
est/004-annotations/src/android/test/anno/AnnoSimpleTypeInvis.java
est/004-annotations/src/android/test/anno/ExportedProperty.java
est/004-annotations/src/android/test/anno/FullyNoted.java
est/004-annotations/src/android/test/anno/INoted.java
est/004-annotations/src/android/test/anno/IntToString.java
est/004-annotations/src/android/test/anno/MissingAnnotation.java
est/004-annotations/src/android/test/anno/SimplyNoted.java
est/004-annotations/src/android/test/anno/SomeClass.java
est/004-annotations/src/android/test/anno/SubNoted.java
est/004-annotations/src/android/test/anno/TestAnnotations.java
est/004-annotations/src/android/test/anno/package-info.java
est/004-annotations/src/android/test/package-info.java
est/005-annotations/build
est/005-annotations/expected.txt
est/005-annotations/info.txt
est/005-annotations/src/Main.java
est/005-annotations/src/android/test/AnnoSimplePackage1.java
est/005-annotations/src/android/test/anno/AnnoArrayField.java
est/005-annotations/src/android/test/anno/AnnoFancyConstructor.java
est/005-annotations/src/android/test/anno/AnnoFancyField.java
est/005-annotations/src/android/test/anno/AnnoFancyMethod.java
est/005-annotations/src/android/test/anno/AnnoFancyParameter.java
est/005-annotations/src/android/test/anno/AnnoFancyType.java
est/005-annotations/src/android/test/anno/AnnoSimpleConstructor.java
est/005-annotations/src/android/test/anno/AnnoSimpleField.java
est/005-annotations/src/android/test/anno/AnnoSimpleLocalVariable.java
est/005-annotations/src/android/test/anno/AnnoSimpleMethod.java
est/005-annotations/src/android/test/anno/AnnoSimplePackage.java
est/005-annotations/src/android/test/anno/AnnoSimpleParameter.java
est/005-annotations/src/android/test/anno/AnnoSimpleType.java
est/005-annotations/src/android/test/anno/AnnoSimpleType2.java
est/005-annotations/src/android/test/anno/AnnoSimpleTypeInvis.java
est/005-annotations/src/android/test/anno/ExportedProperty.java
est/005-annotations/src/android/test/anno/FullyNoted.java
est/005-annotations/src/android/test/anno/INoted.java
est/005-annotations/src/android/test/anno/IntToString.java
est/005-annotations/src/android/test/anno/MissingAnnotation.java
est/005-annotations/src/android/test/anno/SimplyNoted.java
est/005-annotations/src/android/test/anno/SomeClass.java
est/005-annotations/src/android/test/anno/SubNoted.java
est/005-annotations/src/android/test/anno/TestAnnotations.java
est/005-annotations/src/android/test/anno/package-info.java
est/005-annotations/src/android/test/package-info.java
est/005-args/expected.txt
est/005-args/info.txt
est/005-args/src/ArgsTest.java
est/005-args/src/Main.java
est/006-args/expected.txt
est/006-args/info.txt
est/006-args/src/ArgsTest.java
est/006-args/src/Main.java
est/006-count10/expected.txt
est/006-count10/info.txt
est/006-count10/src/Main.java
est/007-count10/expected.txt
est/007-count10/info.txt
est/007-count10/src/Main.java
est/007-exceptions/expected.txt
est/007-exceptions/info.txt
est/007-exceptions/src/Main.java
est/008-exceptions/expected.txt
est/008-exceptions/info.txt
est/008-exceptions/src/Main.java
est/008-instanceof/expected.txt
est/008-instanceof/info.txt
est/008-instanceof/src/Iface1.java
est/008-instanceof/src/Iface2.java
est/008-instanceof/src/Iface2Sub1.java
est/008-instanceof/src/ImplA.java
est/008-instanceof/src/ImplB.java
est/008-instanceof/src/ImplBSub.java
est/008-instanceof/src/Main.java
est/009-instanceof/expected.txt
est/009-instanceof/info.txt
est/009-instanceof/src/Iface1.java
est/009-instanceof/src/Iface2.java
est/009-instanceof/src/Iface2Sub1.java
est/009-instanceof/src/ImplA.java
est/009-instanceof/src/ImplB.java
est/009-instanceof/src/ImplBSub.java
est/009-instanceof/src/Main.java
est/009-instanceof2/expected.txt
est/009-instanceof2/info.txt
est/009-instanceof2/src/Iface1.java
est/009-instanceof2/src/Iface2.java
est/009-instanceof2/src/Iface2Sub1.java
est/009-instanceof2/src/ImplA.java
est/009-instanceof2/src/ImplB.java
est/009-instanceof2/src/ImplBSub.java
est/009-instanceof2/src/Main.java
est/114-ParallelGC/expected.txt
est/114-ParallelGC/info.txt
est/114-ParallelGC/src/Main.java
est/Android.libarttest.mk
est/Android.oat.mk
est/Android.run-test.mk
est/HelloWorld/HelloWorld.java
est/InterfaceTest/InterfaceTest.java
est/JniTest/JniTest.java
est/JniTest/jni_test.cc
est/NativeAllocations/NativeAllocations.java
est/ParallelGC/ParallelGC.java
est/ReferenceMap/ReferenceMap.java
est/ReferenceMap/stack_walk_refmap_jni.cc
est/SignalTest/SignalTest.java
est/SignalTest/signaltest.cc
est/StackWalk/StackWalk.java
est/StackWalk/stack_walk_jni.cc
est/ThreadStress/ThreadStress.java
est/UnsafeTest/UnsafeTest.java
est/UnsafeTest/unsafe_test.cc
est/etc/default-check
est/etc/host-run-test-jar
est/etc/push-and-run-prebuilt-test-jar
est/run-test
7dfc30b591aee167f0a38ab61a90894cc76f2066 23-Jul-2014 Ian Rogers <irogers@google.com> Merge "Use the TMPDIR environment variable for test directory if set."
6a6d3c2712fab6314ed28dc080a50788d270a8fe 23-Jul-2014 Ian Rogers <irogers@google.com> Use the TMPDIR environment variable for test directory if set.

Bug: 16499668

Change-Id: I7da5559c13597d7bca4e4037a1e9335f0b6d8230
uild/Android.common_path.mk
d83d1a7edf07c33336935faff918424b23247320 23-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Fix x86 instrumentation exit entrypoint and trace size limit."
cf2e7b0621dfe7fcacd56555dffabab65d1130e7 23-Jul-2014 Jeff Hao <jeffhao@google.com> Fix x86 instrumentation exit entrypoint and trace size limit.

The x86 instruction movd only copies a 32-bit value when used with a
memory location. movsd properly copies 64-bits.

Bug: 16386215

Change-Id: Ia59b2c2af72ce5202c7b62413687aedb48cfd25e
untime/arch/x86/quick_entrypoints_x86.S
est/run-test
ab9167bd054eaa8469a73250e33034b5109a7b6e 23-Jul-2014 Andreas Gampe <agampe@google.com> Merge "Changed default non-full tests to be prebuild."
9d722533b0ef6547ee0ab5286f65af98451c36e4 23-Jul-2014 Alex Light <allight@google.com> Changed default non-full tests to be prebuild.

Also added ability to turn off non-prebuild manually.

Change-Id: I0315ac43703a9c7e79812658523013799fb5d5dd
uild/Android.common_test.mk
est/Android.run-test.mk
est/etc/host-run-test-jar
est/etc/push-and-run-prebuilt-test-jar
est/run-all-tests
est/run-test
7326ff0a5a602ebefde76b2785a0c6c0401e815a 23-Jul-2014 Mingyao Yang <mingyao@google.com> Merge "Fix build, missing spaces around =/<."
1a12858eb15a14788478c4aca82c052bc84fcafa 23-Jul-2014 Mingyao Yang <mingyao@google.com> Fix build, missing spaces around =/<.

Change-Id: I2e7824075626a07eccb0a5eb77ef157214fe70fb
untime/class_linker.cc
ddc211980aa2f6149905d8d26f67201ac8e400b3 23-Jul-2014 Ian Rogers <irogers@google.com> Merge "Put oat test output on stderr."
d2c0b097261f8c55139bfb6426c89f3d0f8deb8a 22-Jul-2014 Ian Rogers <irogers@google.com> Put oat test output on stderr.

Change-Id: Iad318f63263dc5d264d8a84eacedf5065a4e5248
uild/Android.common_test.mk
est/Android.oat.mk
c389c97ca93b73b3cb380cedfe438d153b524225 23-Jul-2014 Mingyao Yang <mingyao@google.com> Merge "Set vtable in class object to null after linking."
2cdbad7c62f126581ec5177104de961c4d71adaa 16-Jul-2014 Mingyao Yang <mingyao@google.com> Set vtable in class object to null after linking.

This is follow-up work of embedding imt and vtable for
faster interface/virtual call dispatching.
Once vtable becomes embedded, the original vtable is nulled.

Change-Id: I307696657d1e283654169dbecb8f7815c42bbabc
ompiler/driver/compiler_driver-inl.h
untime/class_linker.cc
untime/class_linker_test.cc
untime/entrypoints/entrypoint_utils-inl.h
untime/interpreter/interpreter_common.h
untime/mirror/art_method.cc
untime/mirror/class-inl.h
untime/mirror/class.cc
untime/mirror/class.h
untime/verifier/method_verifier.cc
est/100-reflect2/expected.txt
7a88e1f3135086d43e4cda6cf00b2386a70221c5 22-Jul-2014 Andreas Gampe <agampe@google.com> am a534eea1: am 16fc9f61: Merge "Runtime can now be set to require relocation"

* commit 'a534eea11b9642471f144a5d892fe3d9ad036b3f':
Runtime can now be set to require relocation
575cdab2df76416b1f79f3736cfb191a131d5299 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am d4c3ba85: am 84568fdf: Merge "Interpreter can kick in even when implicit checks are enabled."

* commit 'd4c3ba853cc360f173a13e4fda1cd0657afc6475':
Interpreter can kick in even when implicit checks are enabled.
17aa8b39869c92a60e4dd688edfb9eca1760fd9d 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 575541c9: am e10a0bd0: Merge "Stack overflow checks and NPE checks for optimizing."

* commit '575541c9ce6d3801d4d9acad226f9c3ffd710c7a':
Stack overflow checks and NPE checks for optimizing.
aff6f171e8f1adeb663c38b5c145d8edecf95ddb 22-Jul-2014 Vladimir Marko <vmarko@google.com> am 9efa6cf0: am 2983d230: Merge "Use vabs/fabs on arm/arm64 for intrinsic abs()."

* commit '9efa6cf0933de9bac4d9e9ce130c3fbaf9bf5664':
Use vabs/fabs on arm/arm64 for intrinsic abs().
a534eea11b9642471f144a5d892fe3d9ad036b3f 22-Jul-2014 Andreas Gampe <agampe@google.com> am 16fc9f61: Merge "Runtime can now be set to require relocation"

* commit '16fc9f617e395758eb95b5f2124c79a828186b55':
Runtime can now be set to require relocation
f9d6aede77c700118e225f8312cd888262b77862 17-Jul-2014 Vladimir Marko <vmarko@google.com> Use vabs/fabs on arm/arm64 for intrinsic abs().

Bug: 11579369

(cherry picked from 5030d3ee8c6fe10394912ede107cbc8df63b7b16)

Change-Id: I7b0596a8e7e3c87a93b225519c5aeedfe4f22e6d
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/fp_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/fp_arm64.cc
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mips/int_mips.cc
ompiler/dex/quick/mir_to_lir.h
d4c3ba853cc360f173a13e4fda1cd0657afc6475 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 84568fdf: Merge "Interpreter can kick in even when implicit checks are enabled."

* commit '84568fdf08f8f476292996ad653b4453d2894d23':
Interpreter can kick in even when implicit checks are enabled.
575541c9ce6d3801d4d9acad226f9c3ffd710c7a 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am e10a0bd0: Merge "Stack overflow checks and NPE checks for optimizing."

* commit 'e10a0bd05b195f71cc0ff2d59568d02d29939927':
Stack overflow checks and NPE checks for optimizing.
9efa6cf0933de9bac4d9e9ce130c3fbaf9bf5664 22-Jul-2014 Vladimir Marko <vmarko@google.com> am 2983d230: Merge "Use vabs/fabs on arm/arm64 for intrinsic abs()."

* commit '2983d230534aee99090d28b2666dae094440f1c4':
Use vabs/fabs on arm/arm64 for intrinsic abs().
d64adce596c891713ca4c4b0f167641b7d0dc3a5 22-Jul-2014 Ian Rogers <irogers@google.com> am b17f61e3: am ebb6b5c9: Merge "Avoid marking erroneous classes as erroneous twice."

* commit 'b17f61e3f1f4b1f814ed9d879f00dcd4fe9b3257':
Avoid marking erroneous classes as erroneous twice.
8a16e5bc112bc74621dc174a9e5e8eaf49f2d20d 22-Jul-2014 Andreas Gampe <agampe@google.com> am 2caead0b: am 9d9fec65: Merge "ART: Throw StackOverflowError in native code"

* commit '2caead0b9f465a15ed31bceb80ab7597d21dc4d0':
ART: Throw StackOverflowError in native code
b17f61e3f1f4b1f814ed9d879f00dcd4fe9b3257 22-Jul-2014 Ian Rogers <irogers@google.com> am ebb6b5c9: Merge "Avoid marking erroneous classes as erroneous twice."

* commit 'ebb6b5c90857f390db5a4f840bbe67b3a59a22d8':
Avoid marking erroneous classes as erroneous twice.
2caead0b9f465a15ed31bceb80ab7597d21dc4d0 22-Jul-2014 Andreas Gampe <agampe@google.com> am 9d9fec65: Merge "ART: Throw StackOverflowError in native code"

* commit '9d9fec65366ea4996b17141c97ff94416239b63e':
ART: Throw StackOverflowError in native code
b0107fbced3950b865c64459712b1705c467655a 22-Jul-2014 Andreas Gampe <agampe@google.com> am 4971caf2: am 7ff831f6: Merge "ART: Check high part of dalvik register pairs on put-wide"

* commit '4971caf288ec96bc5327cac0033ebde20d5ad3b6':
ART: Check high part of dalvik register pairs on put-wide
d32577837136cbec747cedc515d738d62581c5f3 22-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to 01bd8e3d8e663fcc48d6941e4876a09657fee6c9
4971caf288ec96bc5327cac0033ebde20d5ad3b6 22-Jul-2014 Andreas Gampe <agampe@google.com> am 7ff831f6: Merge "ART: Check high part of dalvik register pairs on put-wide"

* commit '7ff831f63111de69c71bc8c5cb1042d698b72070':
ART: Check high part of dalvik register pairs on put-wide
77a6e1c431e6cd48312ede4c7038b641aeea221d 22-Jul-2014 Ian Rogers <irogers@google.com> am 115323db: am 0a142c96: Merge "Redirect failing test output to stderr."

* commit '115323db8efc1a7264bebef215edae9356a1b810':
Redirect failing test output to stderr.
115323db8efc1a7264bebef215edae9356a1b810 22-Jul-2014 Ian Rogers <irogers@google.com> am 0a142c96: Merge "Redirect failing test output to stderr."

* commit '0a142c96c50ca9d2edb6ef995107fe368cd0a3fa':
Redirect failing test output to stderr.
acff0874dbb02a89bd2f8b00fc8b66c5b384f7b9 22-Jul-2014 Ian Rogers <irogers@google.com> am 5c3eb273: am 9cdde520: Merge "ART: Increase command buffer size in assembler_thumb_test"

* commit '5c3eb273227956215cc9a83ba8d724e3f7bc4b2f':
ART: Increase command buffer size in assembler_thumb_test
5c3eb273227956215cc9a83ba8d724e3f7bc4b2f 22-Jul-2014 Ian Rogers <irogers@google.com> am 9cdde520: Merge "ART: Increase command buffer size in assembler_thumb_test"

* commit '9cdde5200a890e203c23e15593a9a01b06160368':
ART: Increase command buffer size in assembler_thumb_test
6da76d2c1f10a254291962607344a9c03a95a647 22-Jul-2014 Mathieu Chartier <mathieuc@google.com> am f63063c7: am 01bd8e3d: Merge "Revert "Disable adding main and non moving spaces to immune region in GSS"" into lmp-dev

* commit 'f63063c7f9f37786bc174e78c57309a7888d7b98':
Revert "Disable adding main and non moving spaces to immune region in GSS"
f63063c7f9f37786bc174e78c57309a7888d7b98 22-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 01bd8e3d: Merge "Revert "Disable adding main and non moving spaces to immune region in GSS"" into lmp-dev

* commit '01bd8e3d8e663fcc48d6941e4876a09657fee6c9':
Revert "Disable adding main and non moving spaces to immune region in GSS"
dcd871901d58645d3ce1ebfa7487ab39f7a01bcd 22-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 44dec910: am 96823a65: Merge "Add detection of zygote vs app vs image objects in hprof"

* commit '44dec910634393d725991870dbfde1fa88c72215':
Add detection of zygote vs app vs image objects in hprof
44dec910634393d725991870dbfde1fa88c72215 22-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 96823a65: Merge "Add detection of zygote vs app vs image objects in hprof"

* commit '96823a6504d28cfbf2806ab301084291ddd1159e':
Add detection of zygote vs app vs image objects in hprof
7872546a3d4de9309cc691293246d05f1e8b927f 21-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> am cc9c29c0: am c62944ad: Merge "Add read barriers for the GC roots in Instrumentation."

* commit 'cc9c29c0235aebc82d03da2806366d80ab8f3852':
Add read barriers for the GC roots in Instrumentation.
271e05fb5c129a4f9aaa401e2294ef038e4b28b5 21-Jul-2014 Ian Rogers <irogers@google.com> am 99294a87: am 719ca5ad: Merge "Fix erroneous behaviors with OOME present."

* commit '99294a8735fb6cdd1b8924af6c046886d74d2411':
Fix erroneous behaviors with OOME present.
91e9a3e1f043dc5b405a0508bb0757eb39ab2bc8 21-Jul-2014 Calin Juravle <calin@google.com> am ae2bc93f: am 1e5bc0bc: Fix bad comment in class_linker

* commit 'ae2bc93fd46271bb8ba908a579a92fba62e4073f':
Fix bad comment in class_linker
96ab9b27f94cd1b414956d8ec6ce5c5bcab0ccef 21-Jul-2014 Narayan Kamath <narayan@google.com> am 81cb8718: am 1a5272ed: Merge "Rename openDexFileNative to openDexFile." into lmp-dev

* commit '81cb871837782a263e2cd78e6f11d0dc5db912f7':
Rename openDexFileNative to openDexFile.
e90bf1d15da0c356458293477f2d8e4225c39860 21-Jul-2014 Narayan Kamath <narayan@google.com> am 97742073: resolved conflicts for merge of 5554c0c0 to lmp-dev-plus-aosp

* commit '97742073ca1e7bf1a98b43a83142e8e850e57d3e':
Make ART fail gracefully when it can't update the desired code.
be6dff513e41f56980dbc41cb667167be95453f7 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am bf37ff6b: am a6d4bc19: Merge "Fix sizeof -> strlen to get the test to run on build servers."

* commit 'bf37ff6b9293a3d062ab75ac94376b49ab85630a':
Fix sizeof -> strlen to get the test to run on build servers.
7abd2047b8f39a8a7c25c357b7034b7dfc82356a 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 8e4b343f: am 043f89b4: Merge "Add write barriers to optimizing compiler."

* commit '8e4b343fd231fdb5704eea1bc9c65f2fc3ba5c6a':
Add write barriers to optimizing compiler.
c3586e5fc95f1c6443e9288c54881eeb25158ce5 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am ece94038: am b5a21410: Merge "Add assembly operations with constants in optimizing compiler."

* commit 'ece9403829909e609830f9cda15a225cfe40f00a':
Add assembly operations with constants in optimizing compiler.
496155305dc002218cacf9e72bbd9a1d81ee56f6 21-Jul-2014 Andreas Gampe <agampe@google.com> am 8d95b68a: am f021cc08: ART: Also accept java.lang.Throwable as a catch-all handler.

* commit '8d95b68a700d413db4b364b5ed58a58391e29a76':
ART: Also accept java.lang.Throwable as a catch-all handler.
cc9c29c0235aebc82d03da2806366d80ab8f3852 21-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> am c62944ad: Merge "Add read barriers for the GC roots in Instrumentation."

* commit 'c62944adcd427dca55489d234428da47c43a0aab':
Add read barriers for the GC roots in Instrumentation.
99294a8735fb6cdd1b8924af6c046886d74d2411 21-Jul-2014 Ian Rogers <irogers@google.com> am 719ca5ad: Merge "Fix erroneous behaviors with OOME present."

* commit '719ca5ade262c5ace6a2ea32a3e4e48619d8439e':
Fix erroneous behaviors with OOME present.
16fc9f617e395758eb95b5f2124c79a828186b55 22-Jul-2014 Andreas Gampe <agampe@google.com> Merge "Runtime can now be set to require relocation"
a59dd80f9f48cb750d329d4d4af2d99d72b484d1 03-Jul-2014 Alex Light <allight@google.com> Runtime can now be set to require relocation

Add a pair of runtime flags -Xrelocate and -Xnorelocate that can force
the runtime to require that all files that are run are relocated, to
prevent attacks based on the known art base address.

Add support for running patchoat on oat files compiled without an image.

Change run-test to have new --prebuild and --relocate flags.

Bug: 15358152

Change-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d
ndroid.mk
uild/Android.common_build.mk
uild/Android.common_test.mk
ompiler/Android.mk
ompiler/dex/quick_compiler_callbacks.h
ompiler/driver/compiler_driver.cc
ompiler/elf_patcher.cc
ompiler/elf_patcher.h
ompiler/image_test.cc
ompiler/image_writer.cc
ompiler/image_writer.h
ompiler/oat_test.cc
ompiler/oat_writer.cc
ompiler/oat_writer.h
ex2oat/dex2oat.cc
atdump/oatdump.cc
atchoat/patchoat.cc
atchoat/patchoat.h
untime/base/scoped_flock.cc
untime/base/scoped_flock.h
untime/class_linker.cc
untime/class_linker.h
untime/common_runtime_test.cc
untime/common_runtime_test.h
untime/compiler_callbacks.h
untime/gc/space/image_space.cc
untime/gc/space/image_space.h
untime/indirect_reference_table.cc
untime/noop_compiler_callbacks.h
untime/oat.cc
untime/oat.h
untime/oat_file.cc
untime/oat_file.h
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
untime/runtime.h
untime/utils.cc
untime/utils.h
est/Android.oat.mk
est/Android.run-test.mk
est/etc/host-run-test-jar
est/etc/push-and-run-prebuilt-test-jar
est/etc/push-and-run-test-jar
est/run-all-tests
est/run-test
9d9fec65366ea4996b17141c97ff94416239b63e 22-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Throw StackOverflowError in native code"
7ea6f79bbddd69d5db86a8656a31aaaf64ae2582 15-Jul-2014 Andreas Gampe <agampe@google.com> ART: Throw StackOverflowError in native code

Initialize stack-overflow errors in native code to be able to reduce
the preserved area size of the stack.

Includes a refactoring away from constexpr in instruction_set.h to allow
for easy changing of the values.

Change-Id: I117cc8485f43da5f0a470f0f5e5b3dc3b5a06246
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/mir_to_lir.h
untime/arch/arm/fault_handler_arm.cc
untime/entrypoints/entrypoint_utils.cc
untime/instruction_set.cc
untime/instruction_set.h
untime/thread.cc
untime/thread.h
untime/well_known_classes.cc
untime/well_known_classes.h
est/018-stack-overflow/expected.txt
est/018-stack-overflow/run
est/018-stack-overflow/src/Main.java
9cdde5200a890e203c23e15593a9a01b06160368 22-Jul-2014 Ian Rogers <irogers@google.com> Merge "ART: Increase command buffer size in assembler_thumb_test"
4470c1d5a94ebedd8e579a212eb4c60da1ae6b24 22-Jul-2014 Andreas Gampe <agampe@google.com> ART: Increase command buffer size in assembler_thumb_test

Change-Id: I5fe0014a2928772650bdb120a877eb9624bf7651
ompiler/utils/assembler_thumb_test.cc
96823a6504d28cfbf2806ab301084291ddd1159e 21-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Add detection of zygote vs app vs image objects in hprof"
ae1ad009f7e531aaf95ffbc080a4ad8769c1d4d0 19-Jul-2014 Mathieu Chartier <mathieuc@google.com> Add detection of zygote vs app vs image objects in hprof

Bug: 16406673
Change-Id: Ic3e4a809c00b8379e42b074f9032ac106138be67
untime/hprof/hprof.cc
c62944adcd427dca55489d234428da47c43a0aab 21-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Merge "Add read barriers for the GC roots in Instrumentation."
799eb3a5555254427db269921042419bc30d4d86 19-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Add read barriers for the GC roots in Instrumentation.

Bug: 12687968
Change-Id: I324e2f950ce4500b0e00722044af3a9c82487b23
untime/debugger.cc
untime/instrumentation.cc
untime/instrumentation.h
untime/runtime.h
ae2bc93fd46271bb8ba908a579a92fba62e4073f 21-Jul-2014 Calin Juravle <calin@google.com> am 1e5bc0bc: Fix bad comment in class_linker

* commit '1e5bc0bc5257cb1fce5fe71a1b922527fe6b8fa4':
Fix bad comment in class_linker
1e5bc0bc5257cb1fce5fe71a1b922527fe6b8fa4 17-Jul-2014 Calin Juravle <calin@google.com> Fix bad comment in class_linker

(cherry picked from commit ff5a372be9b5ecaa4c3a9887f064a8a98069d036)

Change-Id: I04b2156fbd85929b082097e6faab8097552744c3
untime/class_linker.cc
81cb871837782a263e2cd78e6f11d0dc5db912f7 21-Jul-2014 Narayan Kamath <narayan@google.com> am 1a5272ed: Merge "Rename openDexFileNative to openDexFile." into lmp-dev

* commit '1a5272edde69f7ac6ebff2352827c20241496564':
Rename openDexFileNative to openDexFile.
97742073ca1e7bf1a98b43a83142e8e850e57d3e 21-Jul-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 5554c0c0 to lmp-dev-plus-aosp

Change-Id: Ic07d4f265d58c7a56da2aeabb1c8007950e6f3fc
cdca9d93134d795e7d1242c1dd27456ba5a723eb 21-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to f021cc085ac00ee2b6eaac6ffdf8f01596289dc7
bf37ff6b9293a3d062ab75ac94376b49ab85630a 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am a6d4bc19: Merge "Fix sizeof -> strlen to get the test to run on build servers."

* commit 'a6d4bc19b0f68286862ce315377aaeb1e26a726b':
Fix sizeof -> strlen to get the test to run on build servers.
8e4b343fd231fdb5704eea1bc9c65f2fc3ba5c6a 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 043f89b4: Merge "Add write barriers to optimizing compiler."

* commit '043f89b4e0e761c61350c2e620795826bde8f941':
Add write barriers to optimizing compiler.
ece9403829909e609830f9cda15a225cfe40f00a 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am b5a21410: Merge "Add assembly operations with constants in optimizing compiler."

* commit 'b5a214105d4c9b6c14de1649764950dd35bd620f':
Add assembly operations with constants in optimizing compiler.
99ea58cc68b51837c065f4a2a54efbf208dd76fa 02-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Add a new stack map scheme that encodes compilation info per pc.

Encodes stack mask, register mask, dex register values, and inlining
info. The encoding is currently very straightforward: there is no
clever encoding, nor compression.

Change-Id: I5fd9ae28189a5513cd9e3c8d52c648463207643d
uild/Android.gtest.mk
ompiler/optimizing/stack_map_stream.h
ompiler/optimizing/stack_map_test.cc
untime/memory_region.h
untime/stack_map.h
35690630b82dc1dbf4a7ada37225893a550ea1e0 16-Jul-2014 Serguei Katkov <serguei.i.katkov@intel.com> x86: Fix assembler for Pextr

Pextr family instructions use r/m part of rmod byte as destination.
This should be handled appropriately.
Disassembler works correctly.

Change-Id: I89d00cb11ae792e9d28c178ba79a0bc1fa27e3c5
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
ompiler/dex/quick/x86/assemble_x86.cc
597da1f76e542b9699f8e5f8cacfea84f8854429 15-Jul-2014 Serguei Katkov <serguei.i.katkov@intel.com> SetConstantWide should mark both SSA regs as constant

Without this change user have no chances to get the highest part
of wide reg using utility functions.

Change-Id: I2f56229ffb98276768a77c1e4a2913f288999328
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
ompiler/dex/mir_optimization.cc
8d95b68a700d413db4b364b5ed58a58391e29a76 20-Jul-2014 Andreas Gampe <agampe@google.com> am f021cc08: ART: Also accept java.lang.Throwable as a catch-all handler.

* commit 'f021cc085ac00ee2b6eaac6ffdf8f01596289dc7':
ART: Also accept java.lang.Throwable as a catch-all handler.
22310254e655f45bf13553a3adc1fe26224ae92b 20-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to f021cc085ac00ee2b6eaac6ffdf8f01596289dc7
dc008e57f650cb639176267027de84f7c3628448 20-Jul-2014 Andreas Gampe <agampe@google.com> am 24bebb11: am 4a3a3d4e: Merge "ART: Improve overflow detection in dex file verifier" into lmp-dev

* commit '24bebb11227aa53847a2b507affd9f2856e427e7':
ART: Improve overflow detection in dex file verifier
52bee0e11b54cac8925548fe1d2b864bfd79fb9a 20-Jul-2014 Dave Allison <dallison@google.com> am b3641da0: am 147eb41b: (-s ours) Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

* commit 'b3641da04bc0f9538368f817b528e8ec55bf9eea':
Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""
24bebb11227aa53847a2b507affd9f2856e427e7 20-Jul-2014 Andreas Gampe <agampe@google.com> am 4a3a3d4e: Merge "ART: Improve overflow detection in dex file verifier" into lmp-dev

* commit '4a3a3d4e3705b94c281764f2e7173de5590e74cb':
ART: Improve overflow detection in dex file verifier
b3641da04bc0f9538368f817b528e8ec55bf9eea 20-Jul-2014 Dave Allison <dallison@google.com> am 147eb41b: (-s ours) Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

* commit '147eb41b53729ec8d5c188d1cac90964a51afb8a':
Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""
7ff831f63111de69c71bc8c5cb1042d698b72070 22-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Check high part of dalvik register pairs on put-wide"
2a593a14e8e0df01a50139e0d48c7be46fb057ef 22-Jul-2014 Andreas Gampe <agampe@google.com> ART: Check high part of dalvik register pairs on put-wide

When verifying a put-wide, it is necessary to check the lo and the hi
register for the right type.

Bug: 16018242
Change-Id: I9e661951d592e155e0f281ea959e778d8f4a67ab
untime/verifier/method_verifier.cc
0a142c96c50ca9d2edb6ef995107fe368cd0a3fa 22-Jul-2014 Ian Rogers <irogers@google.com> Merge "Redirect failing test output to stderr."
5182915657a6002672c6e1b421043f1ae6a4186a 22-Jul-2014 Ian Rogers <irogers@google.com> Redirect failing test output to stderr.

Change-Id: I8feeeef569854476d33fdc613182dbe16f7ba53c
uild/Android.common_test.mk
719ca5ade262c5ace6a2ea32a3e4e48619d8439e 21-Jul-2014 Ian Rogers <irogers@google.com> Merge "Fix erroneous behaviors with OOME present."
c114b5fbc91e6d19ef430d9bc3468386ca61b324 21-Jul-2014 Ian Rogers <irogers@google.com> Fix erroneous behaviors with OOME present.

Bug: 16454510
Change-Id: I757088a7b82ff73f58aba8d357080028b56442e6
untime/class_linker.cc
untime/native/java_lang_Class.cc
untime/thread.cc
01bd8e3d8e663fcc48d6941e4876a09657fee6c9 22-Jul-2014 Mathieu Chartier <mathieuc@google.com> Merge "Revert "Disable adding main and non moving spaces to immune region in GSS"" into lmp-dev
f85c2fb317399ab540854cd7551ac47690366543 22-Jul-2014 Mathieu Chartier <mathieuc@google.com> Revert "Disable adding main and non moving spaces to immune region in GSS"

Bug: 16399257

This reverts commit be0562fb14e6754ee932b8d9c97e2a6df3a91119.

Change-Id: I29e07a8fa1e972990e5bf1ddf8c9a3538ea5f9cf
untime/base/macros.h
untime/check_jni.cc
untime/class_linker.h
untime/gc/accounting/mod_union_table.cc
untime/gc/collector/mark_sweep-inl.h
untime/gc/collector/mark_sweep.cc
untime/gc/collector/semi_space-inl.h
untime/gc/collector/semi_space.cc
untime/gc/collector/semi_space.h
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/space.h
untime/object_callbacks.h
untime/utils.h
36d40a00958fa78c6130f69c3aad79e7e72cce3d 19-Jul-2014 Ian Rogers <irogers@google.com> am ee450754: am 4436e926: Merge "Fix the name of a black listed run-test."

* commit 'ee450754c4547a7ebaee81c662848ea741d92df6':
Fix the name of a black listed run-test.
ee450754c4547a7ebaee81c662848ea741d92df6 19-Jul-2014 Ian Rogers <irogers@google.com> am 4436e926: Merge "Fix the name of a black listed run-test."

* commit '4436e926aa8e64ac7e4c4afb81f2a59b2477045a':
Fix the name of a black listed run-test.
8e79f27a65ef2f26aad41c4623140bf64acbef3f 19-Jul-2014 The Android Automerger <android-build@google.com> merge in lmp-release history after reset to f021cc085ac00ee2b6eaac6ffdf8f01596289dc7
fc4b6995938983d7a0eacf4c18799c2d54b7cb41 19-Jul-2014 Ian Rogers <irogers@google.com> am 553a1b26: am 4ebed4ac: Merge "Black list timing sensitive tests from gcverify and gcstress"

* commit '553a1b2663c534599f71b147661bdfabb0115719':
Black list timing sensitive tests from gcverify and gcstress
553a1b2663c534599f71b147661bdfabb0115719 19-Jul-2014 Ian Rogers <irogers@google.com> am 4ebed4ac: Merge "Black list timing sensitive tests from gcverify and gcstress"

* commit '4ebed4acf8bfdbeef1d907238425baa8b7698806':
Black list timing sensitive tests from gcverify and gcstress
e74d27291094c0758836fd336a80c785d7d6be2b 19-Jul-2014 Ian Rogers <irogers@google.com> am 14eb1f8e: am 607cf217: Merge "Black list more trace tests."

* commit '14eb1f8e20e4dc7092f62efb82b4c066c7da0a10':
Black list more trace tests.
14eb1f8e20e4dc7092f62efb82b4c066c7da0a10 19-Jul-2014 Ian Rogers <irogers@google.com> am 607cf217: Merge "Black list more trace tests."

* commit '607cf2177cd0faceb6c7ca425774557dd62f092b':
Black list more trace tests.
f021cc085ac00ee2b6eaac6ffdf8f01596289dc7 19-Jul-2014 Andreas Gampe <agampe@google.com> ART: Also accept java.lang.Throwable as a catch-all handler.

Accept catch handlers with catch type of java.lang.Throwable as
catch-all handlers.

(cherry picked from commit f91baf17ad11a86c84c9fc34ff70feee65a43233)

Bug: 16308310
Change-Id: Ie9b9582ee71c94c82b7695dc6f9c2c6df3d869d8
untime/verifier/method_verifier.cc
d84a0f5b20acc75e26f558df117cb192c42ceb7a 19-Jul-2014 Andreas Gampe <agampe@google.com> am ca0231b2: am d4a6e5cc: Merge "ART: Also accept java.lang.Throwable as a catch-all handler."

* commit 'ca0231b2d1b1d483f2da79b011a2df2f717c29b3':
ART: Also accept java.lang.Throwable as a catch-all handler.
ca0231b2d1b1d483f2da79b011a2df2f717c29b3 19-Jul-2014 Andreas Gampe <agampe@google.com> am d4a6e5cc: Merge "ART: Also accept java.lang.Throwable as a catch-all handler."

* commit 'd4a6e5cc16217bf3e9205d45b728c3d4dc1ddc54':
ART: Also accept java.lang.Throwable as a catch-all handler.
30ef7aa348221d880618ad5ab9973841c845a741 19-Jul-2014 Ian Rogers <irogers@google.com> am 64dc128f: am 50246792: Merge "Run-test fix."

* commit '64dc128fb90f39732c6fb1e1b38589c4f152bcc3':
Run-test fix.
64dc128fb90f39732c6fb1e1b38589c4f152bcc3 19-Jul-2014 Ian Rogers <irogers@google.com> am 50246792: Merge "Run-test fix."

* commit '50246792ff37fe25446b70564c0942f04d3e5f48':
Run-test fix.
e750eef3eadd0e6b53fe4e9006f068f1b18aa22c 19-Jul-2014 Ian Rogers <irogers@google.com> am 9929e0b1: am a9ca9816: Merge "Add a GC stress run that uses a moving collector and small heap sizes."

* commit '9929e0b1af3f306c4c0cf09aa147935d75b38b9a':
Add a GC stress run that uses a moving collector and small heap sizes.
9929e0b1af3f306c4c0cf09aa147935d75b38b9a 19-Jul-2014 Ian Rogers <irogers@google.com> am a9ca9816: Merge "Add a GC stress run that uses a moving collector and small heap sizes."

* commit 'a9ca98163408642e78968e8263ac649843cad504':
Add a GC stress run that uses a moving collector and small heap sizes.
04af7f1b060122af8a0f41c3f9b104d82cf11e9d 19-Jul-2014 Dave Allison <dallison@google.com> am 489b16d2: Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

* commit '489b16d2e3152e06ce21e8bef9e79e1240daf87b':
Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""
489b16d2e3152e06ce21e8bef9e79e1240daf87b 11-Jul-2014 Dave Allison <dallison@google.com> Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

This reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.

Bug: 16256184
Change-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73

Conflicts:
compiler/dex/quick/arm64/target_arm64.cc
compiler/image_test.cc
runtime/fault_handler.cc

Conflicts:
compiler/dex/quick/x86/target_x86.cc
d2d127e5fb6e1282d068808e4ea046570f03c41c 18-Jul-2014 Andreas Gampe <agampe@google.com> am 639a56b4: am ca906544: Merge "ART: Improve overflow detection in dex file verifier"

* commit '639a56b4d6c4d47721abe63b644022b06f4fda82':
ART: Improve overflow detection in dex file verifier
639a56b4d6c4d47721abe63b644022b06f4fda82 18-Jul-2014 Andreas Gampe <agampe@google.com> am ca906544: Merge "ART: Improve overflow detection in dex file verifier"

* commit 'ca9065446bdffe5f9c940ae7a0c3a73ec636db7e':
ART: Improve overflow detection in dex file verifier
2a2b29fcc3a6b52d19ef56f861fc9e1d2017c546 18-Jul-2014 Ian Rogers <irogers@google.com> am 3bb139ff: am 0d55759b: Merge "Add GC verification test rules."

* commit '3bb139ff30a2495b83ac201039a7ed2490e640ec':
Add GC verification test rules.
dd993b49c6d4bbb88f40f4c41a332ff8424ef413 18-Jul-2014 Ian Rogers <irogers@google.com> am 6d6f1ee3: am bcacf161: Merge "Allow optimizing and trace tests to be not run."

* commit '6d6f1ee3665e2358227b5d71aec92a68d8c4d886':
Allow optimizing and trace tests to be not run.
2074e3c94e58c8dad6e762b24232736440e3dcac 18-Jul-2014 Andreas Gampe <agampe@google.com> am 70217451: am e72ff802: Merge "ART: Do not attempt to compile a method with too many registers"

* commit '702174516e41a9598f61741ad44ba31188840b34':
ART: Do not attempt to compile a method with too many registers
3bb139ff30a2495b83ac201039a7ed2490e640ec 18-Jul-2014 Ian Rogers <irogers@google.com> am 0d55759b: Merge "Add GC verification test rules."

* commit '0d55759bf30c049b38c88ca492d00bee14667843':
Add GC verification test rules.
6d6f1ee3665e2358227b5d71aec92a68d8c4d886 18-Jul-2014 Ian Rogers <irogers@google.com> am bcacf161: Merge "Allow optimizing and trace tests to be not run."

* commit 'bcacf161f43ecf0686154bc5c5ea4b54ba9761d2':
Allow optimizing and trace tests to be not run.
702174516e41a9598f61741ad44ba31188840b34 18-Jul-2014 Andreas Gampe <agampe@google.com> am e72ff802: Merge "ART: Do not attempt to compile a method with too many registers"

* commit 'e72ff8022968b23efedc56c0afdc1d24e8a928c2':
ART: Do not attempt to compile a method with too many registers
ca9065446bdffe5f9c940ae7a0c3a73ec636db7e 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Improve overflow detection in dex file verifier"
28b20719706296cea4e695a742425e54ddc710ae 18-Jul-2014 Andreas Gampe <agampe@google.com> am 294d157c: am f491680e: Merge "ART: Fail dex file verification on invalid access flags" into lmp-dev

* commit '294d157cca077bde6a82fca031e663cc69f332a4':
ART: Fail dex file verification on invalid access flags
294d157cca077bde6a82fca031e663cc69f332a4 18-Jul-2014 Andreas Gampe <agampe@google.com> am f491680e: Merge "ART: Fail dex file verification on invalid access flags" into lmp-dev

* commit 'f491680e304b691c763ea146c5f6147fd3c36adb':
ART: Fail dex file verification on invalid access flags
147eb41b53729ec8d5c188d1cac90964a51afb8a 11-Jul-2014 Dave Allison <dallison@google.com> Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

This reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.

Bug: 16256184
Change-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73

Conflicts:
compiler/dex/quick/arm64/target_arm64.cc
compiler/image_test.cc
runtime/fault_handler.cc
uild/Android.gtest.mk
uild/Android.oat.mk
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/target_arm64.cc
ompiler/dex/quick/codegen_util.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/assemble_x86.cc
ompiler/dex/quick/x86/call_x86.cc
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
ompiler/dex/quick/x86/target_x86.cc
ompiler/dex/quick/x86/utility_x86.cc
ompiler/dex/quick/x86/x86_lir.h
ompiler/driver/compiler_options.h
ompiler/image_test.cc
ompiler/oat_test.cc
ex2oat/dex2oat.cc
untime/Android.mk
untime/arch/arm/fault_handler_arm.cc
untime/arch/arm64/fault_handler_arm64.cc
untime/arch/mips/fault_handler_mips.cc
untime/arch/x86/fault_handler_x86.cc
untime/arch/x86/quick_entrypoints_x86.S
untime/arch/x86_64/fault_handler_x86_64.cc
untime/fault_handler.cc
untime/fault_handler.h
untime/implicit_check_options.h
untime/oat_file.cc
untime/parsed_options.cc
untime/parsed_options.h
untime/runtime.cc
untime/runtime.h
untime/thread.cc
igchainlib/Android.mk
igchainlib/sigchain.cc
est/Android.oat.mk
4fdd4b633dfda7227e35a63d807fac1f05fa00c2 18-Jul-2014 Ian Rogers <irogers@google.com> am ec1fa1e2: am 72b660ec: Merge "x86_64: Fix GenDalvikArgsRange for 64-bit ref"

* commit 'ec1fa1e2839e1adb155f4d10d4fb1c5222725ff5':
x86_64: Fix GenDalvikArgsRange for 64-bit ref
ec1fa1e2839e1adb155f4d10d4fb1c5222725ff5 18-Jul-2014 Ian Rogers <irogers@google.com> am 72b660ec: Merge "x86_64: Fix GenDalvikArgsRange for 64-bit ref"

* commit '72b660ec5df56cad8ff6d526b4377a462fc53ce5':
x86_64: Fix GenDalvikArgsRange for 64-bit ref
2f5b09ba9ee9bde7188d52f89a1e736ac92e69b6 18-Jul-2014 Narayan Kamath <narayan@google.com> am 6241d7e5: am 66a11617: Merge "Fix identifier size in the heap dump." into lmp-dev

* commit '6241d7e5c3ba4d815659866483f583fecf9e813b':
Fix identifier size in the heap dump.
6241d7e5c3ba4d815659866483f583fecf9e813b 18-Jul-2014 Narayan Kamath <narayan@google.com> am 66a11617: Merge "Fix identifier size in the heap dump." into lmp-dev

* commit '66a116172bd943387be667e515a4d86aabe330b0':
Fix identifier size in the heap dump.
970f4407e3a0c50d828cf2f60a2ef842b1614d5b 18-Jul-2014 Ian Rogers <irogers@google.com> am 065caafa: am 027fd2f2: Merge "Improved implementation of inline of String.indexOf"

* commit '065caafa54f4239787f51adcd1b10dfb3858f275':
Improved implementation of inline of String.indexOf
065caafa54f4239787f51adcd1b10dfb3858f275 18-Jul-2014 Ian Rogers <irogers@google.com> am 027fd2f2: Merge "Improved implementation of inline of String.indexOf"

* commit '027fd2f21c24100f14c584f18dbe39ec2c4fb6aa':
Improved implementation of inline of String.indexOf
423cb6280590540e0604bed17160238a43cc7f95 18-Jul-2014 Ian Rogers <irogers@google.com> am 4d23b98b: am d6523332: Merge "Add optimized assembler implementation of __memcmp16 for x86."

* commit '4d23b98b921fd9299cc3f4422d3c4c9890e607ae':
Add optimized assembler implementation of __memcmp16 for x86.
4d23b98b921fd9299cc3f4422d3c4c9890e607ae 18-Jul-2014 Ian Rogers <irogers@google.com> am d6523332: Merge "Add optimized assembler implementation of __memcmp16 for x86."

* commit 'd652333207321ff20153e74985366b4d5cdec89a':
Add optimized assembler implementation of __memcmp16 for x86.
10d56becc4b91014204ef91ea862f0025fe26970 18-Jul-2014 Ian Rogers <irogers@google.com> am a3aeb5b0: am 03fc5abc: Merge "ART: inline Math.Max/Min (float and double)"

* commit 'a3aeb5b01317a83e2d718e0949b498c04bc8651b':
ART: inline Math.Max/Min (float and double)
a3aeb5b01317a83e2d718e0949b498c04bc8651b 18-Jul-2014 Ian Rogers <irogers@google.com> am 03fc5abc: Merge "ART: inline Math.Max/Min (float and double)"

* commit '03fc5abc4c6372c4583179d35e56f6d521806698':
ART: inline Math.Max/Min (float and double)
e60650274bcfc7a0e8cd5f74c899213d033d51c5 18-Jul-2014 Calin Juravle <calin@google.com> am acc00214: am d5673e47: Merge "Fix bad comment in class_linker"

* commit 'acc002142003e2b3598d18c0dd6a9bf91cf76e13':
Fix bad comment in class_linker
acc002142003e2b3598d18c0dd6a9bf91cf76e13 18-Jul-2014 Calin Juravle <calin@google.com> am d5673e47: Merge "Fix bad comment in class_linker"

* commit 'd5673e47000fcfe8ff8f4df4329a842d4096c226':
Fix bad comment in class_linker
7b40678e5dadcb9d74767c7d670be8bc0ec17142 18-Jul-2014 Vladimir Marko <vmarko@google.com> am 7d8591a1: am acb4eb12: Fix GVN to handle normal paths leading to catch entry.

* commit '7d8591a1b630f1fd88295a43eb959f4b162aad1d':
Fix GVN to handle normal paths leading to catch entry.
237a7bf7426914916611cc56b6506d36603cd469 18-Jul-2014 Vladimir Marko <vmarko@google.com> am c08e57a3: am fd60fbcc: Merge "Fix GVN to handle normal paths leading to catch entry."

* commit 'c08e57a3397aa68cd7132fc487224cd12142a775':
Fix GVN to handle normal paths leading to catch entry.
b3314af4acbb3bbfce7289741ab4b70ab758a171 18-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 407b55ee: am 990288d5: Merge "We can also run the linear scan register allocator on thumb."

* commit '407b55ee80d5e6c3d3d9ca3cee1e90a9dfec4457':
We can also run the linear scan register allocator on thumb.
7f340fd61eb170a8289069f38a807c5ceda0d54a 18-Jul-2014 Andreas Gampe <agampe@google.com> am b3ff70dd: am f2a85591: Merge "ART: Fail dex file verification on invalid access flags"

* commit 'b3ff70dd12892963fb2a4af408a92b4f1bae6c44':
ART: Fail dex file verification on invalid access flags
7d8591a1b630f1fd88295a43eb959f4b162aad1d 18-Jul-2014 Vladimir Marko <vmarko@google.com> am acb4eb12: Fix GVN to handle normal paths leading to catch entry.

* commit 'acb4eb12108d5890bf722bed91f2e80708af0c75':
Fix GVN to handle normal paths leading to catch entry.
c08e57a3397aa68cd7132fc487224cd12142a775 18-Jul-2014 Vladimir Marko <vmarko@google.com> am fd60fbcc: Merge "Fix GVN to handle normal paths leading to catch entry."

* commit 'fd60fbcce909655aad71fa3094aa51d49302f19f':
Fix GVN to handle normal paths leading to catch entry.
407b55ee80d5e6c3d3d9ca3cee1e90a9dfec4457 18-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 990288d5: Merge "We can also run the linear scan register allocator on thumb."

* commit '990288d5124c436a18a8eaffabd3253945d8a237':
We can also run the linear scan register allocator on thumb.
acb4eb12108d5890bf722bed91f2e80708af0c75 17-Jul-2014 Vladimir Marko <vmarko@google.com> Fix GVN to handle normal paths leading to catch entry.

When the catch block is empty, the catch entry is actually
the normal path block after the try block. Fix the LVN
merge for catch entries that didn't expect it during GVN.

Bug: 16360024

(cherry-picked from 11ca61259be6ec8e03eaff1e98905232728b3d45)

Change-Id: Ifc771edfec702ab2f0ff50bf7f8e69c846d13a46
ompiler/dex/global_value_numbering_test.cc
ompiler/dex/local_value_numbering.cc
59952167697d3b7e6655cb76d087a809c4f615d8 18-Jul-2014 Ian Rogers <irogers@google.com> Avoid race in single thread suspension.

Don't allow more than one concurrent single thread suspension to avoid
potential cycles and deadlocks where threads try to suspend each other.
Bug: 16364458, 16354227

(cherry picked from commit f3d874c60ee3ada19ce26a5c4e532312b6f3a9e9)

Change-Id: I907f1d5591a6aa5c241d37d6b4a34f968f98df77
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/monitor.cc
untime/native/dalvik_system_VMStack.cc
untime/native/java_lang_Thread.cc
untime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc
untime/thread-inl.h
untime/thread_list.cc
untime/thread_list.h
50d1bc198b2e347d60df74c3b0c452e1f929dd2f 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Improve overflow detection in dex file verifier

Overflows were hidden by the design of the checks. Push all range
checks as lists, so we can explicitly check against the count.

Bug: 16017886
Change-Id: I0083f83006ef1e55518b0919dff319004b66dcb8
untime/dex_file_verifier.cc
untime/dex_file_verifier.h
b3ff70dd12892963fb2a4af408a92b4f1bae6c44 18-Jul-2014 Andreas Gampe <agampe@google.com> am f2a85591: Merge "ART: Fail dex file verification on invalid access flags"

* commit 'f2a85591a432037efb3a114d8c6d22f3f6f7a284':
ART: Fail dex file verification on invalid access flags
8f7f27286ca457cf39e8bb97189f3a8b7dfca971 18-Jul-2014 Ian Rogers <irogers@google.com> am 4e9ac0da: am a2f85ca0: Merge "Avoid race in single thread suspension." into lmp-dev

* commit '4e9ac0da6879d21199dffbb08846695f0e832482':
Avoid race in single thread suspension.
a88d08ca319695c563d7af3db738f6a619a51152 18-Jul-2014 Andreas Gampe <agampe@google.com> am 58078aee: am 493c9beb: ART: Make a soft failure in method verifier hard, add check

* commit '58078aee11683df061974b62c69a651d8bad7689':
ART: Make a soft failure in method verifier hard, add check
4e9ac0da6879d21199dffbb08846695f0e832482 18-Jul-2014 Ian Rogers <irogers@google.com> am a2f85ca0: Merge "Avoid race in single thread suspension." into lmp-dev

* commit 'a2f85ca0dd0ddab384f395ab270d844affb8fdac':
Avoid race in single thread suspension.
58078aee11683df061974b62c69a651d8bad7689 18-Jul-2014 Andreas Gampe <agampe@google.com> am 493c9beb: ART: Make a soft failure in method verifier hard, add check

* commit '493c9beb3635d091c159043337836d6fa5d10107':
ART: Make a soft failure in method verifier hard, add check
0f26e627668d4543457a4fce5820e5e96c3a0225 18-Jul-2014 Ian Rogers <irogers@google.com> am 466a0cdf: am d5cd8bc8: Merge "Avoid race in single thread suspension."

* commit '466a0cdfe3bd67e542714132de4bbe5661df2f5a':
Avoid race in single thread suspension.
466a0cdfe3bd67e542714132de4bbe5661df2f5a 18-Jul-2014 Ian Rogers <irogers@google.com> am d5cd8bc8: Merge "Avoid race in single thread suspension."

* commit 'd5cd8bc88d60f4e516e3441651f35c183131e318':
Avoid race in single thread suspension.
c33aace7c917d5de0732e834165db82f5dfc5bca 18-Jul-2014 Andreas Gampe <agampe@google.com> am df50e174: am 31029988: Merge "ART: Make a soft failure in method verifier hard, add check"

* commit 'df50e1746e795cf52b827503af10ced0510991a3':
ART: Make a soft failure in method verifier hard, add check
86d836e3c2c1fe7c1c3ea857acdcd8d5112a2bab 18-Jul-2014 Andreas Gampe <agampe@google.com> am 5de82881: am 9cd20b21: Merge "ART: Use array-inl.h in reference_table_test"

* commit '5de8288138f90c8e25fc5231798e5466332554ae':
ART: Use array-inl.h in reference_table_test
df50e1746e795cf52b827503af10ced0510991a3 18-Jul-2014 Andreas Gampe <agampe@google.com> am 31029988: Merge "ART: Make a soft failure in method verifier hard, add check"

* commit '31029988d48074b4193e44856eb863305a2658fb':
ART: Make a soft failure in method verifier hard, add check
5de8288138f90c8e25fc5231798e5466332554ae 18-Jul-2014 Andreas Gampe <agampe@google.com> am 9cd20b21: Merge "ART: Use array-inl.h in reference_table_test"

* commit '9cd20b21c78a85c0ec01a6e282d23a2b2b5df0c5':
ART: Use array-inl.h in reference_table_test
493c9beb3635d091c159043337836d6fa5d10107 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Make a soft failure in method verifier hard, add check

Make the soft error of using a primitive type in an instanceof a
hard verifier error.

Add a check when doing check_cast peep-hole optimization to check
whether the cast type is valid.

(cherry picked from commit 00633eb490ad21f711dcfccfb3a70992b2f8a72a)

Bug: 16020300
Change-Id: Icaea560d17804f24a13dc09c115e9ec7039cb472
untime/verifier/method_verifier.cc
3aacc46652d468dcc1671ea6637ffcdba2080d2e 18-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> am 5b2b9d6b: am b12d6055: Merge "Fix two read barrier bugs introduced in CL 97882."

* commit '5b2b9d6b672bce67763a9481f34ad5fd83216ee4':
Fix two read barrier bugs introduced in CL 97882.
5b2b9d6b672bce67763a9481f34ad5fd83216ee4 18-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> am b12d6055: Merge "Fix two read barrier bugs introduced in CL 97882."

* commit 'b12d6055432f6974317ca1b5c9260db0d410df3e':
Fix two read barrier bugs introduced in CL 97882.
ebb6b5c90857f390db5a4f840bbe67b3a59a22d8 22-Jul-2014 Ian Rogers <irogers@google.com> Merge "Avoid marking erroneous classes as erroneous twice."
ecd4d9adc1e2b2ac1367de9a2dc1ca15ebf4310c 22-Jul-2014 Ian Rogers <irogers@google.com> Avoid marking erroneous classes as erroneous twice.

Change-Id: I1f340a6054cf36f6b4ba7d85cfd05b1c677dced7
untime/class_linker.cc
d2d90ecc099eee55b2c9b38c921951ff9288b020 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Make unit test tell if a method is a leaf."
73e80c3ae76fafdb53afe3a85306dcb491fb5b00 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Make unit test tell if a method is a leaf.

The runtime is not initialized completely in gtests, so we
cannot run code (such as explicit stack overflow checks) that
look at tls values.

Change-Id: I74a4449b01eb203f1b411dda700e9459878d0d55
ompiler/optimizing/code_generator.cc
ompiler/optimizing/code_generator.h
ompiler/optimizing/codegen_test.cc
0d55759bf30c049b38c88ca492d00bee14667843 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "Add GC verification test rules."
701aa645a3e61fe8866000bb66b1287196a5536a 18-Jul-2014 Ian Rogers <irogers@google.com> Add GC verification test rules.

Change-Id: I7469ecaf98f680e7e642035f3536b00bdd97b486
uild/Android.common_test.mk
est/Android.oat.mk
est/Android.run-test.mk
est/run-test
5242c0ab0505f0f038b15c3d934a79a6b4e5ef17 18-Jul-2014 Ian Rogers <irogers@google.com> Allow optimizing and trace tests to be not run.

Make it so that optimizing and trace tests can be chosen to be not run.
mm -j32 test-art
will run all optimizing and trace tests.
mm -j32 test-art ART_TEST_FULL=false
will not run optimizing and trace tests.
mm -j32 test-art ART_TEST_FULL=false ART_TEST_OPTIMIZING=true
will not run trace tests but will run optimizing tests.

Change-Id: I9c04d9489f08fb837da5561d9496c97aee7c4a4a
uild/Android.common_test.mk
est/Android.oat.mk
est/Android.run-test.mk
bcacf161f43ecf0686154bc5c5ea4b54ba9761d2 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "Allow optimizing and trace tests to be not run."
e10a0bd05b195f71cc0ff2d59568d02d29939927 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Stack overflow checks and NPE checks for optimizing."
f12feb8e0e857f2832545b3f28d31bad5a9d3903 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Stack overflow checks and NPE checks for optimizing.

Change-Id: I59e97448bf29778769b79b51ee4ea43f43493d96
uild/Android.common_test.mk
ompiler/dex/quick/mir_to_lir.h
ompiler/optimizing/builder.cc
ompiler/optimizing/code_generator.cc
ompiler/optimizing/code_generator.h
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86.h
ompiler/optimizing/code_generator_x86_64.cc
ompiler/utils/stack_checks.h
ompiler/utils/x86/assembler_x86.cc
ompiler/utils/x86/assembler_x86.h
ompiler/utils/x86_64/assembler_x86_64.cc
ompiler/utils/x86_64/assembler_x86_64.h
est/401-optimizing-compiler/src/Main.java
a6d4bc19b0f68286862ce315377aaeb1e26a726b 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Fix sizeof -> strlen to get the test to run on build servers."
8baf0d9263f914aee8ca91df92660342ace9e671 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Fix sizeof -> strlen to get the test to run on build servers.

Change-Id: I8501d02a9bc5f84a769a80d46d0ec5754c972e5d
ompiler/utils/assembler_thumb_test.cc
043f89b4e0e761c61350c2e620795826bde8f941 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Add write barriers to optimizing compiler."
1a43dd78d054dbad8d7af9ba4829ea2f1cb70b53 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Add write barriers to optimizing compiler.

Change-Id: I43a40954757f51d49782e70bc28f7c314d6dbe17
uild/Android.gtest.mk
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86_64.cc
ompiler/utils/arm/assembler_thumb2.cc
ompiler/utils/x86_64/assembler_x86_64.cc
ompiler/utils/x86_64/assembler_x86_64.h
est/401-optimizing-compiler/src/Main.java
b5a214105d4c9b6c14de1649764950dd35bd620f 21-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Add assembly operations with constants in optimizing compiler."
96f89a290eb67d7bf4b1636798fa28df14309cc7 11-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Add assembly operations with constants in optimizing compiler.

Change-Id: I5bcc35ab50d4457186effef5592a75d7f4e5b65f
ompiler/Android.mk
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_arm.h
ompiler/optimizing/code_generator_x86.cc
ompiler/optimizing/code_generator_x86.h
ompiler/optimizing/code_generator_x86_64.cc
ompiler/optimizing/code_generator_x86_64.h
ompiler/optimizing/graph_visualizer.cc
ompiler/optimizing/locations.cc
ompiler/optimizing/locations.h
ompiler/optimizing/nodes.h
ompiler/optimizing/register_allocator.cc
ompiler/utils/arm/assembler_arm.cc
ompiler/utils/arm/assembler_arm.h
ompiler/utils/arm/assembler_thumb2.cc
ompiler/utils/assembler_thumb_test.cc
ompiler/utils/assembler_thumb_test_expected.cc.inc
ompiler/utils/x86_64/assembler_x86_64.cc
ompiler/utils/x86_64/assembler_x86_64.h
fd60fbcce909655aad71fa3094aa51d49302f19f 18-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Fix GVN to handle normal paths leading to catch entry."
84568fdf08f8f476292996ad653b4453d2894d23 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Interpreter can kick in even when implicit checks are enabled."
535a3fbc08e1577f43aec7402cab80c14ca64c41 22-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Interpreter can kick in even when implicit checks are enabled.

Add a GetStackEndForInterpreter for its stack overfow check.

Change-Id: I2d4fc229a8eb727fda509ff778e16d60d96ecc28
untime/interpreter/interpreter.cc
untime/runtime.cc
untime/thread.h
2983d230534aee99090d28b2666dae094440f1c4 22-Jul-2014 Vladimir Marko <vmarko@google.com> Merge "Use vabs/fabs on arm/arm64 for intrinsic abs()."
5030d3ee8c6fe10394912ede107cbc8df63b7b16 17-Jul-2014 Vladimir Marko <vmarko@google.com> Use vabs/fabs on arm/arm64 for intrinsic abs().

Bug: 11579369
Change-Id: If09da85e22786faa13a2d74f62cee68ea67bd087
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/fp_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/fp_arm64.cc
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mips/int_mips.cc
ompiler/dex/quick/mir_to_lir.h
d5673e47000fcfe8ff8f4df4329a842d4096c226 18-Jul-2014 Calin Juravle <calin@google.com> Merge "Fix bad comment in class_linker"
990288d5124c436a18a8eaffabd3253945d8a237 18-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "We can also run the linear scan register allocator on thumb."
93bedb7a96c8e6f9b6caa66689bf4f3c520bc234 18-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> We can also run the linear scan register allocator on thumb.

Change-Id: I5d21b5cbcdd93ff36342111de4ebcaab172034dd
ompiler/optimizing/register_allocator.h
b12d6055432f6974317ca1b5c9260db0d410df3e 18-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Merge "Fix two read barrier bugs introduced in CL 97882."
0fbd6e6ec3241b7163b95f9f001bfe9b08f8b200 18-Jul-2014 Hiroshi Yamauchi <yamauchi@google.com> Fix two read barrier bugs introduced in CL 97882.

Bug: 12687968
Change-Id: Ib28da4c33977cc58b09913ef5b738dec75365714
untime/class_linker.cc
untime/mirror/class.cc
untime/mirror/object.cc
untime/mirror/object.h
027fd2f21c24100f14c584f18dbe39ec2c4fb6aa 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "Improved implementation of inline of String.indexOf"
c3561ae381960cbd52a83b7591504f158ec06920 17-Jul-2014 nikolay serdjuk <nikolay.y.serdjuk@intel.com> Improved implementation of inline of String.indexOf

This version pushes EDI only once and only in 32-bit mode.

Change-Id: I4e871d3531ac539536f8f53ec09ffb664409c9cc
ompiler/dex/quick/x86/target_x86.cc
f2a85591a432037efb3a114d8c6d22f3f6f7a284 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fail dex file verification on invalid access flags"
acc2bb693d83102f93007d7c4881a94bbcc3b9bb 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fail dex file verification on invalid access flags

Only allow standard java access flags in class-def items.

Bug: 16018234
Change-Id: I54e788817d5974faf7b3841cd01b9ca4568249c1
untime/dex_file_verifier.cc
4436e926aa8e64ac7e4c4afb81f2a59b2477045a 19-Jul-2014 Ian Rogers <irogers@google.com> Merge "Fix the name of a black listed run-test."
e1cd43871a5c3ee3712a7980089bcfeb2432b0c3 19-Jul-2014 Ian Rogers <irogers@google.com> Fix the name of a black listed run-test.

Change-Id: I1ac4d28bd959b33066cce32812613c2e27d40f7e
est/Android.run-test.mk
8813820aa916a31ad33cdc0db053eb3ee90207cb 19-Jul-2014 Ian Rogers <irogers@google.com> Black list timing sensitive tests from gcverify and gcstress

but only when run on build servers.

Change-Id: Icb3b125142d75bd4cc140c9f8ef7abf1d6451c5a
est/Android.run-test.mk
4cd99b00838e06712e01c1973deedd2c0dd4e33e 19-Jul-2014 Ian Rogers <irogers@google.com> Black list more trace tests.

Bug: 16386215
Change-Id: Ieda8306f9419669935f5452a1765c09ff898ff7f
est/Android.run-test.mk
4ebed4acf8bfdbeef1d907238425baa8b7698806 19-Jul-2014 Ian Rogers <irogers@google.com> Merge "Black list timing sensitive tests from gcverify and gcstress"
d652333207321ff20153e74985366b4d5cdec89a 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "Add optimized assembler implementation of __memcmp16 for x86."
d5cd8bc88d60f4e516e3441651f35c183131e318 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "Avoid race in single thread suspension."
f3d874c60ee3ada19ce26a5c4e532312b6f3a9e9 18-Jul-2014 Ian Rogers <irogers@google.com> Avoid race in single thread suspension.

Don't allow more than one concurrent single thread suspension to avoid
potential cycles and deadlocks where threads try to suspend each other.
Bug: 16364458, 16354227

Change-Id: I907f1d5591a6aa5c241d37d6b4a34f968f98df77
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/monitor.cc
untime/native/dalvik_system_VMStack.cc
untime/native/java_lang_Thread.cc
untime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc
untime/thread-inl.h
untime/thread_list.cc
untime/thread_list.h
d4a6e5cc16217bf3e9205d45b728c3d4dc1ddc54 19-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Also accept java.lang.Throwable as a catch-all handler."
f91baf17ad11a86c84c9fc34ff70feee65a43233 19-Jul-2014 Andreas Gampe <agampe@google.com> ART: Also accept java.lang.Throwable as a catch-all handler.

Accept catch handlers with catch type of java.lang.Throwable as
catch-all handlers.

Bug: 16308310
Change-Id: Ie9b9582ee71c94c82b7695dc6f9c2c6df3d869d8
untime/verifier/method_verifier.cc
50246792ff37fe25446b70564c0942f04d3e5f48 19-Jul-2014 Ian Rogers <irogers@google.com> Merge "Run-test fix."
064a59d018164980f75807737d24fde00ba6d7ed 19-Jul-2014 Ian Rogers <irogers@google.com> Run-test fix.

Change-Id: I601d425582a69f77786a76d625079f3ca5974428
est/Android.run-test.mk
a9ca98163408642e78968e8263ac649843cad504 19-Jul-2014 Ian Rogers <irogers@google.com> Merge "Add a GC stress run that uses a moving collector and small heap sizes."
8a14b75d876ad20f08087664070354fa6f65a029 19-Jul-2014 Ian Rogers <irogers@google.com> Add a GC stress run that uses a moving collector and small heap sizes.

Disable 3 run-tests for this configuration that fail for reasons relating to
OOME handling.
Add 012-math to the failing trace tests, it fails due to hitting a file size
limit when running in the interpreter.

Change-Id: Ia58f4c245d9d2d14caf5f2f2f3dcbfa40d4ccadb
uild/Android.common_test.mk
est/Android.oat.mk
est/Android.run-test.mk
e72ff8022968b23efedc56c0afdc1d24e8a928c2 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Do not attempt to compile a method with too many registers"
0d8ea4661c584fc095129f853d0d72b0fa09cda5 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Do not attempt to compile a method with too many registers

The mir_graph has a hard limit on how many ssa registers it can
handle, and will silently fail or fatal out in debug builds when
more SSA registers are necessary. This adds a check in the frontend
that tries to catch some of these cases, and makes the DCHECK a
CHECK to not silently fail.

Bug: 16018097
Change-Id: Iad82178945a8f8c34943cc7573fd73d2b4decade
ompiler/dex/frontend.cc
ompiler/dex/mir_graph.h
607cf2177cd0faceb6c7ca425774557dd62f092b 19-Jul-2014 Ian Rogers <irogers@google.com> Merge "Black list more trace tests."
72b660ec5df56cad8ff6d526b4377a462fc53ce5 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "x86_64: Fix GenDalvikArgsRange for 64-bit ref"
8e3acdd132aef1391676a5db2696804900aacd8e 14-Jul-2014 Serguei Katkov <serguei.i.katkov@intel.com> x86_64: Fix GenDalvikArgsRange for 64-bit ref

32-bit virtual register can be in 64-bit solo register.
So we should not compute the size of virtual register
basing on size of phyical register.

Change-Id: I4e11be13df8469be63808d0ce9d1ca6f80bef483
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
ompiler/dex/quick/x86/target_x86.cc
est/700-LoadArgRegs/expected.txt
est/700-LoadArgRegs/src/Main.java
03fc5abc4c6372c4583179d35e56f6d521806698 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "ART: inline Math.Max/Min (float and double)"
31029988d48074b4193e44856eb863305a2658fb 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Make a soft failure in method verifier hard, add check"
00633eb490ad21f711dcfccfb3a70992b2f8a72a 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Make a soft failure in method verifier hard, add check

Make the soft error of using a primitive type in an instanceof a
hard verifier error.

Add a check when doing check_cast peep-hole optimization to check
whether the cast type is valid.

Bug: 16020300
Change-Id: Icaea560d17804f24a13dc09c115e9ec7039cb472
untime/verifier/method_verifier.cc
9cd20b21c78a85c0ec01a6e282d23a2b2b5df0c5 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Use array-inl.h in reference_table_test"
8115d15f4ce367d9df8de78126f4a98304c1a503 18-Jul-2014 Calin Juravle <calin@google.com> am 6a5af2ed: am 031ddea2: Merge "Fix identifier size in the heap dump."

* commit '6a5af2ed56f8d11f540ed56825513a8b283e1c8e':
Fix identifier size in the heap dump.
8db4c882a8d1996852163ebec966c8b4eb1e00df 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Use array-inl.h in reference_table_test

The test allocates arrays, which is an inline definition.

Change-Id: I1423c5419949d7c352ed0e614d4f9c5920831deb
untime/reference_table_test.cc
6a5af2ed56f8d11f540ed56825513a8b283e1c8e 17-Jul-2014 Calin Juravle <calin@google.com> am 031ddea2: Merge "Fix identifier size in the heap dump."

* commit '031ddea20cb311dfdb3bd16a13750f9cb426b299':
Fix identifier size in the heap dump.
4a3a3d4e3705b94c281764f2e7173de5590e74cb 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Improve overflow detection in dex file verifier" into lmp-dev
ffdf1a72132be9113c4444b5fba3e81c9050b120 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Improve overflow detection in dex file verifier

Overflows were hidden by the design of the checks. Push all range
checks as lists, so we can explicitly check against the count.

(cherry picked from commit 50d1bc198b2e347d60df74c3b0c452e1f929dd2f)

Bug: 16017886
Change-Id: I0083f83006ef1e55518b0919dff319004b66dcb8
untime/dex_file_verifier.cc
untime/dex_file_verifier.h
adf4f7ee11ab40066e819cff56dae90d18da193e 17-Jul-2014 Andreas Gampe <agampe@google.com> am 8dc8b9dd: am d07c9cdd: ART: Lock an arg reg in GenInlinedGet

* commit '8dc8b9dddc6167c1f65527be5a023fadbdf33f10':
ART: Lock an arg reg in GenInlinedGet
3c937a37d555e416cb42be7dd2dbce4611d6558e 17-Jul-2014 Fred Shih <ffred@google.com> am 378866f7: resolved conflicts for merge of d8561422 to lmp-dev-plus-aosp

* commit '378866f7e7f26eba1f9b877418ebded41e6d8d41':
Revert "Revert "Revert "Revert "Add intrinsic for Reference.get()""""
5283fe36a586df09f86fe47f626870adbb905f8c 17-Jul-2014 Ian Rogers <irogers@google.com> am 7661e875: am 6dfa4188: Merge "Avoid direct use of QuasiAtomic by using Atomic."

* commit '7661e87586685dc6246e504da7a959c006020467':
Avoid direct use of QuasiAtomic by using Atomic.
1d5c4414937470371e5bf5abf5fe2cc31eeb4f03 17-Jul-2014 Andreas Gampe <agampe@google.com> am e780e1da: am fb8a07bd: Merge "ART: Refactor GenSelect, refactor gen_common accordingly"

* commit 'e780e1da7d38236a0c2188c6f9ff38e5d392a065':
ART: Refactor GenSelect, refactor gen_common accordingly
8dc8b9dddc6167c1f65527be5a023fadbdf33f10 17-Jul-2014 Andreas Gampe <agampe@google.com> am d07c9cdd: ART: Lock an arg reg in GenInlinedGet

* commit 'd07c9cddccd0476456a5340b716bce3f107013b0':
ART: Lock an arg reg in GenInlinedGet
378866f7e7f26eba1f9b877418ebded41e6d8d41 17-Jul-2014 Fred Shih <ffred@google.com> resolved conflicts for merge of d8561422 to lmp-dev-plus-aosp

Change-Id: I5e379c083a08051909a8ddf5ff1c158ce9e7ee9a
ff5a372be9b5ecaa4c3a9887f064a8a98069d036 17-Jul-2014 Calin Juravle <calin@google.com> Fix bad comment in class_linker

Change-Id: Ic8c90e9d880c5aae7e7bdb6c2a0c854fdaa5c357
untime/class_linker.cc
031ddea20cb311dfdb3bd16a13750f9cb426b299 17-Jul-2014 Calin Juravle <calin@google.com> Merge "Fix identifier size in the heap dump."
3280517651195602253ed92a2749964e96cad27e 04-Jul-2014 Calin Juravle <calin@google.com> Fix identifier size in the heap dump.

We're using addresses as IDs and previously we would have written
sizeof(void*) as the identifier size in the header. Heap references
are actually uint32_t so writting 4 bytes should be enough.

Bug: 16016862
Change-Id: I785abf5030681b6009370b7b2d7552e8b4b54e67
untime/hprof/hprof.cc
1a5272edde69f7ac6ebff2352827c20241496564 21-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Rename openDexFileNative to openDexFile." into lmp-dev
11ca61259be6ec8e03eaff1e98905232728b3d45 17-Jul-2014 Vladimir Marko <vmarko@google.com> Fix GVN to handle normal paths leading to catch entry.

When the catch block is empty, the catch entry is actually
the normal path block after the try block. Fix the LVN
merge for catch entries that didn't expect it during GVN.

Bug: 16360024
Change-Id: I9adfc3445245d3fa3c4809d4df1b7b76fbef5ff2
ompiler/dex/global_value_numbering_test.cc
ompiler/dex/local_value_numbering.cc
5554c0c071af062dba8cb0f4f83d74c94f43676a 21-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Make ART fail gracefully when it can't update the desired code." into lmp-dev
39c86bc9de106e3641ecab2374a24e41d0430694 16-Jul-2014 Calin Juravle <calin@google.com> Make ART fail gracefully when it can't update the desired code.

ART was exiting with a fatal error when it couldn't clean an obsolete
file. Relaxing this and failing gracefully preserves the behaviour that
Dalvik had.

Bug: 15313272

(cherry picked from commit c54aea7f4acd1a32bb298d43c20e3e0217638926)

Change-Id: I862a8925a0edd6370e94af8fa984a64099240029
untime/class_linker.cc
untime/class_linker.h
66a116172bd943387be667e515a4d86aabe330b0 18-Jul-2014 Narayan Kamath <narayan@google.com> Merge "Fix identifier size in the heap dump." into lmp-dev
ccc68d692c5d6ad54cb74163b8930182f9c87d3c 04-Jul-2014 Calin Juravle <calin@google.com> Fix identifier size in the heap dump.

We're using addresses as IDs and previously we would have written
sizeof(void*) as the identifier size in the header. Heap references
are actually uint32_t so writting 4 bytes should be enough.

Bug: 16016862

(cherry picked from commit 3280517651195602253ed92a2749964e96cad27e)

Change-Id: I8b8a0f8d761314139ba01a8bc91c1a3db35b8ae9
untime/hprof/hprof.cc
7661e87586685dc6246e504da7a959c006020467 17-Jul-2014 Ian Rogers <irogers@google.com> am 6dfa4188: Merge "Avoid direct use of QuasiAtomic by using Atomic."

* commit '6dfa4188d5cbe7cb1c89011cda80e1c261ae30f0':
Avoid direct use of QuasiAtomic by using Atomic.
1222c96fafe98061cfc57d3bd115f46edb64e624 15-Jul-2014 Alexei Zavjalov <alexei.zavjalov@intel.com> ART: inline Math.Max/Min (float and double)

This implements the inlined version of Math.Max/Min intrinsics.

Change-Id: I2db8fa7603db3cdf01016ec26811a96f91b1e6ed
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
Signed-off-by: Shou, Yixin <yixin.shou@intel.com>
ompiler/dex/quick/x86/assemble_x86.cc
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/fp_x86.cc
ompiler/dex/quick/x86/utility_x86.cc
ompiler/dex/quick/x86/x86_lir.h
est/082-inline-execute/src/Main.java
c901dd7bdc80b953d04100ef2f54b8d1ca5f466b 16-Jul-2014 Sebastien Hertz <shertz@google.com> Fix access to long/double stack values from debugger

Long and double values live in a pair of DEX registers. When we compile DEX
code with the Quick compiler, a DEX register either lives in the stack or is
promoted to a physical register. In the case of a pair of DEX registers, the
Quick compiler assumes both registers live in the same "area": both live in
the stack or both are promoted to physical registers.

From the debugger, we used to access these values by reading/writing each DEX
register separately. However, this does not work when only one DEX register of
a pair is promoted and the other lives in the stack. In this case, the compiled
code reads from/writes to the stack only.

To fix that, the debugger must follow the same rule than the Quick compiler: if
both DEX registers are promoted, read/write them from/to physical registers,
otherwise read/write them from/to the stack. We add StackVisitor:GetVRegPair and
StackVisitor:SetVRegPair for this purpose.

We also follow the same rule when deoptimizing. However we need to do that only
when we know two consecutive DEX registers are part of a pair (long or double).
We know that thanks to the verifier.

Bug: 15527793
Change-Id: I04812285ff26ef0129f39792a1cf776f3591ca2d
untime/debugger.cc
untime/quick_exception_handler.cc
untime/stack.cc
untime/stack.h
2633ff906e69b0311f31de09ddf9c3c4c4953516 17-Jul-2014 Sebastien Hertz <shertz@google.com> am 366d0a3d: am 62327cda: Fix class initialization checks in interpreter

* commit '366d0a3dbabe33bc6d50f28cfda3caaa746414be':
b6de268bd8e127fdac7ed92e15778f2cd6b9dae1 17-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 263d7125: am be0562fb: Disable adding main and non moving spaces to immune region in GSS

* commit '263d7125a31b77d0299a3976329a16a76f1be1d0':
2239f883135a99574efbf964dc0fd0a3a41b44b6 17-Jul-2014 Ian Rogers <irogers@google.com> am 62bb288f: am de0aafe2: Merge "Remove some to-done TODOs."

* commit '62bb288f2b49766a1f07b9ed82e78f8ae9b204fc':
Remove some to-done TODOs.
62088eb3c7b19409a14766cb4d332b865ddc3d85 17-Jul-2014 Sebastien Hertz <shertz@google.com> am 62327cda: Fix class initialization checks in interpreter

* commit '62327cda9a75e9d15daab0749b37257a146631f4':
Fix class initialization checks in interpreter
881a893ba1efbdb9e7a84af04d654bb230fde674 17-Jul-2014 Mathieu Chartier <mathieuc@google.com> am be0562fb: Disable adding main and non moving spaces to immune region in GSS

* commit 'be0562fb14e6754ee932b8d9c97e2a6df3a91119':
Disable adding main and non moving spaces to immune region in GSS
f491680e304b691c763ea146c5f6147fd3c36adb 18-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Fail dex file verification on invalid access flags" into lmp-dev
0bab231e8215bae409cc104ea3ff2d2481074d5a 18-Jul-2014 Andreas Gampe <agampe@google.com> ART: Fail dex file verification on invalid access flags

Only allow standard java access flags in class-def items.

(cherry picked from commit acc2bb693d83102f93007d7c4881a94bbcc3b9bb)

Bug: 16018234
Change-Id: I54e788817d5974faf7b3841cd01b9ca4568249c1
untime/dex_file_verifier.cc
e780e1da7d38236a0c2188c6f9ff38e5d392a065 17-Jul-2014 Andreas Gampe <agampe@google.com> am fb8a07bd: Merge "ART: Refactor GenSelect, refactor gen_common accordingly"

* commit 'fb8a07bdf92ab097c1d309a8a6b70dacc81f4478':
ART: Refactor GenSelect, refactor gen_common accordingly
6dfa4188d5cbe7cb1c89011cda80e1c261ae30f0 17-Jul-2014 Ian Rogers <irogers@google.com> Merge "Avoid direct use of QuasiAtomic by using Atomic."
37f3c968ecd04e77802fe17bb82dabc07de21ca1 17-Jul-2014 Ian Rogers <irogers@google.com> Avoid direct use of QuasiAtomic by using Atomic.

Change-Id: I92d0f822cddb2085de7cbb4c44c3a429081892a2
untime/base/mutex.cc
untime/base/mutex.h
untime/jdwp/jdwp.h
untime/jdwp/jdwp_handler.cc
untime/jdwp/jdwp_main.cc
a2f85ca0dd0ddab384f395ab270d844affb8fdac 18-Jul-2014 Ian Rogers <irogers@google.com> Merge "Avoid race in single thread suspension." into lmp-dev
6093a5c277e54bcd949dd6fac7b3856e5f371d06 18-Jul-2014 Ian Rogers <irogers@google.com> Avoid race in single thread suspension.

Don't allow more than one concurrent single thread suspension to avoid
potential cycles and deadlocks where threads try to suspend each other.
Bug: 16364458, 16354227

(cherry picked from commit f3d874c60ee3ada19ce26a5c4e532312b6f3a9e9)

Change-Id: I907f1d5591a6aa5c241d37d6b4a34f968f98df77
untime/base/mutex.cc
untime/base/mutex.h
untime/debugger.cc
untime/monitor.cc
untime/native/dalvik_system_VMStack.cc
untime/native/java_lang_Thread.cc
untime/native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc
untime/thread-inl.h
untime/thread_list.cc
untime/thread_list.h
d07c9cddccd0476456a5340b716bce3f107013b0 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Lock an arg reg in GenInlinedGet

Must lock an explicit target register so that it doesn't get used
for a temp and clobbered.

Bug: 16352802

(cherry picked from commit 30ab8a8a6597962adf63f3a438ec34b754cc117e)

Change-Id: Ie478ee42732d439c2a41aac48d15e3c2e71e3fee
ompiler/dex/quick/gen_invoke.cc
d85614222fa062ec809af9d65f04ab6b7dc1c248 11-Jul-2014 Fred Shih <ffred@google.com> Revert "Revert "Revert "Revert "Add intrinsic for Reference.get()""""

Fixed TargetReg issue causing build failure for x86.
This reverts commit 9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f.

(cherry picked from commit 4ee7a665e7f9cd2c5ace2d6304e33f64067b209f)

Change-Id: I555f4e06955711262e6b37ffbeabee9698ec695c
ompiler/dex/quick/dex_file_method_inliner.cc
ompiler/dex/quick/dex_file_method_inliner.h
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mir_to_lir.h
untime/Android.mk
untime/class_linker.cc
untime/gc/reference_processor-inl.h
untime/gc/reference_processor.cc
untime/gc/reference_processor.h
untime/mirror/class-inl.h
untime/mirror/class.h
untime/mirror/object-inl.h
untime/mirror/object.cc
untime/mirror/reference-inl.h
untime/mirror/reference.cc
untime/mirror/reference.h
untime/quick/inline_method_analyser.h
untime/runtime.cc
366d0a3dbabe33bc6d50f28cfda3caaa746414be 17-Jul-2014 Sebastien Hertz <shertz@google.com> am 62327cda: Fix class initialization checks in interpreter

* commit '62327cda9a75e9d15daab0749b37257a146631f4':
Fix class initialization checks in interpreter
263d7125a31b77d0299a3976329a16a76f1be1d0 17-Jul-2014 Mathieu Chartier <mathieuc@google.com> am be0562fb: Disable adding main and non moving spaces to immune region in GSS

* commit 'be0562fb14e6754ee932b8d9c97e2a6df3a91119':
Disable adding main and non moving spaces to immune region in GSS
62bb288f2b49766a1f07b9ed82e78f8ae9b204fc 17-Jul-2014 Ian Rogers <irogers@google.com> am de0aafe2: Merge "Remove some to-done TODOs."

* commit 'de0aafe25a25455cbe930b46a43904125bfa6299':
Remove some to-done TODOs.
bd771bf834efe93a0d10e46f261f542acadcbc07 17-Jul-2014 Andreas Gampe <agampe@google.com> am 45a042e3: am 18179818: Merge "ART: Lock an arg reg in GenInlinedGet"

* commit '45a042e3cf180aef00846097747b0567b0d7199c':
ART: Lock an arg reg in GenInlinedGet
45a042e3cf180aef00846097747b0567b0d7199c 17-Jul-2014 Andreas Gampe <agampe@google.com> am 18179818: Merge "ART: Lock an arg reg in GenInlinedGet"

* commit '1817981832a531580c83f7d71f745da4e06889c3':
ART: Lock an arg reg in GenInlinedGet
23972aea02b5b37149d2d3f97fd1afbf1463db20 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am 55bcda4e: am b2a59010: Merge "Fix lint errors."

* commit '55bcda4ee14b694d290f8a2882773458fc9b6fd6':
Fix lint errors.
369fbb821df68f2a1b9264fe8a6f182d240d00b2 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am e6c1f55e: am b0777f04: Merge "Use the thumb2 assembler for the optimizing compiler."

* commit 'e6c1f55ea3564a555d0463e81aae5868718e9709':
Use the thumb2 assembler for the optimizing compiler.
7c2afdc7ab1e89f86e31d1402bb73dba6d96e5ab 17-Jul-2014 Ian Rogers <irogers@google.com> am 8f31aa80: am 3a07c04d: Merge "Fix test 304-method-tracing failure for Mips."

* commit '8f31aa80ff931e374877a2bbf2e3fbfaf848f2a0':
Fix test 304-method-tracing failure for Mips.
c776f0d93423a45bb91f909020564b6ac3c62e34 17-Jul-2014 Stephen Hines <srhines@google.com> am c7d2c088: am 81457a3c: Merge "Add back a deleted check related to verification."

* commit 'c7d2c088bc28ae4d95620ba6b3b5e2094b7ccb11':
Add back a deleted check related to verification.
b7f3ecc9b83efb62a74658a6a50f17d448ae84ec 17-Jul-2014 Stephen Hines <srhines@google.com> am 0039e4ed: am 233b0e37: Merge "Remove errors/warnings from tautological comparisons."

* commit '0039e4ed0a40657559e255cf84d643c6dfc34bfd':
Remove errors/warnings from tautological comparisons.
8b598f6b9b42637b015074509d6c4cc58c462b58 17-Jul-2014 Jeff Hao <jeffhao@google.com> am 683b00d2: am 9791bb42: Merge "Fix art test failures for Mips."

* commit '683b00d22932fdf050759df1fb0e6c273fe5e892':
Fix art test failures for Mips.
ab9a2b2168db3fc0e9330a2ea6f96781101e499b 17-Jul-2014 Dave Allison <dallison@google.com> am ca2fd368: am ebe8f799: Merge "Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86"""""

* commit 'ca2fd368828b9e6ea12b69b6d63a7abd39ad12bd':
Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""
91d34a93d266b295881d6f7f03573037ce23834a 17-Jul-2014 Ian Rogers <irogers@google.com> am 0edee1bf: am 403ef95b: Merge "Add another test to the trace test black list."

* commit '0edee1bf7fc9e4b68fdb213aa4bdbd943cd1db25':
Add another test to the trace test black list.
ee0ca5fd04f1134bc53895e7309c302678bda596 17-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 5124184b: am 479f131d: Merge "Disable adding main and non moving spaces to immune region in GSS"

* commit '5124184b5fc636d59c039c1ab1fdb16050481cfb':
Disable adding main and non moving spaces to immune region in GSS
907194a395ffa5bc27cad81adbed241f9fd772f0 14-Jul-2014 Alexander Ivchenko <alexander.ivchenko@intel.com> Add optimized assembler implementation of __memcmp16 for x86.

Change-Id: Ia442dd749f8113244ea580f97d574ebaa73e4989
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
untime/Android.mk
untime/arch/memcmp16.h
untime/arch/x86/asm_support_x86.S
untime/arch/x86/memcmp16_x86.S
55bcda4ee14b694d290f8a2882773458fc9b6fd6 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am b2a59010: Merge "Fix lint errors."

* commit 'b2a59010b787bd9d5d9bf36d32682faa5ad8da24':
Fix lint errors.
e6c1f55ea3564a555d0463e81aae5868718e9709 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> am b0777f04: Merge "Use the thumb2 assembler for the optimizing compiler."

* commit 'b0777f04c9d79a43c2e490716fe4300f1fb68df7':
Use the thumb2 assembler for the optimizing compiler.
8f31aa80ff931e374877a2bbf2e3fbfaf848f2a0 17-Jul-2014 Ian Rogers <irogers@google.com> am 3a07c04d: Merge "Fix test 304-method-tracing failure for Mips."

* commit '3a07c04d2e6feec188994f73a3e6f48c6c4c49d6':
Fix test 304-method-tracing failure for Mips.
62327cda9a75e9d15daab0749b37257a146631f4 16-Jul-2014 Sebastien Hertz <shertz@google.com> Fix class initialization checks in interpreter

Check field's class initialization after handling null pointer exception.

Bug: 16324235

(cherry picked from commit 1edbd8e5405486a96d69481f5f30a8ca16d510b5)

Change-Id: I31ef07a08ff70c5695dda1079afea5b2579bb8e3
untime/interpreter/interpreter_common.cc
b2a59010b787bd9d5d9bf36d32682faa5ad8da24 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Fix lint errors."
169277a12ed857d0d8ba1b808e0e7e414a5d0f95 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Fix lint errors.

Change-Id: I7bbaad590d84db97acfa7f8c4d093bc40e64684a
ompiler/utils/arm/assembler_thumb2.h
b0777f04c9d79a43c2e490716fe4300f1fb68df7 17-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Merge "Use the thumb2 assembler for the optimizing compiler."
c7d2c088bc28ae4d95620ba6b3b5e2094b7ccb11 17-Jul-2014 Stephen Hines <srhines@google.com> am 81457a3c: Merge "Add back a deleted check related to verification."

* commit '81457a3cd8fca14396b5785a4e4c8070c259b07a':
Add back a deleted check related to verification.
0039e4ed0a40657559e255cf84d643c6dfc34bfd 17-Jul-2014 Stephen Hines <srhines@google.com> am 233b0e37: Merge "Remove errors/warnings from tautological comparisons."

* commit '233b0e37b463ba3e880262f6fea255b95f0f89c1':
Remove errors/warnings from tautological comparisons.
fb8a07bdf92ab097c1d309a8a6b70dacc81f4478 17-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Refactor GenSelect, refactor gen_common accordingly"
90969af6deb19b1dbe356d62fe68d8f5698d3d8f 16-Jul-2014 Andreas Gampe <agampe@google.com> ART: Refactor GenSelect, refactor gen_common accordingly

This adds a GenSelect method meant for selection of constants. The
general-purpose GenInstanceof code is refactored to take advantage of
this. This cleans up code and squashes a branch-over on ARM64 to a
cset.

Also add a slow-path for type initialization in GenInstanceof.

Change-Id: Ie4494858bb8c26d386cf2e628172b81bba911ae5
ompiler/dex/quick/arm/codegen_arm.h
ompiler/dex/quick/arm/int_arm.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/mips/codegen_mips.h
ompiler/dex/quick/mips/int_mips.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
81457a3cd8fca14396b5785a4e4c8070c259b07a 17-Jul-2014 Stephen Hines <srhines@google.com> Merge "Add back a deleted check related to verification."
1817981832a531580c83f7d71f745da4e06889c3 17-Jul-2014 Andreas Gampe <agampe@google.com> Merge "ART: Lock an arg reg in GenInlinedGet"
30ab8a8a6597962adf63f3a438ec34b754cc117e 17-Jul-2014 Andreas Gampe <agampe@google.com> ART: Lock an arg reg in GenInlinedGet

Must lock an explicit target register so that it doesn't get used
for a temp and clobbered.

Bug: 16352802
Change-Id: I9e4ac76f92460cdbe59392989d12f8d0321cc624
ompiler/dex/quick/gen_invoke.cc
de0aafe25a25455cbe930b46a43904125bfa6299 17-Jul-2014 Ian Rogers <irogers@google.com> Merge "Remove some to-done TODOs."
1fceb4088057a009045319610999848e146c16b3 17-Jul-2014 Ian Rogers <irogers@google.com> Remove some to-done TODOs.

Change-Id: I976d35b1aa79f4dded86502a18bc679ba232d664
untime/entrypoints/entrypoint_utils.h
683b00d22932fdf050759df1fb0e6c273fe5e892 17-Jul-2014 Jeff Hao <jeffhao@google.com> am 9791bb42: Merge "Fix art test failures for Mips."

* commit '9791bb427fd812c1268edab6fb3ac7b82ad9fb93':
Fix art test failures for Mips.
3a07c04d2e6feec188994f73a3e6f48c6c4c49d6 17-Jul-2014 Ian Rogers <irogers@google.com> Merge "Fix test 304-method-tracing failure for Mips."
c3d131e1ec030b4ff5c44fe2a45d5fb45b3295af 17-Jul-2014 Douglas Leung <douglas@mips.com> Fix test 304-method-tracing failure for Mips.

Change-Id: Id5ce9fd3c880dd568b11a1deea7e42ea587934ba
Signed-off-by: Douglas Leung <douglas@mips.com>
untime/arch/mips/quick_entrypoints_mips.S
233b0e37b463ba3e880262f6fea255b95f0f89c1 17-Jul-2014 Stephen Hines <srhines@google.com> Merge "Remove errors/warnings from tautological comparisons."
ca2fd368828b9e6ea12b69b6d63a7abd39ad12bd 17-Jul-2014 Dave Allison <dallison@google.com> am ebe8f799: Merge "Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86"""""

* commit 'ebe8f799c5053f85adffee23cb46851efebbfd92':
Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""
0edee1bf7fc9e4b68fdb213aa4bdbd943cd1db25 17-Jul-2014 Ian Rogers <irogers@google.com> am 403ef95b: Merge "Add another test to the trace test black list."

* commit '403ef95be8c2a91bf73b133cede8ecd2a146cec6':
Add another test to the trace test black list.
5124184b5fc636d59c039c1ab1fdb16050481cfb 16-Jul-2014 Mathieu Chartier <mathieuc@google.com> am 479f131d: Merge "Disable adding main and non moving spaces to immune region in GSS"

* commit '479f131d4bd3829dd512312020808b05f5a591f1':
Disable adding main and non moving spaces to immune region in GSS
be0562fb14e6754ee932b8d9c97e2a6df3a91119 14-Jul-2014 Mathieu Chartier <mathieuc@google.com> Disable adding main and non moving spaces to immune region in GSS

Disabled adding the main and non moving space to the immune region.
This will enable us to recycle bump pointer spaces for malloc space
-> malloc space compaction as well as collector transitions.

Also added logic for falling back to the non moving space, we may
copy objects there.

Refactored mod union table logic into MarkReachableObjects.

No measurable performance benefit or regression.

Bug: 14059466
Bug: 16291259

(cherry picked from commit 4c13a3ff475f206c4d0a86ee2595c45392fd942f)

Change-Id: I858b4fbddca888e164052ad247565a0bdbea68b5
untime/base/macros.h
untime/check_jni.cc
untime/class_linker.h
untime/gc/accounting/mod_union_table.cc
untime/gc/collector/mark_sweep-inl.h
untime/gc/collector/mark_sweep.cc
untime/gc/collector/semi_space-inl.h
untime/gc/collector/semi_space.cc
untime/gc/collector/semi_space.h
untime/gc/heap.cc
untime/gc/heap.h
untime/gc/space/space.h
untime/object_callbacks.h
untime/utils.h
90f7ac53119ae9b8a5ef5c62d29e75477fe1d4b5 16-Jul-2014 Ian Rogers <irogers@google.com> am 3f2c03f3: am e66f6318: Merge "Fix x86 build."

* commit '3f2c03f38f8fc3fd0310002f10f70145d180a364':
Fix x86 build.
3f2c03f38f8fc3fd0310002f10f70145d180a364 16-Jul-2014 Ian Rogers <irogers@google.com> am e66f6318: Merge "Fix x86 build."

* commit 'e66f6318635c49313f796e62170fa8f59340e926':
Fix x86 build.
b461e9f13527def0041280f5b8c25d3796e7eb67 16-Jul-2014 Sebastien Hertz <shertz@google.com> am d40f588e: am 792f5967: Merge "Fix class initialization checks in interpreter"

* commit 'd40f588e91244127a393531c585aa43dfe7ffc3f':
Fix class initialization checks in interpreter
d40f588e91244127a393531c585aa43dfe7ffc3f 16-Jul-2014 Sebastien Hertz <shertz@google.com> am 792f5967: Merge "Fix class initialization checks in interpreter"

* commit '792f596728d6bfb78546020a326927285aeeaad4':
Fix class initialization checks in interpreter
61bc962a6a122c2f75aa21431fb17f369fb7edfd 16-Jul-2014 Ian Rogers <irogers@google.com> am 7fdb0593: am aab012d6: Merge "Add --trace variants of the run-test testing rules."

* commit '7fdb0593bf881b992e3e9806985d2e77d01f73b0':
Add --trace variants of the run-test testing rules.
7fdb0593bf881b992e3e9806985d2e77d01f73b0 16-Jul-2014 Ian Rogers <irogers@google.com> am aab012d6: Merge "Add --trace variants of the run-test testing rules."

* commit 'aab012d6196bd29b3167963ec8acb0b9780672b2':
Add --trace variants of the run-test testing rules.
22c6a817ed3019455d22df13bd91faf012177ef6 16-Jul-2014 Stephen Hines <srhines@google.com> Add back a deleted check related to verification.

Change-Id: Ib939d1a7395a4b6cc9a7256cfb0a3498ba296744
untime/gc/heap.cc
8edcb9c8bc62fcbd181e136c32086f2b970306a4 16-Jul-2014 Calin Juravle <calin@google.com> Rename openDexFileNative to openDexFile.

We no longer need two distinct methods.

Bug: 15563230
Change-Id: I71ae9e32da18fe1e6a06879579b53e11d29e98f7
untime/native/dalvik_system_DexFile.cc
8d486731559ba0c5e12c27b4a507181333702b7e 16-Jul-2014 Nicolas Geoffray <ngeoffray@google.com> Use the thumb2 assembler for the optimizing compiler.

Change-Id: I2b058f4433504dc3299c06f5cb0b5ab12f34aa82
uild/Android.common_test.mk
ompiler/optimizing/code_generator_arm.cc
ompiler/optimizing/code_generator_arm.h
ompiler/optimizing/codegen_test.cc
ompiler/optimizing/optimizing_compiler.cc
ompiler/utils/arm/assembler_arm.cc
ompiler/utils/arm/assembler_thumb2.cc
ompiler/utils/arm/assembler_thumb2.h
9791bb427fd812c1268edab6fb3ac7b82ad9fb93 17-Jul-2014 Jeff Hao <jeffhao@google.com> Merge "Fix art test failures for Mips."
ebe8f799c5053f85adffee23cb46851efebbfd92 17-Jul-2014 Dave Allison <dallison@google.com> Merge "Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86"""""
69dfe51b684dd9d510dbcb63295fe180f998efde 11-Jul-2014 Dave Allison <dallison@google.com> Revert "Revert "Revert "Revert "Add implicit null and stack checks for x86""""

This reverts commit 0025a86411145eb7cd4971f9234fc21c7b4aced1.

Bug: 16256184
Change-Id: Ie0760a0c293aa3b62e2885398a8c512b7a946a73
uild/Android.gtest.mk
uild/Android.oat.mk
ompiler/dex/quick/arm/call_arm.cc
ompiler/dex/quick/arm64/call_arm64.cc
ompiler/dex/quick/arm64/codegen_arm64.h
ompiler/dex/quick/arm64/int_arm64.cc
ompiler/dex/quick/arm64/target_arm64.cc
ompiler/dex/quick/codegen_util.cc
ompiler/dex/quick/gen_common.cc
ompiler/dex/quick/gen_invoke.cc
ompiler/dex/quick/mir_to_lir.h
ompiler/dex/quick/x86/assemble_x86.cc
ompiler/dex/quick/x86/call_x86.cc
ompiler/dex/quick/x86/codegen_x86.h
ompiler/dex/quick/x86/int_x86.cc
ompiler/dex/quick/x86/target_x86.cc
ompiler/dex/quick/x86/utility_x86.cc
ompiler/dex/quick/x86/x86_lir.h
ompiler/driver/compiler_options.h
ompiler/image_test.cc