annotate doc/disas_examples/arm.darwin_arm.disas @ 351:6b37ccbb2f91

Added tag r1.1-RC4 for changeset 127fe78cb7dd
author Tassilo Philipp
date Fri, 10 Jan 2020 13:29:49 +0100
parents c0390dc85a07
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
327
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
1 ; void leaf_call(int 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
2 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
3 ; }
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 ; 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
6 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
7 ; /* use some local data */
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
8 ; char x = 'L';
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
9 ; 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
10 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
11 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
12 ; int main()
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 ; 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
15 ; return 0;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
16 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
17
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
18
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
19
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
20 ; output from iOS 6 w/ clang 3.7.1, dumped with llvm-objdump -triple armv7-unknown-unknown-macho ...
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 _leaf_call:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
23 0: 80 40 2d e9 push {r7, lr}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
24 4: 0d 70 a0 e1 mov r7, sp
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
25 8: 1c d0 4d e2 sub sp, sp, #28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
26 c: 10 90 97 e5 ldr r9, [r7, #16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
27 10: 0c c0 97 e5 ldr r12, [r7, #12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
28 14: 08 e0 97 e5 ldr lr, [r7, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
29 18: 04 00 07 e5 str r0, [r7, #-4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
30 1c: 08 10 07 e5 str r1, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
31 20: 0c 20 07 e5 str r2, [r7, #-12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
32 24: 0c 30 8d e5 str r3, [sp, #12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
33 28: 08 e0 8d e5 str lr, [sp, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
34 2c: 04 c0 8d e5 str r12, [sp, #4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
35 30: 00 90 8d e5 str r9, [sp]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
36 34: 07 d0 a0 e1 mov sp, r7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
37 38: 80 80 bd e8 pop {r7, pc}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
38
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
39 _nonleaf_call:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
40 3c: b0 40 2d e9 push {r4, r5, r7, lr} ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
41 40: 08 70 8d e2 add r7, sp, #8 ; | prolog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
42 44: 30 d0 4d e2 sub sp, sp, #48 ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
43 48: 14 90 97 e5 ldr r9, [r7, #20] ; \
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
44 4c: 10 c0 97 e5 ldr r12, [r7, #16] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
45 50: 0c e0 97 e5 ldr lr, [r7, #12] ; | in args 4,5,6,7 from prev frame's param area -> regs ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
46 54: 08 40 97 e5 ldr r4, [r7, #8] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
47 58: 4c 50 00 e3 movw r5, #76 ; 'L' -> r5
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
48 5c: 0c 00 07 e5 str r0, [r7, #-12] ; in arg 0 -> temp space in local area
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
49 60: 10 10 07 e5 str r1, [r7, #-16] ; in arg 1 -> temp space in local area
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
50 64: 14 20 07 e5 str r2, [r7, #-20] ; in arg 2 -> temp space in local area
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
51 68: 18 30 07 e5 str r3, [r7, #-24] ; in arg 3 -> temp space in local area
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
52 6c: 1c 40 8d e5 str r4, [sp, #28] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
53 70: 18 e0 8d e5 str lr, [sp, #24] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
54 74: 14 c0 8d e5 str r12, [sp, #20] ; | ... in args 4,5,6,7 in regs -> local area ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
55 78: 10 90 8d e5 str r9, [sp, #16] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
56 7c: 0f 50 cd e5 strb r5, [sp, #15] ; 'L' (in r5) -> local area
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
57 80: 10 00 17 e5 ldr r0, [r7, #-16] ; arg 0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
58 84: 14 10 17 e5 ldr r1, [r7, #-20] ; arg 1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
59 88: 18 20 17 e5 ldr r2, [r7, #-24] ; arg 2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
60 8c: 1c 30 9d e5 ldr r3, [sp, #28] ; arg 3 (fetched from local area previously copied to)
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
61 90: 18 90 9d e5 ldr r9, [sp, #24] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
62 94: 14 c0 9d e5 ldr r12, [sp, #20] ; | args 4,5,6 (fetched from local area previously copied to) -> regs, and ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
63 98: 10 e0 9d e5 ldr lr, [sp, #16] ; /
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
64 9c: 00 90 8d e5 str r9, [sp] ; \
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
65 a0: 04 c0 8d e5 str r12, [sp, #4] ; | ... "pushed" onto stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
66 a4: 08 e0 8d e5 str lr, [sp, #8] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
67 a8: d4 ff ff eb bl #-176 <_leaf_call> ; return address -> r14/lr, and call
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
68 ac: 08 d0 47 e2 sub sp, r7, #8 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
69 b0: b0 80 bd e8 pop {r4, r5, r7, pc} ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
70
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
71 _main:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
72 b4: 90 40 2d e9 push {r4, r7, lr} ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
73 b8: 04 70 8d e2 add r7, sp, #4 ; | prolog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
74 bc: 14 d0 4d e2 sub sp, sp, #20 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
75 c0: 00 00 00 e3 movw r0, #0 ; arg 0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
76 c4: 01 10 00 e3 movw r1, #1 ; arg 1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
77 c8: 02 20 00 e3 movw r2, #2 ; arg 2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
78 cc: 03 30 00 e3 movw r3, #3 ; arg 3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
79 d0: 04 90 00 e3 movw r9, #4 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
80 d4: 05 c0 00 e3 movw r12, #5 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
81 d8: 06 e0 00 e3 movw lr, #6 ; | args 4,5,6,7 in regs ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
82 dc: 07 40 00 e3 movw r4, #7 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
83 e0: 08 00 07 e5 str r0, [r7, #-8] ; unsure... why place arg 0 in local area? @@@
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
84 e4: 00 90 8d e5 str r9, [sp] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
85 e8: 04 c0 8d e5 str r12, [sp, #4] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
86 ec: 08 e0 8d e5 str lr, [sp, #8] ; | ... "push" args 4,5,6,7 onto stack
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
87 f0: 0c 40 8d e5 str r4, [sp, #12] ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
88 f4: d0 ff ff eb bl #-192 <_nonleaf_call> ; return address -> r14/lr, and call
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
89 f8: 00 00 00 e3 movw r0, #0 ; return value
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
90 fc: 04 d0 47 e2 sub sp, r7, #4 ; |
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
91 100: 90 80 bd e8 pop {r4, r7, pc} ; | epilog
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
92
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
93
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
94
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
95 ; ----------------- with spilling ------------->
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
96
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
97 ; #include <stdarg.h>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
98 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
99 ; 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
100 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
101 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
102 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
103 ; void nonleaf_call(int a, ...)
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 ; int 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
106 ; va_list ap;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
107 ; va_start(ap,a);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
108 ; b = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
109 ; c = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
110 ; d = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
111 ; e = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
112 ; f = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
113 ; g = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
114 ; h = va_arg(ap,int);
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
115 ; /* use some local data */
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
116 ; char x = 'L';
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
117 ; 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
118 ; }
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
119 ;
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
120 ; int main()
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
121 ; {
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
122 ; 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
123 ; return 0;
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
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
126
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
127
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
128 ; output from iOS 6 w/ clang 3.7.1, dumped with llvm-objdump -triple armv7-unknown-unknown-macho ...
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
129
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
130 _leaf_call:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
131 0: 80 40 2d e9 push {r7, lr}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
132 4: 0d 70 a0 e1 mov r7, sp
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
133 8: 1c d0 4d e2 sub sp, sp, #28
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
134 c: 10 90 97 e5 ldr r9, [r7, #16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
135 10: 0c c0 97 e5 ldr r12, [r7, #12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
136 14: 08 e0 97 e5 ldr lr, [r7, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
137 18: 04 00 07 e5 str r0, [r7, #-4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
138 1c: 08 10 07 e5 str r1, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
139 20: 0c 20 07 e5 str r2, [r7, #-12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
140 24: 0c 30 8d e5 str r3, [sp, #12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
141 28: 08 e0 8d e5 str lr, [sp, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
142 2c: 04 c0 8d e5 str r12, [sp, #4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
143 30: 00 90 8d e5 str r9, [sp]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
144 34: 07 d0 a0 e1 mov sp, r7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
145 38: 80 80 bd e8 pop {r7, pc}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
146
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
147 _nonleaf_call:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
148 3c: 0c d0 4d e2 sub sp, sp, #12
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
149 40: 80 40 2d e9 push {r7, lr}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
150 44: 0d 70 a0 e1 mov r7, sp
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
151 48: 34 d0 4d e2 sub sp, sp, #52
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
152 4c: 10 30 87 e5 str r3, [r7, #16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
153 50: 0c 20 87 e5 str r2, [r7, #12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
154 54: 08 10 87 e5 str r1, [r7, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
155 58: 4c 10 00 e3 movw r1, #76
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
156 5c: 08 20 47 e2 sub r2, r7, #8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
157 60: 04 00 07 e5 str r0, [r7, #-4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
158 64: 08 00 87 e2 add r0, r7, #8
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
159 68: 00 00 82 e5 str r0, [r2]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
160 6c: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
161 70: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
162 74: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
163 78: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
164 7c: 0c 00 07 e5 str r0, [r7, #-12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
165 80: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
166 84: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
167 88: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
168 8c: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
169 90: 10 00 07 e5 str r0, [r7, #-16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
170 94: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
171 98: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
172 9c: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
173 a0: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
174 a4: 14 00 07 e5 str r0, [r7, #-20]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
175 a8: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
176 ac: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
177 b0: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
178 b4: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
179 b8: 18 00 07 e5 str r0, [r7, #-24]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
180 bc: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
181 c0: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
182 c4: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
183 c8: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
184 cc: 18 00 8d e5 str r0, [sp, #24]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
185 d0: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
186 d4: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
187 d8: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
188 dc: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
189 e0: 14 00 8d e5 str r0, [sp, #20]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
190 e4: 08 00 17 e5 ldr r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
191 e8: 04 20 80 e2 add r2, r0, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
192 ec: 08 20 07 e5 str r2, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
193 f0: 00 00 90 e5 ldr r0, [r0]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
194 f4: 10 00 8d e5 str r0, [sp, #16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
195 f8: 0f 10 cd e5 strb r1, [sp, #15]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
196 fc: 0c 00 17 e5 ldr r0, [r7, #-12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
197 100: 10 10 17 e5 ldr r1, [r7, #-16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
198 104: 14 20 17 e5 ldr r2, [r7, #-20]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
199 108: 18 30 17 e5 ldr r3, [r7, #-24]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
200 10c: 18 90 9d e5 ldr r9, [sp, #24]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
201 110: 14 c0 9d e5 ldr r12, [sp, #20]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
202 114: 10 e0 9d e5 ldr lr, [sp, #16]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
203 118: 00 90 8d e5 str r9, [sp]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
204 11c: 04 c0 8d e5 str r12, [sp, #4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
205 120: 08 e0 8d e5 str lr, [sp, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
206 124: b5 ff ff eb bl #-300 <_leaf_call>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
207 128: 07 d0 a0 e1 mov sp, r7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
208 12c: 80 40 bd e8 pop {r7, lr}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
209 130: 0c d0 8d e2 add sp, sp, #12
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
210 134: 1e ff 2f e1 bx lr
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
211
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
212 _main:
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
213 138: 90 40 2d e9 push {r4, r7, lr}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
214 13c: 04 70 8d e2 add r7, sp, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
215 140: 14 d0 4d e2 sub sp, sp, #20
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
216 144: 00 00 00 e3 movw r0, #0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
217 148: 01 10 00 e3 movw r1, #1
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
218 14c: 02 20 00 e3 movw r2, #2
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
219 150: 03 30 00 e3 movw r3, #3
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
220 154: 04 90 00 e3 movw r9, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
221 158: 05 c0 00 e3 movw r12, #5
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
222 15c: 06 e0 00 e3 movw lr, #6
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
223 160: 07 40 00 e3 movw r4, #7
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
224 164: 08 00 07 e5 str r0, [r7, #-8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
225 168: 00 90 8d e5 str r9, [sp]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
226 16c: 04 c0 8d e5 str r12, [sp, #4]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
227 170: 08 e0 8d e5 str lr, [sp, #8]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
228 174: 0c 40 8d e5 str r4, [sp, #12]
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
229 178: af ff ff eb bl #-324 <_nonleaf_call>
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
230 17c: 00 00 00 e3 movw r0, #0
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
231 180: 04 d0 47 e2 sub sp, r7, #4
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
232 184: 90 80 bd e8 pop {r4, r7, pc}
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
233
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
234 ; vim: ft=asm68k
c0390dc85a07 - doc: added disassembly examples for many platforms and calling conventions, for reference
Tassilo Philipp
parents:
diff changeset
235