48 49 address CppInterpreterGenerator::generate_abstract_entry() { 50 return generate_entry((address) ShouldNotCallThisEntry()); 51 } 52 53 address CppInterpreterGenerator::generate_empty_entry() { 54 if (!UseFastEmptyMethods) 55 return NULL; 56 57 return generate_entry((address) CppInterpreter::empty_entry); 58 } 59 60 address CppInterpreterGenerator::generate_accessor_entry() { 61 if (!UseFastAccessorMethods) 62 return NULL; 63 64 return generate_entry((address) CppInterpreter::accessor_entry); 65 } 66 67 address CppInterpreterGenerator::generate_Reference_get_entry(void) { 68 #if INCLUDE_ALL_GCS 69 if (UseG1GC) { 70 // We need to generate have a routine that generates code to: 71 // * load the value in the referent field 72 // * passes that value to the pre-barrier. 73 // 74 // In the case of G1 this will record the value of the 75 // referent in an SATB buffer if marking is active. 76 // This will cause concurrent marking to mark the referent 77 // field as live. 78 Unimplemented(); 79 } 80 #endif // INCLUDE_ALL_GCS 81 82 // If G1 is not enabled then attempt to go through the normal entry point 83 // Reference.get could be instrumented by jvmti 84 return NULL; 85 } 86 87 address CppInterpreterGenerator::generate_native_entry(bool synchronized) { 88 return generate_entry((address) CppInterpreter::native_entry); 89 } 90 91 address CppInterpreterGenerator::generate_normal_entry(bool synchronized) { 92 return generate_entry((address) CppInterpreter::normal_entry); 93 } | 48 49 address CppInterpreterGenerator::generate_abstract_entry() { 50 return generate_entry((address) ShouldNotCallThisEntry()); 51 } 52 53 address CppInterpreterGenerator::generate_empty_entry() { 54 if (!UseFastEmptyMethods) 55 return NULL; 56 57 return generate_entry((address) CppInterpreter::empty_entry); 58 } 59 60 address CppInterpreterGenerator::generate_accessor_entry() { 61 if (!UseFastAccessorMethods) 62 return NULL; 63 64 return generate_entry((address) CppInterpreter::accessor_entry); 65 } 66 67 address CppInterpreterGenerator::generate_Reference_get_entry(void) { 68 #if INCLUDE_G1GC 69 if (UseG1GC) { 70 // We need to generate have a routine that generates code to: 71 // * load the value in the referent field 72 // * passes that value to the pre-barrier. 73 // 74 // In the case of G1 this will record the value of the 75 // referent in an SATB buffer if marking is active. 76 // This will cause concurrent marking to mark the referent 77 // field as live. 78 Unimplemented(); 79 } 80 #endif // INCLUDE_G1GC 81 82 // If G1 is not enabled then attempt to go through the normal entry point 83 // Reference.get could be instrumented by jvmti 84 return NULL; 85 } 86 87 address CppInterpreterGenerator::generate_native_entry(bool synchronized) { 88 return generate_entry((address) CppInterpreter::native_entry); 89 } 90 91 address CppInterpreterGenerator::generate_normal_entry(bool synchronized) { 92 return generate_entry((address) CppInterpreter::normal_entry); 93 } |