#740

hotspot.disassemblyoutput: unhandled asm line format: "func():"

OpenGitMenschopened 1y ago

Describe the bug the following is visible in stderr, likely meaning there's something that can easily be adjusted

To Reproduce Record on Fedora, then open disassemly; check the output.

Expected behavior No messages and potentially highlighting.

Screenshots

hotspot.disassemblyoutput: unhandled asm line format: "memset():"
hotspot.disassemblyoutput: unhandled asm line format: "__gmpz_abs():"
hotspot.disassemblyoutput: unhandled asm line format: "memcpy():"
hotspot.disassemblyoutput: unhandled asm line format: "memset():"
hotspot.disassemblyoutput: unhandled asm line format: "memcpy():"
hotspot.disassemblyoutput: unhandled asm line format: "memset():"
...

Version Info (please complete the following information):

  • Linux Kernel version: 6.6.87.2
  • perf version: perf version 6.16.7-200.fc42.x86_64
  • hotspot version (appimage? selfcompiled?): appimage from today

Activity

13
milianw1y ago

what code are you recording? please give us a way to reproduce then we can try to fix this. as-is this is an unhelpful bug report that is not easily actionable for me, without first wasting a lot of time trying to guess what the issue may be to trigger the behavior in the first place.

milianw1y ago

what code are you recording? please give us a way to reproduce then we can try to fix this. as-is this is an unhelpful bug report that is not easily actionable for me, without first wasting a lot of time trying to guess what the issue may be to trigger the behavior in the first place.

milianw1y ago

what code are you recording? please give us a way to reproduce then we can try to fix this. as-is this is an unhelpful bug report that is not easily actionable for me, without first wasting a lot of time trying to guess what the issue may be to trigger the behavior in the first place.

GitMensch1y ago

Reproduced in a different place:

The disassemble view points to an inlined function: https://github.com/OCamlPro/gnucobol/blob/gcos4gnucobol-3.x/libcob/numeric.c#L465 - and indeed it seems that those messages all pointed to inlined functions:

hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10_uli():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
GitMensch1y ago

Reproduced in a different place:

The disassemble view points to an inlined function: https://github.com/OCamlPro/gnucobol/blob/gcos4gnucobol-3.x/libcob/numeric.c#L465 - and indeed it seems that those messages all pointed to inlined functions:

hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10_uli():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
GitMensch1y ago

Reproduced in a different place:

The disassemble view points to an inlined function: https://github.com/OCamlPro/gnucobol/blob/gcos4gnucobol-3.x/libcob/numeric.c#L465 - and indeed it seems that those messages all pointed to inlined functions:

hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_pow_10_uli():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_mul_by_pow_10():"
hotspot.disassemblyoutput: unhandled asm line format: "cob_add_int():"
milianw1y ago

this is still not sufficient input for us. can you provide an MWE that we can compile locally to reproduce the issue? Barring that, can you provide the raw objdump output that we fail to parse?

milianw1y ago

this is still not sufficient input for us. can you provide an MWE that we can compile locally to reproduce the issue? Barring that, can you provide the raw objdump output that we fail to parse?

milianw1y ago

this is still not sufficient input for us. can you provide an MWE that we can compile locally to reproduce the issue? Barring that, can you provide the raw objdump output that we fail to parse?

GitMensch1y ago

Here you go:

objdump -d -l -C --start-address 0x21580 --stop-address 0x21733 /home/build/gnucobol/libcob/.libs/libcob.so.4.2.0

/home/build/gnucobol/libcob/.libs/libcob.so.4.2.0:     file format elf64-x86-64


Disassembly of section .text:

0000000000021580 <cob_add_int>:
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3582 (discriminator 1)
   21580:       85 f6                   test   %esi,%esi
   21582:       0f 84 a8 01 00 00       je     21730 <cob_add_int+0x1b0>
/home/build/gnucobol/libcob/numeric.c:3580
   21588:       41 54                   push   %r12
   2158a:       41 89 d4                mov    %edx,%r12d
   2158d:       55                      push   %rbp
   2158e:       48 89 fd                mov    %rdi,%rbp
   21591:       53                      push   %rbx
/home/build/gnucobol/libcob/numeric.c:3581
   21592:       48 8b 57 10             mov    0x10(%rdi),%rdx
/home/build/gnucobol/libcob/numeric.c:3596
   21596:       89 f3                   mov    %esi,%ebx
/home/build/gnucobol/libcob/numeric.c:3597
   21598:       0f b7 02                movzwl (%rdx),%eax
   2159b:       83 e8 13                sub    $0x13,%eax
