Support for JNI local reference cookie.

This also fixes a cross compilation bug in reseting the top of the
indirect reference table following a down call.

Change-Id: I40d913a6f86dadfe87b58d6d13a1ff3613f270ac
diff --git a/src/assembler_arm.h b/src/assembler_arm.h
index 69b39c0..3f979c6 100644
--- a/src/assembler_arm.h
+++ b/src/assembler_arm.h
@@ -455,6 +455,8 @@
   // Load routines
   virtual void Load(ManagedRegister dest, FrameOffset src, size_t size);
 
+  virtual void Load(ManagedRegister dest, ThreadOffset src, size_t size);
+
   virtual void LoadRef(ManagedRegister dest, FrameOffset  src);
 
   virtual void LoadRef(ManagedRegister dest, ManagedRegister base,
@@ -484,11 +486,18 @@
   virtual void Copy(FrameOffset dest, ManagedRegister src_base, Offset src_offset,
                     ManagedRegister scratch, size_t size);
 
+  virtual void Copy(ManagedRegister dest_base, Offset dest_offset, FrameOffset src,
+                    ManagedRegister scratch, size_t size);
+
   virtual void Copy(FrameOffset dest, FrameOffset src_base, Offset src_offset,
                     ManagedRegister scratch, size_t size);
 
-  virtual void Copy(ThreadOffset dest_base, Offset dest_offset, FrameOffset src,
-                    ManagedRegister scratch, ManagedRegister scratch2, size_t size);
+  virtual void Copy(ManagedRegister dest, Offset dest_offset,
+                    ManagedRegister src, Offset src_offset,
+                    ManagedRegister scratch, size_t size);
+
+  virtual void Copy(FrameOffset dest, Offset dest_offset, FrameOffset src, Offset src_offset,
+                    ManagedRegister scratch, size_t size);
 
   virtual void MemoryBarrier(ManagedRegister scratch);