Persisting symbol implementationChanged(int) : old size: 98 bytes, new size: 106 bytes, delta: 8 bytes

Old source: old/test2.cpp:68(/home/flo/Documents/elf_diff/tests/src/old/test2.cpp)
New source: new/test2.cpp:68(/home/flo/Documents/elf_diff/tests/src/new/test2.cpp)


Old
New
f1endbr64f1endbr64
2push   %rbp2push   %rbp
3mov    %rsp,%rbp3mov    %rsp,%rbp
4mov    %edi,-0x14(%rbp)4mov    %edi,-0x14(%rbp)
5mov    -0x14(%rbp),%eax5mov    -0x14(%rbp),%eax
nn6lea    0x1(%rax),%edx
7mov    %edx,%eax
6add    %eax,%eax8add    %eax,%eax
n7add    $0x3,%eaxn9add    %edx,%eax
8mov    %eax,-0x8(%rbp)10mov    %eax,-0x8(%rbp)
9movl   $0x0,-0x4(%rbp)11movl   $0x0,-0x4(%rbp)
10mov    -0x4(%rbp),%eax12mov    -0x4(%rbp),%eax
11cmp    -0x14(%rbp),%eax13cmp    -0x14(%rbp),%eax
n12jge    aa <_Z21implementationChangedi+0x5d>n14jge    b1 <_Z21implementationChangedi+0x61>
13mov    -0x8(%rbp),%edx15mov    -0x8(%rbp),%eax
14mov    -0x4(%rbp),%eax16sub    -0x4(%rbp),%eax
15add    %edx,%eax
16movslq %eax,%rdx17movslq %eax,%rdx
n17imul   $0x78787879,%rdx,%rdxn18imul   $0xffffffff88888889,%rdx,%rdx
18shr    $0x20,%rdx19shr    $0x20,%rdx
nn20add    %eax,%edx
19sar    $0x3,%edx21sar    $0x3,%edx
20mov    %eax,%ecx22mov    %eax,%ecx
21sar    $0x1f,%ecx23sar    $0x1f,%ecx
22sub    %ecx,%edx24sub    %ecx,%edx
23mov    %edx,-0x8(%rbp)25mov    %edx,-0x8(%rbp)
24mov    -0x8(%rbp),%ecx26mov    -0x8(%rbp),%ecx
25mov    %ecx,%edx27mov    %ecx,%edx
26shl    $0x4,%edx28shl    $0x4,%edx
n27add    %ecx,%edxn29sub    %ecx,%edx
28sub    %edx,%eax30sub    %edx,%eax
29mov    %eax,-0x8(%rbp)31mov    %eax,-0x8(%rbp)
30addl   $0x1,-0x4(%rbp)32addl   $0x1,-0x4(%rbp)
t31jmp    6a <_Z21implementationChangedi+0x1d>t33jmp    71 <_Z21implementationChangedi+0x21>
34addl   $0x1,-0x8(%rbp)
32mov    -0x8(%rbp),%eax35mov    -0x8(%rbp),%eax
33pop    %rbp36pop    %rbp
34ret37ret
3538

Tree Representation

persisting_symbol
├── display_info [Information that configures how things are displayed]
│   ├── anchor_id = '2' <str> [Unique string identifier token that can be used to generate a HTML anchor for cross references]
│   ├── display_symbol_details = 'True' <bool> [True if symbol details are supposed to be displayed]
│   └── symbol_class = 'persisting' <str> [The class of symbol old/new/appeared/disappeared/persisting/similar]
└── related_symbols [A relation between two symbols]
    ├── new_symbol
    │   ├── id = '19' <int> [Unique symbol identifier]
    │   ├── instructions = 'endbr64
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x14(%rbp)
mov    -0x14(%rbp),%eax
lea    0x1(%rax),%edx
mov    %edx,%eax
add    %eax,%eax
add    %edx,%eax
mov    %eax,-0x8(%rbp)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    b1 <_Z21implementationChangedi+0x61>
mov    -0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
movslq %eax,%rdx
imul   $0xffffffff88888889,%rdx,%rdx
shr    $0x20,%rdx
add    %eax,%edx
sar    $0x3,%edx
mov    %eax,%ecx
sar    $0x1f,%ecx
sub    %ecx,%edx
mov    %edx,-0x8(%rbp)
mov    -0x8(%rbp),%ecx
mov    %ecx,%edx
shl    $0x4,%edx
sub    %ecx,%edx
sub    %edx,%eax
mov    %eax,-0x8(%rbp)
addl   $0x1,-0x4(%rbp)
jmp    71 <_Z21implementationChangedi+0x21>
addl   $0x1,-0x8(%rbp)
mov    -0x8(%rbp),%eax
pop    %rbp
ret
' <str> [Code instructions (assembly with possibly high level language code intermixed)]
    │   ├── is_demangled = 'True' <bool> [True if the symbol name is demangled]
    │   ├── is_stored_in_program_memory = 'True' <bool> [True if the symbol is stored in program memory]
    │   ├── name = 'implementationChanged(int)' <str> [The symbol name (demangled if supported)]
    │   ├── name_mangled = '_Z21implementationChangedi' <str> [The mangled symbol name]
    │   ├── size = '106' <int> [Number of bytes occupied by the symbol]
    │   ├── source
    │   │   ├── file_id = '15' <int> [The id of the source file]
    │   │   └── line = '68' <int> [The line number in the source file where the symbol is defined]
    │   └── type = 'T' <str> [Type character matching the characters used by the nm binutils tool]
    ├── old_symbol
    │   ├── id = '2' <int> [Unique symbol identifier]
    │   ├── instructions = 'endbr64
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    %eax,%eax
add    $0x3,%eax
mov    %eax,-0x8(%rbp)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    aa <_Z21implementationChangedi+0x5d>
mov    -0x8(%rbp),%edx
mov    -0x4(%rbp),%eax
add    %edx,%eax
movslq %eax,%rdx
imul   $0x78787879,%rdx,%rdx
shr    $0x20,%rdx
sar    $0x3,%edx
mov    %eax,%ecx
sar    $0x1f,%ecx
sub    %ecx,%edx
mov    %edx,-0x8(%rbp)
mov    -0x8(%rbp),%ecx
mov    %ecx,%edx
shl    $0x4,%edx
add    %ecx,%edx
sub    %edx,%eax
mov    %eax,-0x8(%rbp)
addl   $0x1,-0x4(%rbp)
jmp    6a <_Z21implementationChangedi+0x1d>
mov    -0x8(%rbp),%eax
pop    %rbp
ret
' <str> [Code instructions (assembly with possibly high level language code intermixed)]
    │   ├── is_demangled = 'True' <bool> [True if the symbol name is demangled]
    │   ├── is_stored_in_program_memory = 'True' <bool> [True if the symbol is stored in program memory]
    │   ├── name = 'implementationChanged(int)' <str> [The symbol name (demangled if supported)]
    │   ├── name_mangled = '_Z21implementationChangedi' <str> [The mangled symbol name]
    │   ├── size = '98' <int> [Number of bytes occupied by the symbol]
    │   ├── source
    │   │   ├── file_id = '7' <int> [The id of the source file]
    │   │   └── line = '68' <int> [The line number in the source file where the symbol is defined]
    │   └── type = 'T' <str> [Type character matching the characters used by the nm binutils tool]
    └── size_delta = '8' <int> [Difference in bytes between the resource occupation of the two symbols]