--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Apr 05 19:14:03 2011 -0700
+++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Thu Apr 07 09:53:20 2011 -0700
@@ -737,6 +737,26 @@
return generate_entry((address) CppInterpreter::accessor_entry);
}
+address InterpreterGenerator::generate_Reference_get_entry(void) {
+#ifndef SERIALGC
+ if (UseG1GC) {
+ // We need to generate have a routine that generates code to:
+ // * load the value in the referent field
+ // * passes that value to the pre-barrier.
+ //
+ // In the case of G1 this will record the value of the
+ // referent in an SATB buffer if marking is active.
+ // This will cause concurrent marking to mark the referent
+ // field as live.
+ Unimplemented();
+ }
+#endif // SERIALGC
+
+ // If G1 is not enabled then attempt to go through the accessor entry point
+ // Reference.get is an accessor
+ return generate_accessor_entry();
+}
+
address InterpreterGenerator::generate_native_entry(bool synchronized) {
assert(synchronized == false, "should be");
@@ -792,6 +812,10 @@
entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind);
break;
+ case Interpreter::java_lang_ref_reference_get:
+ entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry();
+ break;
+
default:
ShouldNotReachHere();
}