RFR: 8077615: AARCH64: Add C2 intrinsic for BigInteger::multiplyToLen() method (original) (raw)
Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Apr 13 19:12:36 UTC 2015
- Previous message: RFR: 8069539: RSA acceleration
- Next message: RFR: 8077615: AARCH64: Add C2 intrinsic for BigInteger::multiplyToLen() method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In the test you removed next line from previous test. Can you restore them?:
System.out.println(b1);
System.out.println(b2);
I have a little problem of mapping code from comments to assembler for multiply_64_x_64_loop(). Extend comments. I think in next comments x_xstart should be used on left side instead of 'product':
- umulh(rscratch1, x_xstart, y_idx); // product * y_idx -> rscratch1:product
- mul(product, x_xstart, y_idx);
- adds(product, product, carry);
- adc(carry, rscratch1, zr); // product * y_idx + carry -> carry:product
Also why not use BytesPerLong instead of BytesPerWord?:
- str(product, offsetted_address(z, kdx, Address::uxtw(LogBytesPerInt), 0, BytesPerWord));
Thanks, Vladimir
On 4/13/15 11:00 AM, Andrew Haley wrote:
Follows x86, but changed to a more idiomatic AArch64 style for efficiency.
I strengthened the regression test. As far as I can see it doesn't robustly check a corner case for carry propagation (i.e. when there is a double carry.) This is very easy to get wrong, so I added it. http://cr.openjdk.java.net/~aph/8077615/ Andrew.
- Previous message: RFR: 8069539: RSA acceleration
- Next message: RFR: 8077615: AARCH64: Add C2 intrinsic for BigInteger::multiplyToLen() method
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]