Skip to content
This repository was archived by the owner on Feb 2, 2023. It is now read-only.
/ jdk15u-dev Public archive

Commit 30d4810

Browse files
committed
8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
Reviewed-by: yan Backport-of: ecd85e6f0f8906ad1e8aa0a53bf499e8c969ba73
1 parent 916b139 commit 30d4810

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, 2020, 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
@@ -7822,9 +7822,9 @@ instruct divI_eReg(eAXRegI rax, eDXRegI rdx, eCXRegI div, eFlagsReg cr) %{
78227822
%}
78237823

78247824
// Divide Register Long
7825-
instruct divL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{
7825+
instruct divL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
78267826
match(Set dst (DivL src1 src2));
7827-
effect( KILL cr, KILL cx, KILL bx );
7827+
effect(CALL);
78287828
ins_cost(10000);
78297829
format %{ "PUSH $src1.hi\n\t"
78307830
"PUSH $src1.lo\n\t"
@@ -7870,9 +7870,9 @@ instruct modI_eReg(eDXRegI rdx, eAXRegI rax, eCXRegI div, eFlagsReg cr) %{
78707870
%}
78717871

78727872
// Remainder Register Long
7873-
instruct modL_eReg( eADXRegL dst, eRegL src1, eRegL src2, eFlagsReg cr, eCXRegI cx, eBXRegI bx ) %{
7873+
instruct modL_eReg(eADXRegL dst, eRegL src1, eRegL src2) %{
78747874
match(Set dst (ModL src1 src2));
7875-
effect( KILL cr, KILL cx, KILL bx );
7875+
effect(CALL);
78767876
ins_cost(10000);
78777877
format %{ "PUSH $src1.hi\n\t"
78787878
"PUSH $src1.lo\n\t"

0 commit comments

Comments
 (0)