diff options
Diffstat (limited to 'src/compiler_llvm/method_compiler.h')
| -rw-r--r-- | src/compiler_llvm/method_compiler.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h index 64ecdd600d..1bf83d1164 100644 --- a/src/compiler_llvm/method_compiler.h +++ b/src/compiler_llvm/method_compiler.h @@ -231,8 +231,9 @@ class MethodCompiler { // INVOKE instructions void EmitInsn_InvokeVirtual(GEN_INSN_ARGS, bool is_range); void EmitInsn_InvokeSuper(GEN_INSN_ARGS, bool is_range); - void EmitInsn_InvokeDirect(GEN_INSN_ARGS, bool is_range); - void EmitInsn_InvokeStatic(GEN_INSN_ARGS, bool is_range); + void EmitInsn_InvokeStaticDirect(GEN_INSN_ARGS, + bool is_range, + bool is_static); void EmitInsn_InvokeInterface(GEN_INSN_ARGS, bool is_range); // Unary instructions @@ -325,6 +326,15 @@ class MethodCompiler { llvm::Value* EmitLoadStaticStorage(uint32_t dex_pc, uint32_t type_idx); + llvm::Value* EmitLoadCalleeThis(Instruction::DecodedInstruction const& di, + bool is_range); + + void EmitLoadActualParameters(std::vector<llvm::Value*>& args, + uint32_t callee_method_idx, + Instruction::DecodedInstruction const& di, + bool is_range, + bool is_static); + void EmitGuard_DivZeroException(uint32_t dex_pc, llvm::Value* denominator, JType op_jty); |