equal
deleted
inserted
replaced
735 return NULL; |
735 return NULL; |
736 |
736 |
737 return generate_entry((address) CppInterpreter::accessor_entry); |
737 return generate_entry((address) CppInterpreter::accessor_entry); |
738 } |
738 } |
739 |
739 |
|
740 address InterpreterGenerator::generate_Reference_get_entry(void) { |
|
741 #ifndef SERIALGC |
|
742 if (UseG1GC) { |
|
743 // We need to generate have a routine that generates code to: |
|
744 // * load the value in the referent field |
|
745 // * passes that value to the pre-barrier. |
|
746 // |
|
747 // In the case of G1 this will record the value of the |
|
748 // referent in an SATB buffer if marking is active. |
|
749 // This will cause concurrent marking to mark the referent |
|
750 // field as live. |
|
751 Unimplemented(); |
|
752 } |
|
753 #endif // SERIALGC |
|
754 |
|
755 // If G1 is not enabled then attempt to go through the accessor entry point |
|
756 // Reference.get is an accessor |
|
757 return generate_accessor_entry(); |
|
758 } |
|
759 |
740 address InterpreterGenerator::generate_native_entry(bool synchronized) { |
760 address InterpreterGenerator::generate_native_entry(bool synchronized) { |
741 assert(synchronized == false, "should be"); |
761 assert(synchronized == false, "should be"); |
742 |
762 |
743 return generate_entry((address) CppInterpreter::native_entry); |
763 return generate_entry((address) CppInterpreter::native_entry); |
744 } |
764 } |
788 case Interpreter::java_lang_math_abs: |
808 case Interpreter::java_lang_math_abs: |
789 case Interpreter::java_lang_math_log: |
809 case Interpreter::java_lang_math_log: |
790 case Interpreter::java_lang_math_log10: |
810 case Interpreter::java_lang_math_log10: |
791 case Interpreter::java_lang_math_sqrt: |
811 case Interpreter::java_lang_math_sqrt: |
792 entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); |
812 entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); |
|
813 break; |
|
814 |
|
815 case Interpreter::java_lang_ref_reference_get: |
|
816 entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); |
793 break; |
817 break; |
794 |
818 |
795 default: |
819 default: |
796 ShouldNotReachHere(); |
820 ShouldNotReachHere(); |
797 } |
821 } |