Frame layout change
This CL slightly changes the frame layout to remove an old unnecessary
slot, allow for the inclusion of compiler-generated temps and
unifies all variable offset calculation into a single function shared
by the compilers and the runtime system.
o Update the GetVRegOffset function in stack.cc to understand the
new layout.
o Remove compiler-private offset calculation code and route
everything through the shared GetVRegOffset in thread.cc.
o Remove "filler word" that existed immediately after the last
Dalvik local. This was there to address an initial concern that
I had about a single argument register being reused later as a
long. Now convinced that it won't happen.
o Extend the old "padding" region to include compiler-created temps
that can appear to the rest of the rest of the system as
Dalvik registers. The new temps will have Dalvik register numbers
of -2 and lower.
o Treat Method* for the current method as a special Dalvik register
denoted by reg number -1.
Change-Id: I5b5f3aef9c6a01d3a647ced6ec06981ed228c785
diff --git a/src/compiler/CompilerIR.h b/src/compiler/CompilerIR.h
index c6d14c3..58eba7c 100644
--- a/src/compiler/CompilerIR.h
+++ b/src/compiler/CompilerIR.h
@@ -367,9 +367,7 @@
int numRegs; // Unlike numDalvikRegisters, does not include ins
int numCoreSpills;
int numFPSpills;
- int numPadding; // # of 4-byte padding cells
- int regsOffset; // sp-relative offset to beginning of Dalvik regs
- int insOffset; // sp-relative offset to beginning of Dalvik ins
+ int numCompilerTemps;
int frameSize;
unsigned int coreSpillMask;
unsigned int fpSpillMask;