# HG changeset patch # User rasbold # Date 1221052502 25200 # Node ID 2ec4685584f35a14d2ddcbdc94ae0c8f97d3d6e5 # Parent 6d909d5803e3a22850e6c4e5a75b888742ee7e20# Parent 0e9a5f36b566048019204c25ffbe4dce618c2de2 Merge diff -r 6d909d5803e3 -r 2ec4685584f3 hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Jul 05 16:41:01 2017 +0200 +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Sep 10 06:15:02 2008 -0700 @@ -1129,8 +1129,8 @@ #else __ pushl(frame_map()->address_for_slot(src ->double_stack_ix(), 0)); // push and pop the part at src + wordSize, adding wordSize for the previous push - __ pushl(frame_map()->address_for_slot(src ->double_stack_ix(), wordSize)); - __ popl (frame_map()->address_for_slot(dest->double_stack_ix(), wordSize)); + __ pushl(frame_map()->address_for_slot(src ->double_stack_ix(), 2 * wordSize)); + __ popl (frame_map()->address_for_slot(dest->double_stack_ix(), 2 * wordSize)); __ popl (frame_map()->address_for_slot(dest->double_stack_ix(), 0)); #endif // _LP64 diff -r 6d909d5803e3 -r 2ec4685584f3 hotspot/src/share/vm/opto/addnode.cpp --- a/hotspot/src/share/vm/opto/addnode.cpp Wed Jul 05 16:41:01 2017 +0200 +++ b/hotspot/src/share/vm/opto/addnode.cpp Wed Sep 10 06:15:02 2008 -0700 @@ -157,6 +157,7 @@ Node *a12 = add1->in(2); const Type *t12 = phase->type( a12 ); if( t12->singleton() && t12 != Type::TOP && (add1 != add1->in(1)) ) { + assert(add1->in(1) != this, "dead loop in AddNode::Ideal"); add2 = add1->clone(); add2->set_req(2, in(2)); add2 = phase->transform(add2); @@ -173,6 +174,7 @@ Node *a22 = add2->in(2); const Type *t22 = phase->type( a22 ); if( t22->singleton() && t22 != Type::TOP && (add2 != add2->in(1)) ) { + assert(add2->in(1) != this, "dead loop in AddNode::Ideal"); Node *addx = add2->clone(); addx->set_req(1, in(1)); addx->set_req(2, add2->in(1)); diff -r 6d909d5803e3 -r 2ec4685584f3 hotspot/src/share/vm/opto/loopopts.cpp --- a/hotspot/src/share/vm/opto/loopopts.cpp Wed Jul 05 16:41:01 2017 +0200 +++ b/hotspot/src/share/vm/opto/loopopts.cpp Wed Sep 10 06:15:02 2008 -0700 @@ -932,7 +932,7 @@ // to fold a StoreP and an AddP together (as part of an // address expression) and the AddP and StoreP have // different controls. - if( !x->is_Load() ) _igvn._worklist.yank(x); + if( !x->is_Load() && !x->is_DecodeN() ) _igvn._worklist.yank(x); } _igvn.remove_dead_node(n); }