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/stack.cc b/src/stack.cc
index 83169fd..83df5ad 100644
--- a/src/stack.cc
+++ b/src/stack.cc
@@ -52,8 +52,8 @@
 /*
  * Return sp-relative offset for a Dalvik virtual register, compiler
  * spill or Method* in bytes using Method*.
- * Note that (reg >= 0) refers to a Dalvik register, (reg == -1)
- * denotes Method* and (reg <= -2) denotes a compiler temp.
+ * Note that (reg >= 0) refers to a Dalvik register, (reg == -2)
+ * denotes Method* and (reg <= -3) denotes a compiler temp.
  *
  *     +------------------------+
  *     | IN[ins-1]              |  {Note: resides in caller's frame}
@@ -96,9 +96,9 @@
   int num_ins = code_item->ins_size_;
   int num_regs = code_item->registers_size_ - num_ins;
   int locals_start = frame_size - ((num_spills + num_regs) * sizeof(uint32_t));
-  if (reg == -1) {
+  if (reg == -2) {
     return 0;  // Method*
-  } else if (reg <= -2) {
+  } else if (reg <= -3) {
     return locals_start - ((reg + 1) * sizeof(uint32_t));  // Compiler temp
   } else if (reg < num_regs) {
     return locals_start + (reg * sizeof(uint32_t));        // Dalvik local reg