/home/build/gnucobol/libcob/numeric.c:3596
   2159e:       83 f8 07                cmp    $0x7,%eax
   215a1:       0f 86 c1 00 00 00       jbe    21668 <cob_add_int+0xe8>
/home/build/gnucobol/libcob/numeric.c:3605
   215a7:       0f bf 42 04             movswl 0x4(%rdx),%eax
/home/build/gnucobol/libcob/numeric.c:3607 (discriminator 1)
   215ab:       85 c0                   test   %eax,%eax
   215ad:       0f 88 2d 01 00 00       js     216e0 <cob_add_int+0x160>
/home/build/gnucobol/libcob/numeric.c:3623
   215b3:       48 89 ee                mov    %rbp,%rsi
   215b6:       48 8d 3d c3 7e 06 00    lea    0x67ec3(%rip),%rdi        # 89480 <cob_d1>
   215bd:       e8 6e f9 fd ff          call   f30 <cob_decimal_set_field@plt>
/home/build/gnucobol/libcob/numeric.c:3624
   215c2:       48 63 f3                movslq %ebx,%rsi
   215c5:       48 8d 3d 94 7e 06 00    lea    0x67e94(%rip),%rdi        # 89460 <cob_d2>
   215cc:       e8 cf fa fd ff          call   10a0 <__gmpz_set_si@plt>
/home/build/gnucobol/libcob/numeric.c:3625
   215d1:       48 63 15 b8 7e 06 00    movslq 0x67eb8(%rip),%rdx        # 89490 <cob_d1+0x10>
   215d8:       85 d2                   test   %edx,%edx
   215da:       7e 36                   jle    21612 <cob_add_int+0x92>
/home/build/gnucobol/libcob/numeric.c:3626
   215dc:       89 d0                   mov    %edx,%eax
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:535
   215de:       83 fa 13                cmp    $0x13,%edx
   215e1:       0f 86 c9 00 00 00       jbe    216b0 <cob_add_int+0x130>
cob_pow_10():
/home/build/gnucobol/libcob/numeric.c:469
   215e7:       83 fa 27                cmp    $0x27,%edx
   215ea:       76 54                   jbe    21640 <cob_add_int+0xc0>
/home/build/gnucobol/libcob/numeric.c:480
   215ec:       48 8d 1d cd 7d 06 00    lea    0x67dcd(%rip),%rbx        # 893c0 <cob_mexp>
   215f3:       be 0a 00 00 00          mov    $0xa,%esi
   215f8:       48 89 df                mov    %rbx,%rdi
   215fb:       e8 f0 05 fe ff          call   1bf0 <__gmpz_ui_pow_ui@plt>
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:541
   21600:       48 8d 35 59 7e 06 00    lea    0x67e59(%rip),%rsi        # 89460 <cob_d2>
   21607:       48 89 da                mov    %rbx,%rdx
   2160a:       48 89 f7                mov    %rsi,%rdi
   2160d:       e8 2e ed fd ff          call   340 <__gmpz_mul@plt>
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3633
   21612:       48 8d 35 67 7e 06 00    lea    0x67e67(%rip),%rsi        # 89480 <cob_d1>
   21619:       48 8d 15 40 7e 06 00    lea    0x67e40(%rip),%rdx        # 89460 <cob_d2>
   21620:       48 89 f7                mov    %rsi,%rdi
   21623:       e8 58 f4 fd ff          call   a80 <__gmpz_add@plt>
/home/build/gnucobol/libcob/numeric.c:3636
   21628:       5b                      pop    %rbx
/home/build/gnucobol/libcob/numeric.c:3634
   21629:       44 89 e2                mov    %r12d,%edx
   2162c:       48 8d 3d 4d 7e 06 00    lea    0x67e4d(%rip),%rdi        # 89480 <cob_d1>
   21633:       48 89 ee                mov    %rbp,%rsi
/home/build/gnucobol/libcob/numeric.c:3636
   21636:       5d                      pop    %rbp
   21637:       41 5c                   pop    %r12
/home/build/gnucobol/libcob/numeric.c:3634
   21639:       e9 92 f7 fd ff          jmp    dd0 <cob_decimal_get_field@plt>
   2163e:       66 90                   xchg   %ax,%ax
