LongToFp result storage fixed

When converting long values to floating-point, the resulting value
was not stored properly. This was the reason of incorrect results
of arithmetic operations where such conversions were used.

Performance measurement in Quadrant Pro KPI benchmark was blocked
by long-to-fp conversion errors.

This patch ensures that result of long-to-fp conversion is stored
properly.

Change-Id: I94beffcf7f0146c0c6d5b8ae33b020c985843db0
Signed-off-by: Maxim Kazantsev <maxim.kazantsev@intel.com>
Create a scoped arena allocator and use that for LVN.

This saves more than 0.5s of boot.oat compilation time
on Nexus 5.

TODO: Move other stuff to the scoped allocator. This CL
alone increases the peak memory allocation. By reusing
the memory for other parts of the compilation we should
reduce this overhead.

Change-Id: Ifbc00aab4f3afd0000da818dfe68b96713824a08
backtrace: use Java stack to help decode native

Before change:

  native: usb_host_run+16 [0x400a43f9] (/libusbhost.so)
  native: android::Vector<int>::do_move_forward(void*, void const*, unsigned int) const+54 [0x501b1c5b] (/libandroid_servers.so)
  native: ??? [0x624de480] (/system@framework@boot.oat)
  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)
  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)

After change:

  native: usb_host_run+16 [0x400933f9] (libusbhost.so)
  native: android::Vector<int>::do_move_forward(void*, void const*, unsigned int) const+54 [0x4e984c5b] (libandroid_servers.so)
  native: Java_com_android_server_usb_UsbHostManager_monitorUsbHostBus__+92 [0x624de480] (system@framework@boot.oat)
  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)
  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)

Change-Id: Iea550a251a12e9ba7df9582fd454093bfa4e90e0
Add convenience targets for switching between full, smart, interpret-only

Change-Id: Ic0e016404d79fd0e40519f33210b332414adc8bf
Fix LIR generation for long arithmetic operation

X86Mir2Lir::GenLongArith generated wrong LIR if the first argument
of the operation was promoted. It forgot to swap arguments if
the first was not temp, but the second was temp

Change-Id: I389f72f560ce9924859e17385bc8f64793c77b67
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
Merge "Create a scoped arena allocator and use that for LVN."
Use ScopedArenaAllocator for CacheFieldLoweringInfo pass.

Change-Id: Idcc2edeb865e29b1bc42b108fc58a1f964295317
Merge "Use ScopedArenaAllocator for CacheFieldLoweringInfo pass."
Merge "backtrace: use Java stack to help decode native"
Fix clang errors in ArenaAllocator.

Change-Id: Ib0fa290fd46ff9288f86cda9be2d1c1faf99b964
Merge "Fix clang errors in ArenaAllocator."
Add more VerifyObject calls.

Added verify object calls to SirtRef, IndirectReferenceTable,
ReferenceTable.

Removed un-needed verify object in ScopedObjectAccess / DecodeJObject
since object sources are handled.

Bug: 12934910
Change-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125
Merge "Add more VerifyObject calls."
Release unused parts of a JNI frame before calling native code

Two-pass process for setting up the JNI frame so we can put Sirt
and native call stack as close together as possible.

Change-Id: I827167a55fafc4eba7d4eaf14a35fc69fd5f85ce
Merge "Release unused parts of a JNI frame before calling native code"
Merge "Add convenience targets for switching between full, smart, interpret-only"
Make use of profiling information for dex2oat

If the profile file exists, the compiler driver will read it
and store the data in an internal map.  Then, when we want to work
out whether to compile a method or not, the map is consulted and if
the method shows up with a high enough percentage of use we compile it.

The profile file itself is created by installd and is writeable by the
app.  The file is in /data/dalvik-cache/profiles and is named by
the package name.

This also modifies the profiler itself to:

1. Only count runnable threads (not suspended threads) in the profile
2. Use system properties to allow tuning of the profile parameters
3. Merge profiles from multiple processes using file locking.

Bug: 12877748
Change-Id: Iab2f3a327a2860db2a80d5724277d6c626227f2b

Conflicts:
	compiler/dex/frontend.cc
	compiler/dex/mir_analysis.cc
	compiler/dex/verification_results.cc
	compiler/driver/compiler_driver.cc
	dex2oat/dex2oat.cc
	runtime/class_linker.cc
	runtime/runtime.cc
	runtime/runtime.h
Use GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset

The latter is meant for compile time use only when an offset is stored, instead of a pointer to code

Change-Id: I2fa9b8b3aaab0e6cfa1fc31c4d44aab0d9c3d30f
Merge "Make use of profiling information for dex2oat"
Merge "Use GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset"