-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsource.py.s
221 lines (213 loc) · 4.56 KB
/
source.py.s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
.section __TEXT,__text,regular,pure_instructions
.build_version macos, 15, 0
.globl _main ; -- Begin function main
.p2align 2
_main: ; @main
.cfi_startproc
; %bb.0: ; %entry
sub sp, sp, #64
stp x22, x21, [sp, #16] ; 16-byte Folded Spill
stp x20, x19, [sp, #32] ; 16-byte Folded Spill
stp x29, x30, [sp, #48] ; 16-byte Folded Spill
.cfi_def_cfa_offset 64
.cfi_offset w30, -8
.cfi_offset w29, -16
.cfi_offset w19, -24
.cfi_offset w20, -32
.cfi_offset w21, -40
.cfi_offset w22, -48
bl _GC_init
bl _PyObject_InitSystem
Lloh0:
adrp x0, l_.str.0@PAGE
Lloh1:
add x0, x0, l_.str.0@PAGEOFF
bl _PyUnicode_FromString
bl _print
Lloh2:
adrp x21, _Py_None@GOTPAGE
Lloh3:
ldr x21, [x21, _Py_None@GOTPAGEOFF]
ldr x19, [x21]
mov x0, x19
bl _Py_INCREF
mov x0, x19
bl _Py_DECREF
mov w0, #6 ; =0x6
bl _PyList_New
mov x19, x0
mov w0, wzr
bl _PyInt_FromI32
mov x20, x0
bl _Py_INCREF
mov x0, x19
mov x1, xzr
mov x2, x20
bl _PyList_SetItem
mov w0, #1 ; =0x1
bl _PyInt_FromI32
mov x20, x0
bl _Py_INCREF
mov x0, x19
mov w1, #1 ; =0x1
mov x2, x20
bl _PyList_SetItem
mov w0, #2 ; =0x2
bl _PyInt_FromI32
mov x20, x0
bl _Py_INCREF
mov x0, x19
mov w1, #2 ; =0x2
mov x2, x20
bl _PyList_SetItem
Lloh4:
adrp x0, l_.str.1@PAGE
Lloh5:
add x0, x0, l_.str.1@PAGEOFF
bl _PyUnicode_FromString
mov x20, x0
bl _Py_INCREF
mov x0, x19
mov w1, #3 ; =0x3
mov x2, x20
bl _PyList_SetItem
Lloh6:
adrp x0, l_.str.2@PAGE
Lloh7:
add x0, x0, l_.str.2@PAGEOFF
bl _PyUnicode_FromString
mov x20, x0
bl _Py_INCREF
mov x0, x19
mov w1, #4 ; =0x4
mov x2, x20
bl _PyList_SetItem
Lloh8:
adrp x0, l_.str.3@PAGE
Lloh9:
add x0, x0, l_.str.3@PAGEOFF
bl _PyUnicode_FromString
mov x20, x0
bl _Py_INCREF
mov x0, x19
mov w1, #5 ; =0x5
mov x2, x20
bl _PyList_SetItem
mov x0, x19
str x19, [sp, #8]
bl _Py_INCREF
bl _PyDict_New
mov x19, x0
Lloh10:
adrp x0, l_.str.4@PAGE
Lloh11:
add x0, x0, l_.str.4@PAGEOFF
bl _PyUnicode_FromString
mov x20, x0
mov w0, #1 ; =0x1
bl _PyInt_FromI32
mov x2, x0
mov x0, x19
mov x1, x20
bl _PyDict_SetItem
Lloh12:
adrp x0, l_.str.5@PAGE
Lloh13:
add x0, x0, l_.str.5@PAGEOFF
bl _PyUnicode_FromString
mov x20, x0
mov w0, #2 ; =0x2
bl _PyInt_FromI32
mov x2, x0
mov x0, x19
mov x1, x20
bl _PyDict_SetItem
Lloh14:
adrp x0, l_.str.6@PAGE
Lloh15:
add x0, x0, l_.str.6@PAGEOFF
bl _PyUnicode_FromString
mov x20, x0
mov w0, #3 ; =0x3
bl _PyInt_FromI32
mov x2, x0
mov x0, x19
mov x1, x20
bl _PyDict_SetItem
mov x0, x19
str x19, [sp]
bl _Py_INCREF
add x0, sp, #8
bl _Py_INCREF
add x0, sp, #8
mov w1, #3 ; =0x3
bl _PyList_GetItem
mov x19, x0
bl _Py_INCREF
mov x0, x19
bl _PyObject_Str
bl _print
ldr x19, [x21]
mov x0, x19
bl _Py_INCREF
mov x0, x19
bl _Py_DECREF
mov x0, sp
bl _Py_INCREF
Lloh16:
adrp x0, l_.str.7@PAGE
Lloh17:
add x0, x0, l_.str.7@PAGEOFF
bl _PyUnicode_FromString
mov x19, x0
mov x0, sp
mov x1, x19
bl _PyDict_GetItem
mov x20, x0
mov x0, x19
bl _Py_DECREF
mov x0, x20
bl _Py_INCREF
mov x0, x20
bl _PyObject_Str
bl _print
ldr x19, [x21]
mov x0, x19
bl _Py_INCREF
mov x0, x19
bl _Py_DECREF
ldp x29, x30, [sp, #48] ; 16-byte Folded Reload
mov w0, wzr
ldp x20, x19, [sp, #32] ; 16-byte Folded Reload
ldp x22, x21, [sp, #16] ; 16-byte Folded Reload
add sp, sp, #64
ret
.loh AdrpAdd Lloh16, Lloh17
.loh AdrpAdd Lloh14, Lloh15
.loh AdrpAdd Lloh12, Lloh13
.loh AdrpAdd Lloh10, Lloh11
.loh AdrpAdd Lloh8, Lloh9
.loh AdrpAdd Lloh6, Lloh7
.loh AdrpAdd Lloh4, Lloh5
.loh AdrpLdrGot Lloh2, Lloh3
.loh AdrpAdd Lloh0, Lloh1
.cfi_endproc
; -- End function
.section __TEXT,__cstring,cstring_literals
l_.str.0: ; @.str.0
.asciz "Hello, world!"
l_.str.1: ; @.str.1
.asciz "a"
l_.str.2: ; @.str.2
.asciz "b"
l_.str.3: ; @.str.3
.asciz "c"
l_.str.4: ; @.str.4
.asciz "key1"
l_.str.5: ; @.str.5
.asciz "key2"
l_.str.6: ; @.str.6
.asciz "key3"
l_.str.7: ; @.str.7
.asciz "key1"
.subsections_via_symbols