summaryrefslogtreecommitdiffstats
path: root/runtime/Android.mk
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2013-08-07 11:26:41 +0200
committerSebastien Hertz <shertz@google.com>2013-09-09 17:40:11 +0200
commit8ece050d85fc244c72610244e440b0e00aa618fa (patch)
tree6f9c9a909fc5c2cdf9cd4ba5c285381be39cc370 /runtime/Android.mk
parent28c2300d9a85f4e7288fb5d94280332f923b4df3 (diff)
downloadart-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.mk3
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 \