mirror of
https://github.com/AngelAuraMC/angelauramc-openjdk-build.git
synced 2025-08-03 23:55:58 -04:00
Try to fix aarch64 thread problem
This commit is contained in:
parent
7e5ed048df
commit
cea2aa48ec
@ -5270,20 +5270,22 @@ void MacroAssembler::char_array_compress(Register src, Register dst, Register le
|
|||||||
// call to Thread::current or, indeed, the call setup code.
|
// call to Thread::current or, indeed, the call setup code.
|
||||||
// x86 appears to save C arg registers.
|
// x86 appears to save C arg registers.
|
||||||
void MacroAssembler::get_thread(Register dst) {
|
void MacroAssembler::get_thread(Register dst) {
|
||||||
// Save all call-clobbered regs except dst, plus r19 and r20.
|
// - Save all call-clobbered regs except dst, plus r19 and r20.
|
||||||
RegSet saved_regs = RegSet::range(r0, r20) + lr - dst;
|
RegSet saved_regs = RegSet::range(r0, r1) + lr - dst;
|
||||||
|
// - RegSet saved_regs = RegSet::range(r0, r20) + lr - dst;
|
||||||
// + RegSet saved_regs = RegSet::range(r0, r1) + lr - dst;
|
// + RegSet saved_regs = RegSet::range(r0, r1) + lr - dst;
|
||||||
push(saved_regs, sp);
|
push(saved_regs, sp);
|
||||||
|
|
||||||
// FIX-ME: implement
|
// - FIX-ME: implement
|
||||||
// return Thread::current()
|
// - return Thread::current()
|
||||||
|
|
||||||
// + mov(lr, CAST_FROM_FN_PTR(address, JavaThread::aarch64_get_thread_helper));
|
// + mov(lr, CAST_FROM_FN_PTR(address, JavaThread::aarch64_get_thread_helper));
|
||||||
// + blrt(lr, 1, 0, 1);
|
mov(lr, CAST_FROM_FN_PTR(address, Thread::current));
|
||||||
|
blrt(lr, 1, 0, 1);
|
||||||
if (dst != c_rarg0) {
|
if (dst != c_rarg0) {
|
||||||
mov(dst, c_rarg0);
|
mov(dst, c_rarg0);
|
||||||
}
|
}
|
||||||
// restore pushed registers
|
// - restore pushed registers
|
||||||
pop(saved_regs, sp);
|
pop(saved_regs, sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user