< prev index next >

src/hotspot/share/prims/vectorSupport.hpp

Print this page

 37 }
 38 
 39 class VectorSupport : AllStatic {
 40  private:
 41   static Handle allocate_vector_payload(InstanceKlass* ik, frame* fr, RegisterMap* reg_map, ScopeValue* payload, TRAPS);
 42   static Handle allocate_vector_payload_helper(InstanceKlass* ik, frame* fr, RegisterMap* reg_map, Location location, TRAPS);
 43 
 44   static void init_payload_element(typeArrayOop arr, BasicType elem_bt, int index, address addr);
 45 
 46   static BasicType klass2bt(InstanceKlass* ik);
 47   static jint klass2length(InstanceKlass* ik);
 48 
 49  public:
 50 
 51    // Should be aligned with constants in jdk.internal.vm.vector.VectorSupport
 52   enum VectorOperation {
 53     // Unary
 54     VECTOR_OP_ABS     = 0,
 55     VECTOR_OP_NEG     = 1,
 56     VECTOR_OP_SQRT    = 2,

 57 
 58     // Binary
 59     VECTOR_OP_ADD     = 4,
 60     VECTOR_OP_SUB     = 5,
 61     VECTOR_OP_MUL     = 6,
 62     VECTOR_OP_DIV     = 7,
 63     VECTOR_OP_MIN     = 8,
 64     VECTOR_OP_MAX     = 9,
 65     VECTOR_OP_AND     = 10,
 66     VECTOR_OP_OR      = 11,
 67     VECTOR_OP_XOR     = 12,
 68 
 69     // Ternary
 70     VECTOR_OP_FMA     = 13,
 71 
 72     // Broadcast int
 73     VECTOR_OP_LSHIFT  = 14,
 74     VECTOR_OP_RSHIFT  = 15,
 75     VECTOR_OP_URSHIFT = 16,
 76 
 77     // Convert
 78     VECTOR_OP_CAST        = 17,
 79     VECTOR_OP_UCAST       = 18,
 80     VECTOR_OP_REINTERPRET = 19,
 81 
 82     // Mask manipulation operations
 83     VECTOR_OP_MASK_TRUECOUNT = 20,
 84     VECTOR_OP_MASK_FIRSTTRUE = 21,
 85     VECTOR_OP_MASK_LASTTRUE  = 22,
 86     VECTOR_OP_MASK_TOLONG    = 23,
 87 
 88     // Rotate operations
 89     VECTOR_OP_LROTATE = 24,
 90     VECTOR_OP_RROTATE = 25,
 91 











 92     // Vector Math Library
 93     VECTOR_OP_TAN   = 101,
 94     VECTOR_OP_TANH  = 102,
 95     VECTOR_OP_SIN   = 103,
 96     VECTOR_OP_SINH  = 104,
 97     VECTOR_OP_COS   = 105,
 98     VECTOR_OP_COSH  = 106,
 99     VECTOR_OP_ASIN  = 107,
100     VECTOR_OP_ACOS  = 108,
101     VECTOR_OP_ATAN  = 109,
102     VECTOR_OP_ATAN2 = 110,
103     VECTOR_OP_CBRT  = 111,
104     VECTOR_OP_LOG   = 112,
105     VECTOR_OP_LOG10 = 113,
106     VECTOR_OP_LOG1P = 114,
107     VECTOR_OP_POW   = 115,
108     VECTOR_OP_EXP   = 116,
109     VECTOR_OP_EXPM1 = 117,
110     VECTOR_OP_HYPOT = 118,
111 

 37 }
 38 
 39 class VectorSupport : AllStatic {
 40  private:
 41   static Handle allocate_vector_payload(InstanceKlass* ik, frame* fr, RegisterMap* reg_map, ScopeValue* payload, TRAPS);
 42   static Handle allocate_vector_payload_helper(InstanceKlass* ik, frame* fr, RegisterMap* reg_map, Location location, TRAPS);
 43 
 44   static void init_payload_element(typeArrayOop arr, BasicType elem_bt, int index, address addr);
 45 
 46   static BasicType klass2bt(InstanceKlass* ik);
 47   static jint klass2length(InstanceKlass* ik);
 48 
 49  public:
 50 
 51    // Should be aligned with constants in jdk.internal.vm.vector.VectorSupport
 52   enum VectorOperation {
 53     // Unary
 54     VECTOR_OP_ABS     = 0,
 55     VECTOR_OP_NEG     = 1,
 56     VECTOR_OP_SQRT    = 2,
 57     VECTOR_OP_BIT_COUNT = 3,
 58 
 59     // Binary
 60     VECTOR_OP_ADD     = 4,
 61     VECTOR_OP_SUB     = 5,
 62     VECTOR_OP_MUL     = 6,
 63     VECTOR_OP_DIV     = 7,
 64     VECTOR_OP_MIN     = 8,
 65     VECTOR_OP_MAX     = 9,
 66     VECTOR_OP_AND     = 10,
 67     VECTOR_OP_OR      = 11,
 68     VECTOR_OP_XOR     = 12,
 69 
 70     // Ternary
 71     VECTOR_OP_FMA     = 13,
 72 
 73     // Broadcast int
 74     VECTOR_OP_LSHIFT  = 14,
 75     VECTOR_OP_RSHIFT  = 15,
 76     VECTOR_OP_URSHIFT = 16,
 77 
 78     // Convert
 79     VECTOR_OP_CAST        = 17,
 80     VECTOR_OP_UCAST       = 18,
 81     VECTOR_OP_REINTERPRET = 19,
 82 
 83     // Mask manipulation operations
 84     VECTOR_OP_MASK_TRUECOUNT = 20,
 85     VECTOR_OP_MASK_FIRSTTRUE = 21,
 86     VECTOR_OP_MASK_LASTTRUE  = 22,
 87     VECTOR_OP_MASK_TOLONG    = 23,
 88 
 89     // Rotate operations
 90     VECTOR_OP_LROTATE = 24,
 91     VECTOR_OP_RROTATE = 25,
 92 
 93     VECTOR_OP_COMPRESS = 26,
 94     VECTOR_OP_EXPAND = 27,
 95     VECTOR_OP_MASK_COMPRESS = 28,
 96 
 97     VECTOR_OP_TZ_COUNT = 29,
 98     VECTOR_OP_LZ_COUNT = 30,
 99     VECTOR_OP_REVERSE  = 31,
100     VECTOR_OP_REVERSE_BYTES = 32,
101     VECTOR_OP_COMPRESS_BITS = 33,
102     VECTOR_OP_EXPAND_BITS = 34,
103 
104     // Vector Math Library
105     VECTOR_OP_TAN   = 101,
106     VECTOR_OP_TANH  = 102,
107     VECTOR_OP_SIN   = 103,
108     VECTOR_OP_SINH  = 104,
109     VECTOR_OP_COS   = 105,
110     VECTOR_OP_COSH  = 106,
111     VECTOR_OP_ASIN  = 107,
112     VECTOR_OP_ACOS  = 108,
113     VECTOR_OP_ATAN  = 109,
114     VECTOR_OP_ATAN2 = 110,
115     VECTOR_OP_CBRT  = 111,
116     VECTOR_OP_LOG   = 112,
117     VECTOR_OP_LOG10 = 113,
118     VECTOR_OP_LOG1P = 114,
119     VECTOR_OP_POW   = 115,
120     VECTOR_OP_EXP   = 116,
121     VECTOR_OP_EXPM1 = 117,
122     VECTOR_OP_HYPOT = 118,
123 
< prev index next >