cob_pow_10():
/home/build/gnucobol/libcob/numeric.c:470
   21640:       48 63 f2                movslq %edx,%rsi
   21643:       48 8d 05 b6 7a 06 00    lea    0x67ab6(%rip),%rax        # 89100 <cob_mpze10>
   2164a:       48 8d 1d 6f 7d 06 00    lea    0x67d6f(%rip),%rbx        # 893c0 <cob_mexp>
   21651:       48 c1 e6 04             shl    $0x4,%rsi
   21655:       48 89 df                mov    %rbx,%rdi
   21658:       48 01 c6                add    %rax,%rsi
   2165b:       e8 60 f4 fd ff          call   ac0 <__gmpz_set@plt>
   21660:       eb 9e                   jmp    21600 <cob_add_int+0x80>
   21662:       66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3598
   21668:       48 63 f6                movslq %esi,%rsi
   2166b:       48 8d 3d ee 7d 06 00    lea    0x67dee(%rip),%rdi        # 89460 <cob_d2>
   21672:       e8 29 fa fd ff          call   10a0 <__gmpz_set_si@plt>
/home/build/gnucobol/libcob/numeric.c:3599
   21677:       48 89 ee                mov    %rbp,%rsi
   2167a:       48 8d 3d ff 7d 06 00    lea    0x67dff(%rip),%rdi        # 89480 <cob_d1>
   21681:       e8 aa f8 fd ff          call   f30 <cob_decimal_set_field@plt>
/home/build/gnucobol/libcob/numeric.c:3601
   21686:       48 8d 35 d3 7d 06 00    lea    0x67dd3(%rip),%rsi        # 89460 <cob_d2>
   2168d:       48 8d 3d ec 7d 06 00    lea    0x67dec(%rip),%rdi        # 89480 <cob_d1>
/home/build/gnucobol/libcob/numeric.c:3600
   21694:       c7 05 d2 7d 06 00 00    movl   $0x0,0x67dd2(%rip)        # 89470 <cob_d2+0x10>
   2169b:       00 00 00 
/home/build/gnucobol/libcob/numeric.c:3601
   2169e:       e8 7d f5 fd ff          call   c20 <cob_decimal_add@plt>
/home/build/gnucobol/libcob/numeric.c:3602
   216a3:       e9 80 ff ff ff          jmp    21628 <cob_add_int+0xa8>
   216a8:       0f 1f 84 00 00 00 00    nopl   0x0(%rax,%rax,1)
   216af:       00 
cob_pow_10_uli():
/home/build/gnucobol/libcob/numeric.c:519
   216b0:       ba 01 00 00 00          mov    $0x1,%edx
   216b5:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216bc:       00 00 00 00 
/home/build/gnucobol/libcob/numeric.c:521
   216c0:       48 8d 14 92             lea    (%rdx,%rdx,4),%rdx
   216c4:       48 01 d2                add    %rdx,%rdx
/home/build/gnucobol/libcob/numeric.c:520
   216c7:       83 e8 01                sub    $0x1,%eax
   216ca:       75 f4                   jne    216c0 <cob_add_int+0x140>
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:536 (discriminator 1)
   216cc:       48 8d 35 8d 7d 06 00    lea    0x67d8d(%rip),%rsi        # 89460 <cob_d2>
   216d3:       48 89 f7                mov    %rsi,%rdi
   216d6:       e8 f5 ec fd ff          call   3d0 <__gmpz_mul_ui@plt>
/home/build/gnucobol/libcob/numeric.c:537
   216db:       e9 32 ff ff ff          jmp    21612 <cob_add_int+0x92>
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3610
   216e0:       83 f8 f7                cmp    $0xfffffff7,%eax
   216e3:       7c 42                   jl     21727 <cob_add_int+0x1a7>
/home/build/gnucobol/libcob/numeric.c:3615
   216e5:       83 c0 01                add    $0x1,%eax
   216e8:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216ef:       00 00 00 00 
   216f3:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216fa:       00 00 00 00 
   216fe:       66 90                   xchg   %ax,%ax
/home/build/gnucobol/libcob/numeric.c:3616
   21700:       48 63 d3                movslq %ebx,%rdx
   21703:       89 d9                   mov    %ebx,%ecx
/home/build/gnucobol/libcob/numeric.c:3615
   21705:       83 c0 01                add    $0x1,%eax
/home/build/gnucobol/libcob/numeric.c:3616
   21708:       48 69 d2 67 66 66 66    imul   $0x66666667,%rdx,%rdx
   2170f:       c1 f9 1f                sar    $0x1f,%ecx
   21712:       48 c1 fa 22             sar    $0x22,%rdx
   21716:       89 d3                   mov    %edx,%ebx
   21718:       29 cb                   sub    %ecx,%ebx
/home/build/gnucobol/libcob/numeric.c:3615
   2171a:       83 f8 01                cmp    $0x1,%eax
   2171d:       75 e1                   jne    21700 <cob_add_int+0x180>
/home/build/gnucobol/libcob/numeric.c:3618
   2171f:       85 db                   test   %ebx,%ebx
   21721:       0f 85 8c fe ff ff       jne    215b3 <cob_add_int+0x33>
