Dexopt verifier checks that int/float and double/long uses do not mix.

Added new types to dexopt indicating a type is derived from a constant,
which may or may not be floating point. After such a value is used, its
type can be determined, and the verifier enforces that it is always used
that way afterwards.

Change-Id: I150deaa162aec17bcc9c3e3200bc0350ae5b3f24
Don't wrap the actual type in parens if its null.

Otherwise the exception message has unnecessary parens:
"expected receiver of type java.lang.String, but got (null)"

Change-Id: Iacd806d018019784afa6e9f25f7c039d9ca18fae
Enhance CheckJNI to recognize when an type-incompatible jfieldID is used to get/set a field.

This would have found a bug that broke setSoTimeout in libcore, and did find
a hitherto-unknown bug in android.text.format.Time.

Bug: 5162851
Change-Id: I62f2a0db3adb1cd0e4616075f6d4efaee393de30
merge in ics-release history after reset to master
Merge "Dexopt verifier checks that int/float and double/long uses do not mix."
Fix two data races in the monitor code.

First, the release of a lock was not preceded by a memory barrier.
This would allow stores within the critical section to move outside
the critical section violating the monitor invariant.

Second, the thin lock value was often not loaded through volatile
pointer.  This provides the compiler with the freedom to reload the
thin lock with a different value causing erroneous updates to the lock
word.

Bug: 5107390
merge in ics-release history after reset to master
merge in ics-release history after reset to master
Fix JNIEXPORT now people are using -fvisibility.

This is a backport from dalvik-dev.

Change-Id: If6001b580bd9b36f3845aaa115333d69682f3a92
Permit code size to grow when merging dex files.

The throws clauses use variable-length encodings (sleb and uleb)
which will have different lengths when the number of types grows.

Bug: http://b/5127963
Change-Id: I50598a807596955e458d4ec87a730e62e12168d9
merge in ics-release history after reset to master
Merge "Fix JNIEXPORT now people are using -fvisibility."
merge in ics-release history after reset to master
Removed parsing and output for unused --target-api switch in dx.

This is cherry-picked from dalvik-dev.

Change-Id: I74627e4c261e086e8c2c7cf38591cd3e9f5707e6
merge in ics-release history after reset to master
Set DX stack size to 1M by default on Windows.

Bug: http://code.google.com/p/android/issues/detail?id=15181

Summary of bug: some user reported issues running dx.bat and
Fadden figured out the VM's stack size default was too small.
Using -Xss1m fixed it.

This CL introduces a default of -Xss1m and the usual mechanism
to override it using -JXssNm (like for -JXmx...)

Change-Id: I9769316c1708f08c91b93e07bd6d713a10561ea2
Dx reg allocator fix for accidental long/double clobbering.

Addresses this bug: http://b/issue?id=5215643.

Change-Id: I82613c38b0a6247d071aa6c5cc90bf8b60d5d84b
Merge "Set DX stack size to 1M by default on Windows."
am e4e76feb: Merge "Set DX stack size to 1M by default on Windows."

* commit 'e4e76feb6aad0d0161fabe12cb7d97e665f7b109':
  Set DX stack size to 1M by default on Windows.
am 1dd1d924: am e4e76feb: Merge "Set DX stack size to 1M by default on Windows."

* commit '1dd1d9246c0804d1b4fda955c56a6d89c989ec6a':
  Set DX stack size to 1M by default on Windows.