EVALUATION
Missed NULL check in generated code from bci 13. It was incorrectly eliminated by EA pointers compare optimization:
7 aload_0
8 invokevirtual 56 <sun/awt/X11/XDecoratedPeer.getTargetMinimumSize()Ljava/awt/Dimension;>
80 bci: 8 VirtualCallData count(0) entries(1)
'sun/awt/X11/XWindowPeer'(1 1.00)
11 astore_1
12 aload_1
13 ifnull 194
128 bci: 13 BranchData taken(1) displacement(784)
not taken(0)
16 aload_0
17 invokevirtual 20 <sun/awt/X11/XDecoratedPeer.getRealInsets()Ljava/awt/Insets;>
160 bci: 17 VirtualCallData count(0) entries(0)
20 astore_2
21 aload_1
22 getfield 57 <java/awt/Dimension.width/I>
Failed in 0x060 offset:
040 B3: # B45 B4 <- B2 Freq: 0.899982
040 movq RSI, [rsp + #0] # spill
nop # 3 bytes pad for loops and calls
047 call,static sun.awt.X11.XWindowPeer::getTargetMinimumSize
# sun.awt.X11.XDecoratedPeer::updateMinSizeHints @ bci:8 L[0]=rsp + #0 L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# OopMap{[0]=Oop off=76}
04c
04c B4: # B44 B5 <- B3 Freq: 0.899964
# Block is sole successor of call
04c movq RBP, RAX # spill
04f movq RSI, [rsp + #0] # spill
053 call,static sun.awt.X11.XDecoratedPeer::getRealInsets
# sun.awt.X11.XDecoratedPeer::updateMinSizeHints @ bci:17 L[0]=rsp + #0 L[1]=RBP L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_
# OopMap{rbp=Oop [0]=Oop off=88}
058
058 B5: # B36 B6 <- B4 Freq: 0.899946
# Block is sole successor of call
058 movl R11, [RAX + #16 (8-bit)] # int ! Field java/awt/Insets.left
05c NullCheck RAX
05c
05c B6: # B30 B7 <- B5 Freq: 0.899945
05c movl R10, [RAX + #24 (8-bit)] # int ! Field java/awt/Insets.right
060 movl R9, [RBP + #12 (8-bit)] # int ! Field java/awt/Dimension.width
|