Skip to content

Commit 05027c1

Browse files
author
Bob Vandette
committed
8209093: JEP 340: One AArch64 Port, Not Two
Reviewed-by: dholmes, erikj, mikael, shade, avoitylov, bulasevich
1 parent 7e19a09 commit 05027c1

File tree

78 files changed

+285
-15465
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+285
-15465
lines changed

doc/building.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,6 @@ <h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sys
707707
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
708708
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
709709
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
710-
<p>The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the <a href="http://openjdk.java.net/projects/aarch64-port">AArch64 Port Project</a> and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use <code>--with-cpu-port=arm64</code>. Also set the corresponding value (<code>aarch64</code> or <code>arm64</code>) to --with-abi-profile, to ensure a consistent build.</p>
711710
<h3 id="verifying-the-build">Verifying the Build</h3>
712711
<p>The build will end up in a directory named like <code>build/linux-arm-normal-server-release</code>.</p>
713712
<p>Inside this build output directory, the <code>images/jdk</code> will contain the newly built JDK, for your <em>target</em> system.</p>

doc/building.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1080,14 +1080,6 @@ available using `--with-abi-profile`: arm-vfp-sflt, arm-vfp-hflt, arm-sflt,
10801080
armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer
10811081
properly supported by the JDK.
10821082
1083-
The JDK contains two different ports for the aarch64 platform, one is the
1084-
original aarch64 port from the [AArch64 Port Project](
1085-
http://openjdk.java.net/projects/aarch64-port) and one is a 64-bit version of
1086-
the Oracle contributed ARM port. When targeting aarch64, by the default the
1087-
original aarch64 port is used. To select the Oracle ARM 64 port, use
1088-
`--with-cpu-port=arm64`. Also set the corresponding value (`aarch64` or
1089-
`arm64`) to --with-abi-profile, to ensure a consistent build.
1090-
10911083
### Verifying the Build
10921084
10931085
The build will end up in a directory named like

make/autoconf/flags-cflags.m4

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -747,10 +747,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
747747
# -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
748748
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
749749
$1_CFLAGS_CPU_JVM="-DARM"
750-
elif test "x$FLAGS_CPU" = xaarch64; then
751-
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
752-
$1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
753-
fi
754750
elif test "x$FLAGS_CPU_ARCH" = xppc; then
755751
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
756752
if test "x$FLAGS_CPU" = xppc64; then

make/autoconf/flags-ldflags.m4

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
173173
elif test "x$OPENJDK_$1_CPU" = xarm; then
174174
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
175175
$1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
176-
elif test "x$FLAGS_CPU" = xaarch64; then
177-
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
178-
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
179-
fi
180176
fi
181177
182178
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then

make/autoconf/flags.m4

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ m4_include([flags-other.m4])
3434
AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
3535
[
3636
AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
37-
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])])
37+
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain dependent@:>@ ])])
3838
3939
if test "x$with_abi_profile" != x; then
4040
if test "x$OPENJDK_TARGET_CPU" != xarm && \
@@ -61,10 +61,6 @@ AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
6161
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
6262
ARM_FLOAT_TYPE=vfp-hflt
6363
ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
64-
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
65-
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
66-
ARM_FLOAT_TYPE=
67-
ARM_ARCH_TYPE_FLAGS=
6864
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
6965
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
7066
ARM_FLOAT_TYPE=

make/autoconf/hotspot.m4

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
7272
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
7373
[JVM variants (separated by commas) to build (server,client,minimal,core,zero,custom) @<:@server@:>@])])
7474
75-
SETUP_HOTSPOT_TARGET_CPU_PORT
76-
7775
if test "x$with_jvm_variants" = x; then
7876
with_jvm_variants="server"
7977
fi
@@ -299,9 +297,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
299297
if test "x$OPENJDK_TARGET_CPU" = xarm; then
300298
HOTSPOT_TARGET_CPU=arm_32
301299
HOTSPOT_TARGET_CPU_DEFINE="ARM32"
302-
elif test "x$OPENJDK_TARGET_CPU" = xaarch64 && test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
303-
HOTSPOT_TARGET_CPU=arm_64
304-
HOTSPOT_TARGET_CPU_ARCH=arm
305300
fi
306301
307302
# Verify that dependencies are met for explicitly set features.
@@ -542,6 +537,9 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
542537
543538
# Used for verification of Makefiles by check-jvm-feature
544539
AC_SUBST(VALID_JVM_FEATURES)
540+
541+
# --with-cpu-port is no longer supported
542+
BASIC_DEPRECATED_ARG_WITH(with-cpu-port)
545543
])
546544

