Don't use instrumentation stubs for supporting entry / exit hooks

We want to deprecate instrumentation stubs to reduce the complexity of
the instrumentation support. If the runtime has started off as
debuggable runtime we start with interpreter / GenericJniStubs and
generate JIT code with instrumentation support for hot methods.

For non-debuggable runtimes that need instrumentation support, we switch
the entrypoints to interpreter / GenericJniStubs and discard all JITed
code. Similar to debuggable runtime we generate JIT code with
instrumentation support. For the methods that are already executing on
the stack we may miss calling entry / exit hooks. This is a best effort
anyway and it is OK to miss them.

Bug: 206029744
Test: art/test.py
Change-Id: Ic422d4e9790ebf86a360a3285350dd692cfd6b43
1 file changed