clarify the purpose of this project
[nyanglibc.git] / crypt / crypt.v.s
blobf619906a12f830d5d2f5717801f6fa0426ff5975
1 .file "crypt.c"
2 # GNU C11 (GCC) version 7.3.0 (x86_64-nyan-linux-gnu)
3 # compiled by GNU C version 7.3.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none
4 # GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
5 # options passed: -I ../include
6 # -I /root/wip/nyanglibc/builds/0/nyanglibc/build/crypt
7 # -I /root/wip/nyanglibc/builds/0/nyanglibc/build
8 # -I ../sysdeps/unix/sysv/linux/x86_64/64
9 # -I ../sysdeps/unix/sysv/linux/x86_64
10 # -I ../sysdeps/unix/sysv/linux/x86/include
11 # -I ../sysdeps/unix/sysv/linux/x86 -I ../sysdeps/x86/nptl
12 # -I ../sysdeps/unix/sysv/linux/wordsize-64 -I ../sysdeps/x86_64/nptl
13 # -I ../sysdeps/unix/sysv/linux/include -I ../sysdeps/unix/sysv/linux
14 # -I ../sysdeps/nptl -I ../sysdeps/pthread -I ../sysdeps/gnu
15 # -I ../sysdeps/unix/inet -I ../sysdeps/unix/sysv -I ../sysdeps/unix/x86_64
16 # -I ../sysdeps/unix -I ../sysdeps/posix -I ../sysdeps/x86_64/64
17 # -I ../sysdeps/x86_64/fpu -I ../sysdeps/x86/fpu -I ../sysdeps/x86_64
18 # -I ../sysdeps/x86/include -I ../sysdeps/x86
19 # -I ../sysdeps/ieee754/float128 -I ../sysdeps/ieee754/ldbl-96/include
20 # -I ../sysdeps/ieee754/ldbl-96 -I ../sysdeps/ieee754/dbl-64
21 # -I ../sysdeps/ieee754/flt-32 -I ../sysdeps/wordsize-64
22 # -I ../sysdeps/ieee754 -I ../sysdeps/generic -I .. -I ../libio -I .
23 # -MD /run/asm/crypt/crypt.v.d -MF /run/asm/crypt/crypt.o.dt -MP
24 # -MT /run/asm/crypt/.o -D _LIBC_REENTRANT -D MODULE_NAME=libcrypt -D PIC
25 # -D TOP_NAMESPACE=glibc
26 # -include /root/wip/nyanglibc/builds/0/nyanglibc/build/libc-modules.h
27 # -include ../include/libc-symbols.h crypt.c -mtune=generic -march=x86-64
28 # -auxbase-strip /run/asm/crypt/crypt.v.s -O2 -Wall -Wwrite-strings -Wundef
29 # -Werror -Wstrict-prototypes -Wold-style-definition -std=gnu11
30 # -fverbose-asm -fgnu89-inline -fmerge-all-constants -frounding-math
31 # -fno-stack-protector -fmath-errno -fpie -ftls-model=initial-exec
32 # options enabled: -faggressive-loop-optimizations -falign-labels
33 # -fasynchronous-unwind-tables -fauto-inc-dec -fbranch-count-reg
34 # -fcaller-saves -fchkp-check-incomplete-type -fchkp-check-read
35 # -fchkp-check-write -fchkp-instrument-calls -fchkp-narrow-bounds
36 # -fchkp-optimize -fchkp-store-bounds -fchkp-use-static-bounds
37 # -fchkp-use-static-const-bounds -fchkp-use-wrappers -fcode-hoisting
38 # -fcombine-stack-adjustments -fcommon -fcompare-elim -fcprop-registers
39 # -fcrossjumping -fcse-follow-jumps -fdefer-pop
40 # -fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
41 # -fdwarf2-cfi-asm -fearly-inlining -feliminate-unused-debug-types
42 # -fexpensive-optimizations -fforward-propagate -ffp-int-builtin-inexact
43 # -ffunction-cse -fgcse -fgcse-lm -fgnu-runtime -fgnu-unique
44 # -fguess-branch-probability -fhoist-adjacent-loads -fident -fif-conversion
45 # -fif-conversion2 -findirect-inlining -finline -finline-atomics
46 # -finline-functions-called-once -finline-small-functions -fipa-bit-cp
47 # -fipa-cp -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-profile
48 # -fipa-pure-const -fipa-ra -fipa-reference -fipa-sra -fipa-vrp
49 # -fira-hoist-pressure -fira-share-save-slots -fira-share-spill-slots
50 # -fisolate-erroneous-paths-dereference -fivopts -fkeep-static-consts
51 # -fleading-underscore -flifetime-dse -flra-remat -flto-odr-type-merging
52 # -fmath-errno -fmerge-all-constants -fmerge-debug-strings
53 # -fmove-loop-invariants -fomit-frame-pointer -foptimize-sibling-calls
54 # -foptimize-strlen -fpartial-inlining -fpeephole -fpeephole2 -fpic -fpie
55 # -fplt -fprefetch-loop-arrays -free -freg-struct-return -freorder-blocks
56 # -freorder-functions -frerun-cse-after-loop -frounding-math
57 # -fsched-critical-path-heuristic -fsched-dep-count-heuristic
58 # -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
59 # -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
60 # -fsched-stalled-insns-dep -fschedule-fusion -fschedule-insns2
61 # -fsemantic-interposition -fshow-column -fshrink-wrap
62 # -fshrink-wrap-separate -fsigned-zeros -fsplit-ivs-in-unroller
63 # -fsplit-wide-types -fssa-backprop -fssa-phiopt -fstdarg-opt
64 # -fstore-merging -fstrict-aliasing -fstrict-overflow
65 # -fstrict-volatile-bitfields -fsync-libcalls -fthread-jumps
66 # -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp -ftree-builtin-call-dce
67 # -ftree-ccp -ftree-ch -ftree-coalesce-vars -ftree-copy-prop -ftree-cselim
68 # -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre
69 # -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon
70 # -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop -ftree-pre
71 # -ftree-pta -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-slsr
72 # -ftree-sra -ftree-switch-conversion -ftree-tail-merge -ftree-ter
73 # -ftree-vrp -funit-at-a-time -funwind-tables -fverbose-asm
74 # -fzero-initialized-in-bss -m128bit-long-double -m64 -m80387
75 # -malign-stringops -mavx256-split-unaligned-load
76 # -mavx256-split-unaligned-store -mfancy-math-387 -mfp-ret-in-387 -mfxsr
77 # -mglibc -mieee-fp -mlong-double-80 -mmmx -mno-sse4 -mpush-args -mred-zone
78 # -msse -msse2 -mstv -mtls-direct-seg-refs -mvzeroupper
80 .text
81 .p2align 4,,15
82 .globl _ufc_doit_r
83 .type _ufc_doit_r, @function
84 _ufc_doit_r:
85 .LFB0:
86 .cfi_startproc
87 # crypt.c:90: l = (((long64)res[0]) << 32) | ((long64)res[1]);
88 movq (%rdx), %rcx # *res_41(D), tmp171
89 # crypt.c:84: {
90 pushq %rbp #
91 .cfi_def_cfa_offset 16
92 .cfi_offset 6, -16
93 # crypt.c:93: while(itr--) {
94 subq $1, %rdi #, itr
95 # crypt.c:84: {
96 pushq %rbx #
97 .cfi_def_cfa_offset 24
98 .cfi_offset 3, -24
99 # crypt.c:91: r = (((long64)res[2]) << 32) | ((long64)res[3]);
100 movq 16(%rdx), %r11 # MEM[(ufc_long *)res_41(D) + 16B], tmp173
101 # crypt.c:87: long64 *sb01 = (long64*)__data->sb0;
102 leaq 128(%rsi), %r9 #, _147
103 # crypt.c:90: l = (((long64)res[0]) << 32) | ((long64)res[1]);
104 movq 8(%rdx), %rbx # MEM[(ufc_long *)res_41(D) + 8B], tmp171
105 # crypt.c:88: long64 *sb23 = (long64*)__data->sb2;
106 leaq 65664(%rsi), %r10 #, sb23
107 # crypt.c:90: l = (((long64)res[0]) << 32) | ((long64)res[1]);
108 salq $32, %rcx #, tmp171
109 # crypt.c:91: r = (((long64)res[2]) << 32) | ((long64)res[3]);
110 salq $32, %r11 #, tmp173
111 orq 24(%rdx), %r11 # MEM[(ufc_long *)res_41(D) + 24B], l
112 # crypt.c:90: l = (((long64)res[0]) << 32) | ((long64)res[1]);
113 orq %rcx, %rbx # tmp171, tmp171
114 # crypt.c:93: while(itr--) {
115 cmpq $-1, %rdi #, itr
116 je .L8 #,
117 .p2align 4,,10
118 .p2align 3
119 .L4:
120 # crypt.c:94: k = (long64*)__data->keysched;
121 movq %r11, %rax # l, l
122 movq %rsi, %r8 # __data, k
123 movq %rbx, %r11 # r, l
124 movq %rax, %rbx # l, r
125 .p2align 4,,10
126 .p2align 3
127 .L3:
128 # crypt.c:96: s = *k++ ^ r;
129 movq (%r8), %rax # MEM[base: k_83, offset: 0B], s
130 addq $16, %r8 #, k
131 xorq %rbx, %rax # r, s
132 # crypt.c:100: l ^= SBA(sb01, (s >>= 16) );
133 movq %rax, %rbp # s, s
134 # crypt.c:97: l ^= SBA(sb23, (s ) & 0xffff);
135 movzwl %ax, %ecx # s, s
136 # crypt.c:100: l ^= SBA(sb01, (s >>= 16) );
137 shrq $48, %rbp #, s
138 movq (%r10,%rcx), %rcx # *_9, *_9
139 xorq (%r9,%rbp), %rcx # *_15, tmp177
140 # crypt.c:98: l ^= SBA(sb23, (s >>= 16) & 0xffff);
141 movq %rax, %rbp # s, s
142 # crypt.c:99: l ^= SBA(sb01, (s >>= 16) & 0xffff);
143 shrq $32, %rax #, s
144 # crypt.c:98: l ^= SBA(sb23, (s >>= 16) & 0xffff);
145 shrq $16, %rbp #, s
146 # crypt.c:99: l ^= SBA(sb01, (s >>= 16) & 0xffff);
147 movzwl %ax, %eax # s, s
148 # crypt.c:98: l ^= SBA(sb23, (s >>= 16) & 0xffff);
149 movzwl %bp, %ebp # s, s
150 # crypt.c:100: l ^= SBA(sb01, (s >>= 16) );
151 xorq (%r10,%rbp), %rcx # *_12, tmp181
152 xorq (%r9,%rax), %rcx # *_14, tmp181
153 # crypt.c:102: s = *k++ ^ l;
154 movq -8(%r8), %rax # MEM[base: _144, offset: -8B], s
155 # crypt.c:100: l ^= SBA(sb01, (s >>= 16) );
156 xorq %rcx, %r11 # tmp184, l
157 # crypt.c:102: s = *k++ ^ l;
158 xorq %r11, %rax # l, s
159 # crypt.c:106: r ^= SBA(sb01, (s >>= 16) );
160 movq %rax, %rbp # s, s
161 # crypt.c:103: r ^= SBA(sb23, (s ) & 0xffff);
162 movzwl %ax, %ecx # s, s
163 # crypt.c:106: r ^= SBA(sb01, (s >>= 16) );
164 shrq $48, %rbp #, s
165 movq (%r10,%rcx), %rcx # *_18, *_18
166 xorq (%r9,%rbp), %rcx # *_24, tmp187
167 xorq %rbx, %rcx # r, tmp189
168 # crypt.c:104: r ^= SBA(sb23, (s >>= 16) & 0xffff);
169 movq %rax, %rbx # s, s
170 # crypt.c:105: r ^= SBA(sb01, (s >>= 16) & 0xffff);
171 shrq $32, %rax #, s
172 # crypt.c:104: r ^= SBA(sb23, (s >>= 16) & 0xffff);
173 shrq $16, %rbx #, s
174 # crypt.c:105: r ^= SBA(sb01, (s >>= 16) & 0xffff);
175 movzwl %ax, %eax # s, s
176 # crypt.c:104: r ^= SBA(sb23, (s >>= 16) & 0xffff);
177 movzwl %bx, %ebx # s, s
178 xorq (%r10,%rbx), %rcx # *_21, _36
179 # crypt.c:106: r ^= SBA(sb01, (s >>= 16) );
180 movq (%r9,%rax), %rbx # *_23, _36
181 xorq %rcx, %rbx # _36, _36
182 # crypt.c:95: for(i=8; i--; ) {
183 cmpq %r9, %r8 # _147, k
184 jne .L3 #,
185 # crypt.c:93: while(itr--) {
186 subq $1, %rdi #, itr
187 cmpq $-1, %rdi #, itr
188 jne .L4 #,
189 .L8:
190 # crypt.c:111: res[0] = l >> 32; res[1] = l & 0xffffffff;
191 movq %rbx, %rax # r, tmp194
192 movl %ebx, %ecx # r, tmp195
193 shrq $32, %rax #, tmp194
194 movq %rcx, 8(%rdx) # tmp195, MEM[(ufc_long *)res_41(D) + 8B]
195 movq %rax, (%rdx) # tmp194, *res_41(D)
196 # crypt.c:112: res[2] = r >> 32; res[3] = r & 0xffffffff;
197 movq %r11, %rax # l, tmp196
198 andl $4294967295, %r11d #, tmp197
199 shrq $32, %rax #, tmp196
200 movq %r11, 24(%rdx) # tmp197, MEM[(ufc_long *)res_41(D) + 24B]
201 # crypt.c:113: }
202 popq %rbx #
203 .cfi_def_cfa_offset 16
204 # crypt.c:112: res[2] = r >> 32; res[3] = r & 0xffffffff;
205 movq %rax, 16(%rdx) # tmp196, MEM[(ufc_long *)res_41(D) + 16B]
206 # crypt.c:113: }
207 popq %rbp #
208 .cfi_def_cfa_offset 8
210 .cfi_endproc
211 .LFE0:
212 .size _ufc_doit_r, .-_ufc_doit_r
213 .ident "GCC: (GNU) 7.3.0"
214 .section .note.GNU-stack,"",@progbits