547545
###############################################################################
@@ -578,31 +576,6 @@ AC_DEFUN_ONCE([HOTSPOT_FINALIZE_JVM_FEATURES],
578576
done
579577
])
580578

581-
################################################################################
582-
#
583-
# Specify which sources will be used to build the 64-bit ARM port
584-
#
585-
# --with-cpu-port=arm64 will use hotspot/src/cpu/arm
586-
# --with-cpu-port=aarch64 will use hotspot/src/cpu/aarch64
587-
#
588-
AC_DEFUN([SETUP_HOTSPOT_TARGET_CPU_PORT],
589-
[
590-
AC_ARG_WITH(cpu-port, [AS_HELP_STRING([--with-cpu-port],
591-
[specify sources to use for Hotspot 64-bit ARM port (arm64,aarch64) @<:@aarch64@:>@ ])])
592-
593-
if test "x$with_cpu_port" != x; then
594-
if test "x$OPENJDK_TARGET_CPU" != xaarch64; then
595-
AC_MSG_ERROR([--with-cpu-port only available on aarch64])
596-
fi
597-
if test "x$with_cpu_port" != xarm64 && \
598-
test "x$with_cpu_port" != xaarch64; then
599-
AC_MSG_ERROR([--with-cpu-port must specify arm64 or aarch64])
600-
fi
601-
HOTSPOT_TARGET_CPU_PORT="$with_cpu_port"
602-
fi
603-
])
604-
605-
606579
################################################################################
607580
# Check if gtest should be built
608581
#

make/conf/jib-profiles.js

Lines changed: 4 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,7 @@ var getJibProfilesCommon = function (input, data) {
233233
common.main_profile_names = [
234234
"linux-x64", "linux-x86", "macosx-x64", "solaris-x64",
235235
"solaris-sparcv9", "windows-x64", "windows-x86",
236-
"linux-aarch64", "linux-arm32", "linux-arm64", "linux-arm-vfp-hflt",
237-
"linux-arm-vfp-hflt-dyn"
236+
"linux-aarch64", "linux-arm32"
238237
];
239238

240239
// These are the base setttings for all the main build profiles.
@@ -440,20 +439,7 @@ var getJibProfilesProfiles = function (input, common, data) {
440439
dependencies: ["devkit", "build_devkit", "cups"],
441440
configure_args: [
442441
"--openjdk-target=aarch64-linux-gnu", "--with-freetype=bundled",
443-
"--disable-warnings-as-errors", "--with-cpu-port=aarch64",
444-
],
445-
},
446-
447-
"linux-arm64": {
448-
target_os: "linux",
449-
target_cpu: "aarch64",
450-
build_cpu: "x64",
451-
dependencies: ["devkit", "build_devkit", "cups", "headless_stubs"],
452-
configure_args: [
453-
"--with-cpu-port=arm64",
454-
"--with-jvm-variants=server",
455-
"--openjdk-target=aarch64-linux-gnu",
456-
"--enable-headless-only"
442+
"--disable-warnings-as-errors"
457443
],
458444
},
459445

@@ -467,30 +453,7 @@ var getJibProfilesProfiles = function (input, common, data) {
467453
"--with-abi-profile=arm-vfp-hflt", "--disable-warnings-as-errors"
468454
],
469455
},
470-
471-
"linux-arm-vfp-hflt": {
472-
target_os: "linux",
473-
target_cpu: "arm",
474-
build_cpu: "x64",
475-
dependencies: ["devkit", "build_devkit", "cups"],
476-
configure_args: [
477-
"--with-jvm-variants=minimal1,client",
478-
"--with-x=" + input.get("devkit", "install_path") + "/arm-linux-gnueabihf/libc/usr/X11R6-PI",
479-
"--with-fontconfig=" + input.get("devkit", "install_path") + "/arm-linux-gnueabihf/libc/usr/X11R6-PI",
480-
"--openjdk-target=arm-linux-gnueabihf",
481-
"--with-abi-profile=arm-vfp-hflt",
482-
"--with-freetype=bundled"
483-
],
484-
},
485-
486-
// Special version of the SE profile adjusted to be testable on arm64 hardware.
487-
"linux-arm-vfp-hflt-dyn": {
488-
configure_args: "--with-stdc++lib=dynamic"
489-
}
490456
};
491-
// Let linux-arm-vfp-hflt-dyn inherit everything from linux-arm-vfp-hflt
492-
profiles["linux-arm-vfp-hflt-dyn"] = concatObjects(
493-
profiles["linux-arm-vfp-hflt-dyn"], profiles["linux-arm-vfp-hflt"]);
494457

