diff options
author | Sebastien Hertz <shertz@google.com> | 2013-08-07 11:26:41 +0200 |
---|---|---|
committer | Sebastien Hertz <shertz@google.com> | 2013-09-09 17:40:11 +0200 |
commit | 8ece050d85fc244c72610244e440b0e00aa618fa (patch) | |
tree | 6f9c9a909fc5c2cdf9cd4ba5c285381be39cc370 /runtime/Android.mk | |
parent | 28c2300d9a85f4e7288fb5d94280332f923b4df3 (diff) | |
download | art-8ece050d85fc244c72610244e440b0e00aa618fa.zip art-8ece050d85fc244c72610244e440b0e00aa618fa.tar.gz art-8ece050d85fc244c72610244e440b0e00aa618fa.tar.bz2 |
Add an interpreter using computed goto table.
This CL adds a new implementation of the interpreter using computed goto table.
In order to keep the switch-based implementation, it reorders things as the
following:
- Keep interpreter entrypoints into interpreter.h/.cc files.
- Move common interpreter parts to interpreter_common.h/.cc files.
- Separate both implementations to their own modules.
The interpreter implementation can be selected by changing the value of the
kInterpreterImplKind global variable (see interpreter.cc file). The default one
remains the switch-based implementation.
Also updates the exception handling (FindNextInstructionFollowingException) and
SPARSE_SWITCH switch handling (DoSparseSwitch) routines to share code between both
implementations.
Finally, adds a PACKED_SWITCH handling routine (DoPackedSwitch) so we are
consistent with SPARSE_SWITCH handling.
The computed goto implementation use two handlers table: one for normal
instruction handling and one for instrumentation handling. The current handlers
table to be used is updated on backward branch depending on whether there is
listener to DEX pc change.
Bug: 10602809
Change-Id: Ibb53bcc68be75c473fe5440835e78fc9a74381b3
Diffstat (limited to 'runtime/Android.mk')
-rw-r--r-- | runtime/Android.mk | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/runtime/Android.mk b/runtime/Android.mk index a8d505e..d4f1a39 100644 --- a/runtime/Android.mk +++ b/runtime/Android.mk @@ -64,6 +64,9 @@ LIBART_COMMON_SRC_FILES := \ instrumentation.cc \ intern_table.cc \ interpreter/interpreter.cc \ + interpreter/interpreter_common.cc \ + interpreter/interpreter_goto_table_impl.cc \ + interpreter/interpreter_switch_impl.cc \ jdwp/jdwp_event.cc \ jdwp/jdwp_expand_buf.cc \ jdwp/jdwp_handler.cc \ |