Support for promoting Method* and compiler temps

This CL completes the support for allowing compiler-generated
data to be treated as a Dalvik register and become subject to
the normal register promotion and live temp tracking machinery.

Also:
   o Removes some vestigal and useless Method* loads from
     range argument setup.
   o Changes the Method* pseudo vReg number from -1 to -2 to
     avoid a conflict with the 0xffff marker in the register map.
   o Removes some experimental code for CSE at the basic block
     level.

Change-Id: I112a8bbe20f95a8d789f63908c84e5fa167c74ac
diff --git a/src/context.h b/src/context.h
index 478d11e..82e8315 100644
--- a/src/context.h
+++ b/src/context.h
@@ -62,6 +62,18 @@
     return table_[0];
   }
 
+  /*
+   * WARNING: This code should be changed or renamed.  The "reg"
+   * argument is a Dalvik virtual register number, but the way
+   * the vmap and register promotion works a Dalvik vReg can have
+   * neither, one or both of core register and floating point register
+   * identities. The "INVALID_VREG" marker of 0xffff below separates the
+   * core promoted registers from the floating point promoted registers,
+   * and thus terminates the search before reaching the fp section.
+   * This is likely the desired behavior for GC, as references won't
+   * ever be promoted to float registers - but we'll probably want to
+   * rework this shared code to make it useful for the debugger as well.
+   */
   // Is register 'reg' in the context or on the stack?
   bool IsInContext(size_t reg, uint32_t& vmap_offset) const {
     vmap_offset = 0xEBAD0FF5;