Add 64bit large object support

Add HAL hooks for filling in LO fields.

Change-Id: Ib9bdee714a062de519d2a9708c1016404a1b11a4

Conflicts:
	driver/rsdBcc.cpp
	driver/rsdCore.cpp
	rsAllocation.h
	rs_hal.h
diff --git a/rsScriptC_Lib.cpp b/rsScriptC_Lib.cpp
index 9435a4a..26d8fb0 100644
--- a/rsScriptC_Lib.cpp
+++ b/rsScriptC_Lib.cpp
@@ -134,26 +134,36 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-void rsrSetObject(const Context *rsc, ObjectBase **dst, ObjectBase * src) {
-    //ALOGE("rsiSetObject  %p,%p  %p", vdst, *vdst, vsrc);
+static void SetObjectRef(const Context *rsc, const ObjectBase *dst, const ObjectBase *src) {
+    //ALOGE("setObjectRef  %p,%p  %p", rsc, dst, src);
     if (src) {
         CHECK_OBJ(src);
         src->incSysRef();
     }
-    if (dst[0]) {
-        CHECK_OBJ(dst[0]);
-        dst[0]->decSysRef();
+    if (dst) {
+        CHECK_OBJ(dst);
+        dst->decSysRef();
     }
-    *dst = src;
 }
 
-void rsrClearObject(const Context *rsc, ObjectBase **dst) {
-    //ALOGE("rsiClearObject  %p,%p", vdst, *vdst);
-    if (dst[0]) {
-        CHECK_OBJ(dst[0]);
-        dst[0]->decSysRef();
+void rsrSetObject(const Context *rsc, void *dst, ObjectBase *src) {
+    ObjectBase **odst = (ObjectBase **)dst;
+    //ALOGE("rsrSetObject (base) %p,%p  %p", dst, *odst, src);
+    SetObjectRef(rsc, odst[0], src);
+    if (src != NULL) {
+        src->callUpdateCacheObject(rsc, dst);
     }
-    *dst = NULL;
+}
+
+
+void rsrClearObject(const Context *rsc, void *dst) {
+    ObjectBase **odst = (ObjectBase **)dst;
+    //ALOGE("rsrClearObject  %p,%p", odst, *odst);
+    if (odst[0]) {
+        CHECK_OBJ(odst[0]);
+        odst[0]->decSysRef();
+    }
+    *odst = NULL;
 }
 
 bool rsrIsObject(const Context *rsc, const ObjectBase *src) {