src/cpu/zero/vm/cppInterpreter_zero.cpp
Print this page
rev 2237 : [mq]: initial-intrinsification-changes
*** 735,744 ****
--- 735,764 ----
return NULL;
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");
return generate_entry((address) CppInterpreter::native_entry);
}
*** 790,799 ****
--- 810,823 ----
case Interpreter::java_lang_math_log10:
case Interpreter::java_lang_math_sqrt:
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();
}
if (entry_point == NULL)