kChainingCellInvokeSingleton,
kChainingCellInvokePredicted,
kChainingCellBackwardBranch,
- kChainingCellLast,
+ kChainingCellGap,
+ /* Don't insert new fields between Gap and Last */
+ kChainingCellLast = kChainingCellGap + 1,
kEntryBlock,
kDalvikByteCode,
kExitBlock,
typedef struct ChainCellCounts {
union {
- u1 count[kChainingCellLast];
+ u1 count[kChainingCellLast]; /* include one more space for the gap # */
u4 dummyForAlignment;
} u;
} ChainCellCounts;
bool halveInstCount;
bool executionCount; // Add code to count trace executions
bool hasLoop;
- int numChainingCells[kChainingCellLast];
- LIR *firstChainingLIR[kChainingCellLast];
+ int numChainingCells[kChainingCellGap];
+ LIR *firstChainingLIR[kChainingCellGap];
+ LIR *chainingCellBottom;
struct RegisterPool *regPool;
int optRound; // round number to tell an LIR's age
JitInstructionSetType instructionSet;