84 85 void generate_all(); 86 87 // entry point generator 88 address generate_method_entry(AbstractInterpreter::MethodKind kind); 89 90 address generate_normal_entry(bool synchronized); 91 address generate_native_entry(bool synchronized); 92 address generate_abstract_entry(void); 93 address generate_math_entry(AbstractInterpreter::MethodKind kind); 94 address generate_Reference_get_entry(); 95 address generate_CRC32_update_entry(); 96 address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind); 97 address generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind); 98 #ifdef IA32 99 address generate_Float_intBitsToFloat_entry(); 100 address generate_Float_floatToRawIntBits_entry(); 101 address generate_Double_longBitsToDouble_entry(); 102 address generate_Double_doubleToRawLongBits_entry(); 103 #endif // IA32 104 void generate_stack_overflow_check(void); 105 106 void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue); 107 void generate_counter_overflow(Label& continue_entry); 108 109 void generate_fixed_frame(bool native_call); 110 #ifdef SPARC 111 void generate_stack_overflow_check(Register Rframe_size, Register Rscratch); 112 void save_native_result(void); 113 void restore_native_result(void); 114 #endif // SPARC 115 116 #ifdef AARCH64 117 void generate_transcendental_entry(AbstractInterpreter::MethodKind kind, int fpargs); 118 #endif // AARCH64 119 120 #ifdef PPC 121 void lock_method(Register Rflags, Register Rscratch1, Register Rscratch2, bool flags_preloaded=false); 122 void unlock_method(bool check_exceptions = true); 123 124 void generate_fixed_frame(bool native_call, Register Rsize_of_parameters, Register Rsize_of_locals); 125 void generate_stack_overflow_check(Register Rframe_size, Register Rscratch1); 126 #endif // PPC 127 128 public: 129 TemplateInterpreterGenerator(StubQueue* _code); 130 }; 131 132 #endif // !CC_INTERP 133 134 #endif // SHARE_VM_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP | 84 85 void generate_all(); 86 87 // entry point generator 88 address generate_method_entry(AbstractInterpreter::MethodKind kind); 89 90 address generate_normal_entry(bool synchronized); 91 address generate_native_entry(bool synchronized); 92 address generate_abstract_entry(void); 93 address generate_math_entry(AbstractInterpreter::MethodKind kind); 94 address generate_Reference_get_entry(); 95 address generate_CRC32_update_entry(); 96 address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind); 97 address generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind); 98 #ifdef IA32 99 address generate_Float_intBitsToFloat_entry(); 100 address generate_Float_floatToRawIntBits_entry(); 101 address generate_Double_longBitsToDouble_entry(); 102 address generate_Double_doubleToRawLongBits_entry(); 103 #endif // IA32 104 // Some platforms don't need registers, other need two. Unused function is 105 // left unimplemented. 106 void generate_stack_overflow_check(void); 107 void generate_stack_overflow_check(Register Rframe_size, Register Rscratch); 108 109 void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue); 110 void generate_counter_overflow(Label& continue_entry); 111 112 void generate_fixed_frame(bool native_call); 113 #ifdef SPARC 114 void save_native_result(void); 115 void restore_native_result(void); 116 #endif // SPARC 117 118 #ifdef AARCH64 119 void generate_transcendental_entry(AbstractInterpreter::MethodKind kind, int fpargs); 120 #endif // AARCH64 121 122 #ifdef PPC 123 void lock_method(Register Rflags, Register Rscratch1, Register Rscratch2, bool flags_preloaded=false); 124 void generate_fixed_frame(bool native_call, Register Rsize_of_parameters, Register Rsize_of_locals); 125 #endif // PPC 126 127 public: 128 TemplateInterpreterGenerator(StubQueue* _code); 129 }; 130 131 #endif // !CC_INTERP 132 133 #endif // SHARE_VM_INTERPRETER_TEMPLATEINTERPRETERGENERATOR_HPP |