/home/build/gnucobol/libcob/numeric.c:3636
   21727:       5b                      pop    %rbx
   21728:       31 c0                   xor    %eax,%eax
   2172a:       5d                      pop    %rbp
   2172b:       41 5c                   pop    %r12
   2172d:       c3                      ret
   2172e:       66 90                   xchg   %ax,%ax
   21730:       31 c0                   xor    %eax,%eax
   21732:       c3                      ret
GitMensch1y ago

Here you go:

objdump -d -l -C --start-address 0x21580 --stop-address 0x21733 /home/build/gnucobol/libcob/.libs/libcob.so.4.2.0

/home/build/gnucobol/libcob/.libs/libcob.so.4.2.0:     file format elf64-x86-64


Disassembly of section .text:

0000000000021580 <cob_add_int>:
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3582 (discriminator 1)
   21580:       85 f6                   test   %esi,%esi
   21582:       0f 84 a8 01 00 00       je     21730 <cob_add_int+0x1b0>
/home/build/gnucobol/libcob/numeric.c:3580
   21588:       41 54                   push   %r12
   2158a:       41 89 d4                mov    %edx,%r12d
   2158d:       55                      push   %rbp
   2158e:       48 89 fd                mov    %rdi,%rbp
   21591:       53                      push   %rbx
/home/build/gnucobol/libcob/numeric.c:3581
   21592:       48 8b 57 10             mov    0x10(%rdi),%rdx
/home/build/gnucobol/libcob/numeric.c:3596
   21596:       89 f3                   mov    %esi,%ebx
/home/build/gnucobol/libcob/numeric.c:3597
   21598:       0f b7 02                movzwl (%rdx),%eax
   2159b:       83 e8 13                sub    $0x13,%eax
/home/build/gnucobol/libcob/numeric.c:3596
   2159e:       83 f8 07                cmp    $0x7,%eax
   215a1:       0f 86 c1 00 00 00       jbe    21668 <cob_add_int+0xe8>
/home/build/gnucobol/libcob/numeric.c:3605
   215a7:       0f bf 42 04             movswl 0x4(%rdx),%eax
/home/build/gnucobol/libcob/numeric.c:3607 (discriminator 1)
   215ab:       85 c0                   test   %eax,%eax
   215ad:       0f 88 2d 01 00 00       js     216e0 <cob_add_int+0x160>
/home/build/gnucobol/libcob/numeric.c:3623
   215b3:       48 89 ee                mov    %rbp,%rsi
   215b6:       48 8d 3d c3 7e 06 00    lea    0x67ec3(%rip),%rdi        # 89480 <cob_d1>
   215bd:       e8 6e f9 fd ff          call   f30 <cob_decimal_set_field@plt>
/home/build/gnucobol/libcob/numeric.c:3624
   215c2:       48 63 f3                movslq %ebx,%rsi
   215c5:       48 8d 3d 94 7e 06 00    lea    0x67e94(%rip),%rdi        # 89460 <cob_d2>
   215cc:       e8 cf fa fd ff          call   10a0 <__gmpz_set_si@plt>
/home/build/gnucobol/libcob/numeric.c:3625
   215d1:       48 63 15 b8 7e 06 00    movslq 0x67eb8(%rip),%rdx        # 89490 <cob_d1+0x10>
   215d8:       85 d2                   test   %edx,%edx
   215da:       7e 36                   jle    21612 <cob_add_int+0x92>
/home/build/gnucobol/libcob/numeric.c:3626
   215dc:       89 d0                   mov    %edx,%eax
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:535
   215de:       83 fa 13                cmp    $0x13,%edx
   215e1:       0f 86 c9 00 00 00       jbe    216b0 <cob_add_int+0x130>
cob_pow_10():
/home/build/gnucobol/libcob/numeric.c:469
   215e7:       83 fa 27                cmp    $0x27,%edx
   215ea:       76 54                   jbe    21640 <cob_add_int+0xc0>
