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 | ||||
|---|---|---|---|---|---|
| f | 1 | endbr64 | f | 1 | endbr64 |
| 2 | push %rbp | 2 | push %rbp | ||
| 3 | mov %rsp,%rbp | 3 | mov %rsp,%rbp | ||
| 4 | mov %edi,-0x14(%rbp) | 4 | mov %edi,-0x14(%rbp) | ||
| 5 | mov -0x14(%rbp),%eax | 5 | mov -0x14(%rbp),%eax | ||
| n | n | 6 | lea 0x1(%rax),%edx | ||
| 7 | mov %edx,%eax | ||||
| 6 | add %eax,%eax | 8 | add %eax,%eax | ||
| n | 7 | add $0x3,%eax | n | 9 | add %edx,%eax |
| 8 | mov %eax,-0x8(%rbp) | 10 | mov %eax,-0x8(%rbp) | ||
| 9 | movl $0x0,-0x4(%rbp) | 11 | movl $0x0,-0x4(%rbp) | ||
| 10 | mov -0x4(%rbp),%eax | 12 | mov -0x4(%rbp),%eax | ||
| 11 | cmp -0x14(%rbp),%eax | 13 | cmp -0x14(%rbp),%eax | ||
| n | 12 | jge aa <_Z21implementationChangedi+0x5d> | n | 14 | jge b1 <_Z21implementationChangedi+0x61> |
| 13 | mov -0x8(%rbp),%edx | 15 | mov -0x8(%rbp),%eax | ||
| 14 | mov -0x4(%rbp),%eax | 16 | sub -0x4(%rbp),%eax | ||
| 15 | add %edx,%eax | ||||
| 16 | movslq %eax,%rdx | 17 | movslq %eax,%rdx | ||
| n | 17 | imul $0x78787879,%rdx,%rdx | n | 18 | imul $0xffffffff88888889,%rdx,%rdx |
| 18 | shr $0x20,%rdx | 19 | shr $0x20,%rdx | ||
| n | n | 20 | add %eax,%edx | ||
| 19 | sar $0x3,%edx | 21 | sar $0x3,%edx | ||
| 20 | mov %eax,%ecx | 22 | mov %eax,%ecx | ||
| 21 | sar $0x1f,%ecx | 23 | sar $0x1f,%ecx | ||
| 22 | sub %ecx,%edx | 24 | sub %ecx,%edx | ||
| 23 | mov %edx,-0x8(%rbp) | 25 | mov %edx,-0x8(%rbp) | ||
| 24 | mov -0x8(%rbp),%ecx | 26 | mov -0x8(%rbp),%ecx | ||
| 25 | mov %ecx,%edx | 27 | mov %ecx,%edx | ||
| 26 | shl $0x4,%edx | 28 | shl $0x4,%edx | ||
| n | 27 | add %ecx,%edx | n | 29 | sub %ecx,%edx |
| 28 | sub %edx,%eax | 30 | sub %edx,%eax | ||
| 29 | mov %eax,-0x8(%rbp) | 31 | mov %eax,-0x8(%rbp) | ||
| 30 | addl $0x1,-0x4(%rbp) | 32 | addl $0x1,-0x4(%rbp) | ||
| t | 31 | jmp 6a <_Z21implementationChangedi+0x1d> | t | 33 | jmp 71 <_Z21implementationChangedi+0x21> |
| 34 | addl $0x1,-0x8(%rbp) | ||||
| 32 | mov -0x8(%rbp),%eax | 35 | mov -0x8(%rbp),%eax | ||
| 33 | pop %rbp | 36 | pop %rbp | ||
| 34 | ret | 37 | ret | ||
| 35 | 38 | ||||
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 = '33' <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 = '16' <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]