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 }
|