< 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 >