--- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Thu Feb 04 11:16:23 2010 -0800
+++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp Fri Feb 05 11:07:40 2010 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -730,11 +730,12 @@
st->print(", RSI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RSI]);
st->print(", RDI=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RDI]);
st->cr();
- st->print(", R8=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]);
+ st->print( "R8=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R8]);
st->print(", R9=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R9]);
st->print(", R10=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R10]);
st->print(", R11=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R11]);
- st->print(", R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]);
+ st->cr();
+ st->print( "R12=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R12]);
st->print(", R13=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R13]);
st->print(", R14=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R14]);
st->print(", R15=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_R15]);
--- a/hotspot/src/share/vm/code/nmethod.cpp Thu Feb 04 11:16:23 2010 -0800
+++ b/hotspot/src/share/vm/code/nmethod.cpp Fri Feb 05 11:07:40 2010 -0800
@@ -2010,7 +2010,10 @@
print_pcs();
}
#endif
- guarantee(cont_offset != 0, "unhandled implicit exception in compiled code");
+ if (cont_offset == 0) {
+ // Let the normal error handling report the exception
+ return NULL;
+ }
return instructions_begin() + cont_offset;
}
--- a/hotspot/src/share/vm/opto/stringopts.cpp Thu Feb 04 11:16:23 2010 -0800
+++ b/hotspot/src/share/vm/opto/stringopts.cpp Fri Feb 05 11:07:40 2010 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2009-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1073,7 +1073,7 @@
kit.set_control(head);
kit.set_memory(mem, char_adr_idx);
- Node* q = __ DivI(kit.null(), i_phi, __ intcon(10));
+ Node* q = __ DivI(NULL, i_phi, __ intcon(10));
Node* r = __ SubI(i_phi, __ AddI(__ LShiftI(q, __ intcon(3)),
__ LShiftI(q, __ intcon(1))));
Node* m1 = __ SubI(charPos, __ intcon(1));
@@ -1270,14 +1270,15 @@
// length = length + (s.count - s.offset);
RegionNode *r = new (C, 3) RegionNode(3);
kit.gvn().set_type(r, Type::CONTROL);
- Node *phi = new (C, 3) PhiNode(r, type->join(TypeInstPtr::NOTNULL));
+ Node *phi = new (C, 3) PhiNode(r, type);
kit.gvn().set_type(phi, phi->bottom_type());
Node* p = __ Bool(__ CmpP(arg, kit.null()), BoolTest::ne);
IfNode* iff = kit.create_and_map_if(kit.control(), p, PROB_MIN, COUNT_UNKNOWN);
Node* notnull = __ IfTrue(iff);
Node* isnull = __ IfFalse(iff);
+ kit.set_control(notnull); // set control for the cast_not_null
r->init_req(1, notnull);
- phi->init_req(1, arg);
+ phi->init_req(1, kit.cast_not_null(arg, false));
r->init_req(2, isnull);
phi->init_req(2, null_string);
kit.set_control(r);
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp Thu Feb 04 11:16:23 2010 -0800
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp Fri Feb 05 11:07:40 2010 -0800
@@ -607,7 +607,9 @@
_implicit_null_throws++;
#endif
target_pc = nm->continuation_for_implicit_exception(pc);
- guarantee(target_pc != 0, "must have a continuation point");
+ // If there's an unexpected fault, target_pc might be NULL,
+ // in which case we want to fall through into the normal
+ // error handling code.
}
break; // fall through
@@ -621,14 +623,15 @@
_implicit_div0_throws++;
#endif
target_pc = nm->continuation_for_implicit_exception(pc);
- guarantee(target_pc != 0, "must have a continuation point");
+ // If there's an unexpected fault, target_pc might be NULL,
+ // in which case we want to fall through into the normal
+ // error handling code.
break; // fall through
}
default: ShouldNotReachHere();
}
- guarantee(target_pc != NULL, "must have computed destination PC for implicit exception");
assert(exception_kind == IMPLICIT_NULL || exception_kind == IMPLICIT_DIVIDE_BY_ZERO, "wrong implicit exception kind");
// for AbortVMOnException flag