RFR: 8077615: AARCH64: Add C2 intrinsic for BigInteger::multiplyToLen() method
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Apr 13 19:12:36 UTC 2015
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.
>
More information about the hotspot-dev
mailing list