-
Enhancement
-
Resolution: Won't Fix
-
P3
-
8u60, 9, 10
-
aarch64
Oracle:
0x000003ffa1324544: ldr x0, [x3]
0x000003ffa1324548: and x1, x0, #0x7
0x000003ffa132454c: cmp x1, #0x1
0x000003ffa1324550: b.ne 0x000003ffa1324658
0x000003ffa1324554: lsr x0, x0, #8
0x000003ffa1324558: mov w1, w0 <---- unnecessary ConvL2I
0x000003ffa132455c: and w0, w1, #0x7fffffff
openjdk:
0x000003ff90468bdc: ldr x10, [x13]
0x000003ff90468be0: and x11, x10, #0x7
0x000003ff90468be4: cmp x11, #0x1
0x000003ff90468be8: b.ne 0x000003ff90469014
0x000003ff90468bec: lsr x10, x10, #8
0x000003ff90468bf0: and w0, w10, #0x7fffffff
In the above example, we have an unnecessary ConvL2I. We should do something similar to openjdk's iRegIorL2I.
0x000003ffa1324544: ldr x0, [x3]
0x000003ffa1324548: and x1, x0, #0x7
0x000003ffa132454c: cmp x1, #0x1
0x000003ffa1324550: b.ne 0x000003ffa1324658
0x000003ffa1324554: lsr x0, x0, #8
0x000003ffa1324558: mov w1, w0 <---- unnecessary ConvL2I
0x000003ffa132455c: and w0, w1, #0x7fffffff
openjdk:
0x000003ff90468bdc: ldr x10, [x13]
0x000003ff90468be0: and x11, x10, #0x7
0x000003ff90468be4: cmp x11, #0x1
0x000003ff90468be8: b.ne 0x000003ff90469014
0x000003ff90468bec: lsr x10, x10, #8
0x000003ff90468bf0: and w0, w10, #0x7fffffff
In the above example, we have an unnecessary ConvL2I. We should do something similar to openjdk's iRegIorL2I.