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