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