/home/build/gnucobol/libcob/numeric.c:480
   215ec:       48 8d 1d cd 7d 06 00    lea    0x67dcd(%rip),%rbx        # 893c0 <cob_mexp>
   215f3:       be 0a 00 00 00          mov    $0xa,%esi
   215f8:       48 89 df                mov    %rbx,%rdi
   215fb:       e8 f0 05 fe ff          call   1bf0 <__gmpz_ui_pow_ui@plt>
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:541
   21600:       48 8d 35 59 7e 06 00    lea    0x67e59(%rip),%rsi        # 89460 <cob_d2>
   21607:       48 89 da                mov    %rbx,%rdx
   2160a:       48 89 f7                mov    %rsi,%rdi
   2160d:       e8 2e ed fd ff          call   340 <__gmpz_mul@plt>
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3633
   21612:       48 8d 35 67 7e 06 00    lea    0x67e67(%rip),%rsi        # 89480 <cob_d1>
   21619:       48 8d 15 40 7e 06 00    lea    0x67e40(%rip),%rdx        # 89460 <cob_d2>
   21620:       48 89 f7                mov    %rsi,%rdi
   21623:       e8 58 f4 fd ff          call   a80 <__gmpz_add@plt>
/home/build/gnucobol/libcob/numeric.c:3636
   21628:       5b                      pop    %rbx
/home/build/gnucobol/libcob/numeric.c:3634
   21629:       44 89 e2                mov    %r12d,%edx
   2162c:       48 8d 3d 4d 7e 06 00    lea    0x67e4d(%rip),%rdi        # 89480 <cob_d1>
   21633:       48 89 ee                mov    %rbp,%rsi
/home/build/gnucobol/libcob/numeric.c:3636
   21636:       5d                      pop    %rbp
   21637:       41 5c                   pop    %r12
/home/build/gnucobol/libcob/numeric.c:3634
   21639:       e9 92 f7 fd ff          jmp    dd0 <cob_decimal_get_field@plt>
   2163e:       66 90                   xchg   %ax,%ax
cob_pow_10():
/home/build/gnucobol/libcob/numeric.c:470
   21640:       48 63 f2                movslq %edx,%rsi
   21643:       48 8d 05 b6 7a 06 00    lea    0x67ab6(%rip),%rax        # 89100 <cob_mpze10>
   2164a:       48 8d 1d 6f 7d 06 00    lea    0x67d6f(%rip),%rbx        # 893c0 <cob_mexp>
   21651:       48 c1 e6 04             shl    $0x4,%rsi
   21655:       48 89 df                mov    %rbx,%rdi
   21658:       48 01 c6                add    %rax,%rsi
   2165b:       e8 60 f4 fd ff          call   ac0 <__gmpz_set@plt>
   21660:       eb 9e                   jmp    21600 <cob_add_int+0x80>
   21662:       66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3598
   21668:       48 63 f6                movslq %esi,%rsi
   2166b:       48 8d 3d ee 7d 06 00    lea    0x67dee(%rip),%rdi        # 89460 <cob_d2>
   21672:       e8 29 fa fd ff          call   10a0 <__gmpz_set_si@plt>
/home/build/gnucobol/libcob/numeric.c:3599
   21677:       48 89 ee                mov    %rbp,%rsi
   2167a:       48 8d 3d ff 7d 06 00    lea    0x67dff(%rip),%rdi        # 89480 <cob_d1>
   21681:       e8 aa f8 fd ff          call   f30 <cob_decimal_set_field@plt>
/home/build/gnucobol/libcob/numeric.c:3601
   21686:       48 8d 35 d3 7d 06 00    lea    0x67dd3(%rip),%rsi        # 89460 <cob_d2>
   2168d:       48 8d 3d ec 7d 06 00    lea    0x67dec(%rip),%rdi        # 89480 <cob_d1>
/home/build/gnucobol/libcob/numeric.c:3600
   21694:       c7 05 d2 7d 06 00 00    movl   $0x0,0x67dd2(%rip)        # 89470 <cob_d2+0x10>
   2169b:       00 00 00 
/home/build/gnucobol/libcob/numeric.c:3601
   2169e:       e8 7d f5 fd ff          call   c20 <cob_decimal_add@plt>
/home/build/gnucobol/libcob/numeric.c:3602
   216a3:       e9 80 ff ff ff          jmp    21628 <cob_add_int+0xa8>
   216a8:       0f 1f 84 00 00 00 00    nopl   0x0(%rax,%rax,1)
   216af:       00 
cob_pow_10_uli():
/home/build/gnucobol/libcob/numeric.c:519
   216b0:       ba 01 00 00 00          mov    $0x1,%edx
   216b5:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216bc:       00 00 00 00 
/home/build/gnucobol/libcob/numeric.c:521
   216c0:       48 8d 14 92             lea    (%rdx,%rdx,4),%rdx
   216c4:       48 01 d2                add    %rdx,%rdx
/home/build/gnucobol/libcob/numeric.c:520
   216c7:       83 e8 01                sub    $0x1,%eax
   216ca:       75 f4                   jne    216c0 <cob_add_int+0x140>
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:536 (discriminator 1)
   216cc:       48 8d 35 8d 7d 06 00    lea    0x67d8d(%rip),%rsi        # 89460 <cob_d2>
   216d3:       48 89 f7                mov    %rsi,%rdi
   216d6:       e8 f5 ec fd ff          call   3d0 <__gmpz_mul_ui@plt>
