1.1 --- a/src/cpu/x86/vm/cppInterpreter_x86.cpp Tue Apr 05 19:14:03 2011 -0700 1.2 +++ b/src/cpu/x86/vm/cppInterpreter_x86.cpp Thu Apr 07 09:53:20 2011 -0700 1.3 @@ -936,6 +936,26 @@ 1.4 1.5 } 1.6 1.7 +address InterpreterGenerator::generate_Reference_get_entry(void) { 1.8 +#ifndef SERIALGC 1.9 + if (UseG1GC) { 1.10 + // We need to generate have a routine that generates code to: 1.11 + // * load the value in the referent field 1.12 + // * passes that value to the pre-barrier. 1.13 + // 1.14 + // In the case of G1 this will record the value of the 1.15 + // referent in an SATB buffer if marking is active. 1.16 + // This will cause concurrent marking to mark the referent 1.17 + // field as live. 1.18 + Unimplemented(); 1.19 + } 1.20 +#endif // SERIALGC 1.21 + 1.22 + // If G1 is not enabled then attempt to go through the accessor entry point 1.23 + // Reference.get is an accessor 1.24 + return generate_accessor_entry(); 1.25 +} 1.26 + 1.27 // 1.28 // C++ Interpreter stub for calling a native method. 1.29 // This sets up a somewhat different looking stack for calling the native method 1.30 @@ -2210,6 +2230,8 @@ 1.31 case Interpreter::java_lang_math_log : // fall thru 1.32 case Interpreter::java_lang_math_log10 : // fall thru 1.33 case Interpreter::java_lang_math_sqrt : entry_point = ((InterpreterGenerator*)this)->generate_math_entry(kind); break; 1.34 + case Interpreter::java_lang_ref_reference_get 1.35 + : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break; 1.36 default : ShouldNotReachHere(); break; 1.37 } 1.38