Ensure we don't AddLocalReference a bogus value when returning to native code from an upcall that threw.

Also add a few missing CHECKs.

Change-Id: Icf29506b258a2177b5e80c75cd2710761431ba4b
diff --git a/src/oat/runtime/context.h b/src/oat/runtime/context.h
index b8852d5..6c7359b 100644
--- a/src/oat/runtime/context.h
+++ b/src/oat/runtime/context.h
@@ -45,8 +45,16 @@
   // Read the given GPR
   virtual uintptr_t GetGPR(uint32_t reg) = 0;
 
+  // Smash the caller save registers. If we're throwing, we don't want to return bogus values.
+  virtual void SmashCallerSaves() = 0;
+
   // Switch execution of the executing context to this context
   virtual void DoLongJump() = 0;
+
+  enum {
+    kBadGprBase = 0xebad6070,
+    kBadFprBase = 0xebad8070,
+  };
 };
 
 class VmapTable {