Mercurial > hg > truffle
comparison src/share/vm/opto/divnode.cpp @ 756:cecd04fc6f93
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
author | twisti |
---|---|
date | Wed, 06 May 2009 12:04:42 -0700 |
parents | 98cb887364d3 |
children | 174ade00803b |
comparison
equal
deleted
inserted
replaced
755:36ee9b69616e | 756:cecd04fc6f93 |
---|---|
296 // w2 = t >> 32; | 296 // w2 = t >> 32; |
297 Node* w2 = new (phase->C, 3) RShiftLNode(t, phase->intcon(N / 2)); | 297 Node* w2 = new (phase->C, 3) RShiftLNode(t, phase->intcon(N / 2)); |
298 | 298 |
299 // 6732154: Construct both w1 and w2 before transforming, so t | 299 // 6732154: Construct both w1 and w2 before transforming, so t |
300 // doesn't go dead prematurely. | 300 // doesn't go dead prematurely. |
301 // 6837011: We need to transform w2 before w1 because the | |
302 // transformation of w1 could return t. | |
303 w2 = phase->transform(w2); | |
301 w1 = phase->transform(w1); | 304 w1 = phase->transform(w1); |
302 w2 = phase->transform(w2); | |
303 | 305 |
304 // w1 = u0*v1 + w1; | 306 // w1 = u0*v1 + w1; |
305 Node* u0v1 = phase->transform(new (phase->C, 3) MulLNode(u0, v1)); | 307 Node* u0v1 = phase->transform(new (phase->C, 3) MulLNode(u0, v1)); |
306 w1 = phase->transform(new (phase->C, 3) AddLNode(u0v1, w1)); | 308 w1 = phase->transform(new (phase->C, 3) AddLNode(u0v1, w1)); |
307 | 309 |