Skip to content

Instantly share code, notes, and snippets.

@psiha
Last active March 2, 2016 01:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psiha/f92a7b8a93c5ce1736ae to your computer and use it in GitHub Desktop.
Save psiha/f92a7b8a93c5ce1736ae to your computer and use it in GitHub Desktop.
mmap.demo1 Clang codegen
btest`main:
0x100000c00 <+0>: pushq %rbp
0x100000c01 <+1>: movq %rsp, %rbp
0x100000c04 <+4>: pushq %r15
0x100000c06 <+6>: pushq %r14
0x100000c08 <+8>: pushq %r13
0x100000c0a <+10>: pushq %r12
0x100000c0c <+12>: pushq %rbx
0x100000c0d <+13>: subq $0x98, %rsp
0x100000c14 <+20>: leaq 0x28b(%rip), %rdi ; "foo"
0x100000c1b <+27>: xorl %esi, %esi
0x100000c1d <+29>: movl $0xffff, %edx
0x100000c22 <+34>: xorl %eax, %eax
0x100000c24 <+36>: callq 0x100000e2a ; symbol stub for: open
0x100000c29 <+41>: movl %eax, %r15d
0x100000c2c <+44>: cmpl $-0x1, %r15d
0x100000c30 <+48>: je 0x100000cfa ; <+250> [inlined] boost::err::last_errno::get() at errno.hpp:76
0x100000c36 <+54>: leaq -0xb8(%rbp), %rsi
0x100000c3d <+61>: movl %r15d, %edi
0x100000c40 <+64>: callq 0x100000e18 ; symbol stub for: fstat$INODE64
0x100000c45 <+69>: testl %eax, %eax
0x100000c47 <+71>: jne 0x100000d19 ; <+281> [inlined] boost::err::last_errno::get() at errno.hpp:76
0x100000c4d <+77>: movq -0x58(%rbp), %rbx
0x100000c51 <+81>: xorl %r14d, %r14d
0x100000c54 <+84>: xorl %edi, %edi
0x100000c56 <+86>: movl $0x1, %edx
0x100000c5b <+91>: movl $0x1, %ecx
0x100000c60 <+96>: xorl %r9d, %r9d
0x100000c63 <+99>: movq %rbx, %rsi
0x100000c66 <+102>: movl %r15d, %r8d
0x100000c69 <+105>: callq 0x100000e1e ; symbol stub for: mmap
0x100000c6e <+110>: cmpq $-0x1, %rax
0x100000c72 <+114>: movl $0x0, %r12d
0x100000c78 <+120>: je 0x100000c83 ; <+131> [inlined] boost::mmap::basic_mapped_view<char const, boost::mmap::posix::mapper>::map(boost::mmap::posix::mapping const&, boost::mmap::posix::flags::viewing, unsigned long long, unsigned long) + 32 at mapped_view.hpp:160
0x100000c7a <+122>: addq %rax, %rbx
0x100000c7d <+125>: movq %rbx, %r14
0x100000c80 <+128>: movq %rax, %r12
0x100000c83 <+131>: leaq -0xc0(%rbp), %r13
0x100000c8a <+138>: movb $0x1, -0xc0(%rbp)
0x100000c91 <+145>: movb $0x0, -0xbf(%rbp)
0x100000c98 <+152>: movabsq $-0x100000000, %rbx
0x100000ca2 <+162>: andq %r12, %rbx
0x100000ca5 <+165>: movl %r15d, %edi
0x100000ca8 <+168>: callq 0x100000e0c ; symbol stub for: close
0x100000cad <+173>: movb $0x1, -0xbf(%rbp)
0x100000cb4 <+180>: movzwl (%r13), %eax
0x100000cb9 <+185>: testb %al, %al
0x100000cbb <+187>: je 0x100000ce5 ; <+229> at ConsoleApplication1.cpp:220
0x100000cbd <+189>: movl %r12d, %eax
0x100000cc0 <+192>: orq %rax, %rbx
0x100000cc3 <+195>: movl $0xffffffff, %r12d
0x100000cc9 <+201>: cmpq %r14, %rbx
0x100000ccc <+204>: je 0x100000cd2 ; <+210> [inlined] boost::mmap::posix::mapper::unmap(void const*, unsigned long) at mapped_view.inl:102
0x100000cce <+206>: movsbl (%rbx), %r12d
0x100000cd2 <+210>: testq %rbx, %rbx
0x100000cd5 <+213>: je 0x100000ce5 ; <+229> at ConsoleApplication1.cpp:220
0x100000cd7 <+215>: subq %rbx, %r14
0x100000cda <+218>: movq %rbx, %rdi
0x100000cdd <+221>: movq %r14, %rsi
0x100000ce0 <+224>: callq 0x100000e24 ; symbol stub for: munmap
0x100000ce5 <+229>: movl %r12d, %eax
0x100000ce8 <+232>: addq $0x98, %rsp
0x100000cef <+239>: popq %rbx
0x100000cf0 <+240>: popq %r12
0x100000cf2 <+242>: popq %r13
0x100000cf4 <+244>: popq %r14
0x100000cf6 <+246>: popq %r15
0x100000cf8 <+248>: popq %rbp
0x100000cf9 <+249>: retq
0x100000cfa <+250>: callq 0x100000e06 ; symbol stub for: __error
0x100000cff <+255>: movl (%rax), %r12d
0x100000d02 <+258>: leaq -0xc0(%rbp), %r13
0x100000d09 <+265>: movb $0x0, -0xc0(%rbp)
0x100000d10 <+272>: movb $0x0, -0xbf(%rbp)
0x100000d17 <+279>: jmp 0x100000d3e ; <+318> at handle.hpp:77
0x100000d19 <+281>: callq 0x100000e06 ; symbol stub for: __error
0x100000d1e <+286>: movl (%rax), %r12d
0x100000d21 <+289>: leaq -0xc0(%rbp), %r13
0x100000d28 <+296>: movb $0x0, -0xc0(%rbp)
0x100000d2f <+303>: movb $0x0, -0xbf(%rbp)
0x100000d36 <+310>: movl %r15d, %edi
0x100000d39 <+313>: callq 0x100000e0c ; symbol stub for: close
0x100000d3e <+318>: xorl %ebx, %ebx
0x100000d40 <+320>: jmp 0x100000cad ; <+173> [inlined] boost::err::result_or_error<boost::mmap::basic_mapped_view<char const, boost::mmap::posix::mapper>, boost::err::last_errno, void>::succeeded() const at result_or_error.hpp:94
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment