29 #include "runtime/thread.inline.hpp"
30 #include "crc32c.h"
31
32 #ifdef _MSC_VER
33 #define ALIGNED_(x) __declspec(align(x))
34 #else
35 #define ALIGNED_(x) __attribute__ ((aligned(x)))
36 #endif
37
38 // Implementation of the platform-specific part of StubRoutines - for
39 // a description of how to extend it, see the stubRoutines.hpp file.
40
41 address StubRoutines::x86::_verify_mxcsr_entry = NULL;
42 address StubRoutines::x86::_key_shuffle_mask_addr = NULL;
43 address StubRoutines::x86::_counter_shuffle_mask_addr = NULL;
44 address StubRoutines::x86::_ghash_long_swap_mask_addr = NULL;
45 address StubRoutines::x86::_ghash_byte_swap_mask_addr = NULL;
46 address StubRoutines::x86::_upper_word_mask_addr = NULL;
47 address StubRoutines::x86::_shuffle_byte_flip_mask_addr = NULL;
48 address StubRoutines::x86::_k256_adr = NULL;
49 address StubRoutines::x86::_pshuffle_byte_flip_mask_addr = NULL;
50
51 //tables common for sin and cos
52 address StubRoutines::x86::_ONEHALF_adr = NULL;
53 address StubRoutines::x86::_P_2_adr = NULL;
54 address StubRoutines::x86::_SC_4_adr = NULL;
55 address StubRoutines::x86::_Ctable_adr = NULL;
56 address StubRoutines::x86::_SC_2_adr = NULL;
57 address StubRoutines::x86::_SC_3_adr = NULL;
58 address StubRoutines::x86::_SC_1_adr = NULL;
59 address StubRoutines::x86::_PI_INV_TABLE_adr = NULL;
60 address StubRoutines::x86::_PI_4_adr = NULL;
61 address StubRoutines::x86::_PI32INV_adr = NULL;
62 address StubRoutines::x86::_SIGN_MASK_adr = NULL;
63 address StubRoutines::x86::_P_1_adr = NULL;
64 address StubRoutines::x86::_P_3_adr = NULL;
65 address StubRoutines::x86::_NEG_ZERO_adr = NULL;
66
67 //tables common for sincos and tancot
68 address StubRoutines::x86::_L_2il0floatpacket_0_adr = NULL;
272
273 ALIGNED_(64) juint StubRoutines::x86::_k256[] =
274 {
275 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
276 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
277 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
278 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
279 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
280 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
281 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
282 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
283 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
284 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
285 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
286 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
287 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
288 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
289 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
290 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
291 };
|
29 #include "runtime/thread.inline.hpp"
30 #include "crc32c.h"
31
32 #ifdef _MSC_VER
33 #define ALIGNED_(x) __declspec(align(x))
34 #else
35 #define ALIGNED_(x) __attribute__ ((aligned(x)))
36 #endif
37
38 // Implementation of the platform-specific part of StubRoutines - for
39 // a description of how to extend it, see the stubRoutines.hpp file.
40
41 address StubRoutines::x86::_verify_mxcsr_entry = NULL;
42 address StubRoutines::x86::_key_shuffle_mask_addr = NULL;
43 address StubRoutines::x86::_counter_shuffle_mask_addr = NULL;
44 address StubRoutines::x86::_ghash_long_swap_mask_addr = NULL;
45 address StubRoutines::x86::_ghash_byte_swap_mask_addr = NULL;
46 address StubRoutines::x86::_upper_word_mask_addr = NULL;
47 address StubRoutines::x86::_shuffle_byte_flip_mask_addr = NULL;
48 address StubRoutines::x86::_k256_adr = NULL;
49 #ifdef _LP64
50 address StubRoutines::x86::_k256_W_adr = NULL;
51 #endif
52 address StubRoutines::x86::_pshuffle_byte_flip_mask_addr = NULL;
53
54 //tables common for sin and cos
55 address StubRoutines::x86::_ONEHALF_adr = NULL;
56 address StubRoutines::x86::_P_2_adr = NULL;
57 address StubRoutines::x86::_SC_4_adr = NULL;
58 address StubRoutines::x86::_Ctable_adr = NULL;
59 address StubRoutines::x86::_SC_2_adr = NULL;
60 address StubRoutines::x86::_SC_3_adr = NULL;
61 address StubRoutines::x86::_SC_1_adr = NULL;
62 address StubRoutines::x86::_PI_INV_TABLE_adr = NULL;
63 address StubRoutines::x86::_PI_4_adr = NULL;
64 address StubRoutines::x86::_PI32INV_adr = NULL;
65 address StubRoutines::x86::_SIGN_MASK_adr = NULL;
66 address StubRoutines::x86::_P_1_adr = NULL;
67 address StubRoutines::x86::_P_3_adr = NULL;
68 address StubRoutines::x86::_NEG_ZERO_adr = NULL;
69
70 //tables common for sincos and tancot
71 address StubRoutines::x86::_L_2il0floatpacket_0_adr = NULL;
275
276 ALIGNED_(64) juint StubRoutines::x86::_k256[] =
277 {
278 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
279 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
280 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
281 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
282 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
283 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
284 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
285 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
286 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
287 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
288 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
289 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
290 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
291 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
292 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
293 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
294 };
295
296 #ifdef _LP64
297 // used in MacroAssembler::sha256_AVX2
298 ALIGNED_(64) juint StubRoutines::x86::_k256_W[] =
299 {
300 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
301 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
302
303 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
304 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
305
306 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
307 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
308
309 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
310 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
311
312 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
313 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
314
315 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
316 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
317
318 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
319 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
320
321 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
322 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
323
324 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
325 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
326
327 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
328 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
329
330 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
331 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
332
333 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
334 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
335
336 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
337 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
338
339 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
340 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
341
342 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
343 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
344
345 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL,
346 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
347 };
348 #endif
|