diff options
Diffstat (limited to 'simulator/include/code_simulator.h')
-rw-r--r-- | simulator/include/code_simulator.h | 13 |
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); }; |