Skip to content

Instantly share code, notes, and snippets.

@FROGGS
Created March 8, 2015 11:43
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 FROGGS/690d9613d8ae0ee94c42 to your computer and use it in GitHub Desktop.
Save FROGGS/690d9613d8ae0ee94c42 to your computer and use it in GitHub Desktop.
; Listing generated by Microsoft (R) Optimizing Compiler Version 17.00.61030.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ??0Derived1@@QEAA@XZ ; Derived1::Derived1
PUBLIC ??1Derived1@@QEAA@XZ ; Derived1::~Derived1
PUBLIC ?SizeofDerived1@@YAHXZ ; SizeofDerived1
PUBLIC ??0Derived2@@QEAA@XZ ; Derived2::Derived2
PUBLIC ??1Derived2@@QEAA@XZ ; Derived2::~Derived2
PUBLIC ?method@Derived2@@UEAAHH@Z ; Derived2::method
PUBLIC ?All_The_Things@Derived2@@UEAAJDFHJMN@Z ; Derived2::All_The_Things
PUBLIC ?ConstInt@Derived2@@UEAAJH@Z ; Derived2::ConstInt
PUBLIC ?IntPtr@Derived2@@UEAAJPEAH@Z ; Derived2::IntPtr
PUBLIC ?ConstIntPtr@Derived2@@UEAAJPEBH@Z ; Derived2::ConstIntPtr
PUBLIC ?SizeofDerived2@@YAHXZ ; SizeofDerived2
PUBLIC ??_7Derived2@@6B@ ; Derived2::`vftable'
PUBLIC ??_R4Derived2@@6B@ ; Derived2::`RTTI Complete Object Locator'
PUBLIC ??_R0?AVDerived2@@@8 ; Derived2 `RTTI Type Descriptor'
PUBLIC ??_R3Derived2@@8 ; Derived2::`RTTI Class Hierarchy Descriptor'
PUBLIC ??_R2Derived2@@8 ; Derived2::`RTTI Base Class Array'
PUBLIC ??_R1A@?0A@EA@Derived2@@8 ; Derived2::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC ??_R17?0A@EA@Base@@8 ; Base::`RTTI Base Class Descriptor at (8,-1,0,64)'
PUBLIC ??_R0?AVBase@@@8 ; Base `RTTI Type Descriptor'
PUBLIC ??_R3Base@@8 ; Base::`RTTI Class Hierarchy Descriptor'
PUBLIC ??_R2Base@@8 ; Base::`RTTI Base Class Array'
PUBLIC ??_R1A@?0A@EA@Base@@8 ; Base::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC __real@4004f5c28f5c28f6
PUBLIC __real@40091eb851eb851f
EXTRN free:PROC
EXTRN malloc:PROC
EXTRN ??_7type_info@@6B@:BYTE ; type_info::`vftable'
EXTRN _fltused:DWORD
pdata SEGMENT
$pdata$??0Derived2@@QEAA@XZ DD imagerel $LN3
DD imagerel $LN3+149
DD imagerel $unwind$??0Derived2@@QEAA@XZ
$pdata$??1Derived2@@QEAA@XZ DD imagerel $LN3
DD imagerel $LN3+43
DD imagerel $unwind$??1Derived2@@QEAA@XZ
pdata ENDS
; COMDAT __real@40091eb851eb851f
CONST SEGMENT
__real@40091eb851eb851f DQ 040091eb851eb851fr ; 3.14
CONST ENDS
; COMDAT __real@4004f5c28f5c28f6
CONST SEGMENT
__real@4004f5c28f5c28f6 DQ 04004f5c28f5c28f6r ; 2.62
CONST ENDS
; COMDAT ??_R1A@?0A@EA@Base@@8
rdata$r SEGMENT
??_R1A@?0A@EA@Base@@8 DD imagerel ??_R0?AVBase@@@8 ; Base::`RTTI Base Class Descriptor at (0,-1,0,64)'
DD 00H
DD 00H
DD 0ffffffffH
DD 00H
DD 040H
DD imagerel ??_R3Base@@8
rdata$r ENDS
; COMDAT ??_R2Base@@8
rdata$r SEGMENT
??_R2Base@@8 DD imagerel ??_R1A@?0A@EA@Base@@8 ; Base::`RTTI Base Class Array'
ORG $+3
rdata$r ENDS
; COMDAT ??_R3Base@@8
rdata$r SEGMENT
??_R3Base@@8 DD 00H ; Base::`RTTI Class Hierarchy Descriptor'
DD 00H
DD 01H
DD imagerel ??_R2Base@@8
rdata$r ENDS
; COMDAT ??_R0?AVBase@@@8
_DATA SEGMENT
??_R0?AVBase@@@8 DQ FLAT:??_7type_info@@6B@ ; Base `RTTI Type Descriptor'
DQ 0000000000000000H
DB '.?AVBase@@', 00H
_DATA ENDS
; COMDAT ??_R17?0A@EA@Base@@8
rdata$r SEGMENT
??_R17?0A@EA@Base@@8 DD imagerel ??_R0?AVBase@@@8 ; Base::`RTTI Base Class Descriptor at (8,-1,0,64)'
DD 00H
DD 08H
DD 0ffffffffH
DD 00H
DD 040H
DD imagerel ??_R3Base@@8
rdata$r ENDS
; COMDAT ??_R1A@?0A@EA@Derived2@@8
rdata$r SEGMENT
??_R1A@?0A@EA@Derived2@@8 DD imagerel ??_R0?AVDerived2@@@8 ; Derived2::`RTTI Base Class Descriptor at (0,-1,0,64)'
DD 01H
DD 00H
DD 0ffffffffH
DD 00H
DD 040H
DD imagerel ??_R3Derived2@@8
rdata$r ENDS
; COMDAT ??_R2Derived2@@8
rdata$r SEGMENT
??_R2Derived2@@8 DD imagerel ??_R1A@?0A@EA@Derived2@@8 ; Derived2::`RTTI Base Class Array'
DD imagerel ??_R17?0A@EA@Base@@8
ORG $+3
rdata$r ENDS
; COMDAT ??_R3Derived2@@8
rdata$r SEGMENT
??_R3Derived2@@8 DD 00H ; Derived2::`RTTI Class Hierarchy Descriptor'
DD 00H
DD 02H
DD imagerel ??_R2Derived2@@8
rdata$r ENDS
; COMDAT ??_R0?AVDerived2@@@8
_DATA SEGMENT
??_R0?AVDerived2@@@8 DQ FLAT:??_7type_info@@6B@ ; Derived2 `RTTI Type Descriptor'
DQ 0000000000000000H
DB '.?AVDerived2@@', 00H
_DATA ENDS
; COMDAT ??_R4Derived2@@6B@
rdata$r SEGMENT
??_R4Derived2@@6B@ DD 01H ; Derived2::`RTTI Complete Object Locator'
DD 00H
DD 00H
DD imagerel ??_R0?AVDerived2@@@8
DD imagerel ??_R3Derived2@@8
DD imagerel ??_R4Derived2@@6B@
rdata$r ENDS
; COMDAT ??_7Derived2@@6B@
CONST SEGMENT
??_7Derived2@@6B@ DQ FLAT:??_R4Derived2@@6B@ ; Derived2::`vftable'
DQ FLAT:?method@Derived2@@UEAAHH@Z
DQ FLAT:?All_The_Things@Derived2@@UEAAJDFHJMN@Z
DQ FLAT:?ConstInt@Derived2@@UEAAJH@Z
DQ FLAT:?IntPtr@Derived2@@UEAAJPEAH@Z
DQ FLAT:?ConstIntPtr@Derived2@@UEAAJPEBH@Z
CONST ENDS
xdata SEGMENT
$unwind$??0Derived2@@QEAA@XZ DD 010901H
DD 04209H
$unwind$??1Derived2@@QEAA@XZ DD 010901H
DD 04209H
xdata ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
?SizeofDerived2@@YAHXZ PROC ; SizeofDerived2
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 76
mov eax, 56 ; 00000038H
; Line 77
ret 0
?SizeofDerived2@@YAHXZ ENDP ; SizeofDerived2
_TEXT ENDS
; Function compile flags: /Odtp
; COMDAT ?ConstIntPtr@Derived2@@UEAAJPEBH@Z
_TEXT SEGMENT
this$ = 8
i$ = 16
?ConstIntPtr@Derived2@@UEAAJPEBH@Z PROC ; Derived2::ConstIntPtr, COMDAT
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 67
mov QWORD PTR [rsp+16], rdx
mov QWORD PTR [rsp+8], rcx
mov eax, 13
ret 0
?ConstIntPtr@Derived2@@UEAAJPEBH@Z ENDP ; Derived2::ConstIntPtr
_TEXT ENDS
; Function compile flags: /Odtp
; COMDAT ?IntPtr@Derived2@@UEAAJPEAH@Z
_TEXT SEGMENT
this$ = 8
i$ = 16
?IntPtr@Derived2@@UEAAJPEAH@Z PROC ; Derived2::IntPtr, COMDAT
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 66
mov QWORD PTR [rsp+16], rdx
mov QWORD PTR [rsp+8], rcx
mov eax, 12
ret 0
?IntPtr@Derived2@@UEAAJPEAH@Z ENDP ; Derived2::IntPtr
_TEXT ENDS
; Function compile flags: /Odtp
; COMDAT ?ConstInt@Derived2@@UEAAJH@Z
_TEXT SEGMENT
this$ = 8
i$ = 16
?ConstInt@Derived2@@UEAAJH@Z PROC ; Derived2::ConstInt, COMDAT
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 65
mov DWORD PTR [rsp+16], edx
mov QWORD PTR [rsp+8], rcx
mov eax, 11
ret 0
?ConstInt@Derived2@@UEAAJH@Z ENDP ; Derived2::ConstInt
_TEXT ENDS
; Function compile flags: /Odtp
; COMDAT ?All_The_Things@Derived2@@UEAAJDFHJMN@Z
_TEXT SEGMENT
this$ = 8
c$ = 16
s$ = 24
i$ = 32
l$ = 40
f$ = 48
d$ = 56
?All_The_Things@Derived2@@UEAAJDFHJMN@Z PROC ; Derived2::All_The_Things, COMDAT
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 62
mov DWORD PTR [rsp+32], r9d
mov WORD PTR [rsp+24], r8w
mov BYTE PTR [rsp+16], dl
mov QWORD PTR [rsp+8], rcx
; Line 63
movsx eax, BYTE PTR c$[rsp]
movsx ecx, WORD PTR s$[rsp]
mov edx, DWORD PTR i$[rsp]
add edx, eax
mov eax, edx
add ecx, eax
mov eax, ecx
add eax, DWORD PTR l$[rsp]
cvtsi2ss xmm0, eax
addss xmm0, DWORD PTR f$[rsp]
cvtss2sd xmm0, xmm0
addsd xmm0, QWORD PTR d$[rsp]
cvttsd2si eax, xmm0
; Line 64
ret 0
?All_The_Things@Derived2@@UEAAJDFHJMN@Z ENDP ; Derived2::All_The_Things
_TEXT ENDS
; Function compile flags: /Odtp
; COMDAT ?method@Derived2@@UEAAHH@Z
_TEXT SEGMENT
this$ = 8
p$ = 16
?method@Derived2@@UEAAHH@Z PROC ; Derived2::method, COMDAT
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 58
mov DWORD PTR [rsp+16], edx
mov QWORD PTR [rsp+8], rcx
; Line 59
mov rax, QWORD PTR this$[rsp]
mov eax, DWORD PTR [rax+8]
mov rcx, QWORD PTR this$[rsp]
add eax, DWORD PTR [rcx+12]
add eax, DWORD PTR p$[rsp]
; Line 60
ret 0
?method@Derived2@@UEAAHH@Z ENDP ; Derived2::method
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
this$ = 48
??1Derived2@@QEAA@XZ PROC ; Derived2::~Derived2
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 92
$LN3:
mov QWORD PTR [rsp+8], rcx
sub rsp, 40 ; 00000028H
mov rax, QWORD PTR this$[rsp]
lea rcx, OFFSET FLAT:??_7Derived2@@6B@
mov QWORD PTR [rax], rcx
; Line 93
mov rax, QWORD PTR this$[rsp]
mov rcx, QWORD PTR [rax+48]
call free
; Line 94
add rsp, 40 ; 00000028H
ret 0
??1Derived2@@QEAA@XZ ENDP ; Derived2::~Derived2
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
this$ = 48
??0Derived2@@QEAA@XZ PROC ; Derived2::Derived2
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 80
$LN3:
mov QWORD PTR [rsp+8], rcx
sub rsp, 40 ; 00000028H
mov rax, QWORD PTR this$[rsp]
lea rcx, OFFSET FLAT:??_7Derived2@@6B@
mov QWORD PTR [rax], rcx
; Line 81
mov rax, QWORD PTR this$[rsp]
mov DWORD PTR [rax+8], 11
; Line 82
mov rax, QWORD PTR this$[rsp]
mov DWORD PTR [rax+12], 42 ; 0000002aH
; Line 83
mov rax, QWORD PTR this$[rsp]
mov DWORD PTR [rax+16], 43 ; 0000002bH
; Line 84
mov rax, QWORD PTR this$[rsp]
movsdx xmm0, QWORD PTR __real@40091eb851eb851f
movsdx QWORD PTR [rax+24], xmm0
; Line 85
mov rax, QWORD PTR this$[rsp]
movsdx xmm0, QWORD PTR __real@4004f5c28f5c28f6
movsdx QWORD PTR [rax+32], xmm0
; Line 86
mov rax, QWORD PTR this$[rsp]
mov BYTE PTR [rax+40], 65 ; 00000041H
; Line 87
mov ecx, 4
call malloc
mov rcx, QWORD PTR this$[rsp]
mov QWORD PTR [rcx+48], rax
; Line 88
mov rax, QWORD PTR this$[rsp]
mov rax, QWORD PTR [rax+48]
mov DWORD PTR [rax], 666 ; 0000029aH
; Line 89
mov rax, QWORD PTR this$[rsp]
add rsp, 40 ; 00000028H
ret 0
??0Derived2@@QEAA@XZ ENDP ; Derived2::Derived2
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
?SizeofDerived1@@YAHXZ PROC ; SizeofDerived1
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 37
mov eax, 40 ; 00000028H
; Line 38
ret 0
?SizeofDerived1@@YAHXZ ENDP ; SizeofDerived1
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
this$ = 8
??1Derived1@@QEAA@XZ PROC ; Derived1::~Derived1
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 51
mov QWORD PTR [rsp+8], rcx
; Line 52
ret 0
??1Derived1@@QEAA@XZ ENDP ; Derived1::~Derived1
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
this$ = 8
??0Derived1@@QEAA@XZ PROC ; Derived1::Derived1
; File c:\rakudo\t\04-nativecall\11-cpp.cpp
; Line 41
mov QWORD PTR [rsp+8], rcx
; Line 42
mov rax, QWORD PTR this$[rsp]
mov DWORD PTR [rax], 11
; Line 43
mov rax, QWORD PTR this$[rsp]
mov DWORD PTR [rax+4], 42 ; 0000002aH
; Line 44
mov rax, QWORD PTR this$[rsp]
mov DWORD PTR [rax+8], 43 ; 0000002bH
; Line 45
mov rax, QWORD PTR this$[rsp]
movsdx xmm0, QWORD PTR __real@40091eb851eb851f
movsdx QWORD PTR [rax+16], xmm0
; Line 46
mov rax, QWORD PTR this$[rsp]
movsdx xmm0, QWORD PTR __real@4004f5c28f5c28f6
movsdx QWORD PTR [rax+24], xmm0
; Line 47
mov rax, QWORD PTR this$[rsp]
mov BYTE PTR [rax+32], 65 ; 00000041H
; Line 48
mov rax, QWORD PTR this$[rsp]
ret 0
??0Derived1@@QEAA@XZ ENDP ; Derived1::Derived1
_TEXT ENDS
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment