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