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()
|