/home/build/gnucobol/libcob/numeric.c:537
   216db:       e9 32 ff ff ff          jmp    21612 <cob_add_int+0x92>
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3610
   216e0:       83 f8 f7                cmp    $0xfffffff7,%eax
   216e3:       7c 42                   jl     21727 <cob_add_int+0x1a7>
/home/build/gnucobol/libcob/numeric.c:3615
   216e5:       83 c0 01                add    $0x1,%eax
   216e8:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216ef:       00 00 00 00 
   216f3:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216fa:       00 00 00 00 
   216fe:       66 90                   xchg   %ax,%ax
/home/build/gnucobol/libcob/numeric.c:3616
   21700:       48 63 d3                movslq %ebx,%rdx
   21703:       89 d9                   mov    %ebx,%ecx
/home/build/gnucobol/libcob/numeric.c:3615
   21705:       83 c0 01                add    $0x1,%eax
/home/build/gnucobol/libcob/numeric.c:3616
   21708:       48 69 d2 67 66 66 66    imul   $0x66666667,%rdx,%rdx
   2170f:       c1 f9 1f                sar    $0x1f,%ecx
   21712:       48 c1 fa 22             sar    $0x22,%rdx
   21716:       89 d3                   mov    %edx,%ebx
   21718:       29 cb                   sub    %ecx,%ebx
/home/build/gnucobol/libcob/numeric.c:3615
   2171a:       83 f8 01                cmp    $0x1,%eax
   2171d:       75 e1                   jne    21700 <cob_add_int+0x180>
/home/build/gnucobol/libcob/numeric.c:3618
   2171f:       85 db                   test   %ebx,%ebx
   21721:       0f 85 8c fe ff ff       jne    215b3 <cob_add_int+0x33>
/home/build/gnucobol/libcob/numeric.c:3636
   21727:       5b                      pop    %rbx
   21728:       31 c0                   xor    %eax,%eax
   2172a:       5d                      pop    %rbp
   2172b:       41 5c                   pop    %r12
   2172d:       c3                      ret
   2172e:       66 90                   xchg   %ax,%ax
   21730:       31 c0                   xor    %eax,%eax
   21732:       c3                      ret
GitMensch1y ago

Here you go:

objdump -d -l -C --start-address 0x21580 --stop-address 0x21733 /home/build/gnucobol/libcob/.libs/libcob.so.4.2.0

/home/build/gnucobol/libcob/.libs/libcob.so.4.2.0:     file format elf64-x86-64


Disassembly of section .text:

0000000000021580 <cob_add_int>:
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3582 (discriminator 1)
   21580:       85 f6                   test   %esi,%esi
   21582:       0f 84 a8 01 00 00       je     21730 <cob_add_int+0x1b0>
/home/build/gnucobol/libcob/numeric.c:3580
   21588:       41 54                   push   %r12
   2158a:       41 89 d4                mov    %edx,%r12d
   2158d:       55                      push   %rbp
   2158e:       48 89 fd                mov    %rdi,%rbp
   21591:       53                      push   %rbx
/home/build/gnucobol/libcob/numeric.c:3581
   21592:       48 8b 57 10             mov    0x10(%rdi),%rdx
/home/build/gnucobol/libcob/numeric.c:3596
   21596:       89 f3                   mov    %esi,%ebx
/home/build/gnucobol/libcob/numeric.c:3597
   21598:       0f b7 02                movzwl (%rdx),%eax
   2159b:       83 e8 13                sub    $0x13,%eax
/home/build/gnucobol/libcob/numeric.c:3596
   2159e:       83 f8 07                cmp    $0x7,%eax
   215a1:       0f 86 c1 00 00 00       jbe    21668 <cob_add_int+0xe8>
/home/build/gnucobol/libcob/numeric.c:3605
   215a7:       0f bf 42 04             movswl 0x4(%rdx),%eax
/home/build/gnucobol/libcob/numeric.c:3607 (discriminator 1)
   215ab:       85 c0                   test   %eax,%eax
   215ad:       0f 88 2d 01 00 00       js     216e0 <cob_add_int+0x160>
/home/build/gnucobol/libcob/numeric.c:3623
   215b3:       48 89 ee                mov    %rbp,%rsi
   215b6:       48 8d 3d c3 7e 06 00    lea    0x67ec3(%rip),%rdi        # 89480 <cob_d1>
   215bd:       e8 6e f9 fd ff          call   f30 <cob_decimal_set_field@plt>
