RFR(S): 8214344: C2: assert(con.basic_type() != T_ILLEGAL) failed: elembt=byte; loadbt=void; unsigned=0

Roland Westrelin rwestrel at redhat.com
Thu Nov 29 15:17:01 UTC 2018


> Looks good.

Thanks for the review.

> Just curious, will main body (one iteration) be executed or pre-loop is executed? In other words is vector instruction 
> is executed during run?

Yes. Final code is this:

  0x00007fb6c8a5d540: mov    %eax,-0x16000(%rsp)
  0x00007fb6c8a5d547: push   %rbp
  0x00007fb6c8a5d548: sub    $0x10,%rsp                     ;*synchronization entry
                                                            ; - LoadVectorFromStableArray::test at -1 (line 54)

  0x00007fb6c8a5d54c: movabs $0x629d70da0,%r10              ;   {oop([B{0x0000000629d70da0})}
  0x00007fb6c8a5d556: movabs $0x629d70d28,%r11              ;   {oop([B{0x0000000629d70d28})}
  0x00007fb6c8a5d560: movsbl 0x13(%r11),%r8d
  0x00007fb6c8a5d565: test   %edx,%edx
  0x00007fb6c8a5d567: cmovne %r11,%r10                      ;*astore {reexecute=0 rethrow=0 return_oop=0}
                                                            ; - LoadVectorFromStableArray::test at 19 (line 56)

  0x00007fb6c8a5d56b: mov    %r8b,0x13(%r10)
  0x00007fb6c8a5d56f: vmovd  0x14(%r11),%xmm0
  0x00007fb6c8a5d575: vmovd  %xmm0,0x14(%r10)               ;*bastore {reexecute=0 rethrow=0 return_oop=0}
                                                            ; - LoadVectorFromStableArray::test_helper2 at 24 (line 71)
                                                            ; - LoadVectorFromStableArray::test at 53 (line 64)

  0x00007fb6c8a5d57b: add    $0x10,%rsp
  0x00007fb6c8a5d57f: pop    %rbp
  0x00007fb6c8a5d580: mov    0x120(%r15),%r10
  0x00007fb6c8a5d587: test   %eax,(%r10)                    ;   {poll_return}
  0x00007fb6c8a5d58a: retq

Roland.


More information about the hotspot-compiler-dev mailing list