aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto
diff options
context:
space:
mode:
authortwisti <none@none>2009-05-06 12:04:42 -0700
committertwisti <none@none>2009-05-06 12:04:42 -0700
commit8b85bf69072a45b0446c503a9e7cd78e27f21249 (patch)
treef96519d488eea560e29f66c1f189de78493e757b /src/share/vm/opto
parentd7486b20946f2391eb1d6d62cea4adc7d72e239c (diff)
downloadjdk8u_hotspot-8b85bf69072a45b0446c503a9e7cd78e27f21249.tar.gz
6837011: SIGSEGV in PhaseIdealLoop in 32bit jvm
Summary: The CR's test crashes with SIGSEGV when running with "-server -Xcomp" using using 32bit jvm. Reviewed-by: kvn, never, rasbold
Diffstat (limited to 'src/share/vm/opto')
-rw-r--r--src/share/vm/opto/divnode.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/share/vm/opto/divnode.cpp b/src/share/vm/opto/divnode.cpp
index 55350e11f..a81e3b194 100644
--- a/src/share/vm/opto/divnode.cpp
+++ b/src/share/vm/opto/divnode.cpp
@@ -298,8 +298,10 @@ static Node* long_by_long_mulhi(PhaseGVN* phase, Node* dividend, jlong magic_con
// 6732154: Construct both w1 and w2 before transforming, so t
// doesn't go dead prematurely.
- w1 = phase->transform(w1);
+ // 6837011: We need to transform w2 before w1 because the
+ // transformation of w1 could return t.
w2 = phase->transform(w2);
+ w1 = phase->transform(w1);
// w1 = u0*v1 + w1;
Node* u0v1 = phase->transform(new (phase->C, 3) MulLNode(u0, v1));