8259619: C1: 3-arg StubAssembler::call_RT stack-use condition is incorrect
Reviewed-by: chagedorn, kvn
This commit is contained in:
parent
2e124544e6
commit
ce94512087
@ -144,8 +144,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)));
|
||||
|
@ -176,8 +176,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);
|
||||
|
Loading…
Reference in New Issue
Block a user