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
13what 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.
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.
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():"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():"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():"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?
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?
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?
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 retHere 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 retHere 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 retNote: 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"
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.