annotate doc/disas_examples/ppc.sysv.disas @ 497:cb19b2fe2422

- more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
author Tassilo Philipp
date Wed, 23 Mar 2022 15:24:31 +0100
parents ead041d93e36
children fc614cb865c6
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 ; #include <stdlib.h>
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 ; void leaf_call(int b, int c, int d, int e, int f, int g, int h)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
4 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
5 ; }
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 ; void nonleaf_call(int a, int b, int c, int d, int e, int f, int g, int h)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
8 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
9 ; /* use some local data */
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
10 ; *(char*)alloca(10) = 'L';
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
11 ; leaf_call(b, c, d, e, f, g, h);
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 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
14 ; int main()
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 ; nonleaf_call(0, 1, 2, 3, 4, 5, 6, 7);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
17 ; return 0;
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
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
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
22 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
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 00000000 <leaf_call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
25 0: 94 21 ff d0 stwu r1,-48(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
26 4: 93 e1 00 2c stw r31,44(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
27 8: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
28 c: 90 7f 00 08 stw r3,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
29 10: 90 9f 00 0c stw r4,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
30 14: 90 bf 00 10 stw r5,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
31 18: 90 df 00 14 stw r6,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
32 1c: 90 ff 00 18 stw r7,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
33 20: 91 1f 00 1c stw r8,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
34 24: 91 3f 00 20 stw r9,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
35 28: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
36 2c: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
37 30: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
38 34: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
39
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
40 00000038 <nonleaf_call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
41 38: 94 21 ff c0 stwu r1,-64(r1) ; | open frame and store sp at top of stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
42 3c: 7c 08 02 a6 mflr r0 ; | lr -> gpr0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
43 40: 93 e1 00 3c stw r31,60(r1) ; | prolog store gpr31
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
44 44: 90 01 00 44 stw r0,68(r1) ; | store lr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
45 48: 7c 3f 0b 78 mr r31,r1 ; / sp -> gpr31, latter used for some fixed addressing below
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
46 4c: 90 7f 00 08 stw r3,8(r31) ; \
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
47 50: 90 9f 00 0c stw r4,12(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
48 54: 90 bf 00 10 stw r5,16(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
49 58: 90 df 00 14 stw r6,20(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
50 5c: 90 ff 00 18 stw r7,24(r31) ; | all in args -> temp space in local area
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
51 60: 91 1f 00 1c stw r8,28(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
52 64: 91 3f 00 20 stw r9,32(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
53 68: 91 5f 00 24 stw r10,36(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
54 6c: 80 01 00 00 lwz r0,0(r1) ; fetch sp saved on stack of top by prolog -> gpr0, and ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
55 70: 94 01 ff 10 stwu r0,-240(r1) ; ... update it further up the stack for alloca(220) - with padding to guarantee alignment
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
56 74: 39 21 00 08 addi r9,r1,8 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
57 78: 91 3f 00 28 stw r9,40(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
58 7c: 81 3f 00 28 lwz r9,40(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
59 80: 38 09 00 0f addi r0,r9,15 ; | start of alloca()'d memory -> gpr9, by ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
60 84: 54 00 e1 3e rlwinm r0,r0,28,4,31 ; | ... using gpr0 as helper to align to 16b, leaving at least 8b at top of stock
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
61 88: 54 00 20 36 rlwinm r0,r0,4,0,27 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
62 8c: 90 1f 00 28 stw r0,40(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
63 90: 81 3f 00 28 lwz r9,40(r31) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
64 94: 38 00 00 4c li r0,76 ; 'L' -> gpr0, and ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
65 98: 98 09 00 00 stb r0,0(r9) ; ... store in local area (of alloca()'d space)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
66 9c: 80 7f 00 0c lwz r3,12(r31) ; arg 0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
67 a0: 80 9f 00 10 lwz r4,16(r31) ; arg 1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
68 a4: 80 bf 00 14 lwz r5,20(r31) ; arg 2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
69 a8: 80 df 00 18 lwz r6,24(r31) ; arg 3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
70 ac: 80 ff 00 1c lwz r7,28(r31) ; arg 4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
71 b0: 81 1f 00 20 lwz r8,32(r31) ; arg 5
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
72 b4: 81 3f 00 24 lwz r9,36(r31) ; arg 6
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
73 b8: 48 00 00 01 bl b8 <nonleaf_call+0x80> ; call and put return address -> lr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
74 bc: 81 61 00 00 lwz r11,0(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
75 c0: 80 0b 00 04 lwz r0,4(r11) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
76 c4: 7c 08 03 a6 mtlr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
77 c8: 83 eb ff fc lwz r31,-4(r11) ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
78 cc: 7d 61 5b 78 mr r1,r11 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
79 d0: 4e 80 00 20 blr ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
80
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
81 000000d4 <main>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
82 d4: 94 21 ff f0 stwu r1,-16(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
83 d8: 7c 08 02 a6 mflr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
84 dc: 93 e1 00 0c stw r31,12(r1) ; | prolog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
85 e0: 90 01 00 14 stw r0,20(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
86 e4: 7c 3f 0b 78 mr r31,r1 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
87 e8: 38 60 00 00 li r3,0 ; arg 0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
88 ec: 38 80 00 01 li r4,1 ; arg 1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
89 f0: 38 a0 00 02 li r5,2 ; arg 2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
90 f4: 38 c0 00 03 li r6,3 ; arg 3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
91 f8: 38 e0 00 04 li r7,4 ; arg 4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
92 fc: 39 00 00 05 li r8,5 ; arg 5
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
93 100: 39 20 00 06 li r9,6 ; arg 6
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
94 104: 39 40 00 07 li r10,7 ; arg 7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
95 108: 48 00 00 01 bl 108 <main+0x34> ; call and put return address -> lr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
96 10c: 38 00 00 00 li r0,0 ; return value (pointlessly) via gpr0 ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
97 110: 7c 03 03 78 mr r3,r0 ; ... to gpr3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
98 114: 81 61 00 00 lwz r11,0(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
99 118: 80 0b 00 04 lwz r0,4(r11) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
100 11c: 7c 08 03 a6 mtlr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
101 120: 83 eb ff fc lwz r31,-4(r11) ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
102 124: 7d 61 5b 78 mr r1,r11 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
103 128: 4e 80 00 20 blr ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
104
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
105
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
106
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
107 ; output from netbsd-4.0.1-macppc w/ gcc 4.1.2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
108
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
109 00000000 <leaf_call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
110 0: 94 21 ff c0 stwu r1,-64(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
111 4: 93 e1 00 3c stw r31,60(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
112 8: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
113 c: 90 7f 00 08 stw r3,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
114 10: 90 9f 00 0c stw r4,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
115 14: 90 bf 00 10 stw r5,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
116 18: 90 df 00 14 stw r6,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
117 1c: 90 ff 00 18 stw r7,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
118 20: 91 1f 00 1c stw r8,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
119 24: 91 3f 00 20 stw r9,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
120 28: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
121 2c: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
122 30: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
123 34: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
124
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
125 00000038 <nonleaf_call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
126 38: 94 21 ff c0 stwu r1,-64(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
127 3c: 7c 08 02 a6 mflr r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
128 40: 93 e1 00 3c stw r31,60(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
129 44: 90 01 00 44 stw r0,68(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
130 48: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
131 4c: 90 7f 00 08 stw r3,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
132 50: 90 9f 00 0c stw r4,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
133 54: 90 bf 00 10 stw r5,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
134 58: 90 df 00 14 stw r6,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
135 5c: 90 ff 00 18 stw r7,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
136 60: 91 1f 00 1c stw r8,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
137 64: 91 3f 00 20 stw r9,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
138 68: 91 5f 00 24 stw r10,36(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
139 6c: 80 01 00 00 lwz r0,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
140 70: 94 01 ff 10 stwu r0,-240(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
141 74: 39 21 00 08 addi r9,r1,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
142 78: 91 3f 00 28 stw r9,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
143 7c: 81 3f 00 28 lwz r9,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
144 80: 38 09 00 0f addi r0,r9,15
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
145 84: 54 00 e1 3e rlwinm r0,r0,28,4,31
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
146 88: 54 00 20 36 rlwinm r0,r0,4,0,27
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
147 8c: 90 1f 00 28 stw r0,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
148 90: 81 3f 00 28 lwz r9,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
149 94: 38 00 00 4c li r0,76
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
150 98: 98 09 00 00 stb r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
151 9c: 80 7f 00 0c lwz r3,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
152 a0: 80 9f 00 10 lwz r4,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
153 a4: 80 bf 00 14 lwz r5,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
154 a8: 80 df 00 18 lwz r6,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
155 ac: 80 ff 00 1c lwz r7,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
156 b0: 81 1f 00 20 lwz r8,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
157 b4: 81 3f 00 24 lwz r9,36(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
158 b8: 48 00 00 01 bl b8 <nonleaf_call+0x80>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
159 bc: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
160 c0: 80 0b 00 04 lwz r0,4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
161 c4: 7c 08 03 a6 mtlr r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
162 c8: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
163 cc: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
164 d0: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
165
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
166 000000d4 <main>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
167 d4: 94 21 ff e0 stwu r1,-32(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
168 d8: 7c 08 02 a6 mflr r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
169 dc: 93 e1 00 1c stw r31,28(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
170 e0: 90 01 00 24 stw r0,36(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
171 e4: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
172 e8: 38 60 00 00 li r3,0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
173 ec: 38 80 00 01 li r4,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
174 f0: 38 a0 00 02 li r5,2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
175 f4: 38 c0 00 03 li r6,3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
176 f8: 38 e0 00 04 li r7,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
177 fc: 39 00 00 05 li r8,5
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
178 100: 39 20 00 06 li r9,6
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
179 104: 39 40 00 07 li r10,7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
180 108: 48 00 00 01 bl 108 <main+0x34>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
181 10c: 38 00 00 00 li r0,0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
182 110: 7c 03 03 78 mr r3,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
183 114: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
184 118: 80 0b 00 04 lwz r0,4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
185 11c: 7c 08 03 a6 mtlr r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
186 120: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
187 124: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
188 128: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
189
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
190
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
191
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
192 ; ------------- check register skipping for 64bit args ----------->
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
193
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
194 ; void call(int a, long long b, int c, int d, long long e, long long f)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
195 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
196 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
197 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
198 ; int main()
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
199 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
200 ; call(0,1,2,3,4,5);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
201 ; return 1;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
202 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
203
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
204
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
205
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
206 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
207
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
208 00000000 <call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
209 0: 94 21 ff d0 stwu r1,-48(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
210 4: 93 e1 00 2c stw r31,44(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
211 8: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
212 c: 90 7f 00 08 stw r3,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
213 10: 90 bf 00 10 stw r5,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
214 14: 90 df 00 14 stw r6,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
215 18: 90 ff 00 18 stw r7,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
216 1c: 91 1f 00 1c stw r8,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
217 20: 91 3f 00 20 stw r9,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
218 24: 91 5f 00 24 stw r10,36(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
219 28: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
220 2c: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
221 30: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
222 34: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
223
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
224 00000038 <main>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
225 38: 94 21 ff e0 stwu r1,-32(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
226 3c: 7c 08 02 a6 mflr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
227 40: 93 e1 00 1c stw r31,28(r1) ; | prolog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
228 44: 90 01 00 24 stw r0,36(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
229 48: 7c 3f 0b 78 mr r31,r1 ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
230 4c: 39 20 00 00 li r9,0 ; \
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
231 50: 39 40 00 05 li r10,5 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
232 54: 91 21 00 08 stw r9,8(r1) ; | arg 5 via stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
233 58: 91 41 00 0c stw r10,12(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
234 5c: 38 60 00 00 li r3,0 ; arg 0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
235 60: 38 a0 00 00 li r5,0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
236 64: 38 c0 00 01 li r6,1 ; | arg 1 (note that r4 is skipped)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
237 68: 38 e0 00 02 li r7,2 ; arg 2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
238 6c: 39 00 00 03 li r8,3 ; arg 3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
239 70: 39 20 00 00 li r9,0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
240 74: 39 40 00 04 li r10,4 ; | arg 4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
241 78: 48 00 00 01 bl 78 <main+0x40> ; call and put return address -> lr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
242 7c: 38 00 00 01 li r0,1 ; return value (pointlessly) via gpr0 ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
243 80: 7c 03 03 78 mr r3,r0 ; ... to gpr3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
244 84: 81 61 00 00 lwz r11,0(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
245 88: 80 0b 00 04 lwz r0,4(r11) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
246 8c: 7c 08 03 a6 mtlr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
247 90: 83 eb ff fc lwz r31,-4(r11) ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
248 94: 7d 61 5b 78 mr r1,r11 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
249 98: 4e 80 00 20 blr ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
250
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
251
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
252
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
253 ; ------------- var args with ints and floats to see spilling (which remains only int regs), b/c doubles are passed via them and floats are promoted to doubles in (...) ----------->
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
254
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
255 ; #include <stdlib.h>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
256 ; #include <stdarg.h>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
257 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
258 ; void leaf_call(int b, int c, int d, int e, float f, float g, int h, int i, float j)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
259 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
260 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
261 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
262 ; void nonleaf_call(int a, ...)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
263 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
264 ; int b, c, d, e, h, i;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
265 ; float f, g, j;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
266 ; va_list ap;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
267 ; va_start(ap, a);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
268 ; b = va_arg(ap, int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
269 ; c = va_arg(ap, int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
270 ; d = va_arg(ap, int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
271 ; e = va_arg(ap, int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
272 ; f = (float)va_arg(ap, double);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
273 ; g = (float)va_arg(ap, double);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
274 ; h = va_arg(ap, int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
275 ; i = va_arg(ap, int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
276 ; j = (float)va_arg(ap, double);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
277 ; /* use some local data */
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
278 ; *(char*)alloca(220) = 'L';
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
279 ; leaf_call(b, c, d, e, f, g, h, i, j);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
280 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
281 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
282 ; int main()
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
283 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
284 ; nonleaf_call(0, 1, 2, 3, 4, 5.f, 6.f, 7, 8, 9.f);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
285 ; return 0;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
286 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
287
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
288
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
289
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
290 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
291
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
292 00000000 <leaf_call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
293 0: 94 21 ff c0 stwu r1,-64(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
294 4: 93 e1 00 3c stw r31,60(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
295 8: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
296 c: 90 7f 00 08 stw r3,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
297 10: 90 9f 00 0c stw r4,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
298 14: 90 bf 00 10 stw r5,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
299 18: 90 df 00 14 stw r6,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
300 1c: d0 3f 00 18 stfs f1,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
301 20: d0 5f 00 1c stfs f2,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
302 24: 90 ff 00 20 stw r7,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
303 28: 91 1f 00 24 stw r8,36(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
304 2c: d0 7f 00 28 stfs f3,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
305 30: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
306 34: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
307 38: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
308 3c: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
309
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
310 00000040 <nonleaf_call>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
311 40: 94 21 ff 30 stwu r1,-208(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
312 44: 7c 08 02 a6 mflr r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
313 48: 93 e1 00 cc stw r31,204(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
314 4c: 90 01 00 d4 stw r0,212(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
315 50: 7c 3f 0b 78 mr r31,r1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
316 54: 90 9f 00 3c stw r4,60(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
317 58: 90 bf 00 40 stw r5,64(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
318 5c: 90 df 00 44 stw r6,68(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
319 60: 90 ff 00 48 stw r7,72(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
320 64: 91 1f 00 4c stw r8,76(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
321 68: 91 3f 00 50 stw r9,80(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
322 6c: 91 5f 00 54 stw r10,84(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
323 70: 40 86 00 24 bne- cr1,94 <nonleaf_call+0x54>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
324 74: d8 3f 00 58 stfd f1,88(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
325 78: d8 5f 00 60 stfd f2,96(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
326 7c: d8 7f 00 68 stfd f3,104(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
327 80: d8 9f 00 70 stfd f4,112(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
328 84: d8 bf 00 78 stfd f5,120(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
329 88: d8 df 00 80 stfd f6,128(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
330 8c: d8 ff 00 88 stfd f7,136(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
331 90: d9 1f 00 90 stfd f8,144(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
332 94: 90 7f 00 98 stw r3,152(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
333 98: 38 00 00 01 li r0,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
334 9c: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
335 a0: 38 00 00 00 li r0,0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
336 a4: 98 1f 00 2d stb r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
337 a8: 38 1f 00 d8 addi r0,r31,216 ; make r0 point to start of prev frame's param area (would make sense as no spill area to define param area start for iteration)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
338 ac: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
339 b0: 38 1f 00 38 addi r0,r31,56 ; make r0 point to end of prev frame's param area (would make sense as no spill area to define param area end for iteration)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
340 b4: 90 1f 00 34 stw r0,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
341 b8: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
342 bc: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
343 c0: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
344 c4: 40 9c 00 30 bge- cr7,f4 <nonleaf_call+0xb4>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
345 c8: 81 7f 00 34 lwz r11,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
346 cc: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
347 d0: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
348 d4: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
349 d8: 54 00 10 3a rlwinm r0,r0,2,0,29
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
350 dc: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
351 e0: 91 7f 00 c0 stw r11,192(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
352 e4: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
353 e8: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
354 ec: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
355 f0: 48 00 00 14 b 104 <nonleaf_call+0xc4>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
356 f4: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
357 f8: 91 3f 00 c0 stw r9,192(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
358 fc: 38 09 00 04 addi r0,r9,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
359 100: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
360 104: 81 3f 00 c0 lwz r9,192(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
361 108: 80 09 00 00 lwz r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
362 10c: 90 1f 00 28 stw r0,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
363 110: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
364 114: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
365 118: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
366 11c: 40 9c 00 30 bge- cr7,14c <nonleaf_call+0x10c>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
367 120: 81 7f 00 34 lwz r11,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
368 124: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
369 128: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
370 12c: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
371 130: 54 00 10 3a rlwinm r0,r0,2,0,29
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
372 134: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
373 138: 91 7f 00 bc stw r11,188(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
374 13c: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
375 140: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
376 144: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
377 148: 48 00 00 14 b 15c <nonleaf_call+0x11c>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
378 14c: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
379 150: 91 3f 00 bc stw r9,188(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
380 154: 38 09 00 04 addi r0,r9,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
381 158: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
382 15c: 81 3f 00 bc lwz r9,188(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
383 160: 80 09 00 00 lwz r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
384 164: 90 1f 00 24 stw r0,36(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
385 168: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
386 16c: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
387 170: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
388 174: 40 9c 00 30 bge- cr7,1a4 <nonleaf_call+0x164>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
389 178: 81 7f 00 34 lwz r11,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
390 17c: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
391 180: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
392 184: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
393 188: 54 00 10 3a rlwinm r0,r0,2,0,29
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
394 18c: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
395 190: 91 7f 00 b8 stw r11,184(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
396 194: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
397 198: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
398 19c: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
399 1a0: 48 00 00 14 b 1b4 <nonleaf_call+0x174>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
400 1a4: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
401 1a8: 91 3f 00 b8 stw r9,184(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
402 1ac: 38 09 00 04 addi r0,r9,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
403 1b0: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
404 1b4: 81 3f 00 b8 lwz r9,184(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
405 1b8: 80 09 00 00 lwz r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
406 1bc: 90 1f 00 20 stw r0,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
407 1c0: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
408 1c4: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
409 1c8: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
410 1cc: 40 9c 00 30 bge- cr7,1fc <nonleaf_call+0x1bc>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
411 1d0: 81 7f 00 34 lwz r11,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
412 1d4: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
413 1d8: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
414 1dc: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
415 1e0: 54 00 10 3a rlwinm r0,r0,2,0,29
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
416 1e4: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
417 1e8: 91 7f 00 b4 stw r11,180(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
418 1ec: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
419 1f0: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
420 1f4: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
421 1f8: 48 00 00 14 b 20c <nonleaf_call+0x1cc>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
422 1fc: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
423 200: 91 3f 00 b4 stw r9,180(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
424 204: 38 09 00 04 addi r0,r9,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
425 208: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
426 20c: 81 3f 00 b4 lwz r9,180(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
427 210: 80 09 00 00 lwz r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
428 214: 90 1f 00 1c stw r0,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
429 218: 88 1f 00 2d lbz r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
430 21c: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
431 220: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
432 224: 40 9c 00 34 bge- cr7,258 <nonleaf_call+0x218>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
433 228: 81 3f 00 34 lwz r9,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
434 22c: 39 69 00 20 addi r11,r9,32
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
435 230: 88 1f 00 2d lbz r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
436 234: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
437 238: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
438 23c: 54 00 18 38 rlwinm r0,r0,3,0,28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
439 240: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
440 244: 91 7f 00 b0 stw r11,176(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
441 248: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
442 24c: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
443 250: 98 1f 00 2d stb r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
444 254: 48 00 00 1c b 270 <nonleaf_call+0x230>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
445 258: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
446 25c: 38 09 00 07 addi r0,r9,7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
447 260: 54 09 00 38 rlwinm r9,r0,0,0,28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
448 264: 91 3f 00 b0 stw r9,176(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
449 268: 38 09 00 08 addi r0,r9,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
450 26c: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
451 270: 81 3f 00 b0 lwz r9,176(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
452 274: c8 09 00 00 lfd f0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
453 278: fc 00 00 18 frsp f0,f0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
454 27c: d0 1f 00 10 stfs f0,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
455 280: 88 1f 00 2d lbz r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
456 284: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
457 288: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
458 28c: 40 9c 00 34 bge- cr7,2c0 <nonleaf_call+0x280>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
459 290: 81 3f 00 34 lwz r9,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
460 294: 39 69 00 20 addi r11,r9,32
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
461 298: 88 1f 00 2d lbz r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
462 29c: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
463 2a0: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
464 2a4: 54 00 18 38 rlwinm r0,r0,3,0,28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
465 2a8: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
466 2ac: 91 7f 00 ac stw r11,172(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
467 2b0: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
468 2b4: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
469 2b8: 98 1f 00 2d stb r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
470 2bc: 48 00 00 1c b 2d8 <nonleaf_call+0x298>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
471 2c0: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
472 2c4: 38 09 00 07 addi r0,r9,7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
473 2c8: 54 09 00 38 rlwinm r9,r0,0,0,28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
474 2cc: 91 3f 00 ac stw r9,172(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
475 2d0: 38 09 00 08 addi r0,r9,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
476 2d4: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
477 2d8: 81 3f 00 ac lwz r9,172(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
478 2dc: c8 09 00 00 lfd f0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
479 2e0: fc 00 00 18 frsp f0,f0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
480 2e4: d0 1f 00 0c stfs f0,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
481 2e8: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
482 2ec: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
483 2f0: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
484 2f4: 40 9c 00 30 bge- cr7,324 <nonleaf_call+0x2e4>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
485 2f8: 81 7f 00 34 lwz r11,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
486 2fc: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
487 300: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
488 304: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
489 308: 54 00 10 3a rlwinm r0,r0,2,0,29
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
490 30c: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
491 310: 91 7f 00 a8 stw r11,168(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
492 314: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
493 318: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
494 31c: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
495 320: 48 00 00 14 b 334 <nonleaf_call+0x2f4>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
496 324: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
497 328: 91 3f 00 a8 stw r9,168(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
498 32c: 38 09 00 04 addi r0,r9,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
499 330: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
500 334: 81 3f 00 a8 lwz r9,168(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
501 338: 80 09 00 00 lwz r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
502 33c: 90 1f 00 18 stw r0,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
503 340: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
504 344: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
505 348: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
506 34c: 40 9c 00 30 bge- cr7,37c <nonleaf_call+0x33c>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
507 350: 81 7f 00 34 lwz r11,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
508 354: 88 1f 00 2c lbz r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
509 358: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
510 35c: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
511 360: 54 00 10 3a rlwinm r0,r0,2,0,29
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
512 364: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
513 368: 91 7f 00 a4 stw r11,164(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
514 36c: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
515 370: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
516 374: 98 1f 00 2c stb r0,44(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
517 378: 48 00 00 14 b 38c <nonleaf_call+0x34c>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
518 37c: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
519 380: 91 3f 00 a4 stw r9,164(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
520 384: 38 09 00 04 addi r0,r9,4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
521 388: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
522 38c: 81 3f 00 a4 lwz r9,164(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
523 390: 80 09 00 00 lwz r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
524 394: 90 1f 00 14 stw r0,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
525 398: 88 1f 00 2d lbz r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
526 39c: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
527 3a0: 2b 80 00 08 cmplwi cr7,r0,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
528 3a4: 40 9c 00 34 bge- cr7,3d8 <nonleaf_call+0x398>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
529 3a8: 81 3f 00 34 lwz r9,52(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
530 3ac: 39 69 00 20 addi r11,r9,32
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
531 3b0: 88 1f 00 2d lbz r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
532 3b4: 54 09 06 3e clrlwi r9,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
533 3b8: 7d 20 4b 78 mr r0,r9
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
534 3bc: 54 00 18 38 rlwinm r0,r0,3,0,28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
535 3c0: 7d 6b 02 14 add r11,r11,r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
536 3c4: 91 7f 00 a0 stw r11,160(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
537 3c8: 38 09 00 01 addi r0,r9,1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
538 3cc: 54 00 06 3e clrlwi r0,r0,24
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
539 3d0: 98 1f 00 2d stb r0,45(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
540 3d4: 48 00 00 1c b 3f0 <nonleaf_call+0x3b0>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
541 3d8: 81 3f 00 30 lwz r9,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
542 3dc: 38 09 00 07 addi r0,r9,7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
543 3e0: 54 09 00 38 rlwinm r9,r0,0,0,28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
544 3e4: 91 3f 00 a0 stw r9,160(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
545 3e8: 38 09 00 08 addi r0,r9,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
546 3ec: 90 1f 00 30 stw r0,48(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
547 3f0: 81 3f 00 a0 lwz r9,160(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
548 3f4: c8 09 00 00 lfd f0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
549 3f8: fc 00 00 18 frsp f0,f0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
550 3fc: d0 1f 00 08 stfs f0,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
551 400: 80 01 00 00 lwz r0,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
552 404: 94 01 ff 10 stwu r0,-240(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
553 408: 39 21 00 08 addi r9,r1,8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
554 40c: 91 3f 00 9c stw r9,156(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
555 410: 81 3f 00 9c lwz r9,156(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
556 414: 38 09 00 0f addi r0,r9,15
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
557 418: 54 00 e1 3e rlwinm r0,r0,28,4,31
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
558 41c: 54 00 20 36 rlwinm r0,r0,4,0,27
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
559 420: 90 1f 00 9c stw r0,156(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
560 424: 81 3f 00 9c lwz r9,156(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
561 428: 38 00 00 4c li r0,76
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
562 42c: 98 09 00 00 stb r0,0(r9)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
563 430: 80 7f 00 28 lwz r3,40(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
564 434: 80 9f 00 24 lwz r4,36(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
565 438: 80 bf 00 20 lwz r5,32(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
566 43c: 80 df 00 1c lwz r6,28(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
567 440: c0 3f 00 10 lfs f1,16(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
568 444: c0 5f 00 0c lfs f2,12(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
569 448: 80 ff 00 18 lwz r7,24(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
570 44c: 81 1f 00 14 lwz r8,20(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
571 450: c0 7f 00 08 lfs f3,8(r31)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
572 454: 48 00 00 01 bl 454 <nonleaf_call+0x414>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
573 458: 81 61 00 00 lwz r11,0(r1)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
574 45c: 80 0b 00 04 lwz r0,4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
575 460: 7c 08 03 a6 mtlr r0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
576 464: 83 eb ff fc lwz r31,-4(r11)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
577 468: 7d 61 5b 78 mr r1,r11
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
578 46c: 4e 80 00 20 blr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
579
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
580 00000470 <main>:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
581 470: 94 21 ff f0 stwu r1,-16(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
582 474: 7c 08 02 a6 mflr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
583 478: 93 e1 00 0c stw r31,12(r1) ; | prolog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
584 47c: 90 01 00 14 stw r0,20(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
585 480: 7c 3f 0b 78 mr r31,r1 ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
586 484: 3d 20 00 00 lis r9,0 ; \ prep arg 5 (float, but double in reg & ellipsis), load from 0 b/c objdump is from .o, not finally linked exec
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
587 488: c8 09 00 00 lfd f0,0(r9) ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
588 48c: 3d 20 00 00 lis r9,0 ; \ prep arg 6 (float, but double in reg & ellipsis), load from 0 b/c objdump is from .o, not finally linked exec
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
589 490: c9 a9 00 08 lfd f13,8(r9) ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
590 494: 3d 20 00 00 lis r9,0 ; \ prep arg 9 (float, but double in reg & ellipsis), load from 0 b/c objdump is from .o, not finally linked exec
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
591 498: c9 89 00 10 lfd f12,16(r9) ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
592 49c: 38 60 00 00 li r3,0 ; arg 0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
593 4a0: 38 80 00 01 li r4,1 ; arg 1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
594 4a4: 38 a0 00 02 li r5,2 ; arg 2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
595 4a8: 38 c0 00 03 li r6,3 ; arg 3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
596 4ac: 38 e0 00 04 li r7,4 ; arg 4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
597 4b0: fc 20 00 90 fmr f1,f0 ; arg 5
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
598 4b4: fc 40 68 90 fmr f2,f13 ; arg 6
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
599 4b8: 39 00 00 07 li r8,7 ; arg 7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
600 4bc: 39 20 00 08 li r9,8 ; arg 8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
601 4c0: fc 60 60 90 fmr f3,f12 ; arg 9
361
06c9adae114d - typos
Tassilo Philipp
parents: 327
diff changeset
602 4c4: 4c c6 32 42 crset 4*cr1+eq ; set CR bit for ellipsis call
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
603 4c8: 48 00 00 01 bl 4c8 <main+0x58> ; call and put return address -> lr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
604 4cc: 38 00 00 00 li r0,0 ; return value (pointlessly) via gpr0 ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
605 4d0: 7c 03 03 78 mr r3,r0 ; ... to gpr3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
606 4d4: 81 61 00 00 lwz r11,0(r1) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
607 4d8: 80 0b 00 04 lwz r0,4(r11) ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
608 4dc: 7c 08 03 a6 mtlr r0 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
609 4e0: 83 eb ff fc lwz r31,-4(r11) ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
610 4e4: 7d 61 5b 78 mr r1,r11 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
611 4e8: 4e 80 00 20 blr ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
612
473
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
613
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
614
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
615 ; ---------- structs by value ---------->
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
616 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
617 ; struct A { int i, j; long long l; };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
618 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
619 ; void leaf_call(int b, int c, int d, int e, struct A f, int g, int h)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
620 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
621 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
622 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
623 ; void nonleaf_call(int a, int b, int c, int d, int e, struct A f, int g, int h)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
624 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
625 ; /* use some local data */
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
626 ; char l[100] = { 'L' };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
627 ; leaf_call(b, c, d, e, f, g, h);
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
628 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
629 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
630 ; int main()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
631 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
632 ; nonleaf_call(0, 1, 2, 3, 4, (struct A){5, 6, 7ll}, 8, 9);
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
633 ; return 0;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
634 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
635
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
636
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
637
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
638 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
639
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
640 00000000 <leaf_call>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
641 0: 94 21 ff d0 stwu r1,-48(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
642 4: 93 e1 00 2c stw r31,44(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
643 8: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
644 c: 90 7f 00 08 stw r3,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
645 10: 90 9f 00 0c stw r4,12(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
646 14: 90 bf 00 10 stw r5,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
647 18: 90 df 00 14 stw r6,20(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
648 1c: 91 1f 00 18 stw r8,24(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
649 20: 91 3f 00 1c stw r9,28(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
650 24: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
651 28: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
652 2c: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
653 30: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
654
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
655 00000034 <nonleaf_call>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
656 34: 94 21 ff 40 stwu r1,-192(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
657 38: 7c 08 02 a6 mflr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
658 3c: 93 a1 00 b4 stw r29,180(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
659 40: 93 e1 00 bc stw r31,188(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
660 44: 90 01 00 c4 stw r0,196(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
661 48: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
662 4c: 90 7f 00 78 stw r3,120(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
663 50: 90 9f 00 7c stw r4,124(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
664 54: 90 bf 00 80 stw r5,128(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
665 58: 90 df 00 84 stw r6,132(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
666 5c: 90 ff 00 88 stw r7,136(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
667 60: 7d 1d 43 78 mr r29,r8
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
668 64: 91 3f 00 8c stw r9,140(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
669 68: 91 5f 00 90 stw r10,144(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
670 6c: 38 1f 00 08 addi r0,r31,8
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
671 70: 39 20 00 64 li r9,100
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
672 74: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
673 78: 38 80 00 00 li r4,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
674 7c: 7d 25 4b 78 mr r5,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
675 80: 48 00 00 01 bl 80 <nonleaf_call+0x4c>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
676 84: 38 00 00 4c li r0,76
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
677 88: 98 1f 00 08 stb r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
678 8c: 80 1d 00 00 lwz r0,0(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
679 90: 81 3d 00 04 lwz r9,4(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
680 94: 81 7d 00 08 lwz r11,8(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
681 98: 81 5d 00 0c lwz r10,12(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
682 9c: 90 1f 00 a0 stw r0,160(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
683 a0: 91 3f 00 a4 stw r9,164(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
684 a4: 91 7f 00 a8 stw r11,168(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
685 a8: 91 5f 00 ac stw r10,172(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
686 ac: 38 1f 00 a0 addi r0,r31,160
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
687 b0: 80 7f 00 7c lwz r3,124(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
688 b4: 80 9f 00 80 lwz r4,128(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
689 b8: 80 bf 00 84 lwz r5,132(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
690 bc: 80 df 00 88 lwz r6,136(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
691 c0: 7c 07 03 78 mr r7,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
692 c4: 81 1f 00 8c lwz r8,140(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
693 c8: 81 3f 00 90 lwz r9,144(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
694 cc: 48 00 00 01 bl cc <nonleaf_call+0x98>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
695 d0: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
696 d4: 80 0b 00 04 lwz r0,4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
697 d8: 7c 08 03 a6 mtlr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
698 dc: 83 ab ff f4 lwz r29,-12(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
699 e0: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
700 e4: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
701 e8: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
702
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
703 000000ec <main>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
704 ec: 94 21 ff c0 stwu r1,-64(r1) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
705 f0: 7c 08 02 a6 mflr r0 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
706 f4: 93 e1 00 3c stw r31,60(r1) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
707 f8: 90 01 00 44 stw r0,68(r1) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
708 fc: 7c 3f 0b 78 mr r31,r1 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
709 100: 3d 20 00 00 lis r9,0 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
710 104: 39 29 00 00 addi r9,r9,0 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
711 108: 80 09 00 00 lwz r0,0(r9) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
712 10c: 81 69 00 04 lwz r11,4(r9) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
713 110: 81 49 00 08 lwz r10,8(r9) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
714 114: 81 29 00 0c lwz r9,12(r9) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
715 118: 90 1f 00 08 stw r0,8(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
716 11c: 91 7f 00 0c stw r11,12(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
717 120: 91 5f 00 10 stw r10,16(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
718 124: 91 3f 00 14 stw r9,20(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
719 128: 80 1f 00 08 lwz r0,8(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
720 12c: 81 3f 00 0c lwz r9,12(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
721 130: 81 7f 00 10 lwz r11,16(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
722 134: 81 5f 00 14 lwz r10,20(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
723 138: 90 1f 00 20 stw r0,32(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
724 13c: 91 3f 00 24 stw r9,36(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
725 140: 91 7f 00 28 stw r11,40(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
726 144: 91 5f 00 2c stw r10,44(r31) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
727 148: 38 1f 00 20 addi r0,r31,32 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
728 14c: 38 60 00 00 li r3,0 ; arg 0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
729 150: 38 80 00 01 li r4,1 ; arg 1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
730 154: 38 a0 00 02 li r5,2 ; arg 2
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
731 158: 38 c0 00 03 li r6,3 ; arg 3
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
732 15c: 38 e0 00 04 li r7,4 ; arg 4
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
733 160: 7c 08 03 78 mr r8,r0 ; arg 5 (struct, passed as pointer to local copy)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
734 164: 39 20 00 08 li r9,8 ; arg 6
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
735 168: 39 40 00 09 li r10,9 ; arg 7
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
736 16c: 48 00 00 01 bl 16c <main+0x80> ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
737 170: 38 00 00 00 li r0,0 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
738 174: 7c 03 03 78 mr r3,r0 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
739 178: 81 61 00 00 lwz r11,0(r1) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
740 17c: 80 0b 00 04 lwz r0,4(r11) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
741 180: 7c 08 03 a6 mtlr r0 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
742 184: 83 eb ff fc lwz r31,-4(r11) ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
743 188: 7d 61 5b 78 mr r1,r11 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
744 18c: 4e 80 00 20 blr ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
745
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
746
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
747
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
748 ; ---------- structs by value, complex example (multiple structs) ---------->
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
749 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
750 ; struct A { int i, j; float f; };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
751 ; struct B { double d; long long l; };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
752 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
753 ; 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)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
754 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
755 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
756 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
757 ; 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)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
758 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
759 ; /* use some local data */
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
760 ; char l[100] = { 'L' };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
761 ; leaf_call(b, c, d, e, f, g, h, i, j);
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
762 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
763 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
764 ; int main()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
765 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
766 ; 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);
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
767 ; return 0;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
768 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
769
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
770
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
771
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
772 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
773
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
774 00000000 <leaf_call>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
775 0: 94 21 ff e0 stwu r1,-32(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
776 4: 93 e1 00 1c stw r31,28(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
777 8: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
778 c: 90 7f 00 08 stw r3,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
779 10: 90 df 00 0c stw r6,12(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
780 14: 90 ff 00 10 stw r7,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
781 18: 91 5f 00 14 stw r10,20(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
782 1c: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
783 20: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
784 24: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
785 28: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
786
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
787 0000002c <nonleaf_call>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
788 2c: 94 21 ff 00 stwu r1,-256(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
789 30: 7c 08 02 a6 mflr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
790 34: 93 41 00 e8 stw r26,232(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
791 38: 93 61 00 ec stw r27,236(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
792 3c: 93 81 00 f0 stw r28,240(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
793 40: 93 a1 00 f4 stw r29,244(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
794 44: 93 e1 00 fc stw r31,252(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
795 48: 90 01 01 04 stw r0,260(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
796 4c: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
797 50: 90 7f 00 80 stw r3,128(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
798 54: 90 9f 00 84 stw r4,132(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
799 58: 7c bd 2b 78 mr r29,r5
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
800 5c: 7c dc 33 78 mr r28,r6
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
801 60: 90 ff 00 88 stw r7,136(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
802 64: 91 1f 00 8c stw r8,140(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
803 68: 7d 3b 4b 78 mr r27,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
804 6c: 7d 5a 53 78 mr r26,r10
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
805 70: 38 1f 00 10 addi r0,r31,16
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
806 74: 39 20 00 64 li r9,100
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
807 78: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
808 7c: 38 80 00 00 li r4,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
809 80: 7d 25 4b 78 mr r5,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
810 84: 48 00 00 01 bl 84 <nonleaf_call+0x58>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
811 88: 38 00 00 4c li r0,76
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
812 8c: 98 1f 00 10 stb r0,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
813 90: 80 1d 00 00 lwz r0,0(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
814 94: 81 3d 00 04 lwz r9,4(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
815 98: 81 7d 00 08 lwz r11,8(r29)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
816 9c: 90 1f 00 98 stw r0,152(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
817 a0: 91 3f 00 9c stw r9,156(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
818 a4: 91 7f 00 a0 stw r11,160(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
819 a8: 80 1c 00 00 lwz r0,0(r28)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
820 ac: 81 3c 00 04 lwz r9,4(r28)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
821 b0: 81 7c 00 08 lwz r11,8(r28)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
822 b4: 81 5c 00 0c lwz r10,12(r28)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
823 b8: 90 1f 00 a8 stw r0,168(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
824 bc: 91 3f 00 ac stw r9,172(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
825 c0: 91 7f 00 b0 stw r11,176(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
826 c4: 91 5f 00 b4 stw r10,180(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
827 c8: 80 1b 00 00 lwz r0,0(r27)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
828 cc: 81 3b 00 04 lwz r9,4(r27)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
829 d0: 81 7b 00 08 lwz r11,8(r27)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
830 d4: 90 1f 00 b8 stw r0,184(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
831 d8: 91 3f 00 bc stw r9,188(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
832 dc: 91 7f 00 c0 stw r11,192(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
833 e0: 80 1a 00 00 lwz r0,0(r26)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
834 e4: 81 3a 00 04 lwz r9,4(r26)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
835 e8: 81 7a 00 08 lwz r11,8(r26)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
836 ec: 81 5a 00 0c lwz r10,12(r26)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
837 f0: 90 1f 00 c8 stw r0,200(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
838 f4: 91 3f 00 cc stw r9,204(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
839 f8: 91 7f 00 d0 stw r11,208(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
840 fc: 91 5f 00 d4 stw r10,212(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
841 100: 39 3f 00 98 addi r9,r31,152
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
842 104: 39 7f 00 a8 addi r11,r31,168
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
843 108: 39 5f 00 b8 addi r10,r31,184
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
844 10c: 3b bf 00 c8 addi r29,r31,200
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
845 110: 80 1f 01 0c lwz r0,268(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
846 114: 90 01 00 08 stw r0,8(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
847 118: 80 7f 00 84 lwz r3,132(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
848 11c: 7d 24 4b 78 mr r4,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
849 120: 7d 65 5b 78 mr r5,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
850 124: 80 df 00 88 lwz r6,136(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
851 128: 80 ff 00 8c lwz r7,140(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
852 12c: 7d 48 53 78 mr r8,r10
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
853 130: 7f a9 eb 78 mr r9,r29
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
854 134: 81 5f 01 08 lwz r10,264(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
855 138: 48 00 00 01 bl 138 <nonleaf_call+0x10c>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
856 13c: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
857 140: 80 0b 00 04 lwz r0,4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
858 144: 7c 08 03 a6 mtlr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
859 148: 83 4b ff e8 lwz r26,-24(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
860 14c: 83 6b ff ec lwz r27,-20(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
861 150: 83 8b ff f0 lwz r28,-16(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
862 154: 83 ab ff f4 lwz r29,-12(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
863 158: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
864 15c: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
865 160: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
866
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
867 00000164 <main>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
868 164: 94 21 ff 50 stwu r1,-176(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
869 168: 7c 08 02 a6 mflr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
870 16c: 93 a1 00 a4 stw r29,164(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
871 170: 93 e1 00 ac stw r31,172(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
872 174: 90 01 00 b4 stw r0,180(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
873 178: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
874 17c: 3d 20 00 00 lis r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
875 180: 39 29 00 30 addi r9,r9,48
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
876 184: 80 09 00 00 lwz r0,0(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
877 188: 81 69 00 04 lwz r11,4(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
878 18c: 81 29 00 08 lwz r9,8(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
879 190: 90 1f 00 40 stw r0,64(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
880 194: 91 7f 00 44 stw r11,68(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
881 198: 91 3f 00 48 stw r9,72(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
882 19c: 3d 20 00 00 lis r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
883 1a0: 39 29 00 20 addi r9,r9,32
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
884 1a4: 80 09 00 00 lwz r0,0(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
885 1a8: 81 69 00 04 lwz r11,4(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
886 1ac: 81 49 00 08 lwz r10,8(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
887 1b0: 81 29 00 0c lwz r9,12(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
888 1b4: 90 1f 00 30 stw r0,48(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
889 1b8: 91 7f 00 34 stw r11,52(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
890 1bc: 91 5f 00 38 stw r10,56(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
891 1c0: 91 3f 00 3c stw r9,60(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
892 1c4: 3d 20 00 00 lis r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
893 1c8: 39 29 00 10 addi r9,r9,16
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
894 1cc: 80 09 00 00 lwz r0,0(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
895 1d0: 81 69 00 04 lwz r11,4(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
896 1d4: 81 29 00 08 lwz r9,8(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
897 1d8: 90 1f 00 20 stw r0,32(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
898 1dc: 91 7f 00 24 stw r11,36(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
899 1e0: 91 3f 00 28 stw r9,40(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
900 1e4: 3d 20 00 00 lis r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
901 1e8: 39 29 00 00 addi r9,r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
902 1ec: 80 09 00 00 lwz r0,0(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
903 1f0: 81 69 00 04 lwz r11,4(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
904 1f4: 81 49 00 08 lwz r10,8(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
905 1f8: 81 29 00 0c lwz r9,12(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
906 1fc: 90 1f 00 10 stw r0,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
907 200: 91 7f 00 14 stw r11,20(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
908 204: 91 5f 00 18 stw r10,24(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
909 208: 91 3f 00 1c stw r9,28(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
910 20c: 80 1f 00 40 lwz r0,64(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
911 210: 81 3f 00 44 lwz r9,68(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
912 214: 81 7f 00 48 lwz r11,72(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
913 218: 90 1f 00 58 stw r0,88(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
914 21c: 91 3f 00 5c stw r9,92(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
915 220: 91 7f 00 60 stw r11,96(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
916 224: 80 1f 00 30 lwz r0,48(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
917 228: 81 3f 00 34 lwz r9,52(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
918 22c: 81 7f 00 38 lwz r11,56(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
919 230: 81 5f 00 3c lwz r10,60(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
920 234: 90 1f 00 68 stw r0,104(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
921 238: 91 3f 00 6c stw r9,108(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
922 23c: 91 7f 00 70 stw r11,112(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
923 240: 91 5f 00 74 stw r10,116(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
924 244: 80 1f 00 20 lwz r0,32(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
925 248: 81 3f 00 24 lwz r9,36(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
926 24c: 81 7f 00 28 lwz r11,40(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
927 250: 90 1f 00 78 stw r0,120(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
928 254: 91 3f 00 7c stw r9,124(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
929 258: 91 7f 00 80 stw r11,128(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
930 25c: 80 1f 00 10 lwz r0,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
931 260: 81 3f 00 14 lwz r9,20(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
932 264: 81 7f 00 18 lwz r11,24(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
933 268: 81 5f 00 1c lwz r10,28(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
934 26c: 90 1f 00 88 stw r0,136(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
935 270: 91 3f 00 8c stw r9,140(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
936 274: 91 7f 00 90 stw r11,144(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
937 278: 91 5f 00 94 stw r10,148(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
938 27c: 39 3f 00 58 addi r9,r31,88
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
939 280: 39 7f 00 68 addi r11,r31,104
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
940 284: 39 5f 00 78 addi r10,r31,120
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
941 288: 3b bf 00 88 addi r29,r31,136
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
942 28c: 38 00 00 0e li r0,14
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
943 290: 90 01 00 08 stw r0,8(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
944 294: 38 00 00 0f li r0,15
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
945 298: 90 01 00 0c stw r0,12(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
946 29c: 38 60 00 00 li r3,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
947 2a0: 38 80 00 01 li r4,1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
948 2a4: 7d 25 4b 78 mr r5,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
949 2a8: 7d 66 5b 78 mr r6,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
950 2ac: 38 e0 00 07 li r7,7
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
951 2b0: 39 00 00 08 li r8,8
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
952 2b4: 7d 49 53 78 mr r9,r10
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
953 2b8: 7f aa eb 78 mr r10,r29
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
954 2bc: 48 00 00 01 bl 2bc <main+0x158>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
955 2c0: 38 00 00 00 li r0,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
956 2c4: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
957 2c8: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
958 2cc: 80 0b 00 04 lwz r0,4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
959 2d0: 7c 08 03 a6 mtlr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
960 2d4: 83 ab ff f4 lwz r29,-12(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
961 2d8: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
962 2dc: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
963 2e0: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
964
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
965
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
966
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
967 ; ---------- returning qwords ---------->
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
968 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
969 ; long long f()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
970 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
971 ; return 7171LL;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
972 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
973 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
974 ; int main()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
975 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
976 ; return (int)f();
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
977 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
978
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
979
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
980
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
981 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
982
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
983 00000000 <f>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
984 0: 94 21 ff f0 stwu r1,-16(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
985 4: 93 e1 00 0c stw r31,12(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
986 8: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
987 c: 39 20 00 00 li r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
988 10: 39 40 1c 03 li r10,7171
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
989 14: 7d 23 4b 78 mr r3,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
990 18: 7d 44 53 78 mr r4,r10
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
991 1c: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
992 20: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
993 24: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
994 28: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
995
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
996 0000002c <main>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
997 2c: 94 21 ff f0 stwu r1,-16(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
998 30: 7c 08 02 a6 mflr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
999 34: 93 e1 00 0c stw r31,12(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1000 38: 90 01 00 14 stw r0,20(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1001 3c: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1002 40: 48 00 00 01 bl 40 <main+0x14>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1003 44: 7c 8a 23 78 mr r10,r4
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1004 48: 7c 69 1b 78 mr r9,r3
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1005 4c: 7d 40 53 78 mr r0,r10
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1006 50: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1007 54: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1008 58: 80 0b 00 04 lwz r0,4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1009 5c: 7c 08 03 a6 mtlr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1010 60: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1011 64: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1012 68: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1013
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1014
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1015 ; ---------- returning structs by value ---------->
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1016 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1017 ; struct Small { char x; };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1018 ; struct Big { long long i; long j; };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1019 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1020 ; struct Small f0()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1021 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1022 ; struct Small s = { 132 };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1023 ; return s;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1024 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1025 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1026 ; struct Big f1()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1027 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1028 ; struct Big b = { 7171LL, 232 };
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1029 ; return b;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1030 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1031 ;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1032 ; int main()
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1033 ; {
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1034 ; struct Small s = f0();
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1035 ; struct Big b = f1();
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1036 ; return b.j + s.x;
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1037 ; }
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1038
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1039
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1040
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1041 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1042
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1043 00000000 <f0>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1044 0: 94 21 ff e0 stwu r1,-32(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1045 4: 93 e1 00 1c stw r31,28(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1046 8: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1047 c: 7c 69 1b 78 mr r9,r3
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1048 10: 38 00 ff 84 li r0,-124
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1049 14: 98 1f 00 08 stb r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1050 18: 88 1f 00 08 lbz r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1051 1c: 98 09 00 00 stb r0,0(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1052 20: 7d 23 4b 78 mr r3,r9
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1053 24: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1054 28: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1055 2c: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1056 30: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1057
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1058 00000034 <f1>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1059 34: 94 21 ff e0 stwu r1,-32(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1060 38: 93 e1 00 1c stw r31,28(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1061 3c: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1062 40: 7c 6b 1b 78 mr r11,r3
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1063 44: 3d 20 00 00 lis r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1064 48: 39 29 00 00 addi r9,r9,0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1065 4c: 80 09 00 00 lwz r0,0(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1066 50: 81 49 00 04 lwz r10,4(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1067 54: 81 09 00 08 lwz r8,8(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1068 58: 81 29 00 0c lwz r9,12(r9)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1069 5c: 90 1f 00 08 stw r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1070 60: 91 5f 00 0c stw r10,12(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1071 64: 91 1f 00 10 stw r8,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1072 68: 91 3f 00 14 stw r9,20(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1073 6c: 80 1f 00 08 lwz r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1074 70: 81 3f 00 0c lwz r9,12(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1075 74: 81 5f 00 10 lwz r10,16(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1076 78: 81 1f 00 14 lwz r8,20(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1077 7c: 90 0b 00 00 stw r0,0(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1078 80: 91 2b 00 04 stw r9,4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1079 84: 91 4b 00 08 stw r10,8(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1080 88: 91 0b 00 0c stw r8,12(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1081 8c: 7d 63 5b 78 mr r3,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1082 90: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1083 94: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1084 98: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1085 9c: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1086
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1087 000000a0 <main>:
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1088 a0: 94 21 ff c0 stwu r1,-64(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1089 a4: 7c 08 02 a6 mflr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1090 a8: 93 e1 00 3c stw r31,60(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1091 ac: 90 01 00 44 stw r0,68(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1092 b0: 7c 3f 0b 78 mr r31,r1
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1093 b4: 38 1f 00 28 addi r0,r31,40
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1094 b8: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1095 bc: 4c c6 31 82 crclr 4*cr1+eq
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1096 c0: 48 00 00 01 bl c0 <main+0x20>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1097 c4: 88 1f 00 28 lbz r0,40(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1098 c8: 98 1f 00 08 stb r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1099 cc: 38 1f 00 10 addi r0,r31,16
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1100 d0: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1101 d4: 4c c6 31 82 crclr 4*cr1+eq
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1102 d8: 48 00 00 01 bl d8 <main+0x38>
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1103 dc: 81 3f 00 18 lwz r9,24(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1104 e0: 88 1f 00 08 lbz r0,8(r31)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1105 e4: 54 00 06 3e clrlwi r0,r0,24
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1106 e8: 7c 09 02 14 add r0,r9,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1107 ec: 7c 03 03 78 mr r3,r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1108 f0: 81 61 00 00 lwz r11,0(r1)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1109 f4: 80 0b 00 04 lwz r0,4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1110 f8: 7c 08 03 a6 mtlr r0
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1111 fc: 83 eb ff fc lwz r31,-4(r11)
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1112 100: 7d 61 5b 78 mr r1,r11
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1113 104: 4e 80 00 20 blr
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1114
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1115
ead041d93e36 - ppc doc and disas examples related to aggregates
Tassilo Philipp
parents: 361
diff changeset
1116
497
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1117 ; ---------- C++ trivial and non-trivial aggrs passed to C funcs ---------->
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1118 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1119 ; struct Trivial { int a; };
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1120 ; struct NonTrivial { int a; NonTrivial() : a(0) {} NonTrivial(const NonTrivial& rhs) : a(rhs.a) { } };
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1121 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1122 ; extern "C" {
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1123 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1124 ; void f1(struct Trivial s) { }
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1125 ; void f2(struct NonTrivial s) { }
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1126 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1127 ; void f()
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1128 ; {
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1129 ; struct Trivial t;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1130 ; struct NonTrivial n;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1131 ; int a=1;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1132 ; a += 123;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1133 ; f1(t);
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1134 ; a -= 123;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1135 ; f2(n);
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1136 ; a -= 12;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1137 ; }
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1138 ; }
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1139
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1140
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1141
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1142 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1143
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1144 100003e0 <f1>:
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1145 100003e0: 94 21 ff f0 stwu r1,-16(r1)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1146 100003e4: 93 e1 00 0c stw r31,12(r1)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1147 100003e8: 7c 3f 0b 78 mr r31,r1
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1148 100003ec: 81 61 00 00 lwz r11,0(r1)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1149 100003f0: 83 eb ff fc lwz r31,-4(r11)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1150 100003f4: 7d 61 5b 78 mr r1,r11
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1151 100003f8: 4e 80 00 20 blr
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1152
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1153 100003fc <f2>:
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1154 100003fc: 94 21 ff e0 stwu r1,-32(r1)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1155 10000400: 93 e1 00 1c stw r31,28(r1)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1156 10000404: 7c 3f 0b 78 mr r31,r1
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1157 10000408: 90 7f 00 08 stw r3,8(r31)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1158 1000040c: 81 61 00 00 lwz r11,0(r1)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1159 10000410: 83 eb ff fc lwz r31,-4(r11)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1160 10000414: 7d 61 5b 78 mr r1,r11
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1161 10000418: 4e 80 00 20 blr
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1162
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1163 1000041c <f>:
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1164 1000041c: 94 21 ff d0 stwu r1,-48(r1) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1165 10000420: 7c 08 02 a6 mflr r0 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1166 10000424: 93 e1 00 2c stw r31,44(r1) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1167 10000428: 90 01 00 34 stw r0,52(r1) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1168 1000042c: 7c 3f 0b 78 mr r31,r1 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1169 10000430: 38 1f 00 14 addi r0,r31,20 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1170 10000434: 7c 03 03 78 mr r3,r0 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1171 10000438: 48 00 00 a1 bl 100004d8 <_ZN10NonTrivialC1Ev> ; NonTrivial::NonTrivial() / ctor
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1172 1000043c: 38 00 00 01 li r0,1 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1173 10000440: 90 1f 00 08 stw r0,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1174 10000444: 81 3f 00 08 lwz r9,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1175 10000448: 38 09 00 7b addi r0,r9,123 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1176 1000044c: 90 1f 00 08 stw r0,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1177 10000450: 80 1f 00 10 lwz r0,16(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1178 10000454: 90 1f 00 18 stw r0,24(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1179 10000458: 38 1f 00 18 addi r0,r31,24 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1180 1000045c: 7c 03 03 78 mr r3,r0 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1181 10000460: 4b ff ff 81 bl 100003e0 <f1> ; call f1(struct Trivial)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1182 10000464: 81 3f 00 08 lwz r9,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1183 10000468: 38 09 ff 85 addi r0,r9,-123 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1184 1000046c: 90 1f 00 08 stw r0,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1185 10000470: 38 1f 00 0c addi r0,r31,12 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1186 10000474: 39 3f 00 14 addi r9,r31,20 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1187 10000478: 7c 03 03 78 mr r3,r0 ; | ptr to dest of copy of n
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1188 1000047c: 7d 24 4b 78 mr r4,r9 ; | copy n ptr to n
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1189 10000480: 48 00 00 85 bl 10000504 <_ZN10NonTrivialC1ERKS_> ; / NonTrivial::NonTrivial(const NonTrivial&) / copy ctor
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1190 10000484: 38 1f 00 0c addi r0,r31,12 ; \
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1191 10000488: 7c 03 03 78 mr r3,r0 ; | f2 arg 0 (ptr to copy of struct NonTrivial), via ptr as non-trivial
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1192 1000048c: 4b ff ff 71 bl 100003fc <f2> ; call f2(struct NonTrivial)
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1193 10000490: 81 3f 00 08 lwz r9,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1194 10000494: 38 09 ff f4 addi r0,r9,-12 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1195 10000498: 90 1f 00 08 stw r0,8(r31) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1196 1000049c: 81 61 00 00 lwz r11,0(r1) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1197 100004a0: 80 0b 00 04 lwz r0,4(r11) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1198 100004a4: 7c 08 03 a6 mtlr r0 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1199 100004a8: 83 eb ff fc lwz r31,-4(r11) ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1200 100004ac: 7d 61 5b 78 mr r1,r11 ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1201 100004b0: 4e 80 00 20 blr ;
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1202
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1203 ; ... snip, removed code of ctor and copy ctor ...
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1204
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1205
cb19b2fe2422 - more disas examples to check behaviour of passing C++ non-trivial aggregates by value; they all behave the same, calling the copy ctor first, passing a pointer then
Tassilo Philipp
parents: 473
diff changeset
1206
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
1207 ; vim: ft=asm68k
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
1208