Add support for MIPS64 in linkloader

Add relocateMIPS64() and handle the necessary relocations for the 64-bit
architecture.

Change-Id: Ib6372185dad349fce038a1801cf533e7dae8b27f
Add enum for OEM defined intrinsics.

Change-Id: If5c04ddfee02beefe9f5ee178f1dcec26a7a1fec
Fix isObject when in 64bit mode.

This also cleans up the passing of args to SetObject and ClearObject.
Fix related issues in 64bit teardown.

Change-Id: I90d1b93c45ff5bc84957d5441ab48a4e2f6feb20
Bugfixes for AArch64.

- Disable use of runtime pointer until we can set it correctly in invokes.
- Disable YUV and ColorMatrix ASIMD intrinsics
- Modify runtime stubs to use large objects correctly
- Fix calling convention in allocation.ll
- Add appropriate rsr functions for compat lib and large objects

bug 16846318

Change-Id: I7f6a4ff66fd1b3ad40b08cfc9ecdda7d53e95c7d
Merge "Add enum for OEM defined intrinsics."
Merge "Fix isObject when in 64bit mode."
Merge "Bugfixes for AArch64."
Merge "Add support for MIPS64 in linkloader"
Collapse code paths for single- and multi-input kernels.

This patch simplifies the RenderScript driver and CPU reference implementation
by removing the distinction between sing- and multi-input kernels in many
places.  The distinction is maintained in some places due to the need to
maintain backwards compatibility.  This permits the deletion of some functions
and struct members that are no longer needed.  Several related functions were
also cleaned up.

Change-Id: I77e4b155cc7ca1581b05bf901c70ae53a9ff0b12
Merge "Collapse code paths for single- and multi-input kernels."
Revert "Collapse code paths for single- and multi-input kernels."

This reverts commit 818cfa034e257c7bb48356257f5cb67334e19aa6.

Change-Id: I59f39f52e6c8f60bb01cbcb8ccf2215eaf46a57f
Merge "Revert "Collapse code paths for single- and multi-input kernels.""
Collapse code paths for single- and multi-input kernels.

This patch simplifies the RenderScript driver and CPU reference implementation
by removing the distinction between sing- and multi-input kernels in many
places.  The distinction is maintained in some places due to the need to
maintain backwards compatibility.  This permits the deletion of some functions
and struct members that are no longer needed.  Several related functions were
also cleaned up.

Change-Id: Id70a223ea5e3aa2b0b935b2b7f9af933339ae8a4
Merge "Collapse code paths for single- and multi-input kernels."
Explicitly accept RS large objects as references.

AArch64 promotes large objects to be passed by reference. As a result, if large objects as passed by value in rsdRuntimeStubs, the AArch64 kernel and an AArch64 rsdRuntimeStubs will have the same calling convention, both will promote, and everything will work.

However, other architectures do not share this same behavior by promoting large object structs to being passed by reference. As a result, an AArch64 kernel and an x86_64 rsdRuntimeStubs will disagree on the calling convention, causing a crash.

AArch64 continues to work despite this change because the calling conventions continue to line up, even if the rsdRuntimeStubs side explicitly uses pointers while the kernel side does not.

Change-Id: I5bc29de5259eda26967f2b32980d40ce249f9599
Signed-off-by: Yong Chen <yong.a.chen@intel.com>
Merge "Explicitly accept RS large objects as references."
Remove the instep parameter.

This patch removes the instep parameter from calls to expanded kernels and
from the CPU reference implementation intrinsics.

Change-Id: I059db548a57702c576963f6b17a002b2ee393cdb
Adjust to handle the change to std::vector in libbcc.

Change-Id: I9bcf36d088d423246312d97e2a87a05e90f6617d
Merge "Remove the instep parameter."
Replaced android::Vector with std::vector.

Change-Id: I4c6abd964dc4b1412ec2e592fc8e835fecfe53f6