comparison doc/disas_examples/x86.cdecl.disas @ 530:585dcb68f55d

- more doc and disas examples for x86 fastcall and non-trivial aggregates
author Tassilo Philipp
date Sat, 16 Apr 2022 12:10:02 +0200
parents fc614cb865c6
children b74d7a249642
comparison
equal deleted inserted replaced
529:fe694c7677b4 530:585dcb68f55d
773 1c000955: 83 ec 28 sub $0x28,%esp ; 773 1c000955: 83 ec 28 sub $0x28,%esp ;
774 1c000958: c7 45 f4 01 00 00 00 movl $0x1,0xfffffff4(%ebp) ; a = 1 774 1c000958: c7 45 f4 01 00 00 00 movl $0x1,0xfffffff4(%ebp) ; a = 1
775 1c00095f: 8d 45 f4 lea 0xfffffff4(%ebp),%eax ; | 775 1c00095f: 8d 45 f4 lea 0xfffffff4(%ebp),%eax ; |
776 1c000962: 83 00 7b addl $0x7b,(%eax) ; | a += 12 776 1c000962: 83 00 7b addl $0x7b,(%eax) ; | a += 12
777 1c000965: e8 b6 ff ff ff call 1c000920 <f1> ; call f1() 777 1c000965: e8 b6 ff ff ff call 1c000920 <f1> ; call f1()
778 1c00096a: 89 45 f0 mov %eax,0xfffffff0(%ebp) ; 778 1c00096a: 89 45 f0 mov %eax,0xfffffff0(%ebp) ; retval (trivial struct <= 32bits, returned via eax)
779 1c00096d: 8d 45 f4 lea 0xfffffff4(%ebp),%eax ; | 779 1c00096d: 8d 45 f4 lea 0xfffffff4(%ebp),%eax ; |
780 1c000970: 83 28 7b subl $0x7b,(%eax) ; | a -= 123 780 1c000970: 83 28 7b subl $0x7b,(%eax) ; | a -= 123
781 1c000973: 8d 45 d8 lea 0xffffffd8(%ebp),%eax ; space (at top of stack) to hold non-triv retval -> eax 781 1c000973: 8d 45 d8 lea 0xffffffd8(%ebp),%eax ; space (at top of stack) to hold non-triv retval -> eax
782 1c000976: 83 ec 0c sub $0xc,%esp ; grow stack by 12 782 1c000976: 83 ec 0c sub $0xc,%esp ; grow stack by 12
783 1c000979: 50 push %eax ; hidden first arg: ptr to space for retval 783 1c000979: 50 push %eax ; hidden first arg: ptr to space for retval