< prev index next >

src/hotspot/share/interpreter/abstractInterpreter.hpp

Print this page

 48 // templateInterpreter*          zeroInterpreter*       generation of assembly code that creates
 49 //                                                      and manages interpreter runtime frames.
 50 //
 51 
 52 class InterpreterMacroAssembler;
 53 
 54 class AbstractInterpreter: AllStatic {
 55   friend class VMStructs;
 56   friend class ZeroInterpreterGenerator;
 57   friend class TemplateInterpreterGenerator;
 58  public:
 59   enum MethodKind {
 60     zerolocals,                                                 // method needs locals initialization
 61     zerolocals_synchronized,                                    // method needs locals initialization & is synchronized
 62     native,                                                     // native method
 63     native_synchronized,                                        // native method & is synchronized
 64     empty,                                                      // empty method (code: _return)
 65     getter,                                                     // getter method
 66     setter,                                                     // setter method
 67     abstract,                                                   // abstract method (throws an AbstractMethodException)

 68     method_handle_invoke_FIRST,                                 // java.lang.invoke.MethodHandles::invokeExact, etc.
 69     method_handle_invoke_LAST                                   = (method_handle_invoke_FIRST
 70                                                                    + (static_cast<int>(vmIntrinsics::LAST_MH_SIG_POLY)
 71                                                                       - static_cast<int>(vmIntrinsics::FIRST_MH_SIG_POLY))),
 72     java_lang_math_sin,                                         // implementation of java.lang.Math.sin   (x)
 73     java_lang_math_cos,                                         // implementation of java.lang.Math.cos   (x)
 74     java_lang_math_tan,                                         // implementation of java.lang.Math.tan   (x)
 75     java_lang_math_sinh,                                        // implementation of java.lang.Math.sinh  (x)
 76     java_lang_math_tanh,                                        // implementation of java.lang.Math.tanh  (x)
 77     java_lang_math_cbrt,                                        // implementation of java.lang.Math.cbrt  (x)
 78     java_lang_math_abs,                                         // implementation of java.lang.Math.abs   (x)
 79     java_lang_math_sqrt,                                        // implementation of java.lang.Math.sqrt  (x)
 80     java_lang_math_sqrt_strict,                                 // implementation of java.lang.StrictMath.sqrt(x)
 81     java_lang_math_log,                                         // implementation of java.lang.Math.log   (x)
 82     java_lang_math_log10,                                       // implementation of java.lang.Math.log10 (x)
 83     java_lang_math_pow,                                         // implementation of java.lang.Math.pow   (x,y)
 84     java_lang_math_exp,                                         // implementation of java.lang.Math.exp   (x)
 85     java_lang_math_fmaF,                                        // implementation of java.lang.Math.fma   (x, y, z)
 86     java_lang_math_fmaD,                                        // implementation of java.lang.Math.fma   (x, y, z)
 87     java_lang_ref_reference_get0,                               // implementation of java.lang.ref.Reference.get()

 48 // templateInterpreter*          zeroInterpreter*       generation of assembly code that creates
 49 //                                                      and manages interpreter runtime frames.
 50 //
 51 
 52 class InterpreterMacroAssembler;
 53 
 54 class AbstractInterpreter: AllStatic {
 55   friend class VMStructs;
 56   friend class ZeroInterpreterGenerator;
 57   friend class TemplateInterpreterGenerator;
 58  public:
 59   enum MethodKind {
 60     zerolocals,                                                 // method needs locals initialization
 61     zerolocals_synchronized,                                    // method needs locals initialization & is synchronized
 62     native,                                                     // native method
 63     native_synchronized,                                        // native method & is synchronized
 64     empty,                                                      // empty method (code: _return)
 65     getter,                                                     // getter method
 66     setter,                                                     // setter method
 67     abstract,                                                   // abstract method (throws an AbstractMethodException)
 68     object_init,                                                // special barrier on entry
 69     method_handle_invoke_FIRST,                                 // java.lang.invoke.MethodHandles::invokeExact, etc.
 70     method_handle_invoke_LAST                                   = (method_handle_invoke_FIRST
 71                                                                    + (static_cast<int>(vmIntrinsics::LAST_MH_SIG_POLY)
 72                                                                       - static_cast<int>(vmIntrinsics::FIRST_MH_SIG_POLY))),
 73     java_lang_math_sin,                                         // implementation of java.lang.Math.sin   (x)
 74     java_lang_math_cos,                                         // implementation of java.lang.Math.cos   (x)
 75     java_lang_math_tan,                                         // implementation of java.lang.Math.tan   (x)
 76     java_lang_math_sinh,                                        // implementation of java.lang.Math.sinh  (x)
 77     java_lang_math_tanh,                                        // implementation of java.lang.Math.tanh  (x)
 78     java_lang_math_cbrt,                                        // implementation of java.lang.Math.cbrt  (x)
 79     java_lang_math_abs,                                         // implementation of java.lang.Math.abs   (x)
 80     java_lang_math_sqrt,                                        // implementation of java.lang.Math.sqrt  (x)
 81     java_lang_math_sqrt_strict,                                 // implementation of java.lang.StrictMath.sqrt(x)
 82     java_lang_math_log,                                         // implementation of java.lang.Math.log   (x)
 83     java_lang_math_log10,                                       // implementation of java.lang.Math.log10 (x)
 84     java_lang_math_pow,                                         // implementation of java.lang.Math.pow   (x,y)
 85     java_lang_math_exp,                                         // implementation of java.lang.Math.exp   (x)
 86     java_lang_math_fmaF,                                        // implementation of java.lang.Math.fma   (x, y, z)
 87     java_lang_math_fmaD,                                        // implementation of java.lang.Math.fma   (x, y, z)
 88     java_lang_ref_reference_get0,                               // implementation of java.lang.ref.Reference.get()
< prev index next >