Implement proxy stub for compiler_llvm.
Change-Id: Id8ba59c62795d885a18b3cc634e7ef370a2d2f97
diff --git a/src/compiled_method.h b/src/compiled_method.h
index 96dfa00..f436214 100644
--- a/src/compiled_method.h
+++ b/src/compiled_method.h
@@ -21,6 +21,7 @@
#include "instruction_set.h"
#include "utils.h"
+#include "UniquePtr.h"
namespace llvm {
class Function;
@@ -120,20 +121,33 @@
public:
explicit CompiledInvokeStub(std::vector<uint8_t>& code);
#if defined(ART_USE_LLVM_COMPILER)
- explicit CompiledInvokeStub(uint16_t elf_idx, uint16_t elf_func_idx);
+ explicit CompiledInvokeStub(uint16_t elf_idx);
#endif
~CompiledInvokeStub();
const std::vector<uint8_t>& GetCode() const;
- uint16_t GetElfIndex() const {
+ uint16_t GetStubElfIndex() const {
DCHECK(IsExecutableInElf());
return elf_idx_;
}
- uint16_t GetElfFuncIndex() const {
+ uint16_t GetInvokeStubElfFuncIndex() const {
DCHECK(IsExecutableInElf());
- return elf_func_idx_;
+ return invoke_stub_elf_func_idx_;
+ }
+
+ uint16_t GetProxyStubElfFuncIndex() const {
+ DCHECK(IsExecutableInElf());
+ return proxy_stub_elf_func_idx_;
+ }
+
+ void SetInvokeStub(uint16_t invoke_stub_elf_func_idx) {
+ invoke_stub_elf_func_idx_ = invoke_stub_elf_func_idx;
+ }
+
+ void SetProxyStub(uint16_t proxy_stub_elf_func_idx) {
+ proxy_stub_elf_func_idx_ = proxy_stub_elf_func_idx;
}
bool IsExecutableInElf() const {
@@ -143,7 +157,8 @@
private:
std::vector<uint8_t> code_;
uint16_t elf_idx_;
- uint16_t elf_func_idx_;
+ uint16_t invoke_stub_elf_func_idx_;
+ uint16_t proxy_stub_elf_func_idx_;
};
} // namespace art