diff options
Diffstat (limited to 'src/compiler/CompilerIR.h')
| -rw-r--r-- | src/compiler/CompilerIR.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/compiler/CompilerIR.h b/src/compiler/CompilerIR.h index 34ccfb4235..52b12d8bf6 100644 --- a/src/compiler/CompilerIR.h +++ b/src/compiler/CompilerIR.h @@ -445,6 +445,7 @@ typedef enum OpKind { kOp2Byte, kOpCondBr, kOpUncondBr, + kOpBx, kOpInvalid, } OpKind; @@ -477,6 +478,22 @@ typedef enum ThrowKind { kThrowStackOverflow, } ThrowKind; +typedef struct SwitchTable { + int offset; + const u2* table; // Original dex table + int vaddr; // Dalvik offset of switch opcode + LIR* bxInst; // Switch indirect branch instruction + LIR** targets; // Array of case targets +} SwitchTable; + +typedef struct FillArrayData { + int offset; + const u2* table; // Original dex table + int size; + int vaddr; // Dalvik offset of OP_FILL_ARRAY_DATA opcode +} FillArrayData; + + BasicBlock* oatNewBB(CompilationUnit* cUnit, BBType blockType, int blockId); void oatAppendMIR(BasicBlock* bb, MIR* mir); |