annotate doc/disas_examples/x86.plan9call.disas @ 457:90b1d927912a

- suite_aggrs: make sure random memory used doesn't ever result in NaN fp values (for every possible address), as this messes with result comparison
author Tassilo Philipp
date Fri, 28 Jan 2022 14:11:21 +0100 (2022-01-28)
parents 97fff5d9cea1
children e5820b7a3fbc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
1 ; void leaf_call(int a, int b, int c, int d, int e, int f)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
2 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
3 ; }
447
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
4 ;
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
5 ; int nonleaf_call(int a, int b, int c, int d, int e, int f, int g)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
6 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
7 ; leaf_call(b,c,d,e,f,g);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
8 ; return 'x';
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
9 ; }
447
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
10 ;
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
11 ; int main()
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
12 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
13 ; nonleaf_call(0,1,2,3,4,5,6);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
14 ; return 0;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
15 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
16
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
17
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
18
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
19 ; output from plan9-4th_edition-x86 w/ 8c x.c && 8l -a x.8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
20
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
21 001020 (1) TEXT leaf_call+0(SB),$0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
22 001020 c3 (3) RET ,
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
23
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
24 001021 (5) TEXT nonleaf_call+0(SB),$28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
25 001021 83ec1c (5) SUBL $28,SP ; prolog (note, there is no register save area at all)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
26 001024 8b442424 (7) MOVL b+36(FP),AX ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
27 001028 890424 (7) MOVL AX,(SP) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
28 00102b 8b442428 (7) MOVL c+40(FP),AX ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
29 00102f 89442404 (7) MOVL AX,4(SP) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
30 001033 8b44242c (7) MOVL d+44(FP),AX ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
31 001037 89442408 (7) MOVL AX,8(SP) ; | fetch in args from prev frame's param area ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
32 00103b 8b442430 (7) MOVL e+48(FP),AX ; | ... and "push" onto stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
33 00103f 8944240c (7) MOVL AX,12(SP) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
34 001043 8b442434 (7) MOVL f+52(FP),AX ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
35 001047 89442410 (7) MOVL AX,16(SP) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
36 00104b 8b442438 (7) MOVL g+56(FP),AX ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
37 00104f 89442414 (7) MOVL AX,20(SP) ; |
447
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
38 001053 e8c8ffffff (7) CALL ,1020+leaf_call ; push return address and call
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
39 001058 b878000000 (8) MOVL $120,AX ; return value: 'x' -> eax
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
40 00105d 83c41c (8) ADDL $28,SP ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
41 001060 c3 (8) RET , ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
42
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
43 001061 (11) TEXT main+0(SB),$32
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
44 001061 83ec20 (11) SUBL $32,SP ; prolog (note, there is no register save area at all)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
45 001064 c7042400000000 (13) MOVL $0,(SP) ; arg 0 -> "push" onto stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
46 00106b b801000000 (13) MOVL $1,AX ; arg 1 -> eax, then ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
47 001070 89442404 (13) MOVL AX,4(SP) ; ... "pushed" onto stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
48 001074 b802000000 (13) MOVL $2,AX ; arg 2 -> eax, then ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
49 001079 89442408 (13) MOVL AX,8(SP) ; ... "pushed" onto stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
50 00107d b803000000 (13) MOVL $3,AX ; .
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
51 001082 8944240c (13) MOVL AX,12(SP) ; .
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
52 001086 b804000000 (13) MOVL $4,AX ; .
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
53 00108b 89442410 (13) MOVL AX,16(SP) ; .
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
54 00108f b805000000 (13) MOVL $5,AX ; .
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
55 001094 89442414 (13) MOVL AX,20(SP) ; .
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
56 001098 b806000000 (13) MOVL $6,AX ; arg 6 -> eax, then ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
57 00109d 89442418 (13) MOVL AX,24(SP) ; ... "pushed" onto stack
447
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
58 0010a1 e87bffffff (13) CALL ,1021+nonleaf_call ; push return address and call
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
59 0010a6 31c0 (14) MOVL $0,AX ; return value
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
60 0010a8 83c420 (14) ADDL $32,SP ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
61 0010ab c3 (14) RET , ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
62
447
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
63
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
64
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
65 ; ---------- structs by value ---------->
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
66 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
67 ; struct A { int i, j; long long l; };
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
68 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
69 ; void leaf_call(int b, int c, int d, int e, struct A f, int g, int h)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
70 ; {
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
71 ; }
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
72 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
73 ; void nonleaf_call(int a, int b, int c, int d, int e, struct A f, int g, int h)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
74 ; {
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
75 ; /* use some local data */
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
76 ; char l[100] = 'L';
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
77 ; leaf_call(b, c, d, e, f, g, h);
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
78 ; }
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
79 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
80 ; int main()
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
81 ; {
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
82 ; nonleaf_call(0, 1, 2, 3, 4, (struct A){5, 6, 7ll}, 8, 9);
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
83 ; return 0;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
84 ; }
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
85
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
86
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
87
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
88 ; output from plan9-4th_edition-x86 w/ 8c x.c && 8l -a x.8
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
89
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
90 001020 (3) TEXT leaf_call+0(SB),$0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
91 001020 c3 (5) RET ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
92
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
93 001021 (7) TEXT nonleaf_call+0(SB),$148
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
94 001021 81ec94000000 (7) SUBL $148,SP ; prolog (note, there is no register save area at all)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
95 001027 8d842494000000 (10) LEAL l+148(SP),AX ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
96 00102e 89442430 (10) MOVL AX,l+48(SP) ; | loop's write ptr (stored at beginning of char[100] space)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
97 001032 83442430fc (10) ADDL $-4,l+48(SP) ; | decr loop ptr in memory
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
98 001037 8b442430 (10) MOVL l+48(SP),AX ; | ptr -> eax
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
99 00103b c70000000000 (10) MOVL $0,(AX) ; | zero-init char[100] space write a 0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
100 001041 837c243000 (10) CMPL l+48(SP),$0 ; | cmp if done
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
101 001046 75ea (10) JNE ,1032 ; | loop
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
102 001048 c64424304c (10) MOVB $76,l+48(SP) ; 'L' -> local area (beginning of char[100] space)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
103 00104d 8b84249c000000 (11) MOVL b+156(FP),AX ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
104 001054 890424 (11) MOVL AX,(SP) ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
105 001057 8b8424a0000000 (11) MOVL c+160(FP),AX ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
106 00105e 89442404 (11) MOVL AX,4(SP) ; | fetch in args (ints before struct) from prev frame's param area ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
107 001062 8b8424a4000000 (11) MOVL d+164(FP),AX ; | ... and "push" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
108 001069 89442408 (11) MOVL AX,8(SP) ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
109 00106d 8b8424a8000000 (11) MOVL e+168(FP),AX ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
110 001074 8944240c (11) MOVL AX,12(SP) ; /
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
111 001078 8d7c2410 (11) LEAL 16(SP),DI ; \ dst ptr
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
112 00107c 8db424ac000000 (11) LEAL f+172(FP),SI ; | src ptr
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
113 001083 b904000000 (11) MOVL $4,CX ; | rep counter (4, for dwords = 16b = sizeof(struct A))
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
114 001088 fc (11) CLD , ; | copy struct to next call's stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
115 001089 f3 (11) REP , ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
116 00108a a5 (11) MOVSL , ; /
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
117 00108b 8b8424bc000000 (11) MOVL g+188(FP),AX ; \
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
118 001092 89442420 (11) MOVL AX,32(SP) ; | fetch remaining in args (ints after struct) from prev frame's param area ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
119 001096 8b8424c0000000 (11) MOVL h+192(FP),AX ; | ... and "push" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
120 00109d 89442424 (11) MOVL AX,36(SP) ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
121 0010a1 e87affffff (11) CALL ,1020+leaf_call ; push return address and call
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
122 0010a6 81c494000000 (11) ADDL $148,SP ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
123 0010ac c3 (11) RET , ; | epilog
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
124
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
125 0010ad (14) TEXT main+0(SB),$52
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
126 0010ad 83ec34 (14) SUBL $52,SP ; prolog (note, there is no register save area at all)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
127 0010b0 c7042400000000 (16) MOVL $0,(SP) ; arg 0 -> "push" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
128 0010b7 b801000000 (16) MOVL $1,AX ; arg 1 -> eax, then ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
129 0010bc 89442404 (16) MOVL AX,4(SP) ; ... "pushed" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
130 0010c0 b802000000 (16) MOVL $2,AX ; arg 2 -> eax, then ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
131 0010c5 89442408 (16) MOVL AX,8(SP) ; ... "pushed" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
132 0010c9 b803000000 (16) MOVL $3,AX ; .
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
133 0010ce 8944240c (16) MOVL AX,12(SP) ; .
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
134 0010d2 b804000000 (16) MOVL $4,AX ; .
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
135 0010d7 89442410 (16) MOVL AX,16(SP) ; .
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
136 0010db 8d442414 (16) LEAL 20(SP),AX ; get ptr to next (unused) stack bytes -> eax ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
137 0010df 89442430 (16) MOVL AX,.safe+48(SP) ; ... and write it to very top of stack (seems aligned and not adjacent to last arg) | looks like callconv keeps a ptr to
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
138 0010e3 8b442430 (16) MOVL .safe+48(SP),AX ; regetting of same ptr into eax (pointless as same as in eax) | each struct params in local area
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
139 0010e7 c70005000000 (16) MOVL $5,(AX) ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
140 0010ed 8b442430 (16) MOVL .safe+48(SP),AX ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
141 0010f1 c7400406000000 (16) MOVL $6,4(AX) ; | copy struct linearly to stack, adjacent to other args
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
142 0010f8 8b442430 (16) MOVL .safe+48(SP),AX ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
143 0010fc c7400807000000 (16) MOVL $7,8(AX) ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
144 001103 c7400c00000000 (16) MOVL $0,12(AX) ; | msbytes of long long
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
145 00110a b808000000 (16) MOVL $8,AX ; arg 6 -> eax, then ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
146 00110f 89442424 (16) MOVL AX,36(SP) ; ... "pushed" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
147 001113 b809000000 (16) MOVL $9,AX ; arg 7 -> eax, then ...
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
148 001118 89442428 (16) MOVL AX,40(SP) ; ... "pushed" onto stack
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
149 00111c e800ffffff (16) CALL ,1021+nonleaf_call ; push return address and call
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
150 001121 31c0 (17) MOVL $0,AX ; return value
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
151 001123 83c434 (17) ADDL $52,SP ; |
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
152 001126 c3 (17) RET , ; | epilog
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
153
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
154
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
155
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
156 ; ---------- structs by value, complex example (multiple structs) ---------->
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
157 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
158 ; struct A { int i, j; float f; };
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
159 ; struct B { double d; long long l; };
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
160 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
161 ; void leaf_call(int b, struct A c, struct B d, int e, int f, struct A g, struct B h, int i, int j)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
162 ; {
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
163 ; }
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
164 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
165 ; void nonleaf_call(int a, int b, struct A c, struct B d, int e, int f, struct A g, struct B h, int i, int j)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
166 ; {
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
167 ; /* use some local data */
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
168 ; char l[100] = 'L';
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
169 ; leaf_call(b, c, d, e, f, g, h, i, j);
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
170 ; }
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
171 ;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
172 ; int main()
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
173 ; {
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
174 ; nonleaf_call(0, 1, (struct A){2, 3, 4.f}, (struct B){5., 6ll}, 7, 8, (struct A){9, 10, 11.f}, (struct B){12., 13ll}, 14, 15);
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
175 ; return 0;
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
176 ; }
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
177
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
178
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
179
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
180 ; output from plan9-4th_edition-x86 w/ 8c x.c && 8l -a x.8
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
181
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
182 001020 (4) TEXT leaf_call+0(SB),$0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
183 001020 c3 (6) RET ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
184
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
185 001021 (8) TEXT nonleaf_call+0(SB),$184
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
186 001021 81ecb8000000 (8) SUBL $184,SP
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
187 001027 8d8424b8000000 (11) LEAL l+184(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
188 00102e 89442454 (11) MOVL AX,l+84(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
189 001032 83442454fc (11) ADDL $-4,l+84(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
190 001037 8b442454 (11) MOVL l+84(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
191 00103b c70000000000 (11) MOVL $0,(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
192 001041 837c245400 (11) CMPL l+84(SP),$0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
193 001046 75ea (11) JNE ,1032
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
194 001048 c64424544c (11) MOVB $76,l+84(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
195 00104d 8b8424c0000000 (12) MOVL b+192(FP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
196 001054 890424 (12) MOVL AX,(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
197 001057 8d7c2404 (12) LEAL 4(SP),DI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
198 00105b 8db424c4000000 (12) LEAL c+196(FP),SI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
199 001062 b903000000 (12) MOVL $3,CX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
200 001067 fc (12) CLD ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
201 001068 f3 (12) REP ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
202 001069 a5 (12) MOVSL ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
203 00106a 8d7c2410 (12) LEAL 16(SP),DI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
204 00106e 8db424d0000000 (12) LEAL d+208(FP),SI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
205 001075 b904000000 (12) MOVL $4,CX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
206 00107a fc (12) CLD ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
207 00107b f3 (12) REP ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
208 00107c a5 (12) MOVSL ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
209 00107d 8b8424e0000000 (12) MOVL e+224(FP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
210 001084 89442420 (12) MOVL AX,32(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
211 001088 8b8424e4000000 (12) MOVL f+228(FP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
212 00108f 89442424 (12) MOVL AX,36(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
213 001093 8d7c2428 (12) LEAL 40(SP),DI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
214 001097 8db424e8000000 (12) LEAL g+232(FP),SI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
215 00109e b903000000 (12) MOVL $3,CX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
216 0010a3 fc (12) CLD ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
217 0010a4 f3 (12) REP ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
218 0010a5 a5 (12) MOVSL ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
219 0010a6 8d7c2434 (12) LEAL 52(SP),DI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
220 0010aa 8db424f4000000 (12) LEAL h+244(FP),SI
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
221 0010b1 b904000000 (12) MOVL $4,CX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
222 0010b6 fc (12) CLD ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
223 0010b7 f3 (12) REP ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
224 0010b8 a5 (12) MOVSL ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
225 0010b9 8b842404010000 (12) MOVL i+260(FP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
226 0010c0 89442444 (12) MOVL AX,68(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
227 0010c4 8b842408010000 (12) MOVL j+264(FP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
228 0010cb 89442448 (12) MOVL AX,72(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
229 0010cf e84cffffff (12) CALL ,1020+leaf_call
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
230 0010d4 81c4b8000000 (12) ADDL $184,SP
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
231 0010da c3 (12) RET ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
232
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
233 0010db (15) TEXT main+0(SB),$100
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
234 0010db 83ec64 (15) SUBL $100,SP
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
235 0010de c7042400000000 (17) MOVL $0,(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
236 0010e5 b801000000 (17) MOVL $1,AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
237 0010ea 89442404 (17) MOVL AX,4(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
238 0010ee 8d442408 (17) LEAL 8(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
239 0010f2 89442460 (17) MOVL AX,.safe+96(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
240 0010f6 8b442460 (17) MOVL .safe+96(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
241 0010fa c70002000000 (17) MOVL $2,(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
242 001100 8b442460 (17) MOVL .safe+96(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
243 001104 c7400403000000 (17) MOVL $3,4(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
244 00110b dd0500200000 (17) FMOVD $0.40100000+0(SB),F0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
245 001111 8b442460 (17) MOVL .safe+96(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
246 001115 d95808 (17) FMOVFP F0,8(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
247 001118 8d442414 (17) LEAL 20(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
248 00111c 8944245c (17) MOVL AX,.safe+92(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
249 001120 dd0508200000 (17) FMOVD $0.40140000+0(SB),F0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
250 001126 8b44245c (17) MOVL .safe+92(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
251 00112a dd18 (17) FMOVDP F0,(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
252 00112c 8b44245c (17) MOVL .safe+92(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
253 001130 c7400806000000 (17) MOVL $6,8(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
254 001137 c7400c00000000 (17) MOVL $0,12(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
255 00113e b807000000 (17) MOVL $7,AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
256 001143 89442424 (17) MOVL AX,36(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
257 001147 b808000000 (17) MOVL $8,AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
258 00114c 89442428 (17) MOVL AX,40(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
259 001150 8d44242c (17) LEAL 44(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
260 001154 89442458 (17) MOVL AX,.safe+88(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
261 001158 8b442458 (17) MOVL .safe+88(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
262 00115c c70009000000 (17) MOVL $9,(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
263 001162 8b442458 (17) MOVL .safe+88(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
264 001166 c740040a000000 (17) MOVL $10,4(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
265 00116d dd0510200000 (17) FMOVD $0.40260000+0(SB),F0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
266 001173 8b442458 (17) MOVL .safe+88(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
267 001177 d95808 (17) FMOVFP F0,8(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
268 00117a 8d442438 (17) LEAL 56(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
269 00117e 89442454 (17) MOVL AX,.safe+84(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
270 001182 dd0518200000 (17) FMOVD $0.40280000+0(SB),F0
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
271 001188 8b442454 (17) MOVL .safe+84(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
272 00118c dd18 (17) FMOVDP F0,(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
273 00118e 8b442454 (17) MOVL .safe+84(SP),AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
274 001192 c740080d000000 (17) MOVL $13,8(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
275 001199 c7400c00000000 (17) MOVL $0,12(AX)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
276 0011a0 b80e000000 (17) MOVL $14,AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
277 0011a5 89442448 (17) MOVL AX,72(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
278 0011a9 b80f000000 (17) MOVL $15,AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
279 0011ae 8944244c (17) MOVL AX,76(SP)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
280 0011b2 e86afeffff (17) CALL ,1021+nonleaf_call
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
281 0011b7 31c0 (18) MOVL $0,AX
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
282 0011b9 83c464 (18) ADDL $100,SP
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
283 0011bc c3 (18) RET ,
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
284
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
285 002000 0000000000001040 (17) DATA $0.40100000+0(SB)/8,$(40100000,00000000)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
286 002008 0000000000001440 (17) DATA $0.40140000+0(SB)/8,$(40140000,00000000)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
287 002010 0000000000002640 (17) DATA $0.40260000+0(SB)/8,$(40260000,00000000)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
288 002018 0000000000002840 (17) DATA $0.40280000+0(SB)/8,$(40280000,00000000)
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
289
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
290
97fff5d9cea1 - plan9/x86 struct by value passing disas example
Tassilo Philipp
parents: 327
diff changeset
291
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
292 ; vim: ft=asm
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
293