Displaying 1 result from an estimated 1 matches for "00000014h".
Did you mean:
00000014
2009 Sep 25
2
[LLVMdev] MinGW/MSVC++ uses different ABI for sret
...mov ecx, DWORD PTR $T2546[esp+16]
mov edx, DWORD PTR [eax]
mov DWORD PTR [ecx], edx
mov edx, DWORD PTR [eax+4]
mov DWORD PTR [ecx+4], edx
mov edx, DWORD PTR [eax+8]
mov eax, DWORD PTR [eax+12]
mov DWORD PTR [ecx+8], edx
mov DWORD PTR [ecx+12], eax
mov eax, ecx
; Line 10
add esp, 20 ; 00000014H
ret 0
?foo@@YA?AUS@@XZ ENDP ; foo
Please note how g++ pops 4 bytes from the stack on return, while cl
doesn't. This is reflected on the call to `bar' too, where the callee
takes that into account.
LLVM generates code that follows the gcc behaviour. The result is that
after LLVM code...