summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/method_compiler.h
diff options
context:
space:
mode:
author Logan Chien <loganchien@google.com> 2012-02-15 22:29:08 +0800
committer Shih-wei Liao <sliao@google.com> 2012-02-19 01:38:54 -0800
commit46fbb4178a5dbacf40ef684e37e6e7ff971b1bd2 (patch)
tree372d9c0454e3887b6c92aaa8a0a5d95e11b642cc /src/compiler_llvm/method_compiler.h
parent1a121b99fa8c5bf72cf58dcba4ecd5fd6dad417f (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.h11
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,