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 // dynamically built from _k256 299 ALIGNED_(64) juint StubRoutines::x86::_k256_W[2*sizeof(StubRoutines::x86::_k256)]; 300 #endif |