RFR: 8144028: Use AArch64 bit-test instructions in C2
Andrew Haley
aph at redhat.com
Wed Nov 25 17:03:25 UTC 2015
On 11/25/2015 04:56 PM, Edward Nevill wrote:
> On Wed, 2015-11-25 at 15:49 +0000, Andrew Haley wrote:
>> For some reason (oversight, I guess) we never got around to using the
>> bit-testing AArch64 instructions in C2. TBZ/TBNZ are quite nice in
>> that they allow bit tests and branches (and tests for +ve/-ve) without
>> hitting the condition codes. TST sets the condition codes based on a
>> set of bits in a register: it's an AND which throws the result away.
>>
>> http://cr.openjdk.java.net/~aph/8144028/
>>
>
> Looks fine. Small typo.
>
> In cmpL_branch_sign and cmpI_branch_sign
>
> + format %{ "cb$cmp $op1, $labl" %}
>
> should be "tb$cmp ..."
That's not really a typo. I thought "tblt" and "tbge" didn't make
much sense. AFAICS "cblt" looks okay, but I'm not sure:
040 + ldrsbw R12, R1, R13, #16 I2L # byte
048 cblt R12, B30 P=0.000000 C=8345.000000
Thoughts?
Andrew.
More information about the hotspot-compiler-dev
mailing list