6732154: REG: Printing an Image using image/gif doc flavor crashes the VM, Solsparc

Thu, 14 Aug 2008 10:15:29 -0700

author
rasbold
date
Thu, 14 Aug 2008 10:15:29 -0700
changeset 729
616a07a75c3c
parent 728
c3e045194476
child 730
ea18057223c4

6732154: REG: Printing an Image using image/gif doc flavor crashes the VM, Solsparc
Summary: delay transform call until uses of t2 are constructed
Reviewed-by: never

src/share/vm/opto/divnode.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/opto/divnode.cpp	Fri Aug 01 10:06:45 2008 -0700
     1.2 +++ b/src/share/vm/opto/divnode.cpp	Thu Aug 14 10:15:29 2008 -0700
     1.3 @@ -264,8 +264,14 @@
     1.4  
     1.5    Node *t1 = phase->transform(new (phase->C, 3) URShiftLNode(lolo_product, phase->intcon(N / 2)));
     1.6    Node *t2 = phase->transform(new (phase->C, 3) AddLNode(hilo_product, t1));
     1.7 -  Node *t3 = phase->transform(new (phase->C, 3) RShiftLNode(t2, phase->intcon(N / 2)));
     1.8 -  Node *t4 = phase->transform(new (phase->C, 3) AndLNode(t2, phase->longcon(0xFFFFFFFF)));
     1.9 +
    1.10 +  // Construct both t3 and t4 before transforming so t2 doesn't go dead
    1.11 +  // prematurely.
    1.12 +  Node *t3 = new (phase->C, 3) RShiftLNode(t2, phase->intcon(N / 2));
    1.13 +  Node *t4 = new (phase->C, 3) AndLNode(t2, phase->longcon(0xFFFFFFFF));
    1.14 +  t3 = phase->transform(t3);
    1.15 +  t4 = phase->transform(t4);
    1.16 +
    1.17    Node *t5 = phase->transform(new (phase->C, 3) AddLNode(t4, lohi_product));
    1.18    Node *t6 = phase->transform(new (phase->C, 3) RShiftLNode(t5, phase->intcon(N / 2)));
    1.19    Node *t7 = phase->transform(new (phase->C, 3) AddLNode(t3, hihi_product));

mercurial