/home/build/gnucobol/libcob/numeric.c:3624
   215c2:       48 63 f3                movslq %ebx,%rsi
   215c5:       48 8d 3d 94 7e 06 00    lea    0x67e94(%rip),%rdi        # 89460 <cob_d2>
   215cc:       e8 cf fa fd ff          call   10a0 <__gmpz_set_si@plt>
/home/build/gnucobol/libcob/numeric.c:3625
   215d1:       48 63 15 b8 7e 06 00    movslq 0x67eb8(%rip),%rdx        # 89490 <cob_d1+0x10>
   215d8:       85 d2                   test   %edx,%edx
   215da:       7e 36                   jle    21612 <cob_add_int+0x92>
/home/build/gnucobol/libcob/numeric.c:3626
   215dc:       89 d0                   mov    %edx,%eax
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:535
   215de:       83 fa 13                cmp    $0x13,%edx
   215e1:       0f 86 c9 00 00 00       jbe    216b0 <cob_add_int+0x130>
cob_pow_10():
/home/build/gnucobol/libcob/numeric.c:469
   215e7:       83 fa 27                cmp    $0x27,%edx
   215ea:       76 54                   jbe    21640 <cob_add_int+0xc0>
/home/build/gnucobol/libcob/numeric.c:480
   215ec:       48 8d 1d cd 7d 06 00    lea    0x67dcd(%rip),%rbx        # 893c0 <cob_mexp>
   215f3:       be 0a 00 00 00          mov    $0xa,%esi
   215f8:       48 89 df                mov    %rbx,%rdi
   215fb:       e8 f0 05 fe ff          call   1bf0 <__gmpz_ui_pow_ui@plt>
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:541
   21600:       48 8d 35 59 7e 06 00    lea    0x67e59(%rip),%rsi        # 89460 <cob_d2>
   21607:       48 89 da                mov    %rbx,%rdx
   2160a:       48 89 f7                mov    %rsi,%rdi
   2160d:       e8 2e ed fd ff          call   340 <__gmpz_mul@plt>
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3633
   21612:       48 8d 35 67 7e 06 00    lea    0x67e67(%rip),%rsi        # 89480 <cob_d1>
   21619:       48 8d 15 40 7e 06 00    lea    0x67e40(%rip),%rdx        # 89460 <cob_d2>
   21620:       48 89 f7                mov    %rsi,%rdi
   21623:       e8 58 f4 fd ff          call   a80 <__gmpz_add@plt>
/home/build/gnucobol/libcob/numeric.c:3636
   21628:       5b                      pop    %rbx
/home/build/gnucobol/libcob/numeric.c:3634
   21629:       44 89 e2                mov    %r12d,%edx
   2162c:       48 8d 3d 4d 7e 06 00    lea    0x67e4d(%rip),%rdi        # 89480 <cob_d1>
   21633:       48 89 ee                mov    %rbp,%rsi
/home/build/gnucobol/libcob/numeric.c:3636
   21636:       5d                      pop    %rbp
   21637:       41 5c                   pop    %r12
/home/build/gnucobol/libcob/numeric.c:3634
   21639:       e9 92 f7 fd ff          jmp    dd0 <cob_decimal_get_field@plt>
   2163e:       66 90                   xchg   %ax,%ax
cob_pow_10():
/home/build/gnucobol/libcob/numeric.c:470
   21640:       48 63 f2                movslq %edx,%rsi
   21643:       48 8d 05 b6 7a 06 00    lea    0x67ab6(%rip),%rax        # 89100 <cob_mpze10>
   2164a:       48 8d 1d 6f 7d 06 00    lea    0x67d6f(%rip),%rbx        # 893c0 <cob_mexp>
   21651:       48 c1 e6 04             shl    $0x4,%rsi
   21655:       48 89 df                mov    %rbx,%rdi
   21658:       48 01 c6                add    %rax,%rsi
   2165b:       e8 60 f4 fd ff          call   ac0 <__gmpz_set@plt>
   21660:       eb 9e                   jmp    21600 <cob_add_int+0x80>
   21662:       66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3598
   21668:       48 63 f6                movslq %esi,%rsi
   2166b:       48 8d 3d ee 7d 06 00    lea    0x67dee(%rip),%rdi        # 89460 <cob_d2>
   21672:       e8 29 fa fd ff          call   10a0 <__gmpz_set_si@plt>
/home/build/gnucobol/libcob/numeric.c:3599
   21677:       48 89 ee                mov    %rbp,%rsi
   2167a:       48 8d 3d ff 7d 06 00    lea    0x67dff(%rip),%rdi        # 89480 <cob_d1>
   21681:       e8 aa f8 fd ff          call   f30 <cob_decimal_set_field@plt>
