--- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp Thu Mar 08 06:33:26 2012 -0800
+++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp Fri Mar 09 00:28:20 2012 -0500
@@ -2221,7 +2221,7 @@
// traps as per trap.h (SPARC ABI?)
void breakpoint_trap();
- void breakpoint_trap(Condition c, CC cc = icc);
+ void breakpoint_trap(Condition c, CC cc);
void flush_windows_trap();
void clean_windows_trap();
void get_psr_trap();
--- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp Thu Mar 08 06:33:26 2012 -0800
+++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp Fri Mar 09 00:28:20 2012 -0500
@@ -1187,7 +1187,7 @@
#ifdef ASSERT
__ tst(O1);
- __ breakpoint_trap(Assembler::zero);
+ __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
#endif // ASSERT
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
--- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Thu Mar 08 06:33:26 2012 -0800
+++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Fri Mar 09 00:28:20 2012 -0500
@@ -3325,7 +3325,7 @@
// make sure that the frames are aligned properly
#ifndef _LP64
__ btst(wordSize*2-1, SP);
- __ breakpoint_trap(Assembler::notZero);
+ __ breakpoint_trap(Assembler::notZero, Assembler::ptr_cc);
#endif
#endif
@@ -3407,7 +3407,7 @@
#ifdef ASSERT
// make sure that there is at least one entry in the array
__ tst(O4array_size);
- __ breakpoint_trap(Assembler::zero);
+ __ breakpoint_trap(Assembler::zero, Assembler::icc);
#endif
// Now push the new interpreter frames
--- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Thu Mar 08 06:33:26 2012 -0800
+++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Fri Mar 09 00:28:20 2012 -0500
@@ -379,7 +379,7 @@
#ifdef ASSERT
__ tst(O0);
- __ breakpoint_trap(Assembler::zero);
+ __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
#endif // ASSERT
__ bind(done);
@@ -2050,7 +2050,7 @@
AddressLiteral stop_at(&StopInterpreterAt);
__ load_ptr_contents(stop_at, G4_scratch);
__ cmp(G3_scratch, G4_scratch);
- __ breakpoint_trap(Assembler::equal);
+ __ breakpoint_trap(Assembler::equal, Assembler::icc);
}
#endif // not PRODUCT
#endif // !CC_INTERP
--- a/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Thu Mar 08 06:33:26 2012 -0800
+++ b/hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Fri Mar 09 00:28:20 2012 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2012, Oracle and/or its affiliates. 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
@@ -727,8 +727,11 @@
case Bytecodes::_invokestatic : // fall through
case Bytecodes::_invokedynamic : // fall through
case Bytecodes::_invokeinterface :
- assert(len == 3 || (code == Bytecodes::_invokeinterface && len ==5),
+ assert(len == 3 ||
+ (code == Bytecodes::_invokeinterface && len == 5) ||
+ (code == Bytecodes::_invokedynamic && len == 5),
"sanity check");
+
int cpci = Bytes::get_native_u2(bcp+1);
bool is_invokedynamic = (EnableInvokeDynamic && code == Bytecodes::_invokedynamic);
if (is_invokedynamic)