Skip to content

Commit b670efd

Browse files
AntonKozlovVladimir Kempik
authored and
Vladimir Kempik
committed
8261072: AArch64: Fix MacroAssembler::get_thread convention
Reviewed-by: burban, aph
1 parent 59b8d59 commit b670efd

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5268,10 +5268,14 @@ void MacroAssembler::char_array_compress(Register src, Register dst, Register le
52685268
// by the call to JavaThread::aarch64_get_thread_helper() or, indeed,
52695269
// the call setup code.
52705270
//
5271-
// aarch64_get_thread_helper() clobbers only r0, r1, and flags.
5271+
// On Linux, aarch64_get_thread_helper() clobbers only r0, r1, and flags.
5272+
// On other systems, the helper is a usual C function.
52725273
//
52735274
void MacroAssembler::get_thread(Register dst) {
5274-
RegSet saved_regs = RegSet::range(r0, r1) + lr - dst;
5275+
RegSet saved_regs =
5276+
LINUX_ONLY(RegSet::range(r0, r1) + lr - dst)
5277+
NOT_LINUX (RegSet::range(r0, r17) + lr - dst);
5278+
52755279
push(saved_regs, sp);
52765280

52775281
mov(lr, CAST_FROM_FN_PTR(address, JavaThread::aarch64_get_thread_helper));

0 commit comments

Comments
 (0)