/home/build/gnucobol/libcob/numeric.c:3601
   21686:       48 8d 35 d3 7d 06 00    lea    0x67dd3(%rip),%rsi        # 89460 <cob_d2>
   2168d:       48 8d 3d ec 7d 06 00    lea    0x67dec(%rip),%rdi        # 89480 <cob_d1>
/home/build/gnucobol/libcob/numeric.c:3600
   21694:       c7 05 d2 7d 06 00 00    movl   $0x0,0x67dd2(%rip)        # 89470 <cob_d2+0x10>
   2169b:       00 00 00 
/home/build/gnucobol/libcob/numeric.c:3601
   2169e:       e8 7d f5 fd ff          call   c20 <cob_decimal_add@plt>
/home/build/gnucobol/libcob/numeric.c:3602
   216a3:       e9 80 ff ff ff          jmp    21628 <cob_add_int+0xa8>
   216a8:       0f 1f 84 00 00 00 00    nopl   0x0(%rax,%rax,1)
   216af:       00 
cob_pow_10_uli():
/home/build/gnucobol/libcob/numeric.c:519
   216b0:       ba 01 00 00 00          mov    $0x1,%edx
   216b5:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216bc:       00 00 00 00 
/home/build/gnucobol/libcob/numeric.c:521
   216c0:       48 8d 14 92             lea    (%rdx,%rdx,4),%rdx
   216c4:       48 01 d2                add    %rdx,%rdx
/home/build/gnucobol/libcob/numeric.c:520
   216c7:       83 e8 01                sub    $0x1,%eax
   216ca:       75 f4                   jne    216c0 <cob_add_int+0x140>
cob_mul_by_pow_10():
/home/build/gnucobol/libcob/numeric.c:536 (discriminator 1)
   216cc:       48 8d 35 8d 7d 06 00    lea    0x67d8d(%rip),%rsi        # 89460 <cob_d2>
   216d3:       48 89 f7                mov    %rsi,%rdi
   216d6:       e8 f5 ec fd ff          call   3d0 <__gmpz_mul_ui@plt>
/home/build/gnucobol/libcob/numeric.c:537
   216db:       e9 32 ff ff ff          jmp    21612 <cob_add_int+0x92>
cob_add_int():
/home/build/gnucobol/libcob/numeric.c:3610
   216e0:       83 f8 f7                cmp    $0xfffffff7,%eax
   216e3:       7c 42                   jl     21727 <cob_add_int+0x1a7>
/home/build/gnucobol/libcob/numeric.c:3615
   216e5:       83 c0 01                add    $0x1,%eax
   216e8:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216ef:       00 00 00 00 
   216f3:       66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
   216fa:       00 00 00 00 
   216fe:       66 90                   xchg   %ax,%ax
/home/build/gnucobol/libcob/numeric.c:3616
   21700:       48 63 d3                movslq %ebx,%rdx
   21703:       89 d9                   mov    %ebx,%ecx
/home/build/gnucobol/libcob/numeric.c:3615
   21705:       83 c0 01                add    $0x1,%eax
/home/build/gnucobol/libcob/numeric.c:3616
   21708:       48 69 d2 67 66 66 66    imul   $0x66666667,%rdx,%rdx
   2170f:       c1 f9 1f                sar    $0x1f,%ecx
   21712:       48 c1 fa 22             sar    $0x22,%rdx
   21716:       89 d3                   mov    %edx,%ebx
   21718:       29 cb                   sub    %ecx,%ebx
/home/build/gnucobol/libcob/numeric.c:3615
   2171a:       83 f8 01                cmp    $0x1,%eax
   2171d:       75 e1                   jne    21700 <cob_add_int+0x180>
/home/build/gnucobol/libcob/numeric.c:3618
   2171f:       85 db                   test   %ebx,%ebx
   21721:       0f 85 8c fe ff ff       jne    215b3 <cob_add_int+0x33>
/home/build/gnucobol/libcob/numeric.c:3636
   21727:       5b                      pop    %rbx
   21728:       31 c0                   xor    %eax,%eax
   2172a:       5d                      pop    %rbp
   2172b:       41 5c                   pop    %r12
   2172d:       c3                      ret
   2172e:       66 90                   xchg   %ax,%ax
   21730:       31 c0                   xor    %eax,%eax
   21732:       c3                      ret
GitMensch2mo ago

Note: just verified: the error did not show up in hotspot 1.5.80 - no clue if that was just "ignored" or if it is a "real new regression"