dalvik: dalvik device extension pack.

Add support for customer device extension

Change-Id: I0402a630ba212d1c5e81cda110f61210f7b60384
(cherry picked from commit 11499df326462bfe25890a35c6abbf019ff7784e)
(cherry picked from commit e03b8f8da9cf4eef64cedf39ce9ca90d26ce5124)
(cherry picked from commit fb360be406f35b9591f12c61936657f03cc5880f)
GC triggering performance optimizations

Copy the correct starting heap size at process init.
Interfaces to set GC/managed heap parameters.

Change-Id: I454b1985a3225d7dbdea9c5d4e6f0c9f5e24352e
(cherry picked from commit ea59f91c8559dee1710f38a27db10f76f4753fea)
(cherry picked from commit 12fc949d46e988ce6877ad4c60f5fc983c5dc202)
(cherry picked from commit 73a1dac0b14ab5159453c2d696049e233e7476b0)
Dump hprof when app encounters Out of memory

These changes will only dump application hprof when debug
property "dalvik.debug.oom" is set to -1.

CRs-Fixed: 471156

Change-Id: I41fbbd5cdaa852cd5e8896186e9d3993688a9cb0
(cherry picked from commit eac7514a989e78b191fde100475b907427158b8d)
(cherry picked from commit 63a1141f9bb9fc58beacdde1e8e24df82fe6e000)
Use 64-bit Linux capabilities when starting Zygote

Enable 64-bit capabilities when starting Zygote to allow
>32-bit capabilties to be set, such as CAP_BLOCK_SUSPEND.

Change-Id: I2821a2a393dc521c7b99a7283ba17b3ae3b375fd
dalvik/vm: Dalvik startup with a low memory footprint

Initialize concurrentStartBytes and createMspace using HEAP_MIN_FREE.
This helps save Android framework memory after boot.

This is for low memory targets only(<=512MB RAM & hdpi resolution)
Also, set TARGET_ARCH_LOWMEM in the BoardConfig.mk file of a device
for this patch to take effect.

Change-Id: Ia1dec6e89ef8285f1e12644bcdc6ca17a15e37a2
dalvik: use T3 branch when target offset is too large

T1 branch has offset limit of [-256, 254]. T3 branch has offset
limit of [-1048576, 1048574]. Use T3 branch when target offset
falls outside T1 range to avoid compiliation abort.

Change-Id: I86809e08236b1f5f5102e3fce4df4b1e72e4b96c
setting RLIMIT to INFINITY.

This is to generate coredumps for processes spawned by zygote

Change-Id: I2dbac76fbcaa7be3845ba5e12ad064548a25e2e3
Dalvik : Increase the upper limit check for DexOpt Deps table

Increasing upper limit check for the Deps table as additonal
jars added causes the dalvik to crash while performing dexopt
on cached jar files. This is needed for passing cts test case
which is part of libcore.java.util.jar.DalvikExecTest class.

CRs-Fixed: 573586
Change-Id: Ic991ca7b49cdd80cdba330edc759ece43361f9fb
Dalvik : Increase the upper limit check for DexOpt Deps table

Increasing upper limit check for the Deps table as additonal
jars added causes the dalvik to crash while performing dexopt
on cached jar files. This is needed for passing cts test case
which is part of libcore.java.util.jar.DalvikExecTest class.

Change-Id: I7e271ddf68d2b0d03081b03c395ac62d4e50ef0f
CRs-Fixed: 573586
dalvik: use bioinc memmove

use memmove from bioinc if it is halfword atomic.

Change-Id: I81c38c2b504483b69b0b1c1e4ffb63cb81d347d5
dalvik: Fix leak in error condition in FindClass

Release trackedLoader for all exit points in FindClass

Change-Id: I2da26ed6253c2b1b9381bff394596245b993602c
Dalvik : Increase the upper limit check for DexOpt Deps table

Increasing upper limit check for the Deps table as additonal
jars added causes the dalvik to crash while performing dexopt
on cached jar files. This is needed for passing cts test case
which is part of libcore.java.util.jar.DalvikExecTest class

Change-Id: I63119dc3e45df19910ae70cedad6109075672d6e
dalvik: add placeholder for future changes

add placeholder for future changes

Change-Id: I09dd704a60857de71cafd7e6b64ee750c5cb95b1
Dalvik :Increase the upper limit check for DexOpt Deps table

Increasing upper limit check for the Deps table as additonal
jars added causes the dalvik to crash while performing dexopt
on cached jar files. This is needed for passing cts test case
which is part of libcore.java.util.jar.DalvikExecTest class

Change-Id: I479d105002f98abd281aeeaa6463fc870a3c86b3
Dalvik :Increase the upper limit check for DexOpt Deps table

Increasing upper limit check for the Deps table as additonal
jars added causes the dalvik to crash while performing dexopt
on cached jar files. This is needed for passing cts test case
which is part of libcore.java.util.jar.DalvikExecTest class

Change-Id: I17651b0710bc460588fe0454ec3e0a8b65f63216
CRs-Fixed:621955
Dalvik :Increase the upper limit check for DexOpt Deps table

Increasing upper limit check for the Deps table as additonal
jars added causes the dalvik to crash while performing dexopt
on cached jar files. This is needed for passing cts test case
which is part of libcore.java.util.jar.DalvikExecTest class

Change-Id: I5431238839712499122eb35132599230d8610de8
CRs-Fixed:621955
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)
Dalvik: Add sdiv support in the interpreter

This patch adds hardware divide support in the interpreter side of
dalvik. This operation is supported on new armv7 cpus such as A15 or A7.

Opcodes added:
    OP_DIV_INT
    OP_DIV_INT_2ADDR
    OP_DIV_INT_LIT16
    OP_DIV_INT_LIT8
    OP_REM_INT
    OP_REM_INT_2ADDR
    OP_REM_INT_LIT16
    OP_REM_INT_LIT8

Change-Id: Ib1ec5856d957feadd90807fe53ec34cc0e1fd4a2
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Dalvik: Add sdiv support in the JIT

This patch adds hardware divide support in the JIT side of dalvik.
This operation is supported on new armv7 cpus such as A15 or A7.

The following opcodes are enabled and will generate code based using
SDIV instruction:

        OP_DIV_INT
        OP_DIV_INT_2ADDR
        OP_REM_INT
        OP_REM_INT_2ADDR
        OP_DIV_INT_LIT16
        OP_DIV_INT_LIT8
        OP_REM_INT_LIT16
        OP_REM_INT_LIT8

Change-Id: I2b2f9f337f13b5c794df951c4929b6ca0ad583c4
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>