Skip to content

Commit 13ddf0e

Browse files
rnkovacsMonica Beckwith
authored andcommitted
8261072: AArch64: Fix MacroAssembler::get_thread convention
Co-authored-by: Monica Beckwith <mbeckwit@openjdk.org> Backport-of: b670efd
1 parent 4699467 commit 13ddf0e

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
@@ -5802,10 +5802,14 @@ void MacroAssembler::char_array_compress(Register src, Register dst, Register le
58025802
// by the call to JavaThread::aarch64_get_thread_helper() or, indeed,
58035803
// the call setup code.
58045804
//
5805-
// aarch64_get_thread_helper() clobbers only r0, r1, and flags.
5805+
// On Linux, aarch64_get_thread_helper() clobbers only r0, r1, and flags.
5806+
// On other systems, the helper is a usual C function.
58065807
//
58075808
void MacroAssembler::get_thread(Register dst) {
5808-
RegSet saved_regs = RegSet::range(r0, r1) + lr - dst;
5809+
RegSet saved_regs =
5810+
LINUX_ONLY(RegSet::range(r0, r1) + lr - dst)
5811+
NOT_LINUX (RegSet::range(r0, r17) + lr - dst);
5812+
58095813
push(saved_regs, sp);
58105814

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

0 commit comments

Comments
 (0)