summaryrefslogtreecommitdiff
path: root/src/compiler/CompilerIR.h
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2012-03-01 14:51:57 -0800
committer buzbee <buzbee@google.com> 2012-03-01 16:43:54 -0800
commit5de3494e4297c0d480409da3fecee39173f1d4e1 (patch)
tree269cd3447925d0b474d47fb056da4730f288ee12 /src/compiler/CompilerIR.h
parent6edfde4ae89f3a16d22ca82c928a5dd420e9fce9 (diff)
Another step towards a Mips target
Updating the MIPS target to use the now common codegen routines. Still much to do, but the general structure is sufficient to allow work to begin on the other target. Change-Id: I0d288fdfb59c8e76fad73185fdd56b345e87b604
Diffstat (limited to 'src/compiler/CompilerIR.h')
-rw-r--r--src/compiler/CompilerIR.h17
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);