summaryrefslogtreecommitdiff
path: root/simulator/include/code_simulator.h
diff options
context:
space:
mode:
Diffstat (limited to 'simulator/include/code_simulator.h')
-rw-r--r--simulator/include/code_simulator.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/simulator/include/code_simulator.h b/simulator/include/code_simulator.h
index 256ab23aa4..22bac1e83f 100644
--- a/simulator/include/code_simulator.h
+++ b/simulator/include/code_simulator.h
@@ -18,9 +18,15 @@
#define ART_SIMULATOR_INCLUDE_CODE_SIMULATOR_H_
#include "arch/instruction_set.h"
+#include "runtime.h"
namespace art {
+class ArtMethod;
+union JValue;
+class Thread;
+struct QuickEntryPoints;
+
class CodeSimulator {
public:
CodeSimulator() {}
@@ -35,6 +41,13 @@ class CodeSimulator {
virtual int32_t GetCReturnInt32() const = 0;
virtual int64_t GetCReturnInt64() const = 0;
+ virtual bool CanSimulate(ArtMethod* method) REQUIRES_SHARED(Locks::mutator_lock_) = 0;
+ virtual void Invoke(ArtMethod* method, uint32_t* args, uint32_t args_size, Thread* self,
+ JValue* result, const char* shorty, bool isStatic)
+ REQUIRES_SHARED(Locks::mutator_lock_) = 0;
+
+ virtual void InitEntryPoints(QuickEntryPoints* qpoints) = 0;
+
private:
DISALLOW_COPY_AND_ASSIGN(CodeSimulator);
};