Mercurial > pub > dyncall > dyncall
comparison doc/disas_examples/x86.fastcall_borland.disas @ 614:b74d7a249642
disas example for explicit cdecl declared thiscall
author | Tassilo Philipp |
---|---|
date | Sat, 01 Oct 2022 16:04:40 +0200 |
parents | c0390dc85a07 |
children |
comparison
equal
deleted
inserted
replaced
613:3c3e321875f7 | 614:b74d7a249642 |
---|---|
3 ; { | 3 ; { |
4 ; __int32 i1; | 4 ; __int32 i1; |
5 ; __int32 i2; | 5 ; __int32 i2; |
6 ; }; | 6 ; }; |
7 ; #pragma pack(pop) | 7 ; #pragma pack(pop) |
8 ; | 8 ; |
9 ; TTest __fastcall DoTest() | 9 ; TTest __fastcall DoTest() |
10 ; { | 10 ; { |
11 ; TTest t; | 11 ; TTest t; |
12 ; t.i1 = 1; | 12 ; t.i1 = 1; |
13 ; t.i2 = 2; | 13 ; t.i2 = 2; |
14 ; return t; | 14 ; return t; |
15 ; } | 15 ; } |
16 ; | 16 ; |
17 ; ... | 17 ; ... |
18 ; TTest t = DoTest(); | 18 ; TTest t = DoTest(); |
19 | 19 |
20 | |
21 | |
20 ; from http://codeverge.com/embarcadero.cppbuilder.cpp/does-fastcall-have-any-bearing-on/1043767 | 22 ; from http://codeverge.com/embarcadero.cppbuilder.cpp/does-fastcall-have-any-bearing-on/1043767 |
21 | |
22 | 23 |
23 DoTest(): | 24 DoTest(): |
24 push ebp ; | | 25 push ebp ; | |
25 mov ebp,esp ; | prolog | 26 mov ebp,esp ; | prolog |
26 add esp,-0x0c ; | | 27 add esp,-0x0c ; | |
35 mov eax, [ebp-0x04] ; return value | 36 mov eax, [ebp-0x04] ; return value |
36 mov esp,ebp ; | | 37 mov esp,ebp ; | |
37 pop ebp ; | epilog | 38 pop ebp ; | epilog |
38 ret ; | | 39 ret ; | |
39 | 40 |
41 | |
42 | |
40 ; vim: ft=asm | 43 ; vim: ft=asm |
41 | 44 |