hotspot/src/cpu/x86/vm/stubRoutines_x86.cpp
changeset 36555 4f37fd7a5a09
parent 35154 a9b3c1984a01
child 38018 1dc6c6f21231
equal deleted inserted replaced
36554:a7eb9ee4680c 36555:4f37fd7a5a09
    27 #include "runtime/frame.inline.hpp"
    27 #include "runtime/frame.inline.hpp"
    28 #include "runtime/stubRoutines.hpp"
    28 #include "runtime/stubRoutines.hpp"
    29 #include "runtime/thread.inline.hpp"
    29 #include "runtime/thread.inline.hpp"
    30 #include "crc32c.h"
    30 #include "crc32c.h"
    31 
    31 
       
    32 #ifdef _MSC_VER
       
    33 #define ALIGNED_(x) __declspec(align(x))
       
    34 #else
       
    35 #define ALIGNED_(x) __attribute__ ((aligned(x)))
       
    36 #endif
       
    37 
    32 // Implementation of the platform-specific part of StubRoutines - for
    38 // Implementation of the platform-specific part of StubRoutines - for
    33 // a description of how to extend it, see the stubRoutines.hpp file.
    39 // a description of how to extend it, see the stubRoutines.hpp file.
    34 
    40 
    35 address StubRoutines::x86::_verify_mxcsr_entry = NULL;
    41 address StubRoutines::x86::_verify_mxcsr_entry = NULL;
    36 address StubRoutines::x86::_key_shuffle_mask_addr = NULL;
    42 address StubRoutines::x86::_key_shuffle_mask_addr = NULL;
    37 address StubRoutines::x86::_counter_shuffle_mask_addr = NULL;
    43 address StubRoutines::x86::_counter_shuffle_mask_addr = NULL;
    38 address StubRoutines::x86::_ghash_long_swap_mask_addr = NULL;
    44 address StubRoutines::x86::_ghash_long_swap_mask_addr = NULL;
    39 address StubRoutines::x86::_ghash_byte_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;
    40 
    50 
    41 uint64_t StubRoutines::x86::_crc_by128_masks[] =
    51 uint64_t StubRoutines::x86::_crc_by128_masks[] =
    42 {
    52 {
    43   /* The fields in this structure are arranged so that they can be
    53   /* The fields in this structure are arranged so that they can be
    44    * picked up two at a time with 128-bit loads.
    54    * picked up two at a time with 128-bit loads.
   234       }
   244       }
   235     }
   245     }
   236     _crc32c_table = (juint*)pclmulqdq_table;
   246     _crc32c_table = (juint*)pclmulqdq_table;
   237   }
   247   }
   238 }
   248 }
       
   249 
       
   250 ALIGNED_(64) juint StubRoutines::x86::_k256[] =
       
   251 {
       
   252     0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
       
   253     0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
       
   254     0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
       
   255     0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
       
   256     0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
       
   257     0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
       
   258     0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
       
   259     0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
       
   260     0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
       
   261     0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
       
   262     0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
       
   263     0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
       
   264     0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
       
   265     0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
       
   266     0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
       
   267     0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
       
   268 };