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); |