Skip to content

Instantly share code, notes, and snippets.

@jefftrull
Last active April 14, 2021 17:50
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 jefftrull/9d890f6fb67873351d16fb709e9811b2 to your computer and use it in GitHub Desktop.
Save jefftrull/9d890f6fb67873351d16fb709e9811b2 to your computer and use it in GitHub Desktop.
long double Boost Python conversion assembly output
.section .text._Z11extract_fooIeET_N5boost6python3api6objectE,"axG",@progbits,long double extract_foo<long double>(boost::python::api::object),comdat
.p2align 4
.weak long double extract_foo<long double>(boost::python::api::object)
.type long double extract_foo<long double>(boost::python::api::object), @function
long double extract_foo<long double>(boost::python::api::object):
.LFB10151:
.cfi_startproc
.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
.cfi_lsda 0x1b,.LLSDA10151
endbr64
push rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
sub rsp, 64
.cfi_def_cfa_offset 80
mov rdi, QWORD PTR [rdi]
mov rsi, QWORD PTR boost::python::converter::detail::registered_base<long double const volatile&>::converters[rip]
mov rax, QWORD PTR fs:40
mov QWORD PTR 56[rsp], rax
xor eax, eax
lea rbx, 32[rsp]
mov QWORD PTR [rsp], rdi
.LEHB0:
call boost::python::converter::rvalue_from_python_stage1(_object*, boost::python::converter::registration const&)@PLT
.LEHE0:
mov QWORD PTR 16[rsp], rax
mov QWORD PTR 24[rsp], rdx
cmp rax, rbx
je .L15
mov rdx, QWORD PTR boost::python::converter::detail::registered_base<long double const volatile&>::converters[rip]
mov rdi, QWORD PTR [rsp]
lea rsi, 16[rsp]
.LEHB1:
call boost::python::converter::rvalue_from_python_stage2(_object*, boost::python::converter::rvalue_from_python_stage1_data&, boost::python::converter::registration const&)@PLT
.LEHE1:
fld TBYTE PTR [rax]
cmp QWORD PTR 16[rsp], rbx
je .L19
.L14:
mov rax, QWORD PTR 56[rsp]
xor rax, QWORD PTR fs:40
jne .L23
add rsp, 64
.cfi_remember_state
.cfi_def_cfa_offset 16
pop rbx
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L15:
.cfi_restore_state
fld TBYTE PTR 32[rsp]
.L19:
fld TBYTE PTR 32[rsp]
fstp st(0)
jmp .L14
.L23:
fstp st(0)
call __stack_chk_fail@PLT
.L21:
endbr64
mov rdi, rax
.L17:
cmp QWORD PTR 16[rsp], rbx
jne .L18
fld TBYTE PTR 32[rsp]
fstp st(0)
.L18:
.LEHB2:
call _Unwind_Resume@PLT
.LEHE2:
.cfi_endproc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment