diff options
| author | 2012-01-02 23:27:26 +0800 | |
|---|---|---|
| committer | 2012-02-16 23:42:39 -0800 | |
| commit | e27fdbb2c5b4a53b3c40570d861fd62d9fd3601c (patch) | |
| tree | df07318fb3778426dc227dbee1a631e93a736844 /src/compiler_llvm/method_compiler.h | |
| parent | 61bb614526be29a99b31180c8ac8a695cd813d6c (diff) | |
Implement aget* instructions.
Change-Id: I1b03dd4ca4ab10b09adba4134c0d1198e43ef64f
Diffstat (limited to 'src/compiler_llvm/method_compiler.h')
| -rw-r--r-- | src/compiler_llvm/method_compiler.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h index a1f18024cf..46aea810e3 100644 --- a/src/compiler_llvm/method_compiler.h +++ b/src/compiler_llvm/method_compiler.h @@ -296,6 +296,10 @@ class MethodCompiler { llvm::Value* EmitLoadArrayLength(llvm::Value* array); + llvm::Value* EmitArrayGEP(llvm::Value* array_addr, + llvm::Value* index_value, + llvm::Type* elem_type); + void EmitGuard_DivZeroException(uint32_t dex_pc, llvm::Value* denominator, JType op_jty); @@ -303,6 +307,14 @@ class MethodCompiler { void EmitGuard_NullPointerException(uint32_t dex_pc, llvm::Value* object); + void EmitGuard_ArrayIndexOutOfBoundsException(uint32_t dex_pc, + llvm::Value* array, + llvm::Value* index); + + void EmitGuard_ArrayException(uint32_t dex_pc, + llvm::Value* array, + llvm::Value* index); + RegCategory GetInferredRegCategory(uint32_t dex_pc, uint16_t reg); |