< prev index next >

src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp

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

Summary: LP64 vs LLP64 changes to add Windows support

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

*** 3281,3292 **** FloatRegister vs2acc = v2; FloatRegister vtable = v3; // Max number of bytes we can process before having to take the mod // 0x15B0 is 5552 in decimal, the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 ! unsigned long BASE = 0xfff1; ! unsigned long NMAX = 0x15B0; __ mov(base, BASE); __ mov(nmax, NMAX); // Load accumulation coefficients for the upper 16 bits --- 3281,3292 ---- FloatRegister vs2acc = v2; FloatRegister vtable = v3; // Max number of bytes we can process before having to take the mod // 0x15B0 is 5552 in decimal, the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 ! uint64_t BASE = 0xfff1; ! uint64_t NMAX = 0x15B0; __ mov(base, BASE); __ mov(nmax, NMAX); // Load accumulation coefficients for the upper 16 bits
*** 5379,5394 **** return entry; } // In C, approximately: // void ! // montgomery_multiply(unsigned long Pa_base[], unsigned long Pb_base[], ! // unsigned long Pn_base[], unsigned long Pm_base[], ! // unsigned long inv, int len) { ! // unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator ! // unsigned long *Pa, *Pb, *Pn, *Pm; ! // unsigned long Ra, Rb, Rn, Rm; // int i; // assert(inv * Pn_base[0] == -1UL, "broken inverse in Montgomery multiply"); --- 5379,5394 ---- return entry; } // In C, approximately: // void ! // montgomery_multiply(uint64_t Pa_base[], uint64_t Pb_base[], ! // uint64_t Pn_base[], uint64_t Pm_base[], ! // uint64_t inv, int len) { ! // uint64_t t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator ! // uint64_t *Pa, *Pb, *Pn, *Pm; ! // uint64_t Ra, Rb, Rn, Rm; // int i; // assert(inv * Pn_base[0] == -1UL, "broken inverse in Montgomery multiply");
*** 5592,5606 **** return entry; } // In C, approximately: // void ! // montgomery_square(unsigned long Pa_base[], unsigned long Pn_base[], ! // unsigned long Pm_base[], unsigned long inv, int len) { ! // unsigned long t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator ! // unsigned long *Pa, *Pb, *Pn, *Pm; ! // unsigned long Ra, Rb, Rn, Rm; // int i; // assert(inv * Pn_base[0] == -1UL, "broken inverse in Montgomery multiply"); --- 5592,5606 ---- return entry; } // In C, approximately: // void ! // montgomery_square(uint64_t Pa_base[], uint64_t Pn_base[], ! // uint64_t Pm_base[], uint64_t inv, int len) { ! // uint64_t t0 = 0, t1 = 0, t2 = 0; // Triple-precision accumulator ! // uint64_t *Pa, *Pb, *Pn, *Pm; ! // uint64_t Ra, Rb, Rn, Rm; // int i; // assert(inv * Pn_base[0] == -1UL, "broken inverse in Montgomery multiply");
< prev index next >