annotate dyncallback/dyncall_callback_x86_masm.asm @ 256:7520e2260097

- added to configure some detection on how to compile .s/.S with --noexecstack (or similar), as compilers' defaults are often insane - since no-execstack handling is now in build, remove .note.GNU-stack section markers (were of limites use, anyways, b/c unportable or implemented inconsistently across platforms) - some ToDo, etc. updates
author Tassilo Philipp
date Sat, 20 May 2017 00:02:59 +0200
parents 3e629dc19168
children ab2d78e48ca2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 ; auto-generated by gen-masm.sh
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 .386
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 .MODEL FLAT
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 .CODE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 DCThunk_size = 16
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 DCArgs_size = 20
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 DCValue_size = 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 CTX_thunk = 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 CTX_phandler = 16
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 CTX_pargsvt = 20
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 CTX_stack_cleanup = 24
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 CTX_userdata = 28
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 frame_arg0 = 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 frame_ret = 4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 frame_parent = 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 frame_CTX = -4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 frame_DCArgs = -24
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 frame_DCValue = -32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 _dcCallbackThunkEntry PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 push EBP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 mov EBP,ESP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 push EAX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 push 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 push EDX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 push ECX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 lea ECX,dword ptr [EBP+frame_arg0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 push ECX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 push dword ptr [EAX+CTX_pargsvt]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 mov ECX,ESP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 push 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 push 0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 mov EDX,ESP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 and ESP,-16
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 push dword ptr [EAX+CTX_userdata]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 push EDX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 push ECX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 push EAX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 call dword ptr [EAX+CTX_phandler]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 mov ESP,EBP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 pop ECX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 pop ECX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 mov EDX,dword ptr [EBP+frame_CTX]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 add ESP,dword ptr [EDX+CTX_stack_cleanup]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 push ECX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 lea EDX,dword ptr [EBP+frame_DCValue]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 mov EBP,dword ptr [EBP+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 cmp AL,102
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 je return_f32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 cmp AL,100
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 je return_f64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 return_i64:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 mov EAX,dword ptr [EDX+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 mov EDX,dword ptr [EDX+4]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 return_f32:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 fld dword ptr [EDX+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 return_f64:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 fld qword ptr [EDX+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 return_void:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 _dcCallbackThunkEntry ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 END