38
39 class x86 {
40 friend class StubGenerator;
41 friend class VMStructs;
42
43 #ifdef _LP64
44 private:
45 static address _get_previous_fp_entry;
46 static address _get_previous_sp_entry;
47
48 static address _f2i_fixup;
49 static address _f2l_fixup;
50 static address _d2i_fixup;
51 static address _d2l_fixup;
52
53 static address _float_sign_mask;
54 static address _float_sign_flip;
55 static address _double_sign_mask;
56 static address _double_sign_flip;
57
58 static address _method_entry_barrier;
59
60 public:
61
62 static address method_entry_barrier() {
63 return _method_entry_barrier;
64 }
65
66 static address get_previous_fp_entry() {
67 return _get_previous_fp_entry;
68 }
69
70 static address get_previous_sp_entry() {
71 return _get_previous_sp_entry;
72 }
73
74 static address f2i_fixup() {
75 return _f2i_fixup;
76 }
77
78 static address f2l_fixup() {
79 return _f2l_fixup;
80 }
81
82 static address d2i_fixup() {
83 return _d2i_fixup;
84 }
85
104 }
105
106 #else // !LP64
107
108 private:
109 static address _verify_fpu_cntrl_wrd_entry;
110
111 public:
112 static address verify_fpu_cntrl_wrd_entry() { return _verify_fpu_cntrl_wrd_entry; }
113
114 #endif // !LP64
115
116 private:
117 static address _verify_mxcsr_entry;
118 // shuffle mask for fixing up 128-bit words consisting of big-endian 32-bit integers
119 static address _key_shuffle_mask_addr;
120
121 //shuffle mask for big-endian 128-bit integers
122 static address _counter_shuffle_mask_addr;
123
124 // masks and table for CRC32
125 static uint64_t _crc_by128_masks[];
126 static juint _crc_table[];
127 // table for CRC32C
128 static juint* _crc32c_table;
129 // swap mask for ghash
130 static address _ghash_long_swap_mask_addr;
131 static address _ghash_byte_swap_mask_addr;
132 static address _ghash_poly_addr;
133 static address _ghash_shuffmask_addr;
134
135 // upper word mask for sha1
136 static address _upper_word_mask_addr;
137 // byte flip mask for sha1
138 static address _shuffle_byte_flip_mask_addr;
139
140 //k256 table for sha256
141 static juint _k256[];
142 static address _k256_adr;
143 static address _vector_short_to_byte_mask;
204 static address _Pi4Inv_adr;
205 static juint _Pi4x3[];
206 static address _Pi4x3_adr;
207 static juint _Pi4x4[];
208 static address _Pi4x4_adr;
209 static juint _ones[];
210 static address _ones_adr;
211
212 public:
213 static address verify_mxcsr_entry() { return _verify_mxcsr_entry; }
214 static address key_shuffle_mask_addr() { return _key_shuffle_mask_addr; }
215 static address counter_shuffle_mask_addr() { return _counter_shuffle_mask_addr; }
216 static address crc_by128_masks_addr() { return (address)_crc_by128_masks; }
217 static address ghash_long_swap_mask_addr() { return _ghash_long_swap_mask_addr; }
218 static address ghash_byte_swap_mask_addr() { return _ghash_byte_swap_mask_addr; }
219 static address ghash_shufflemask_addr() { return _ghash_shuffmask_addr; }
220 static address ghash_polynomial_addr() { return _ghash_poly_addr; }
221 static address upper_word_mask_addr() { return _upper_word_mask_addr; }
222 static address shuffle_byte_flip_mask_addr() { return _shuffle_byte_flip_mask_addr; }
223 static address k256_addr() { return _k256_adr; }
224
225 static address vector_short_to_byte_mask() {
226 return _vector_short_to_byte_mask;
227 }
228 static address vector_float_sign_mask() {
229 return _vector_float_sign_mask;
230 }
231
232 static address vector_float_sign_flip() {
233 return _vector_float_sign_flip;
234 }
235
236 static address vector_double_sign_mask() {
237 return _vector_double_sign_mask;
238 }
239
240 static address vector_double_sign_flip() {
241 return _vector_double_sign_flip;
242 }
243
|
38
39 class x86 {
40 friend class StubGenerator;
41 friend class VMStructs;
42
43 #ifdef _LP64
44 private:
45 static address _get_previous_fp_entry;
46 static address _get_previous_sp_entry;
47
48 static address _f2i_fixup;
49 static address _f2l_fixup;
50 static address _d2i_fixup;
51 static address _d2l_fixup;
52
53 static address _float_sign_mask;
54 static address _float_sign_flip;
55 static address _double_sign_mask;
56 static address _double_sign_flip;
57
58 public:
59
60 static address get_previous_fp_entry() {
61 return _get_previous_fp_entry;
62 }
63
64 static address get_previous_sp_entry() {
65 return _get_previous_sp_entry;
66 }
67
68 static address f2i_fixup() {
69 return _f2i_fixup;
70 }
71
72 static address f2l_fixup() {
73 return _f2l_fixup;
74 }
75
76 static address d2i_fixup() {
77 return _d2i_fixup;
78 }
79
98 }
99
100 #else // !LP64
101
102 private:
103 static address _verify_fpu_cntrl_wrd_entry;
104
105 public:
106 static address verify_fpu_cntrl_wrd_entry() { return _verify_fpu_cntrl_wrd_entry; }
107
108 #endif // !LP64
109
110 private:
111 static address _verify_mxcsr_entry;
112 // shuffle mask for fixing up 128-bit words consisting of big-endian 32-bit integers
113 static address _key_shuffle_mask_addr;
114
115 //shuffle mask for big-endian 128-bit integers
116 static address _counter_shuffle_mask_addr;
117
118 static address _method_entry_barrier;
119
120 // masks and table for CRC32
121 static uint64_t _crc_by128_masks[];
122 static juint _crc_table[];
123 // table for CRC32C
124 static juint* _crc32c_table;
125 // swap mask for ghash
126 static address _ghash_long_swap_mask_addr;
127 static address _ghash_byte_swap_mask_addr;
128 static address _ghash_poly_addr;
129 static address _ghash_shuffmask_addr;
130
131 // upper word mask for sha1
132 static address _upper_word_mask_addr;
133 // byte flip mask for sha1
134 static address _shuffle_byte_flip_mask_addr;
135
136 //k256 table for sha256
137 static juint _k256[];
138 static address _k256_adr;
139 static address _vector_short_to_byte_mask;
200 static address _Pi4Inv_adr;
201 static juint _Pi4x3[];
202 static address _Pi4x3_adr;
203 static juint _Pi4x4[];
204 static address _Pi4x4_adr;
205 static juint _ones[];
206 static address _ones_adr;
207
208 public:
209 static address verify_mxcsr_entry() { return _verify_mxcsr_entry; }
210 static address key_shuffle_mask_addr() { return _key_shuffle_mask_addr; }
211 static address counter_shuffle_mask_addr() { return _counter_shuffle_mask_addr; }
212 static address crc_by128_masks_addr() { return (address)_crc_by128_masks; }
213 static address ghash_long_swap_mask_addr() { return _ghash_long_swap_mask_addr; }
214 static address ghash_byte_swap_mask_addr() { return _ghash_byte_swap_mask_addr; }
215 static address ghash_shufflemask_addr() { return _ghash_shuffmask_addr; }
216 static address ghash_polynomial_addr() { return _ghash_poly_addr; }
217 static address upper_word_mask_addr() { return _upper_word_mask_addr; }
218 static address shuffle_byte_flip_mask_addr() { return _shuffle_byte_flip_mask_addr; }
219 static address k256_addr() { return _k256_adr; }
220 static address method_entry_barrier() { return _method_entry_barrier; }
221
222 static address vector_short_to_byte_mask() {
223 return _vector_short_to_byte_mask;
224 }
225 static address vector_float_sign_mask() {
226 return _vector_float_sign_mask;
227 }
228
229 static address vector_float_sign_flip() {
230 return _vector_float_sign_flip;
231 }
232
233 static address vector_double_sign_mask() {
234 return _vector_double_sign_mask;
235 }
236
237 static address vector_double_sign_flip() {
238 return _vector_double_sign_flip;
239 }
240
|