diff options
author | 2024-01-05 16:30:57 +0000 | |
---|---|---|
committer | 2024-10-17 14:35:15 +0000 | |
commit | b741af2590bc56c8fec732fc4323cc0414381f2f (patch) | |
tree | 6d0a70bb147802d7a14a93796d7f01a1bc19ea8b /runtime/class_linker.cc | |
parent | 1c595ed4f8837e8db3eb899a53e29ce699db4928 (diff) |
Separate kRuntimeISA/kRuntimeQuickCodeISA
Currently ART has an implicit assumption that the ISA of the quick
code (e.g.: app code) that is targeted to be run by ART will be the
same as the machine that runs ART itself (e.g.: runtime code). This
assumption is made by having a single value (kRuntimeISA)
representing both of these types of code.
Instead kRuntimeISA is split into two values so that it is possible
to target the case where these two ISAs don't match, for example: in
simulator mode. The two values are as follows.
- kRuntimeISA:
- Must match the ISA of the machine that ART will be
run on. This ISA will be used for the native context,
native stack frame and native ABI.
- kRuntimeQuickCodeISA:
- The ISA that ART will generate quick code for, i.e.:
that java code will be compiled to. This ISA will be
used for the quick context, quick stack frame and
quick ABI.
Therefore replace kRuntimeISA with kRuntimeQuickCodeISA where the
semantics of quick code ISA is expected, not the ISA of the machine
the code is running on. Also hardcode ISA for ISA specific
QuickArgumentFrameInfo classes.
Authors: Artem Serov <artem.serov@linaro.org>
Artem Serov <artem.serov@arm.com>
Chris Jones <christopher.jones@arm.com>
Test: test.py --host --target
Change-Id: Ibe6f3e27179f3baa49a8de89686341df0dcf16f5
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r-- | runtime/class_linker.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index b23a543b5d..090ee42a08 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -4138,7 +4138,7 @@ void ClassLinker::LoadMethod(const DexFile& dex_file, } } - access_flags |= GetNterpFastPathFlags(shorty, access_flags, kRuntimeISA); + access_flags |= GetNterpFastPathFlags(shorty, access_flags, kRuntimeQuickCodeISA); if (UNLIKELY((access_flags & kAccNative) != 0u)) { // Check if the native method is annotated with @FastNative or @CriticalNative. |