clarify the purpose of this project
[nyanglibc.git] / sunrpc / compat-xdr_sizeof.shared.s
blobe5c63b648a7e6204e955570c1cce84d6a84a4f58
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .type x_putlong, @function
9 x_putlong:
10 addl $4, 40(%rdi)
11 movl $1, %eax
12 ret
13 .size x_putlong, .-x_putlong
14 .p2align 4,,15
15 .type x_putbytes, @function
16 x_putbytes:
17 addl %edx, 40(%rdi)
18 movl $1, %eax
19 ret
20 .size x_putbytes, .-x_putbytes
21 .p2align 4,,15
22 .type x_getpostn, @function
23 x_getpostn:
24 movl 40(%rdi), %eax
25 ret
26 .size x_getpostn, .-x_getpostn
27 .p2align 4,,15
28 .type x_setpostn, @function
29 x_setpostn:
30 xorl %eax, %eax
31 ret
32 .size x_setpostn, .-x_setpostn
33 .p2align 4,,15
34 .type harmless, @function
35 harmless:
36 xorl %eax, %eax
37 ret
38 .size harmless, .-harmless
39 .p2align 4,,15
40 .type x_destroy, @function
41 x_destroy:
42 movq 24(%rdi), %rax
43 movl $0, 40(%rdi)
44 movq $0, 32(%rdi)
45 testq %rax, %rax
46 je .L13
47 pushq %rbx
48 movq %rdi, %rbx
49 movq %rax, %rdi
50 call free@PLT
51 movq $0, 24(%rbx)
52 popq %rbx
53 ret
54 .p2align 4,,10
55 .p2align 3
56 .L13:
57 rep ret
58 .size x_destroy, .-x_destroy
59 .p2align 4,,15
60 .type x_inline, @function
61 x_inline:
62 testl %esi, %esi
63 je .L21
64 movl (%rdi), %eax
65 testl %eax, %eax
66 jne .L21
67 cmpl %esi, 32(%rdi)
68 movq 24(%rdi), %rax
69 jbe .L18
70 addl %esi, 40(%rdi)
71 ret
72 .p2align 4,,10
73 .p2align 3
74 .L18:
75 pushq %r12
76 pushq %rbp
77 movl %esi, %r12d
78 pushq %rbx
79 movq %rdi, %rbx
80 movq %rax, %rdi
81 call free@PLT
82 movq %r12, %rdi
83 call malloc@PLT
84 testq %rax, %rax
85 movq %rax, 24(%rbx)
86 je .L25
87 addl %r12d, 40(%rbx)
88 movq %r12, 32(%rbx)
89 .L16:
90 popq %rbx
91 popq %rbp
92 popq %r12
93 ret
94 .p2align 4,,10
95 .p2align 3
96 .L21:
97 xorl %eax, %eax
98 ret
99 .p2align 4,,10
100 .p2align 3
101 .L25:
102 movq $0, 32(%rbx)
103 jmp .L16
104 .size x_inline, .-x_inline
105 .p2align 4,,15
106 .type x_putint32, @function
107 x_putint32:
108 addl $4, 40(%rdi)
109 movl $1, %eax
111 .size x_putint32, .-x_putint32
112 .p2align 4,,15
113 .globl __GI_xdr_sizeof
114 .hidden __GI_xdr_sizeof
115 .type __GI_xdr_sizeof, @function
116 __GI_xdr_sizeof:
117 pushq %rbx
118 leaq x_putlong(%rip), %rax
119 movq %rdi, %rdx
120 addq $-128, %rsp
121 movq %rax, 56(%rsp)
122 leaq x_putbytes(%rip), %rax
123 movq %rsp, %rdi
124 movl $0, (%rsp)
125 movl $0, 40(%rsp)
126 movq %rax, 72(%rsp)
127 leaq x_inline(%rip), %rax
128 movq $0, 24(%rsp)
129 movq $0, 32(%rsp)
130 movq %rax, 96(%rsp)
131 leaq x_getpostn(%rip), %rax
132 movq %rax, 80(%rsp)
133 leaq x_setpostn(%rip), %rax
134 movq %rax, 88(%rsp)
135 leaq x_destroy(%rip), %rax
136 movq %rax, 104(%rsp)
137 leaq x_putint32(%rip), %rax
138 movq %rax, 120(%rsp)
139 leaq harmless(%rip), %rax
140 movq %rax, 48(%rsp)
141 movq %rax, 64(%rsp)
142 movq %rax, 112(%rsp)
143 leaq 48(%rsp), %rax
144 movq %rax, 8(%rsp)
145 xorl %eax, %eax
146 call *%rdx
147 movq 24(%rsp), %rdi
148 movl %eax, %ebx
149 call free@PLT
150 xorl %eax, %eax
151 cmpl $1, %ebx
152 jne .L27
153 movl 40(%rsp), %eax
154 .L27:
155 subq $-128, %rsp
156 popq %rbx
158 .size __GI_xdr_sizeof, .-__GI_xdr_sizeof
159 .globl xdr_sizeof
160 .set xdr_sizeof,__GI_xdr_sizeof