495458
// Add the base settings to all the main profiles
496459
common.main_profile_names.forEach(function (name) {
@@ -617,15 +580,6 @@ var getJibProfilesProfiles = function (input, common, data) {
617580
},
618581
"linux-arm32": {
619582
platform: "linux-arm32",
620-
},
621-
"linux-arm64": {
622-
platform: "linux-arm64-vfp-hflt",
623-
},
624-
"linux-arm-vfp-hflt": {
625-
platform: "linux-arm32-vfp-hflt",
626-
},
627-
"linux-arm-vfp-hflt-dyn": {
628-
platform: "linux-arm32-vfp-hflt-dyn",
629583
}
630584
}
631585
// Generate common artifacts for all main profiles
@@ -850,16 +804,8 @@ var getJibProfilesDependencies = function (input, common) {
850804
solaris_x64: "SS12u4-Solaris11u1+1.0",
851805
solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
852806
windows_x64: "VS2017-15.5.5+1.0",
853-
linux_aarch64: (input.profile != null && input.profile.indexOf("arm64") >= 0
854-
? "gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux+1.0"
855-
: "gcc7.3.0-Fedora27+1.0"),
856-
linux_arm: (input.profile != null && input.profile.indexOf("hflt") >= 0
857-
? "gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux+1.0"
858-
: (input.profile != null && input.profile.indexOf("arm32") >= 0
859-
? "gcc7.3.0-Fedora27+1.0"
860-
: "arm-linaro-4.7+1.0"
861-
)
862-
)
807+
linux_aarch64: "gcc7.3.0-Fedora27+1.0",
808+
linux_arm: "gcc7.3.0-Fedora27+1.0"
863809
};
864810

865811
var devkit_platform = (input.target_cpu == "x86"

make/hotspot/lib/CompileJvm.gmk

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ ifeq ($(OPENJDK_TARGET_CPU), x86_64)
6060
OPENJDK_TARGET_CPU_VM_VERSION := amd64
6161
else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
6262
OPENJDK_TARGET_CPU_VM_VERSION := sparc
63-
else ifeq ($(HOTSPOT_TARGET_CPU_ARCH), arm)
64-
ifeq ($(OPENJDK_TARGET_CPU), aarch64)
65-
# This sets the Oracle Aarch64 port to use arm64
66-
# while the original Aarch64 port uses aarch64
67-
OPENJDK_TARGET_CPU_VM_VERSION := arm64
68-
endif
6963
else
7064
OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
7165
endif

src/hotspot/cpu/arm/abstractInterpreter_arm.cpp

Lines changed: 1 addition & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,6 @@
3838
int AbstractInterpreter::BasicType_as_index(BasicType type) {
3939
int i = 0;
4040
switch (type) {
41-
#ifdef AARCH64
42-
case T_BOOLEAN: i = 0; break;
43-
case T_CHAR : i = 1; break;
44-
case T_BYTE : i = 2; break;
45-
case T_SHORT : i = 3; break;
46-
case T_INT : // fall through
47-
case T_LONG : // fall through
48-
case T_VOID : // fall through
49-
case T_FLOAT : // fall through
50-
case T_DOUBLE : i = 4; break;
51-
case T_OBJECT : // fall through
52-
case T_ARRAY : i = 5; break;
53-
#else
5441
case T_VOID : i = 0; break;
5542
case T_BOOLEAN: i = 1; break;
5643
case T_CHAR : i = 2; break;
@@ -62,7 +49,6 @@ int AbstractInterpreter::BasicType_as_index(BasicType type) {
6249
case T_LONG : i = 7; break;
6350
case T_FLOAT : i = 8; break;
6451
case T_DOUBLE : i = 9; break;
65-
#endif // AARCH64
6652
default : ShouldNotReachHere();
6753
}
6854
assert(0 <= i && i < AbstractInterpreter::number_of_result_handlers, "index out of bounds");
@@ -71,7 +57,7 @@ int AbstractInterpreter::BasicType_as_index(BasicType type) {
7157

7258
// How much stack a method activation needs in words.
7359
int AbstractInterpreter::size_top_interpreter_activation(Method* method) {
74-
const int stub_code = AARCH64_ONLY(24) NOT_AARCH64(12); // see generate_call_stub
60+
const int stub_code = 12; // see generate_call_stub
7561
// Save space for one monitor to get into the interpreted method in case
7662
// the method is synchronized
7763
int monitor_size = method->is_synchronized() ?
@@ -108,9 +94,6 @@ int AbstractInterpreter::size_activation(int max_stack,
10894
(moncount*frame::interpreter_frame_monitor_size()) +
10995
tempcount*Interpreter::stackElementWords + extra_args;
11096

111-
#ifdef AARCH64
112-
size = align_up(size, StackAlignmentInBytes/BytesPerWord);
113-
#endif // AARCH64
11497

11598
return size;
11699
}
@@ -146,65 +129,7 @@ void AbstractInterpreter::layout_activation(Method* method,
146129
// interpreter_frame_sender_sp is the original sp of the caller (the unextended_sp)
147130
// and sender_sp is (fp + sender_sp_offset*wordSize)
148131

149-
#ifdef AARCH64
150-
intptr_t* locals;
151-
if (caller->is_interpreted_frame()) {
152-
// attach locals to the expression stack of caller interpreter frame
153-
locals = caller->interpreter_frame_tos_address() + caller_actual_parameters*Interpreter::stackElementWords - 1;
154-
} else {
155-
assert (is_bottom_frame, "should be");
156-
locals = interpreter_frame->fp() + frame::sender_sp_offset + method->max_locals() - 1;
157-
}
158-
159-
if (TraceDeoptimization) {
160-
tty->print_cr("layout_activation:");
161-
162-
if (caller->is_entry_frame()) {
163-
tty->print("entry ");
164-
}
165-
if (caller->is_compiled_frame()) {
166-
tty->print("compiled ");
167-
}
168-
if (caller->is_interpreted_frame()) {
169-
tty->print("interpreted ");
170-
}
171-
tty->print_cr("caller: sp=%p, unextended_sp=%p, fp=%p, pc=%p", caller->sp(), caller->unextended_sp(), caller->fp(), caller->pc());
172-
tty->print_cr("interpreter_frame: sp=%p, unextended_sp=%p, fp=%p, pc=%p", interpreter_frame->sp(), interpreter_frame->unextended_sp(), interpreter_frame->fp(), interpreter_frame->pc());
173-
tty->print_cr("method: max_locals = %d, size_of_parameters = %d", method->max_locals(), method->size_of_parameters());
174-
tty->print_cr("caller_actual_parameters = %d", caller_actual_parameters);
175-
tty->print_cr("locals = %p", locals);
176-
}
177-
178-
#ifdef ASSERT
179-
if (caller_actual_parameters != method->size_of_parameters()) {
180-
assert(caller->is_interpreted_frame(), "adjusted caller_actual_parameters, but caller is not interpreter frame");
181-
Bytecode_invoke inv(caller->interpreter_frame_method(), caller->interpreter_frame_bci());
182-
183-
if (is_bottom_frame) {
184-
assert(caller_actual_parameters == 0, "invalid adjusted caller_actual_parameters value for bottom frame");
185-
assert(inv.is_invokedynamic() || inv.is_invokehandle(), "adjusted caller_actual_parameters for bottom frame, but not invokedynamic/invokehandle");
186-
} else {
187-
assert(caller_actual_parameters == method->size_of_parameters()+1, "invalid adjusted caller_actual_parameters value");
188-
assert(!inv.is_invokedynamic() && MethodHandles::has_member_arg(inv.klass(), inv.name()), "adjusted caller_actual_parameters, but no member arg");
189-
}
190-
}
191-
if (caller->is_interpreted_frame()) {
192-
intptr_t* locals_base = (locals - method->max_locals()*Interpreter::stackElementWords + 1);
193-
locals_base = align_down(locals_base, StackAlignmentInBytes);
194-
assert(interpreter_frame->sender_sp() <= locals_base, "interpreter-to-interpreter frame chaining");
195-
196-
} else if (caller->is_compiled_frame()) {
197-
assert(locals + 1 <= caller->unextended_sp(), "compiled-to-interpreter frame chaining");
198-
199-
} else {
200-
assert(caller->is_entry_frame(), "should be");
201-
assert(locals + 1 <= caller->fp(), "entry-to-interpreter frame chaining");
202-
}
203-
#endif // ASSERT
204-
205-
#else
206132
intptr_t* locals = interpreter_frame->sender_sp() + max_locals - 1;
207-
#endif // AARCH64
208133

209134
interpreter_frame->interpreter_frame_set_locals(locals);
210135
BasicObjectLock* montop = interpreter_frame->interpreter_frame_monitor_begin();
@@ -215,44 +140,16 @@ void AbstractInterpreter::layout_activation(Method* method,
215140
intptr_t* stack_top = (intptr_t*) monbot -
216141
tempcount*Interpreter::stackElementWords -
217142
popframe_extra_args;
218-
#ifdef AARCH64
219-
interpreter_frame->interpreter_frame_set_stack_top(stack_top);
220-
221-
// We have to add extra reserved slots to max_stack. There are 3 users of the extra slots,
222-
// none of which are at the same time, so we just need to make sure there is enough room
223-
// for the biggest user:
224-
// -reserved slot for exception handler
225-
// -reserved slots for JSR292. Method::extra_stack_entries() is the size.
226-
// -3 reserved slots so get_method_counters() can save some registers before call_VM().
227-
int max_stack = method->constMethod()->max_stack() + MAX2(3, Method::extra_stack_entries());
228-
intptr_t* extended_sp = (intptr_t*) monbot -
229-
(max_stack * Interpreter::stackElementWords) -
230-
popframe_extra_args;
231-
extended_sp = align_down(extended_sp, StackAlignmentInBytes);
232-
interpreter_frame->interpreter_frame_set_extended_sp(extended_sp);
233-
#else
234143
interpreter_frame->interpreter_frame_set_last_sp(stack_top);
235-
#endif // AARCH64
236144

237145
// All frames but the initial (oldest) interpreter frame we fill in have a
238146
// value for sender_sp that allows walking the stack but isn't
239147
// truly correct. Correct the value here.
240148

241-
#ifdef AARCH64
242-
if (caller->is_interpreted_frame()) {
243-
intptr_t* sender_sp = align_down(caller->interpreter_frame_tos_address(), StackAlignmentInBytes);
244-
interpreter_frame->set_interpreter_frame_sender_sp(sender_sp);
245-
246-
} else {
247-
// in case of non-interpreter caller sender_sp of the oldest frame is already
248-
// set to valid value
249-
}
250-
#else
251149
if (extra_locals != 0 &&
252150
interpreter_frame->sender_sp() == interpreter_frame->interpreter_frame_sender_sp() ) {
253151
interpreter_frame->set_interpreter_frame_sender_sp(caller->sp() + extra_locals);
254152
}
255-
#endif // AARCH64
256153

257154
*interpreter_frame->interpreter_frame_cache_addr() =
258155
method->constants()->cache();

0 commit comments

Comments
 (0)