diff options
| author | 2012-02-15 22:29:08 +0800 | |
|---|---|---|
| committer | 2012-02-19 01:38:54 -0800 | |
| commit | 46fbb4178a5dbacf40ef684e37e6e7ff971b1bd2 (patch) | |
| tree | 372d9c0454e3887b6c92aaa8a0a5d95e11b642cc /src/compiler_llvm/method_compiler.h | |
| parent | 1a121b99fa8c5bf72cf58dcba4ecd5fd6dad417f (diff) | |
Implement invoke-virtual instruction.
Change-Id: I7914446207bcfc11ed838e71fe2e2b5af9a9722e
Diffstat (limited to 'src/compiler_llvm/method_compiler.h')
| -rw-r--r-- | src/compiler_llvm/method_compiler.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h index 1bf83d1164..0ec4858228 100644 --- a/src/compiler_llvm/method_compiler.h +++ b/src/compiler_llvm/method_compiler.h @@ -316,6 +316,17 @@ class MethodCompiler { uint32_t type_idx, bool is_filled_new_array); + llvm::Value* EmitLoadClassObjectAddr(llvm::Value* this_addr); + + llvm::Value* EmitLoadVTableAddr(llvm::Value* class_object_addr); + + llvm::Value* EmitLoadMethodObjectAddrFromVTable(llvm::Value* vtable_addr, + uint16_t vtable_index); + + llvm::Value* EmitLoadCodeAddr(llvm::Value* method_object_addr, + uint32_t method_idx, + bool is_static); + llvm::Value* EmitLoadArrayLength(llvm::Value* array); llvm::Value* EmitArrayGEP(llvm::Value* array_addr, |