< prev index next >

src/hotspot/share/interpreter/templateInterpreterGenerator.hpp

Print this page

 59   address generate_cont_resume_interpreter_adapter();
 60   void    generate_throw_exception();
 61 
 62   void lock_method();
 63 
 64   void bang_stack_shadow_pages(bool native_call);
 65 
 66   // Instruction generation
 67   void generate_and_dispatch (Template* t, TosState tos_out = ilgl);
 68   void set_vtos_entry_points (Template* t, address& bep, address& cep, address& sep, address& aep, address& iep, address& lep, address& fep, address& dep, address& vep);
 69   void set_short_entry_points(Template* t, address& bep, address& cep, address& sep, address& aep, address& iep, address& lep, address& fep, address& dep, address& vep);
 70   void set_wide_entry_point  (Template* t, address& wep);
 71 
 72   void set_entry_points(Bytecodes::Code code);
 73   void set_unimplemented(int i);
 74   void set_entry_points_for_all_bytes();
 75   void set_safepoints_for_all_bytes();
 76 
 77   // Helpers for generate_and_dispatch
 78   address generate_trace_code(TosState state)   PRODUCT_RETURN_NULL;
 79   void count_bytecode()                         PRODUCT_RETURN;
 80   void histogram_bytecode(Template* t)          PRODUCT_RETURN;
 81   void histogram_bytecode_pair(Template* t)     PRODUCT_RETURN;
 82   void trace_bytecode(Template* t)              PRODUCT_RETURN;
 83   void stop_interpreter_at()                    PRODUCT_RETURN;
 84 
 85   void generate_all();
 86 






 87   // entry point generator
 88   address generate_method_entry(AbstractInterpreter::MethodKind kind, bool native);
 89 
 90   // generate intrinsic method entries
 91   address generate_intrinsic_entry(AbstractInterpreter::MethodKind kind);
 92 
 93   address generate_normal_entry(bool synchronized);
 94   address generate_native_entry(bool synchronized);
 95   address generate_abstract_entry(void);
 96   address generate_math_entry(AbstractInterpreter::MethodKind kind);
 97   address generate_Reference_get_entry();
 98   address generate_CRC32_update_entry();
 99   address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
100   address generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind);
101   address generate_currentThread();
102   address generate_Float_intBitsToFloat_entry();
103   address generate_Float_floatToRawIntBits_entry();
104   address generate_Double_longBitsToDouble_entry();
105   address generate_Double_doubleToRawLongBits_entry();
106   address generate_Float_float16ToFloat_entry();
107   address generate_Float_floatToFloat16_entry();
108 
109   // Some platforms don't need registers, other need two. Unused function is
110   // left unimplemented.
111   void generate_stack_overflow_check(void);
112   void generate_stack_overflow_check(Register Rframe_size, Register Rscratch);
113 
114   void generate_counter_incr(Label* overflow);

 59   address generate_cont_resume_interpreter_adapter();
 60   void    generate_throw_exception();
 61 
 62   void lock_method();
 63 
 64   void bang_stack_shadow_pages(bool native_call);
 65 
 66   // Instruction generation
 67   void generate_and_dispatch (Template* t, TosState tos_out = ilgl);
 68   void set_vtos_entry_points (Template* t, address& bep, address& cep, address& sep, address& aep, address& iep, address& lep, address& fep, address& dep, address& vep);
 69   void set_short_entry_points(Template* t, address& bep, address& cep, address& sep, address& aep, address& iep, address& lep, address& fep, address& dep, address& vep);
 70   void set_wide_entry_point  (Template* t, address& wep);
 71 
 72   void set_entry_points(Bytecodes::Code code);
 73   void set_unimplemented(int i);
 74   void set_entry_points_for_all_bytes();
 75   void set_safepoints_for_all_bytes();
 76 
 77   // Helpers for generate_and_dispatch
 78   address generate_trace_code(TosState state)   PRODUCT_RETURN_NULL;
 79   void count_bytecode();
 80   void histogram_bytecode(Template* t);
 81   void histogram_bytecode_pair(Template* t)     PRODUCT_RETURN;
 82   void trace_bytecode(Template* t)              PRODUCT_RETURN;
 83   void stop_interpreter_at()                    PRODUCT_RETURN;
 84 
 85   void generate_all();
 86 
 87   // helpers for method entry generation
 88   bool is_synchronized_method(AbstractInterpreter::MethodKind kind);
 89   bool is_runtime_upcalls_method(AbstractInterpreter::MethodKind kind);
 90   bool is_intrinsic_method(AbstractInterpreter::MethodKind kind);
 91   bool is_abstract_method(AbstractInterpreter::MethodKind kind);
 92 
 93   // entry point generator
 94   address generate_method_entry(AbstractInterpreter::MethodKind kind, bool native);
 95 
 96   // generate intrinsic method entries
 97   address generate_intrinsic_entry(AbstractInterpreter::MethodKind kind);
 98 
 99   address generate_normal_entry(bool synchronized, bool runtime_upcalls);
100   address generate_native_entry(bool synchronized, bool runtime_upcalls);
101   address generate_abstract_entry(void);
102   address generate_math_entry(AbstractInterpreter::MethodKind kind);
103   address generate_Reference_get_entry();
104   address generate_CRC32_update_entry();
105   address generate_CRC32_updateBytes_entry(AbstractInterpreter::MethodKind kind);
106   address generate_CRC32C_updateBytes_entry(AbstractInterpreter::MethodKind kind);
107   address generate_currentThread();
108   address generate_Float_intBitsToFloat_entry();
109   address generate_Float_floatToRawIntBits_entry();
110   address generate_Double_longBitsToDouble_entry();
111   address generate_Double_doubleToRawLongBits_entry();
112   address generate_Float_float16ToFloat_entry();
113   address generate_Float_floatToFloat16_entry();
114 
115   // Some platforms don't need registers, other need two. Unused function is
116   // left unimplemented.
117   void generate_stack_overflow_check(void);
118   void generate_stack_overflow_check(Register Rframe_size, Register Rscratch);
119 
120   void generate_counter_incr(Label* overflow);
< prev index next >