Skip to content

Commit 893d586

Browse files
committed
8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
Backport-of: ecd85e6f0f8906ad1e8aa0a53bf499e8c969ba73
1 parent 789b4a9 commit 893d586

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/hotspot/cpu/x86/x86_32.ad

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
2+
// Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
33
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
//
55
// This code is free software; you can redistribute it and/or modify it
@@ -7810,9 +7810,9 @@ instruct divI_eReg(eAXRegI rax, eDXRegI rdx, eCXRegI div, eFlagsReg cr) %{
78107810
%}
78117811

78127812
// Divide Register Long
7813-
instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{
7813+
instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
78147814
match(Set dst (DivL src1 src2));
7815-
effect( KILL cr, KILL cx, KILL bx );
7815+
effect(CALL);
78167816
ins_cost(10000);
78177817
format %{ "PUSH $src1.hi\n\t"
78187818
"PUSH $src1.lo\n\t"
@@ -7858,9 +7858,9 @@ instruct modI_eReg(eDXRegI rdx, eAXRegI rax, eCXRegI div, eFlagsReg cr) %{
78587858
%}
78597859

78607860
// Remainder Register Long
7861-
instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{
7861+
instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
78627862
match(Set dst (ModL src1 src2));
7863-
effect( KILL cr, KILL cx, KILL bx );
7863+
effect(CALL);
78647864
ins_cost(10000);
78657865
format %{ "PUSH $src1.hi\n\t"
78667866
"PUSH $src1.lo\n\t"

0 commit comments

Comments
 (0)