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