< prev index next >

src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp

Print this page
8248238: Adding Windows support to OpenJDK on AArch64

Summary: Adding Windows support for AArch64

Contributed-by: Ludovic Henry <luhenry@microsoft.com>, Monica Beckwith <monica.beckwith@microsoft.com>
Reviewed-by:

@@ -60,11 +60,11 @@
 bool StubRoutines::aarch64::_completed = false;
 
 /**
  *  crc_table[] from jdk/src/share/native/java/util/zip/zlib-1.2.5/crc32.h
  */
-juint StubRoutines::aarch64::_crc_table[] ATTRIBUTE_ALIGNED(4096) =
+ATTRIBUTE_ALIGNED(4096) juint StubRoutines::aarch64::_crc_table[] =
 {
     // Table 0
     0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
     0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
     0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,

@@ -287,15 +287,15 @@
     0x02D578EDUL, 0x7DAEED62UL,         // word swap
     0xD502ED78UL, 0xAE7D62EDUL,         // byte swap of word swap
 };
 
 // Accumulation coefficients for adler32 upper 16 bits
-jubyte StubRoutines::aarch64::_adler_table[] __attribute__ ((aligned(64))) = {
+ATTRIBUTE_ALIGNED(64) jubyte StubRoutines::aarch64::_adler_table[] = {
     16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
 };
 
-juint StubRoutines::aarch64::_npio2_hw[] __attribute__ ((aligned(64))) = {
+ATTRIBUTE_ALIGNED(64) juint StubRoutines::aarch64::_npio2_hw[] = {
     // first, various coefficient values: 0.5, invpio2, pio2_1, pio2_1t, pio2_2,
     // pio2_2t, pio2_3, pio2_3t
     // This is a small optimization wich keeping double[8] values in int[] table
     // to have less address calculation instructions
     //

@@ -323,37 +323,37 @@
     0x404858EB, 0x404921FB
 };
 
 // Coefficients for sin(x) polynomial approximation: S1..S6.
 // See kernel_sin comments in macroAssembler_aarch64_trig.cpp for details
-jdouble StubRoutines::aarch64::_dsin_coef[] __attribute__ ((aligned(64))) = {
-    -1.66666666666666324348e-01, // 0xBFC5555555555549
-     8.33333333332248946124e-03, // 0x3F8111111110F8A6
-    -1.98412698298579493134e-04, // 0xBF2A01A019C161D5
-     2.75573137070700676789e-06, // 0x3EC71DE357B1FE7D
-    -2.50507602534068634195e-08, // 0xBE5AE5E68A2B9CEB
-     1.58969099521155010221e-10  // 0x3DE5D93A5ACFD57C
+ATTRIBUTE_ALIGNED(64) julong StubRoutines::aarch64::_dsin_coef[] = {
+    0xBFC5555555555549, //  1.66666666666666324348e-01
+    0x3F8111111110F8A6, //  8.33333333332248946124e-03
+    0xBF2A01A019C161D5, // -1.98412698298579493134e-04
+    0x3EC71DE357B1FE7D, //  2.75573137070700676789e-06
+    0xBE5AE5E68A2B9CEB, // -2.50507602534068634195e-08
+    0x3DE5D93A5ACFD57C  //  1.58969099521155010221e-10
 };
 
 // Coefficients for cos(x) polynomial approximation: C1..C6.
 // See kernel_cos comments in macroAssembler_aarch64_trig.cpp for details
-jdouble StubRoutines::aarch64::_dcos_coef[] __attribute__ ((aligned(64))) = {
-     4.16666666666666019037e-02, // c0x3FA555555555554C
-    -1.38888888888741095749e-03, // 0xBF56C16C16C15177
-     2.48015872894767294178e-05, // 0x3EFA01A019CB1590
-    -2.75573143513906633035e-07, // 0xBE927E4F809C52AD
-     2.08757232129817482790e-09, // 0x3E21EE9EBDB4B1C4
-    -1.13596475577881948265e-11  // 0xBDA8FAE9BE8838D4
+ATTRIBUTE_ALIGNED(64) julong StubRoutines::aarch64::_dcos_coef[] = {
+    0x3FA555555555554C, //  4.16666666666666019037e-02
+    0xBF56C16C16C15177, // -1.38888888888741095749e-03
+    0x3EFA01A019CB1590, //  2.48015872894767294178e-05
+    0xBE927E4F809C52AD, // -2.75573143513906633035e-07
+    0x3E21EE9EBDB4B1C4, //  2.08757232129817482790e-09
+    0xBDA8FAE9BE8838D4  // -1.13596475577881948265e-11
 };
 
 // Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi.
 // Used in cases of very large argument. 396 hex digits is enough to support
 // required precision.
 // Converted to double to avoid unnecessary conversion in code
 // NOTE: table looks like original int table: {0xA2F983, 0x6E4E44,...} with
 //       only (double) conversion added
-jdouble StubRoutines::aarch64::_two_over_pi[] __attribute__ ((aligned(64))) = {
+ATTRIBUTE_ALIGNED(64) jdouble StubRoutines::aarch64::_two_over_pi[] = {
   (double)0xA2F983, (double)0x6E4E44, (double)0x1529FC, (double)0x2757D1, (double)0xF534DD, (double)0xC0DB62,
   (double)0x95993C, (double)0x439041, (double)0xFE5163, (double)0xABDEBB, (double)0xC561B7, (double)0x246E3A,
   (double)0x424DD2, (double)0xE00649, (double)0x2EEA09, (double)0xD1921C, (double)0xFE1DEB, (double)0x1CB129,
   (double)0xA73EE8, (double)0x8235F5, (double)0x2EBB44, (double)0x84E99C, (double)0x7026B4, (double)0x5F7E41,
   (double)0x3991D6, (double)0x398353, (double)0x39F49C, (double)0x845F8B, (double)0xBDF928, (double)0x3B1FF8,

@@ -364,15 +364,15 @@
   (double)0x91615E, (double)0xE61B08, (double)0x659985, (double)0x5F14A0, (double)0x68408D, (double)0xFFD880,
   (double)0x4D7327, (double)0x310606, (double)0x1556CA, (double)0x73A8C9, (double)0x60E27B, (double)0xC08C6B,
 };
 
 // Pi over 2 value
-jdouble StubRoutines::aarch64::_pio2[] __attribute__ ((aligned(64))) = {
-  1.57079625129699707031e+00, // 0x3FF921FB40000000
-  7.54978941586159635335e-08, // 0x3E74442D00000000
-  5.39030252995776476554e-15, // 0x3CF8469880000000
-  3.28200341580791294123e-22, // 0x3B78CC5160000000
-  1.27065575308067607349e-29, // 0x39F01B8380000000
-  1.22933308981111328932e-36, // 0x387A252040000000
-  2.73370053816464559624e-44, // 0x36E3822280000000
-  2.16741683877804819444e-51, // 0x3569F31D00000000
+ATTRIBUTE_ALIGNED(64) julong StubRoutines::aarch64::_pio2[] = {
+    0x3FF921FB40000000, // 1.57079625129699707031e+00
+    0x3E74442D00000000, // 7.54978941586159635335e-08
+    0x3CF8469880000000, // 5.39030252995776476554e-15
+    0x3B78CC5160000000, // 3.28200341580791294123e-22
+    0x39F01B8380000000, // 1.27065575308067607349e-29
+    0x387A252040000000, // 1.22933308981111328932e-36
+    0x36E3822280000000, // 2.73370053816464559624e-44
+    0x3569F31D00000000  // 2.16741683877804819444e-51
 };
< prev index next >