diff test/samples/composite/args.asm @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/samples/composite/args.asm	Thu Mar 19 22:24:28 2015 +0100
@@ -0,0 +1,556 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.21022.08 
+
+include listing.inc
+
+INCLUDELIB LIBCMT
+INCLUDELIB OLDNAMES
+
+PUBLIC	call_f_s2i
+EXTRN	f_s2i:PROC
+; Function compile flags: /Ogtpy
+;	COMDAT call_f_s2i
+_TEXT	SEGMENT
+a1$ = 8
+call_f_s2i PROC						; COMDAT
+; File c:\lab\dynabi\tests\composite\args.c
+; Line 130
+	xor	eax, eax
+	mov	DWORD PTR a1$[rsp], 0
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	rcx, QWORD PTR a1$[rsp]
+	jmp	f_s2i
+call_f_s2i ENDP
+_TEXT	ENDS
+PUBLIC	$T993
+PUBLIC	call_f_s4i
+EXTRN	f_s4i:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_s4i DD imagerel $LN3
+	DD	imagerel $LN3+52
+	DD	imagerel $unwind$call_f_s4i
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_s4i DD 010401H
+	DD	06204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_s4i
+_TEXT	SEGMENT
+$T993 = 32
+a1$ = 32
+call_f_s4i PROC						; COMDAT
+; Line 131
+$LN3:
+	sub	rsp, 56					; 00000038H
+	xor	eax, eax
+	mov	DWORD PTR a1$[rsp], 0
+	lea	rcx, QWORD PTR $T993[rsp]
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	DWORD PTR a1$[rsp+8], eax
+	mov	DWORD PTR a1$[rsp+12], eax
+	movaps	xmm0, XMMWORD PTR a1$[rsp]
+	movdqa	XMMWORD PTR $T993[rsp], xmm0
+	call	f_s4i
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_s4i ENDP
+_TEXT	ENDS
+PUBLIC	$T1004
+PUBLIC	call_f_s8i
+EXTRN	f_s8i:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_s8i DD imagerel $LN3
+	DD	imagerel $LN3+97
+	DD	imagerel $unwind$call_f_s8i
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_s8i DD 010401H
+	DD	0c204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_s8i
+_TEXT	SEGMENT
+a1$ = 32
+$T1004 = 64
+call_f_s8i PROC						; COMDAT
+; Line 132
+$LN3:
+	sub	rsp, 104				; 00000068H
+	xor	eax, eax
+	lea	rcx, QWORD PTR a1$[rsp]
+	lea	rdx, QWORD PTR $T1004[rsp]
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	DWORD PTR a1$[rsp+8], eax
+	mov	DWORD PTR a1$[rsp+12], eax
+	mov	DWORD PTR a1$[rsp+16], eax
+	mov	DWORD PTR a1$[rsp+20], eax
+	mov	DWORD PTR a1$[rsp+24], eax
+	mov	DWORD PTR a1$[rsp+28], eax
+	mov	DWORD PTR a1$[rsp], 0
+	mov	rax, QWORD PTR [rcx]
+	mov	QWORD PTR [rdx], rax
+	mov	rax, QWORD PTR [rcx+8]
+	mov	QWORD PTR [rdx+8], rax
+	mov	rax, QWORD PTR [rcx+16]
+	mov	QWORD PTR [rdx+16], rax
+	mov	rax, QWORD PTR [rcx+24]
+	lea	rcx, QWORD PTR $T1004[rsp]
+	mov	QWORD PTR [rdx+24], rax
+	call	f_s8i
+	add	rsp, 104				; 00000068H
+	ret	0
+call_f_s8i ENDP
+_TEXT	ENDS
+PUBLIC	call_f_s2f
+EXTRN	f_s2f:PROC
+EXTRN	_fltused:DWORD
+; Function compile flags: /Ogtpy
+;	COMDAT call_f_s2f
+_TEXT	SEGMENT
+a1$ = 8
+call_f_s2f PROC						; COMDAT
+; Line 134
+	xorps	xmm0, xmm0
+	xor	eax, eax
+	movss	DWORD PTR a1$[rsp], xmm0
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	rcx, QWORD PTR a1$[rsp]
+	jmp	f_s2f
+call_f_s2f ENDP
+_TEXT	ENDS
+PUBLIC	$T1023
+PUBLIC	call_f_s4f
+EXTRN	f_s4f:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_s4f DD imagerel $LN3
+	DD	imagerel $LN3+53
+	DD	imagerel $unwind$call_f_s4f
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_s4f DD 010401H
+	DD	06204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_s4f
+_TEXT	SEGMENT
+$T1023 = 32
+a1$ = 32
+call_f_s4f PROC						; COMDAT
+; Line 135
+$LN3:
+	sub	rsp, 56					; 00000038H
+	xorps	xmm0, xmm0
+	xor	eax, eax
+	lea	rcx, QWORD PTR $T1023[rsp]
+	movss	DWORD PTR a1$[rsp], xmm0
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	DWORD PTR a1$[rsp+8], eax
+	mov	DWORD PTR a1$[rsp+12], eax
+	movaps	xmm0, XMMWORD PTR a1$[rsp]
+	movdqa	XMMWORD PTR $T1023[rsp], xmm0
+	call	f_s4f
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_s4f ENDP
+_TEXT	ENDS
+PUBLIC	call_f_s1d
+EXTRN	f_s1d:PROC
+; Function compile flags: /Ogtpy
+;	COMDAT call_f_s1d
+_TEXT	SEGMENT
+a1$ = 8
+call_f_s1d PROC						; COMDAT
+; Line 137
+	xorpd	xmm0, xmm0
+	movsdx	QWORD PTR a1$[rsp], xmm0
+	mov	rcx, QWORD PTR a1$[rsp]
+	jmp	f_s1d
+call_f_s1d ENDP
+_TEXT	ENDS
+PUBLIC	$T1041
+PUBLIC	call_f_s2d
+EXTRN	f_s2d:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_s2d DD imagerel $LN3
+	DD	imagerel $LN3+47
+	DD	imagerel $unwind$call_f_s2d
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_s2d DD 010401H
+	DD	06204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_s2d
+_TEXT	SEGMENT
+$T1041 = 32
+a1$ = 32
+call_f_s2d PROC						; COMDAT
+; Line 138
+$LN3:
+	sub	rsp, 56					; 00000038H
+	xorpd	xmm0, xmm0
+	xor	eax, eax
+	lea	rcx, QWORD PTR $T1041[rsp]
+	movsdx	QWORD PTR a1$[rsp], xmm0
+	mov	QWORD PTR a1$[rsp+8], rax
+	movaps	xmm0, XMMWORD PTR a1$[rsp]
+	movdqa	XMMWORD PTR $T1041[rsp], xmm0
+	call	f_s2d
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_s2d ENDP
+_TEXT	ENDS
+PUBLIC	$T1052
+PUBLIC	call_f_s4d
+EXTRN	f_s4d:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_s4d DD imagerel $LN3
+	DD	imagerel $LN3+86
+	DD	imagerel $unwind$call_f_s4d
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_s4d DD 010401H
+	DD	0c204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_s4d
+_TEXT	SEGMENT
+a1$ = 32
+$T1052 = 64
+call_f_s4d PROC						; COMDAT
+; Line 139
+$LN3:
+	sub	rsp, 104				; 00000068H
+	xorpd	xmm0, xmm0
+	xor	eax, eax
+	lea	rcx, QWORD PTR a1$[rsp]
+	movsdx	QWORD PTR a1$[rsp], xmm0
+	mov	QWORD PTR a1$[rsp+8], rax
+	mov	QWORD PTR a1$[rsp+16], rax
+	mov	QWORD PTR a1$[rsp+24], rax
+	mov	rax, QWORD PTR [rcx]
+	lea	rdx, QWORD PTR $T1052[rsp]
+	mov	QWORD PTR [rdx], rax
+	mov	rax, QWORD PTR [rcx+8]
+	mov	QWORD PTR [rdx+8], rax
+	mov	rax, QWORD PTR [rcx+16]
+	mov	QWORD PTR [rdx+16], rax
+	mov	rax, QWORD PTR [rcx+24]
+	lea	rcx, QWORD PTR $T1052[rsp]
+	mov	QWORD PTR [rdx+24], rax
+	call	f_s4d
+	add	rsp, 104				; 00000068H
+	ret	0
+call_f_s4d ENDP
+_TEXT	ENDS
+PUBLIC	call_f_s1q
+EXTRN	f_s1q:PROC
+; Function compile flags: /Ogtpy
+;	COMDAT call_f_s1q
+_TEXT	SEGMENT
+a1$ = 8
+call_f_s1q PROC						; COMDAT
+; Line 141
+	xorpd	xmm0, xmm0
+	movsdx	QWORD PTR a1$[rsp], xmm0
+	mov	rcx, QWORD PTR a1$[rsp]
+	jmp	f_s1q
+call_f_s1q ENDP
+_TEXT	ENDS
+PUBLIC	$T1068
+PUBLIC	$T1069
+PUBLIC	call_f_s2ds2d
+EXTRN	f_s2ds2d:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_s2ds2d DD imagerel $LN3
+	DD	imagerel $LN3+74
+	DD	imagerel $unwind$call_f_s2ds2d
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_s2ds2d DD 010401H
+	DD	08204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_s2ds2d
+_TEXT	SEGMENT
+$T1069 = 32
+a2$ = 32
+$T1068 = 48
+a1$ = 48
+call_f_s2ds2d PROC					; COMDAT
+; Line 147
+$LN3:
+	sub	rsp, 72					; 00000048H
+; Line 148
+	xorpd	xmm0, xmm0
+	xor	eax, eax
+; Line 150
+	lea	rdx, QWORD PTR $T1069[rsp]
+	movsdx	QWORD PTR a1$[rsp], xmm0
+	movsdx	QWORD PTR a2$[rsp], xmm0
+	mov	QWORD PTR a1$[rsp+8], rax
+	mov	QWORD PTR a2$[rsp+8], rax
+	lea	rcx, QWORD PTR $T1068[rsp]
+	movaps	xmm1, XMMWORD PTR a1$[rsp]
+	movaps	xmm0, XMMWORD PTR a2$[rsp]
+	movdqa	XMMWORD PTR $T1068[rsp], xmm1
+	movdqa	XMMWORD PTR $T1069[rsp], xmm0
+	call	f_s2ds2d
+; Line 151
+	add	rsp, 72					; 00000048H
+	ret	0
+call_f_s2ds2d ENDP
+_TEXT	ENDS
+PUBLIC	__real@40000000
+PUBLIC	call_f_sfifi
+EXTRN	f_sfifi:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_sfifi DD imagerel $LN3
+	DD	imagerel $LN3+65
+	DD	imagerel $unwind$call_f_sfifi
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_sfifi DD 010701H
+	DD	06207H
+xdata	ENDS
+;	COMDAT __real@40000000
+CONST	SEGMENT
+__real@40000000 DD 040000000r			; 2
+; Function compile flags: /Ogtpy
+CONST	ENDS
+;	COMDAT call_f_sfifi
+_TEXT	SEGMENT
+call_f_sfifi PROC					; COMDAT
+; Line 155
+$LN3:
+	mov	rax, rsp
+	sub	rsp, 56					; 00000038H
+	xorps	xmm0, xmm0
+	movss	xmm1, DWORD PTR __real@40000000
+	mov	DWORD PTR [rax-20], 1
+	mov	DWORD PTR [rax-12], 3
+	lea	rcx, QWORD PTR [rax-24]
+	movss	DWORD PTR [rax-24], xmm0
+	movss	DWORD PTR [rax-16], xmm1
+	movaps	xmm0, XMMWORD PTR [rax-24]
+	movdqa	XMMWORD PTR [rax-24], xmm0
+	call	f_sfifi
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_sfifi ENDP
+_TEXT	ENDS
+PUBLIC	__real@40400000
+PUBLIC	__real@3f800000
+PUBLIC	call_f_sifif
+EXTRN	f_sifif:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_sifif DD imagerel $LN3
+	DD	imagerel $LN3+70
+	DD	imagerel $unwind$call_f_sifif
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_sifif DD 010701H
+	DD	06207H
+xdata	ENDS
+;	COMDAT __real@40400000
+CONST	SEGMENT
+__real@40400000 DD 040400000r			; 3
+CONST	ENDS
+;	COMDAT __real@3f800000
+CONST	SEGMENT
+__real@3f800000 DD 03f800000r			; 1
+; Function compile flags: /Ogtpy
+CONST	ENDS
+;	COMDAT call_f_sifif
+_TEXT	SEGMENT
+call_f_sifif PROC					; COMDAT
+; Line 161
+$LN3:
+	mov	rax, rsp
+	sub	rsp, 56					; 00000038H
+	movss	xmm0, DWORD PTR __real@3f800000
+	movss	xmm1, DWORD PTR __real@40400000
+	mov	DWORD PTR [rax-24], 0
+	mov	DWORD PTR [rax-16], 2
+	lea	rcx, QWORD PTR [rax-24]
+	movss	DWORD PTR [rax-20], xmm0
+	movss	DWORD PTR [rax-12], xmm1
+	movaps	xmm0, XMMWORD PTR [rax-24]
+	movdqa	XMMWORD PTR [rax-24], xmm0
+	call	f_sifif
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_sifif ENDP
+_TEXT	ENDS
+PUBLIC	$T1109
+PUBLIC	call_f_full_sifif
+EXTRN	f_full_sifif:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_full_sifif DD imagerel $LN3
+	DD	imagerel $LN3+90
+	DD	imagerel $unwind$call_f_full_sifif
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_full_sifif DD 010401H
+	DD	0c204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_full_sifif
+_TEXT	SEGMENT
+$T1109 = 80
+a1$ = 80
+call_f_full_sifif PROC					; COMDAT
+; Line 168
+$LN3:
+	sub	rsp, 104				; 00000068H
+	xor	eax, eax
+	mov	DWORD PTR a1$[rsp], 0
+	xor	ecx, ecx
+	lea	edx, QWORD PTR [rax+1]
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	DWORD PTR a1$[rsp+8], eax
+	mov	DWORD PTR a1$[rsp+12], eax
+	lea	rax, QWORD PTR $T1109[rsp]
+	lea	r9d, QWORD PTR [rdx+2]
+	movaps	xmm0, XMMWORD PTR a1$[rsp]
+	movdqa	XMMWORD PTR $T1109[rsp], xmm0
+	mov	QWORD PTR [rsp+64], rax
+	mov	BYTE PTR [rsp+56], 7
+	mov	BYTE PTR [rsp+48], 6
+	lea	r8d, QWORD PTR [rdx+1]
+	mov	BYTE PTR [rsp+40], 5
+	mov	BYTE PTR [rsp+32], 4
+	call	f_full_sifif
+	add	rsp, 104				; 00000068H
+	ret	0
+call_f_full_sifif ENDP
+_TEXT	ENDS
+PUBLIC	$T1120
+PUBLIC	call_f_remain64_sifif
+EXTRN	f_remain64_sifif:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_remain64_sifif DD imagerel $LN3
+	DD	imagerel $LN3+56
+	DD	imagerel $unwind$call_f_remain64_sifif
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_remain64_sifif DD 010401H
+	DD	06204H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_remain64_sifif
+_TEXT	SEGMENT
+$T1120 = 32
+a1$ = 32
+call_f_remain64_sifif PROC				; COMDAT
+; Line 169
+$LN3:
+	sub	rsp, 56					; 00000038H
+	xor	eax, eax
+	mov	DWORD PTR a1$[rsp], 0
+	lea	r8, QWORD PTR $T1120[rsp]
+	mov	DWORD PTR a1$[rsp+4], eax
+	mov	DWORD PTR a1$[rsp+8], eax
+	mov	DWORD PTR a1$[rsp+12], eax
+	movaps	xmm0, XMMWORD PTR a1$[rsp]
+	movdqa	XMMWORD PTR $T1120[rsp], xmm0
+	mov	dl, 1
+	xor	ecx, ecx
+	call	f_remain64_sifif
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_remain64_sifif ENDP
+_TEXT	ENDS
+PUBLIC	call_f_sfffc
+EXTRN	f_sfffc:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_sfffc DD imagerel $LN3
+	DD	imagerel $LN3+68
+	DD	imagerel $unwind$call_f_sfffc
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_sfffc DD 010701H
+	DD	06207H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_sfffc
+_TEXT	SEGMENT
+call_f_sfffc PROC					; COMDAT
+; Line 173
+$LN3:
+	mov	rax, rsp
+	sub	rsp, 56					; 00000038H
+	xorps	xmm0, xmm0
+	movss	xmm1, DWORD PTR __real@3f800000
+	mov	BYTE PTR [rax-12], 3
+	lea	rcx, QWORD PTR [rax-24]
+	movss	DWORD PTR [rax-24], xmm0
+	movss	xmm0, DWORD PTR __real@40000000
+	movss	DWORD PTR [rax-20], xmm1
+	movss	DWORD PTR [rax-16], xmm0
+	movaps	xmm1, XMMWORD PTR [rax-24]
+	movdqa	XMMWORD PTR [rax-24], xmm1
+	call	f_sfffc
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_sfffc ENDP
+_TEXT	ENDS
+PUBLIC	call_f_scfff
+EXTRN	f_scfff:PROC
+;	COMDAT pdata
+pdata	SEGMENT
+$pdata$call_f_scfff DD imagerel $LN3
+	DD	imagerel $LN3+73
+	DD	imagerel $unwind$call_f_scfff
+pdata	ENDS
+;	COMDAT xdata
+xdata	SEGMENT
+$unwind$call_f_scfff DD 010701H
+	DD	06207H
+; Function compile flags: /Ogtpy
+xdata	ENDS
+;	COMDAT call_f_scfff
+_TEXT	SEGMENT
+call_f_scfff PROC					; COMDAT
+; Line 177
+$LN3:
+	mov	rax, rsp
+	sub	rsp, 56					; 00000038H
+	movss	xmm0, DWORD PTR __real@3f800000
+	movss	xmm1, DWORD PTR __real@40000000
+	mov	BYTE PTR [rax-24], 0
+	lea	rcx, QWORD PTR [rax-24]
+	movss	DWORD PTR [rax-20], xmm0
+	movss	xmm0, DWORD PTR __real@40400000
+	movss	DWORD PTR [rax-16], xmm1
+	movss	DWORD PTR [rax-12], xmm0
+	movaps	xmm1, XMMWORD PTR [rax-24]
+	movdqa	XMMWORD PTR [rax-24], xmm1
+	call	f_scfff
+	add	rsp, 56					; 00000038H
+	ret	0
+call_f_scfff ENDP
+_TEXT	ENDS
+END