Skip to content
This repository has been archived by the owner on Sep 2, 2022. It is now read-only.

8259619: C1: 3-arg StubAssembler::call_RT stack-use condition is incorrect #12

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
Expand Up @@ -142,8 +142,8 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result, addre
int StubAssembler::call_RT(Register oop_result1, Register metadata_result, address entry, Register arg1, Register arg2, Register arg3) {
// if there is any conflict use the stack
if (arg1 == c_rarg2 || arg1 == c_rarg3 ||
arg2 == c_rarg1 || arg1 == c_rarg3 ||
arg3 == c_rarg1 || arg1 == c_rarg2) {
arg2 == c_rarg1 || arg2 == c_rarg3 ||
arg3 == c_rarg1 || arg3 == c_rarg2) {
stp(arg3, arg2, Address(pre(sp, 2 * wordSize)));
stp(arg1, zr, Address(pre(sp, -2 * wordSize)));
ldp(c_rarg1, zr, Address(post(sp, 2 * wordSize)));
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/x86/c1_Runtime1_x86.cpp
Expand Up @@ -174,8 +174,8 @@ int StubAssembler::call_RT(Register oop_result1, Register metadata_result, addre
#ifdef _LP64
// if there is any conflict use the stack
if (arg1 == c_rarg2 || arg1 == c_rarg3 ||
arg2 == c_rarg1 || arg1 == c_rarg3 ||
arg3 == c_rarg1 || arg1 == c_rarg2) {
arg2 == c_rarg1 || arg2 == c_rarg3 ||
arg3 == c_rarg1 || arg3 == c_rarg2) {
push(arg3);
push(arg2);
push(arg1);
Expand Down