changeset in /hg/icedtea: 2007-11-22 Gary Benson <gbenson at redh...

Gary Benson gbenson at redhat.com
Thu Nov 22 04:35:47 PST 2007


changeset d0d6c2e291d7 in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=d0d6c2e291d7
description:
	2007-11-22  Gary Benson  <gbenson at redhat.com>

		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
		(verify_oop): New method.
		* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
		(generate_result_handler_for,
		generate_tosca_to_stack_converter,
		generate_stack_to_stack_converter,
		generate_stack_to_native_abi_converter,
		generate_normal_entry): Add calls to the above.
		* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp
		(fixup_after_potential_safepoint): Likewise.

diffstat:

5 files changed, 32 insertions(+)
ChangeLog                                           |   14 ++++++++++++++
ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp      |    8 ++++++++
ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp      |    3 +++
ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp |    6 ++++++
ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp    |    1 +

diffs (114 lines):

diff -r 696dc5660f4f -r d0d6c2e291d7 ChangeLog
--- a/ChangeLog	Thu Nov 22 05:35:08 2007 -0500
+++ b/ChangeLog	Thu Nov 22 07:35:40 2007 -0500
@@ -1,3 +1,17 @@ 2007-11-22  Gary Benson  <gbenson at redhat
+2007-11-22  Gary Benson  <gbenson at redhat.com>
+
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
+	(verify_oop): New method.
+	* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
+	(generate_result_handler_for,
+	generate_tosca_to_stack_converter,
+	generate_stack_to_stack_converter,
+	generate_stack_to_native_abi_converter,
+	generate_normal_entry): Add calls to the above.
+	* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp
+	(fixup_after_potential_safepoint): Likewise.
+
 2007-11-22  Gary Benson  <gbenson at redhat.com>
 
 	* ports/hotspot/src/cpu/ppc/vm/globalDefinitions_ppc.hpp
diff -r 696dc5660f4f -r d0d6c2e291d7 ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp	Thu Nov 22 05:35:08 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp	Thu Nov 22 07:35:40 2007 -0500
@@ -1333,6 +1333,14 @@ void MacroAssembler::serialize_memory(Re
   stwx(tmp1, tmp2, tmp1);
 }
 
+void MacroAssembler::verify_oop(Register reg, const char* s)
+{
+  if (!VerifyOops)
+    return;
+
+  Unimplemented();
+}
+
 void MacroAssembler::calc_padding_for_alignment(
   Register dst, Register src, int align) {
 #ifdef ASSERT
diff -r 696dc5660f4f -r d0d6c2e291d7 ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
--- a/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp	Thu Nov 22 05:35:08 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp	Thu Nov 22 07:35:40 2007 -0500
@@ -414,6 +414,9 @@ class MacroAssembler : public Assembler 
   // Support for serializing memory accesses between threads
   void serialize_memory(Register tmp1, Register tmp2);
 
+  // Support for VerifyOops
+  void verify_oop(Register reg, const char* s = "broken oop");
+
   void calc_padding_for_alignment(Register dst, Register src, int align);
   void maybe_extend_frame(Register required_bytes, Register available_bytes);
   void get_mirror_handle(Register dst);
diff -r 696dc5660f4f -r d0d6c2e291d7 ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp	Thu Nov 22 05:35:08 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp	Thu Nov 22 07:35:40 2007 -0500
@@ -142,6 +142,7 @@ address CppInterpreterGenerator::generat
 
   case T_OBJECT:
     __ load (r3, STATE(_oop_temp));
+    __ verify_oop (r3);
     break;
 
   default:
@@ -199,6 +200,7 @@ address CppInterpreterGenerator::generat
     break;
 
   case T_OBJECT:
+    __ verify_oop (r3);
     __ store (r3, Address(Rlocals, 0));
     __ subi (Rlocals, Rlocals, wordSize);
     break;
@@ -260,6 +262,7 @@ address CppInterpreterGenerator::generat
   case T_OBJECT:
     __ load (stack, STATE(_stack));
     __ load (r0, Address(stack, wordSize));
+    __ verify_oop (r0);
     __ store (r0, Address(Rlocals, 0));
     __ subi (Rlocals, Rlocals, wordSize);
     break;
@@ -320,6 +323,7 @@ address CppInterpreterGenerator::generat
   case T_OBJECT:
     __ load (stack, STATE(_stack));
     __ load (r3, Address(stack, wordSize));
+    __ verify_oop (r3);
     break;
 
   default:
@@ -829,6 +833,7 @@ address InterpreterGenerator::generate_n
   __ bind (call_method);
 
   __ load (Rmethod, STATE(_result._to_call._callee));
+  __ verify_oop(Rmethod);
   __ load (Rlocals, STATE(_stack));
   __ lhz (r0, Address(Rmethod, methodOopDesc::size_of_parameters_offset()));
   __ shift_left (r0, r0, LogBytesPerWord);
@@ -880,6 +885,7 @@ address InterpreterGenerator::generate_n
   __ store (Rlocals, STATE(_stack));
   __ load (Rlocals, STATE(_locals));
   __ load (Rmethod, STATE(_method));
+  __ verify_oop(Rmethod);
   __ load (r0, BytecodeInterpreter::method_resume);
   __ stw (r0, STATE(_msg));
   __ b (call_interpreter);
diff -r 696dc5660f4f -r d0d6c2e291d7 ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp
--- a/ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp	Thu Nov 22 05:35:08 2007 -0500
+++ b/ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp	Thu Nov 22 07:35:40 2007 -0500
@@ -182,6 +182,7 @@ void InterpreterMacroAssembler::fixup_af
 {
 #ifdef CC_INTERP
   load(Rmethod, STATE(_method));
+  verify_oop(Rmethod);
 #else
   Unimplemented();
 #endif



More information about the distro-pkg-dev mailing list