Mercurial > pub > dyncall > dyncall
annotate doc/disas_examples/ppc.sysv.disas @ 613:3c3e321875f7
- adding helper target to cmake
author | Tassilo Philipp |
---|---|
date | Sat, 01 Oct 2022 16:03:25 +0200 |
parents | fc614cb865c6 |
children |
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 | 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 |
499
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1041 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2 (demonstrates LSB specifics about aggr return values) |
473
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>: |
499
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1044 0: 94 21 ff e0 stwu r1,-32(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1045 4: 93 e1 00 1c stw r31,28(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1046 8: 7c 3f 0b 78 mr r31,r1 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1047 c: 7c 69 1b 78 mr r9,r3 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1048 10: 38 00 ff 84 li r0,-124 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1049 14: 98 1f 00 08 stb r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1050 18: 88 1f 00 08 lbz r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1051 1c: 98 09 00 00 stb r0,0(r9) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1052 20: 7d 23 4b 78 mr r3,r9 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1053 24: 81 61 00 00 lwz r11,0(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1054 28: 83 eb ff fc lwz r31,-4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1055 2c: 7d 61 5b 78 mr r1,r11 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1056 30: 4e 80 00 20 blr ; |
473
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>: |
499
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1059 34: 94 21 ff e0 stwu r1,-32(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1060 38: 93 e1 00 1c stw r31,28(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1061 3c: 7c 3f 0b 78 mr r31,r1 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1062 40: 7c 6b 1b 78 mr r11,r3 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1063 44: 3d 20 00 00 lis r9,0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1064 48: 39 29 00 00 addi r9,r9,0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1065 4c: 80 09 00 00 lwz r0,0(r9) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1066 50: 81 49 00 04 lwz r10,4(r9) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1067 54: 81 09 00 08 lwz r8,8(r9) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1068 58: 81 29 00 0c lwz r9,12(r9) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1069 5c: 90 1f 00 08 stw r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1070 60: 91 5f 00 0c stw r10,12(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1071 64: 91 1f 00 10 stw r8,16(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1072 68: 91 3f 00 14 stw r9,20(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1073 6c: 80 1f 00 08 lwz r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1074 70: 81 3f 00 0c lwz r9,12(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1075 74: 81 5f 00 10 lwz r10,16(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1076 78: 81 1f 00 14 lwz r8,20(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1077 7c: 90 0b 00 00 stw r0,0(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1078 80: 91 2b 00 04 stw r9,4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1079 84: 91 4b 00 08 stw r10,8(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1080 88: 91 0b 00 0c stw r8,12(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1081 8c: 7d 63 5b 78 mr r3,r11 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1082 90: 81 61 00 00 lwz r11,0(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1083 94: 83 eb ff fc lwz r31,-4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1084 98: 7d 61 5b 78 mr r1,r11 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1085 9c: 4e 80 00 20 blr ; |
473
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>: |
499
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1088 a0: 94 21 ff c0 stwu r1,-64(r1) ; | open frame and store sp at top of stack |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1089 a4: 7c 08 02 a6 mflr r0 ; | lr -> gpr0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1090 a8: 93 e1 00 3c stw r31,60(r1) ; | prolog store gpr31 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1091 ac: 90 01 00 44 stw r0,68(r1) ; | store lr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1092 b0: 7c 3f 0b 78 mr r31,r1 ; / sp -> gpr31, latter used for some fixed addressing below |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1093 b4: 38 1f 00 28 addi r0,r31,40 ; \ |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1094 b8: 7c 03 03 78 mr r3,r0 ; | space to retval -> gpr3 (hidden arg) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1095 bc: 4c c6 31 82 crclr 4*cr1+eq ; : |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1096 c0: 48 00 00 01 bl c0 <main+0x20> ; call f0() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1097 c4: 88 1f 00 28 lbz r0,40(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1098 c8: 98 1f 00 08 stb r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1099 cc: 38 1f 00 10 addi r0,r31,16 ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1100 d0: 7c 03 03 78 mr r3,r0 ; | space to retval -> gpr3 (hidden arg) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1101 d4: 4c c6 31 82 crclr 4*cr1+eq ; : |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1102 d8: 48 00 00 01 bl d8 <main+0x38> ; call f1() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1103 dc: 81 3f 00 18 lwz r9,24(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1104 e0: 88 1f 00 08 lbz r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1105 e4: 54 00 06 3e clrlwi r0,r0,24 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1106 e8: 7c 09 02 14 add r0,r9,r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1107 ec: 7c 03 03 78 mr r3,r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1108 f0: 81 61 00 00 lwz r11,0(r1) ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1109 f4: 80 0b 00 04 lwz r0,4(r11) ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1110 f8: 7c 08 03 a6 mtlr r0 ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1111 fc: 83 eb ff fc lwz r31,-4(r11) ; | epilog |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1112 100: 7d 61 5b 78 mr r1,r11 ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1113 104: 4e 80 00 20 blr ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1114 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1115 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1116 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1117 ; output from netbsd-4.0.1-macppc w/ gcc 4.1.2 (demonstrates default (non-LSB) aggr return values) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1118 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1119 018007a0 <f0>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1120 18007a0: 94 21 ff d0 stwu r1,-48(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1121 18007a4: 93 e1 00 2c stw r31,44(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1122 18007a8: 7c 3f 0b 78 mr r31,r1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1123 18007ac: 38 00 ff 84 li r0,-124 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1124 18007b0: 98 1f 00 08 stb r0,8(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1125 18007b4: 88 1f 00 08 lbz r0,8(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1126 18007b8: 7c 03 03 78 mr r3,r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1127 18007bc: 81 61 00 00 lwz r11,0(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1128 18007c0: 83 eb ff fc lwz r31,-4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1129 18007c4: 7d 61 5b 78 mr r1,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1130 18007c8: 4e 80 00 20 blr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1131 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1132 018007cc <f1>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1133 18007cc: 94 21 ff d0 stwu r1,-48(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1134 18007d0: 93 e1 00 2c stw r31,44(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1135 18007d4: 7c 3f 0b 78 mr r31,r1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1136 18007d8: 7c 6b 1b 78 mr r11,r3 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1137 18007dc: 3d 20 01 80 lis r9,384 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1138 18007e0: 39 29 09 80 addi r9,r9,2432 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1139 18007e4: 80 09 00 00 lwz r0,0(r9) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1140 18007e8: 81 49 00 04 lwz r10,4(r9) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1141 18007ec: 81 09 00 08 lwz r8,8(r9) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1142 18007f0: 81 29 00 0c lwz r9,12(r9) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1143 18007f4: 90 1f 00 08 stw r0,8(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1144 18007f8: 91 5f 00 0c stw r10,12(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1145 18007fc: 91 1f 00 10 stw r8,16(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1146 1800800: 91 3f 00 14 stw r9,20(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1147 1800804: 80 1f 00 08 lwz r0,8(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1148 1800808: 81 3f 00 0c lwz r9,12(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1149 180080c: 81 5f 00 10 lwz r10,16(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1150 1800810: 81 1f 00 14 lwz r8,20(r31) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1151 1800814: 90 0b 00 00 stw r0,0(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1152 1800818: 91 2b 00 04 stw r9,4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1153 180081c: 91 4b 00 08 stw r10,8(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1154 1800820: 91 0b 00 0c stw r8,12(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1155 1800824: 7d 63 5b 78 mr r3,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1156 1800828: 81 61 00 00 lwz r11,0(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1157 180082c: 83 eb ff fc lwz r31,-4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1158 1800830: 7d 61 5b 78 mr r1,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1159 1800834: 4e 80 00 20 blr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1160 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1161 01800838 <main>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1162 1800838: 94 21 ff c0 stwu r1,-64(r1) ; | open frame and store sp at top of stack |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1163 180083c: 7c 08 02 a6 mflr r0 ; | lr -> gpr0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1164 1800840: 93 e1 00 3c stw r31,60(r1) ; | prolog store gpr31 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1165 1800844: 90 01 00 44 stw r0,68(r1) ; | store lr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1166 1800848: 7c 3f 0b 78 mr r31,r1 ; | sp -> gpr31, latter used for some fixed addressing below |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1167 180084c: 4b ff ff 55 bl 18007a0 <f0> ; call f0() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1168 1800850: 7c 60 1b 78 mr r0,r3 ; | NOTE: ret val is returned via gpr3 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1169 1800854: 98 1f 00 08 stb r0,8(r31) ; / ret val |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1170 1800858: 38 1f 00 10 addi r0,r31,16 ; \ |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1171 180085c: 7c 03 03 78 mr r3,r0 ; | space to retval -> gpr3 (hidden arg) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1172 1800860: 4c c6 31 82 crclr 4*cr1+eq ; : |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1173 1800864: 4b ff ff 69 bl 18007cc <f1> ; call f0() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1174 1800868: 81 3f 00 18 lwz r9,24(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1175 180086c: 88 1f 00 08 lbz r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1176 1800870: 54 00 06 3e clrlwi r0,r0,24 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1177 1800874: 7c 09 02 14 add r0,r9,r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1178 1800878: 7c 03 03 78 mr r3,r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1179 180087c: 81 61 00 00 lwz r11,0(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1180 1800880: 80 0b 00 04 lwz r0,4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1181 1800884: 7c 08 03 a6 mtlr r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1182 1800888: 83 eb ff fc lwz r31,-4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1183 180088c: 7d 61 5b 78 mr r1,r11 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1184 1800890: 4e 80 00 20 blr ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1185 1800894: 00 01 81 48 .long 0x18148 ; |
473
ead041d93e36
- ppc doc and disas examples related to aggregates
Tassilo Philipp
parents:
361
diff
changeset
|
1186 |
ead041d93e36
- ppc doc and disas examples related to aggregates
Tassilo Philipp
parents:
361
diff
changeset
|
1187 |
ead041d93e36
- ppc doc and disas examples related to aggregates
Tassilo Philipp
parents:
361
diff
changeset
|
1188 |
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
|
1189 ; ---------- 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
|
1190 ; |
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 ; 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
|
1192 ; 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
|
1193 ; |
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 ; 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
|
1195 ; |
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 ; 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
|
1197 ; 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
|
1198 ; |
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 ; 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
|
1200 ; { |
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 ; 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
|
1202 ; 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
|
1203 ; 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
|
1204 ; 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
|
1205 ; 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
|
1206 ; 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
|
1207 ; 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
|
1208 ; 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
|
1209 ; } |
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
|
1210 ; } |
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
|
1211 |
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
|
1212 |
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
|
1213 |
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
|
1214 ; 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
|
1215 |
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
|
1216 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
|
1217 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
|
1218 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
|
1219 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
|
1220 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
|
1221 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
|
1222 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
|
1223 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
|
1224 |
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
|
1225 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
|
1226 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
|
1227 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
|
1228 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
|
1229 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
|
1230 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
|
1231 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
|
1232 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
|
1233 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
|
1234 |
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
|
1235 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
|
1236 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
|
1237 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
|
1238 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
|
1239 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
|
1240 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
|
1241 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
|
1242 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
|
1243 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
|
1244 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
|
1245 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
|
1246 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
|
1247 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
|
1248 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
|
1249 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
|
1250 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
|
1251 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
|
1252 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
|
1253 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
|
1254 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
|
1255 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
|
1256 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
|
1257 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
|
1258 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
|
1259 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
|
1260 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
|
1261 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
|
1262 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
|
1263 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
|
1264 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
|
1265 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
|
1266 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
|
1267 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
|
1268 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
|
1269 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
|
1270 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
|
1271 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
|
1272 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
|
1273 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
|
1274 |
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
|
1275 ; ... 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
|
1276 |
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
|
1277 |
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
|
1278 |
499
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1279 ; ---------- C++ trivial and non-trivial aggrs as return values ----------> |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1280 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1281 ; struct Trivial { int a; }; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1282 ; struct NonTrivial { int a; NonTrivial() : a(0) {} NonTrivial(const NonTrivial& rhs) : a(rhs.a) { } }; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1283 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1284 ; extern "C" { |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1285 ; struct Trivial f1() { return Trivial(); } |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1286 ; } |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1287 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1288 ; struct NonTrivial f2() { return NonTrivial(); } |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1289 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1290 ; extern "C" { |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1291 ; void f() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1292 ; { |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1293 ; int a=1; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1294 ; a += 123; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1295 ; struct Trivial t = f1(); |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1296 ; a -= 123; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1297 ; struct NonTrivial n = f2(); |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1298 ; a -= 12; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1299 ; } |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1300 ; } |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1301 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1302 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1303 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1304 ; output from debian-4.1.1-21-ppc w/ gcc 4.1.2 (demonstrates LSB specifics about aggr return values) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1305 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1306 100003e0 <f1>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1307 100003e0: 94 21 ff f0 stwu r1,-16(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1308 100003e4: 93 e1 00 0c stw r31,12(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1309 100003e8: 7c 3f 0b 78 mr r31,r1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1310 100003ec: 7c 69 1b 78 mr r9,r3 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1311 100003f0: 38 00 00 00 li r0,0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1312 100003f4: 90 09 00 00 stw r0,0(r9) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1313 100003f8: 7d 23 4b 78 mr r3,r9 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1314 100003fc: 81 61 00 00 lwz r11,0(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1315 10000400: 83 eb ff fc lwz r31,-4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1316 10000404: 7d 61 5b 78 mr r1,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1317 10000408: 4e 80 00 20 blr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1318 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1319 1000040c <_Z2f2v>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1320 1000040c: 94 21 ff e0 stwu r1,-32(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1321 10000410: 7c 08 02 a6 mflr r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1322 10000414: 93 a1 00 14 stw r29,20(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1323 10000418: 93 e1 00 1c stw r31,28(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1324 1000041c: 90 01 00 24 stw r0,36(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1325 10000420: 7c 3f 0b 78 mr r31,r1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1326 10000424: 7c 7d 1b 78 mr r29,r3 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1327 10000428: 7f a0 eb 78 mr r0,r29 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1328 1000042c: 7c 03 03 78 mr r3,r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1329 10000430: 48 00 00 d5 bl 10000504 <_ZN10NonTrivialC1Ev> |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1330 10000434: 7f a3 eb 78 mr r3,r29 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1331 10000438: 81 61 00 00 lwz r11,0(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1332 1000043c: 80 0b 00 04 lwz r0,4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1333 10000440: 7c 08 03 a6 mtlr r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1334 10000444: 83 ab ff f4 lwz r29,-12(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1335 10000448: 83 eb ff fc lwz r31,-4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1336 1000044c: 7d 61 5b 78 mr r1,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1337 10000450: 4e 80 00 20 blr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1338 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1339 10000454 <f>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1340 10000454: 94 21 ff d0 stwu r1,-48(r1) ; | open frame and store sp at top of stack |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1341 10000458: 7c 08 02 a6 mflr r0 ; | lr -> gpr0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1342 1000045c: 93 e1 00 2c stw r31,44(r1) ; | prolog store gpr31 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1343 10000460: 90 01 00 34 stw r0,52(r1) ; | store lr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1344 10000464: 7c 3f 0b 78 mr r31,r1 ; / sp -> gpr31, latter used for some fixed addressing below |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1345 10000468: 38 00 00 01 li r0,1 ; \ a = 1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1346 1000046c: 90 1f 00 08 stw r0,8(r31) ; / |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1347 10000470: 81 3f 00 08 lwz r9,8(r31) ; \ |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1348 10000474: 38 09 00 7b addi r0,r9,123 ; | a += 123 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1349 10000478: 90 1f 00 08 stw r0,8(r31) ; / |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1350 1000047c: 38 1f 00 18 addi r0,r31,24 ; \ |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1351 10000480: 7c 03 03 78 mr r3,r0 ; | space to retval -> gpr3 (hidden arg); NOTE: this follows the LSB definition |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1352 10000484: 4b ff ff 5d bl 100003e0 <f1> ; call f1() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1353 10000488: 80 1f 00 18 lwz r0,24(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1354 1000048c: 90 1f 00 0c stw r0,12(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1355 10000490: 81 3f 00 08 lwz r9,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1356 10000494: 38 09 ff 85 addi r0,r9,-123 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1357 10000498: 90 1f 00 08 stw r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1358 1000049c: 38 1f 00 10 addi r0,r31,16 ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1359 100004a0: 7c 03 03 78 mr r3,r0 ; | hidden first arg (ptr to space to hold NonTrivial retval), via ptr as non-trivial |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1360 100004a4: 4b ff ff 69 bl 1000040c <_Z2f2v> ; call f2() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1361 100004a8: 81 3f 00 08 lwz r9,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1362 100004ac: 38 09 ff f4 addi r0,r9,-12 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1363 100004b0: 90 1f 00 08 stw r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1364 100004b4: 81 61 00 00 lwz r11,0(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1365 100004b8: 80 0b 00 04 lwz r0,4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1366 100004bc: 7c 08 03 a6 mtlr r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1367 100004c0: 83 eb ff fc lwz r31,-4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1368 100004c4: 7d 61 5b 78 mr r1,r11 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1369 100004c8: 4e 80 00 20 blr ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1370 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1371 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1372 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1373 ; output from netbsd-4.0.1-macppc w/ gcc 4.1.2 (demonstrates default (non-LSB) aggr return values) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1374 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1375 01800840 <f1>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1376 1800840: 94 21 ff e0 stwu r1,-32(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1377 1800844: 93 e1 00 1c stw r31,28(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1378 1800848: 7c 3f 0b 78 mr r31,r1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1379 180084c: 38 00 00 00 li r0,0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1380 1800850: 7c 03 03 78 mr r3,r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1381 1800854: 81 61 00 00 lwz r11,0(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1382 1800858: 83 eb ff fc lwz r31,-4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1383 180085c: 7d 61 5b 78 mr r1,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1384 1800860: 4e 80 00 20 blr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1385 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1386 01800864 <_Z2f2v>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1387 1800864: 94 21 ff e0 stwu r1,-32(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1388 1800868: 7c 08 02 a6 mflr r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1389 180086c: 93 a1 00 14 stw r29,20(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1390 1800870: 93 e1 00 1c stw r31,28(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1391 1800874: 90 01 00 24 stw r0,36(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1392 1800878: 7c 3f 0b 78 mr r31,r1 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1393 180087c: 7c 7d 1b 78 mr r29,r3 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1394 1800880: 7f a0 eb 78 mr r0,r29 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1395 1800884: 7c 03 03 78 mr r3,r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1396 1800888: 48 00 00 cd bl 1800954 <_ZN10NonTrivialC1Ev> |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1397 180088c: 7f a3 eb 78 mr r3,r29 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1398 1800890: 81 61 00 00 lwz r11,0(r1) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1399 1800894: 80 0b 00 04 lwz r0,4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1400 1800898: 7c 08 03 a6 mtlr r0 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1401 180089c: 83 ab ff f4 lwz r29,-12(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1402 18008a0: 83 eb ff fc lwz r31,-4(r11) |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1403 18008a4: 7d 61 5b 78 mr r1,r11 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1404 18008a8: 4e 80 00 20 blr |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1405 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1406 018008ac <f>: |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1407 18008ac: 94 21 ff d0 stwu r1,-48(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1408 18008b0: 7c 08 02 a6 mflr r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1409 18008b4: 93 e1 00 2c stw r31,44(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1410 18008b8: 90 01 00 34 stw r0,52(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1411 18008bc: 7c 3f 0b 78 mr r31,r1 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1412 18008c0: 38 00 00 01 li r0,1 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1413 18008c4: 90 1f 00 08 stw r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1414 18008c8: 81 3f 00 08 lwz r9,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1415 18008cc: 38 09 00 7b addi r0,r9,123 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1416 18008d0: 90 1f 00 08 stw r0,8(r31) ; NOTE: no hidden param in contrast to LSB version of callconv |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1417 18008d4: 4b ff ff 6d bl 1800840 <f1> ; call f1() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1418 18008d8: 7c 60 1b 78 mr r0,r3 ; | NOTE: ret val is returned via gpr3 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1419 18008dc: 90 1f 00 0c stw r0,12(r31) ; / ret val |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1420 18008e0: 81 3f 00 08 lwz r9,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1421 18008e4: 38 09 ff 85 addi r0,r9,-123 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1422 18008e8: 90 1f 00 08 stw r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1423 18008ec: 38 1f 00 10 addi r0,r31,16 ; | |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1424 18008f0: 7c 03 03 78 mr r3,r0 ; | hidden first arg (ptr to space to hold NonTrivial retval), via ptr as non-trivial |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1425 18008f4: 4b ff ff 71 bl 1800864 <_Z2f2v> ; call f2() |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1426 18008f8: 81 3f 00 08 lwz r9,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1427 18008fc: 38 09 ff f4 addi r0,r9,-12 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1428 1800900: 90 1f 00 08 stw r0,8(r31) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1429 1800904: 81 61 00 00 lwz r11,0(r1) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1430 1800908: 80 0b 00 04 lwz r0,4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1431 180090c: 7c 08 03 a6 mtlr r0 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1432 1800910: 83 eb ff fc lwz r31,-4(r11) ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1433 1800914: 7d 61 5b 78 mr r1,r11 ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1434 1800918: 4e 80 00 20 blr ; |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1435 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1436 |
fc614cb865c6
- doc and disasexample additions specific to non-trivial C++ aggregates as return values (incl. fixes to doc and additional LSB specific PPC32 section)
Tassilo Philipp
parents:
497
diff
changeset
|
1437 |
327
c0390dc85a07
- doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff
changeset
|
1438 ; vim: ft=asm68k |
c0390dc85a07
- doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff
changeset
|
1439 |