dalvik: Use Bionic's memmove on cortex-a15

Change-Id: Ia313d784cf9e261e0c82f1a6d412eca1731a5034

Conflicts:
	vm/Dvm.mk
dalvik: use bioinc memmove

use memmove from bioinc if it is halfword atomic.

Change-Id: I81c38c2b504483b69b0b1c1e4ffb63cb81d347d5
Dalvik: DMB Optimisation

Replaces use of 'dmb' and 'dmb st' with inner-shareable versions.
This should improve performance in certain cases without harming
correctness.

Change-Id: Id30f58b93b34bf0e232bb01dc3956a82f7a69c40
(cherry picked from commit 2ea163ba54731afcfa11341a525c33e08d0781fa)
Dalvik: DMB Optimisation

Replaces use of 'dmb' and 'dmb st' with inner-shareable versions.
This should improve performance in certain cases without harming
correctness.

Change-Id: Id30f58b93b34bf0e232bb01dc3956a82f7a69c40
(cherry picked from commit 2ea163ba54731afcfa11341a525c33e08d0781fa)
Dalvik: DMB Optimisations for TracingJIT

Makes DMB domain ISH or ISHST instead of the implicit System.
ISH (Inner Shareable) should be sufficient for all cores/clusters,
but is not sufficient for GPU or other memory-mapped peripherals

Change-Id: Id159228daba97bc3692d2eb1ee2786bae2ee34a7
(cherry picked from commit 48704eccc23e91f3ee46ea4882d1dfef43646cc4)
A char array copy optimization (dalvik).

Bug: 7103825

(cherry picked from commit dc6cb9c7cb4ef636aa6f542615410b56a67b94dc)

Change-Id: I0b8ab789ffb8702bc134b32398c120cc3ed29b9c
Fix synchronization when preparing ids.

Synchronized blocks were using different locks.
Replaced by a safer version: marking intern method synchronized.
This means synchronizing more than necessary but it had no
mesurable perfomance impact.

Bug 11744785

Change-Id: I35e691232cd6971d13735be9b72969739ef71e09
vm: Enable fast multiply on perf builds too

Change-Id: I74d152ea9cfe5b15daa9a8353ca27d8afa7474d2

Conflicts:
	vm/compiler/codegen/arm/Thumb/Gen.cpp
	vm/compiler/codegen/arm/Thumb2/Gen.cpp