emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bignum branch


From: Andy Moreton
Subject: Re: bignum branch
Date: Sat, 11 Aug 2018 19:15:08 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (windows-nt)

On Sat 11 Aug 2018, Eli Zaretskii wrote:

>> From: Andy Moreton <address@hidden>
>> Date: Sat, 11 Aug 2018 18:56:15 +0100
>> 
>> > What do the following GDB commands show, in the crashing build?
>> >
>> >   (gdb) disassemble __gmpz_popcount
>> >   (gdb) ptype __gmpz_popcount
>> >   (gdb) ptype __gmpn_popcount
>> 
>> Nothing useful :-(
>
> What about
>
>   (gdb) disassemble Flogcount

(gdb) disas Flogcount
Dump of assembler code for function Flogcount:
   0x000000040016e2de <+0>:     push   %rsi
   0x000000040016e2df <+1>:     push   %rbx
   0x000000040016e2e0 <+2>:     sub    $0x38,%rsp
   0x000000040016e2e4 <+6>:     mov    %rcx,%rbx
   0x000000040016e2e7 <+9>:     mov    0x53d252(%rip),%rax        # 0x4006ab540 
<.refptr.suppress_checking>
   0x000000040016e2ee <+16>:    cmpb   $0x0,(%rax)
   0x000000040016e2f1 <+19>:    je     0x40016e317 <Flogcount+57>
   0x000000040016e2f3 <+21>:    mov    %ebx,%eax
   0x000000040016e2f5 <+23>:    and    $0x3,%eax
   0x000000040016e2f8 <+26>:    cmp    $0x2,%eax
   0x000000040016e2fb <+29>:    je     0x40016e36a <Flogcount+140>
   0x000000040016e2fd <+31>:    mov    %ebx,%eax
   0x000000040016e2ff <+33>:    and    $0x7,%eax
   0x000000040016e302 <+36>:    cmp    $0x1,%eax
   0x000000040016e305 <+39>:    je     0x40016e34d <Flogcount+111>
   0x000000040016e307 <+41>:    mov    $0x0,%eax
   0x000000040016e30c <+46>:    test   %eax,%eax
   0x000000040016e30e <+48>:    je     0x40016e36f <Flogcount+145>
   0x000000040016e310 <+50>:    mov    $0x1,%eax
   0x000000040016e315 <+55>:    jmp    0x40016e36f <Flogcount+145>
   0x000000040016e317 <+57>:    mov    $0xc010,%ecx
   0x000000040016e31c <+62>:    callq  0x4000e6466 <XSYMBOL>
   0x000000040016e321 <+67>:    mov    0x53cd78(%rip),%rsi        # 0x4006ab0a0 
<.refptr.lispsym>
   0x000000040016e328 <+74>:    lea    0xc010(%rsi),%rdx
   0x000000040016e32f <+81>:    cmp    %rdx,%rax
   0x000000040016e332 <+84>:    je     0x40016e2f3 <Flogcount+21>
   0x000000040016e334 <+86>:    mov    $0x3ad,%r8d
   0x000000040016e33a <+92>:    lea    0x51905f(%rip),%rdx        # 0x4006873a0 
<gdb_make_enums_visible+408>
   0x000000040016e341 <+99>:    lea    0x519144(%rip),%rcx        # 0x40068748c 
<gdb_make_enums_visible+644>
   0x000000040016e348 <+106>:   callq  0x400160fd4 <die>
   0x000000040016e34d <+111>:   mov    %rbx,%rcx
   0x000000040016e350 <+114>:   callq  0x4000e9651 <XMISCANY>
   0x000000040016e355 <+119>:   cmpw   $0x5eb1,(%rax)
   0x000000040016e35a <+124>:   je     0x40016e363 <Flogcount+133>
   0x000000040016e35c <+126>:   mov    $0x0,%eax
   0x000000040016e361 <+131>:   jmp    0x40016e30c <Flogcount+46>
   0x000000040016e363 <+133>:   mov    $0x1,%eax
   0x000000040016e368 <+138>:   jmp    0x40016e30c <Flogcount+46>
   0x000000040016e36a <+140>:   mov    $0x1,%eax
   0x000000040016e36f <+145>:   test   %eax,%eax
   0x000000040016e371 <+147>:   je     0x40016e3c6 <Flogcount+232>
   0x000000040016e373 <+149>:   mov    %ebx,%eax
   0x000000040016e375 <+151>:   and    $0x7,%eax
   0x000000040016e378 <+154>:   cmp    $0x1,%eax
   0x000000040016e37b <+157>:   je     0x40016e3d3 <Flogcount+245>
   0x000000040016e37d <+159>:   mov    $0x0,%eax
   0x000000040016e382 <+164>:   test   %eax,%eax
   0x000000040016e384 <+166>:   jne    0x40016e3f0 <Flogcount+274>
   0x000000040016e386 <+168>:   mov    0x53d1b3(%rip),%rax        # 0x4006ab540 
<.refptr.suppress_checking>
   0x000000040016e38d <+175>:   cmpb   $0x0,(%rax)
   0x000000040016e390 <+178>:   jne    0x40016e3a0 <Flogcount+194>
   0x000000040016e392 <+180>:   mov    %ebx,%eax
   0x000000040016e394 <+182>:   and    $0x3,%eax
   0x000000040016e397 <+185>:   cmp    $0x2,%eax
   0x000000040016e39a <+188>:   jne    0x40016e49d <Flogcount+447>
   0x000000040016e3a0 <+194>:   mov    %rbx,%rcx
   0x000000040016e3a3 <+197>:   sar    $0x2,%rcx
   0x000000040016e3a7 <+201>:   js     0x40016e4b6 <Flogcount+472>
   0x000000040016e3ad <+207>:   callq  0x400286940 <__popcountdi2>
   0x000000040016e3b2 <+212>:   cltq   
   0x000000040016e3b4 <+214>:   lea    0x2(,%rax,4),%rbx
   0x000000040016e3bc <+222>:   mov    %rbx,%rax
   0x000000040016e3bf <+225>:   add    $0x38,%rsp
   0x000000040016e3c3 <+229>:   pop    %rbx
   0x000000040016e3c4 <+230>:   pop    %rsi
   0x000000040016e3c5 <+231>:   retq   
   0x000000040016e3c6 <+232>:   mov    %rbx,%rdx
   0x000000040016e3c9 <+235>:   mov    $0xc010,%ecx
   0x000000040016e3ce <+240>:   callq  0x40016c439 <wrong_type_argument>
   0x000000040016e3d3 <+245>:   mov    %rbx,%rcx
   0x000000040016e3d6 <+248>:   callq  0x4000e9651 <XMISCANY>
   0x000000040016e3db <+253>:   cmpw   $0x5eb1,(%rax)
   0x000000040016e3e0 <+258>:   je     0x40016e3e9 <Flogcount+267>
   0x000000040016e3e2 <+260>:   mov    $0x0,%eax
   0x000000040016e3e7 <+265>:   jmp    0x40016e382 <Flogcount+164>
   0x000000040016e3e9 <+267>:   mov    $0x1,%eax
   0x000000040016e3ee <+272>:   jmp    0x40016e382 <Flogcount+164>
   0x000000040016e3f0 <+274>:   mov    %rbx,%rcx
   0x000000040016e3f3 <+277>:   callq  0x4000e9c29 <XBIGNUM>
   0x000000040016e3f8 <+282>:   mov    0x14(%rax),%edx
   0x000000040016e3fb <+285>:   test   %edx,%edx
   0x000000040016e3fd <+287>:   js     0x40016e41d <Flogcount+319>
   0x000000040016e3ff <+289>:   jle    0x40016e416 <Flogcount+312>
   0x000000040016e401 <+291>:   mov    0x18(%rax),%rcx
   0x000000040016e405 <+295>:   callq  0x401e60494 <__imp___gmpn_popcount>
   0x000000040016e40a <+300>:   mov    %eax,%eax
   0x000000040016e40c <+302>:   lea    0x2(,%rax,4),%rbx
   0x000000040016e414 <+310>:   jmp    0x40016e3bc <Flogcount+222>
   0x000000040016e416 <+312>:   mov    $0x0,%eax
   0x000000040016e41b <+317>:   jmp    0x40016e40a <Flogcount+300>
   0x000000040016e41d <+319>:   lea    0x20(%rsp),%rsi
   0x000000040016e422 <+324>:   mov    %rsi,%rcx
   0x000000040016e425 <+327>:   callq  0x400285308 <__gmpz_init>
   0x000000040016e42a <+332>:   mov    %rbx,%rcx
   0x000000040016e42d <+335>:   callq  0x4000e9c29 <XBIGNUM>
   0x000000040016e432 <+340>:   lea    0x10(%rax),%rdx
   0x000000040016e436 <+344>:   cmp    %rsi,%rdx
   0x000000040016e439 <+347>:   je     0x40016e445 <Flogcount+359>
   0x000000040016e43b <+349>:   lea    0x20(%rsp),%rcx
   0x000000040016e440 <+354>:   callq  0x4002852d0 <__gmpz_set>
   0x000000040016e445 <+359>:   mov    0x24(%rsp),%eax
   0x000000040016e449 <+363>:   neg    %eax
   0x000000040016e44b <+365>:   mov    %eax,0x24(%rsp)
   0x000000040016e44f <+369>:   lea    0x20(%rsp),%rcx
   0x000000040016e454 <+374>:   mov    $0x1,%r8d
   0x000000040016e45a <+380>:   mov    %rcx,%rdx
   0x000000040016e45d <+383>:   callq  0x4002852a0 <__gmpz_sub_ui>
   0x000000040016e462 <+388>:   mov    0x24(%rsp),%edx
   0x000000040016e466 <+392>:   test   %edx,%edx
   0x000000040016e468 <+394>:   js     0x40016e496 <Flogcount+440>
   0x000000040016e46a <+396>:   mov    $0x0,%eax
   0x000000040016e46f <+401>:   test   %edx,%edx
   0x000000040016e471 <+403>:   jle    0x40016e47d <Flogcount+415>
   0x000000040016e473 <+405>:   mov    0x28(%rsp),%rcx
   0x000000040016e478 <+410>:   callq  0x401e60494 <__imp___gmpn_popcount>
   0x000000040016e47d <+415>:   mov    %eax,%eax
   0x000000040016e47f <+417>:   lea    0x2(,%rax,4),%rbx
   0x000000040016e487 <+425>:   lea    0x20(%rsp),%rcx
   0x000000040016e48c <+430>:   callq  0x400285360 <__gmpz_clear>
   0x000000040016e491 <+435>:   jmpq   0x40016e3bc <Flogcount+222>
   0x000000040016e496 <+440>:   mov    $0xffffffff,%eax
   0x000000040016e49b <+445>:   jmp    0x40016e46f <Flogcount+401>
   0x000000040016e49d <+447>:   mov    $0xd1c,%r8d
   0x000000040016e4a3 <+453>:   lea    0x518e66(%rip),%rdx        # 0x400687310 
<gdb_make_enums_visible+264>
   0x000000040016e4aa <+460>:   lea    0x51911f(%rip),%rcx        # 0x4006875d0 
<gdb_make_enums_visible+968>
   0x000000040016e4b1 <+467>:   callq  0x400160fd4 <die>
   0x000000040016e4b6 <+472>:   not    %rcx
   0x000000040016e4b9 <+475>:   jmpq   0x40016e3ad <Flogcount+207>
End of assembler dump.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]