On Thu, 9 Mar 2023 16:00:53 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:

>> Yes this is really useful when debugging the template interpreter. It 
>> annotates the disassembly with the generator source code. It helped tracking 
>> down a bug in the ppc part oft this pr. Other platforms have it too.
>> 
>> Example:
>> 
>> invokedynamic  186 invokedynamic  [0x00003fff80075a00, 0x00003fff80075dc8]  
>> 968 bytes
>> 
>> --------------------------------------------------------------------------------
>>   0x00003fff80075a00:   std     r17,0(r15)                  ;;@FILE: 
>> src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
>>                                                             ;; 2185:   aep = 
>> __ pc();  __ push_ptr();  __ b(L);
>>   0x00003fff80075a04:   addi    r15,r15,-8
>>   0x00003fff80075a08:   b       0x00003fff80075a40          ;; 2185:   aep = 
>> __ pc();  __ push_ptr();  __ b(L);
>>   0x00003fff80075a0c:   stfs    f15,0(r15)                  ;; 2186:   fep = 
>> __ pc();  __ push_f();    __ b(L);
>>   0x00003fff80075a10:   addi    r15,r15,-8
>>   0x00003fff80075a14:   b       0x00003fff80075a40          ;; 2186:   fep = 
>> __ pc();  __ push_f();    __ b(L);
>>   0x00003fff80075a18:   stfd    f15,-8(r15)                 ;; 2187:   dep = 
>> __ pc();  __ push_d();    __ b(L);
>>   0x00003fff80075a1c:   addi    r15,r15,-16
>>   0x00003fff80075a20:   b       0x00003fff80075a40          ;; 2187:   dep = 
>> __ pc();  __ push_d();    __ b(L);
>>   0x00003fff80075a24:   li      r0,0                        ;; 2188:   lep = 
>> __ pc();  __ push_l();    __ b(L);
>>   0x00003fff80075a28:   std     r0,0(r15)
>>   0x00003fff80075a2c:   std     r17,-8(r15)
>>   0x00003fff80075a30:   addi    r15,r15,-16
>>   0x00003fff80075a34:   b       0x00003fff80075a40          ;; 2188:   lep = 
>> __ pc();  __ push_l();    __ b(L);
>>   0x00003fff80075a38:   stw     r17,0(r15)                  ;; 2189:   __ 
>> align(32, 12, 24); // align L
>>                                                             ;; 2191:   iep = 
>> __ pc();  __ push_i();
>>   0x00003fff80075a3c:   addi    r15,r15,-8
>>   0x00003fff80075a40:   li      r21,1                       ;; 2192:   vep = 
>> __ pc();
>>                                                             ;; 2193:   __ 
>> bind(L);
>>                                                             ;;@FILE: 
>> src/hotspot/share/interpreter/templateInterpreterGenerator.cpp
>>                                                             ;;  366:   __ 
>> verify_FPU(1, t->tos_in());
>>                                                             ;;@FILE: 
>> src/hotspot/cpu/ppc/templateTable_ppc_64.cpp
>>                                                             ;; 2293:   __ 
>> load_resolved_indy_entry(cache, index);
>>   0x00003fff80075a44:   lwax    r21,r14,r21
>>   0x00003fff80075a48:   nand    r21,r21,r21
>>   0x00003fff80075a4c:   ld      r31,40(r27)
>>   0x00003fff80075a50:   rldicr  r21,r21,4,59
>>   0x00003fff80075a54:   addi    r21,r21,8
>>   0x00003fff80075a58:   add     r31,r31,r21
>>   0x00003fff80075a5c:   ld      r22,0(r31)                  ;; 2294:   __ 
>> ld_ptr(method, in_bytes(ResolvedIndyEntry::method_offset()), cache);
>>   0x00003fff80075a60:   cmpdi   r22,0                       ;; 2297:   __ 
>> cmpdi(CCR0, method, 0);
>>   0x00003fff80075a64:   bne-    0x00003fff80075b94          ;; 2298:   __ 
>> bne(CCR0, resolved);,bo=0b00100[no_hint]
>>   0x00003fff80075a68:   li      r4,186                      ;; 2304:   __ 
>> li(R4_ARG2, code);
>>   0x00003fff80075a6c:   ld      r11,0(r1)                   ;; 2305:   __ 
>> call_VM(noreg, entry, R4_ARG2, true);
>
> This change should be in a further RFE though (and you can explain it there 
> so we can maybe use it in the other platforms too).  Does it affect 
> performance when generating the template interpreter?  Do you need to have 
> hsdis in the LD_LIBRARY_PATH environment variable to use this?  I see it's 
> already used by default in one place.

This looks cool.

-------------

PR: https://git.openjdk.org/jdk/pull/12778

Reply via email to