comparison doc/disas_examples/x86.fastcall_ms.disas @ 470:79e76734bb5c

"
author Tassilo Philipp
date Mon, 07 Feb 2022 22:41:32 +0100
parents 984e6652b975
children 585dcb68f55d
comparison
equal deleted inserted replaced
469:984e6652b975 470:79e76734bb5c
86 ret 0 ; | epilog 86 ret 0 ; | epilog
87 _main ENDP 87 _main ENDP
88 88
89 89
90 90
91 ; ---------- structs by value, struct in first call on reg arg boundary ----------> 91 ; ---------- structs by value (arg and return value), struct arg not fitting in regs ---------->
92 ; 92 ;
93 ; struct A { int x; short y; char z; long long t; }; 93 ; struct A { int x; short y; char z; long long t; };
94 ; 94 ;
95 ; struct A leaf_call(struct A a, short b, long long c, char d, int e, int f, int g, long long h) 95 ; struct A leaf_call(struct A a, short b, long long c, char d, int e, int f, int g, long long h)
96 ; { 96 ; {
152 mov eax, 99 ; | | 152 mov eax, 99 ; | |
153 mov WORD PTR _a$[ebp+4], ax ; | struct values (local area) | short y 153 mov WORD PTR _a$[ebp+4], ax ; | struct values (local area) | short y
154 mov BYTE PTR _a$[ebp+6], 23 ; | char z 154 mov BYTE PTR _a$[ebp+6], 23 ; | char z
155 mov DWORD PTR _a$[ebp+8], 12 ; | | 155 mov DWORD PTR _a$[ebp+8], 12 ; | |
156 mov DWORD PTR _a$[ebp+12], 0 ; / | long long t 156 mov DWORD PTR _a$[ebp+12], 0 ; / | long long t
157 push 0 ; | 157 push 0 ; \
158 push 7 ; | arg 7 158 push 7 ; | arg 7
159 push 6 ; arg 6 159 push 6 ; arg 6
160 push 5 ; arg 5 160 push 5 ; arg 5
161 push 4 ; arg 4 161 push 4 ; arg 4
162 push 0 ; | 162 push 0 ; |