xref: /xnu-12377.41.6/bsd/dev/munge.c (revision bbb1b6f9e71b8cdde6e5cd6f4841f207dee3d828)
1*bbb1b6f9SApple OSS Distributions /*
2*bbb1b6f9SApple OSS Distributions  * Coyright (c) 2005-2024 Apple Computer, Inc. All rights reserved.
3*bbb1b6f9SApple OSS Distributions  *
4*bbb1b6f9SApple OSS Distributions  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5*bbb1b6f9SApple OSS Distributions  *
6*bbb1b6f9SApple OSS Distributions  * This file contains Original Code and/or Modifications of Original Code
7*bbb1b6f9SApple OSS Distributions  * as defined in and that are subject to the Apple Public Source License
8*bbb1b6f9SApple OSS Distributions  * Version 2.0 (the 'License'). You may not use this file except in
9*bbb1b6f9SApple OSS Distributions  * compliance with the License. The rights granted to you under the License
10*bbb1b6f9SApple OSS Distributions  * may not be used to create, or enable the creation or redistribution of,
11*bbb1b6f9SApple OSS Distributions  * unlawful or unlicensed copies of an Apple operating system, or to
12*bbb1b6f9SApple OSS Distributions  * circumvent, violate, or enable the circumvention or violation of, any
13*bbb1b6f9SApple OSS Distributions  * terms of an Apple operating system software license agreement.
14*bbb1b6f9SApple OSS Distributions  *
15*bbb1b6f9SApple OSS Distributions  * Please obtain a copy of the License at
16*bbb1b6f9SApple OSS Distributions  * http://www.opensource.apple.com/apsl/ and read it before using this file.
17*bbb1b6f9SApple OSS Distributions  *
18*bbb1b6f9SApple OSS Distributions  * The Original Code and all software distributed under the License are
19*bbb1b6f9SApple OSS Distributions  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20*bbb1b6f9SApple OSS Distributions  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21*bbb1b6f9SApple OSS Distributions  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22*bbb1b6f9SApple OSS Distributions  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23*bbb1b6f9SApple OSS Distributions  * Please see the License for the specific language governing rights and
24*bbb1b6f9SApple OSS Distributions  * limitations under the License.
25*bbb1b6f9SApple OSS Distributions  *
26*bbb1b6f9SApple OSS Distributions  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27*bbb1b6f9SApple OSS Distributions  */
28*bbb1b6f9SApple OSS Distributions 
29*bbb1b6f9SApple OSS Distributions #include <sys/cdefs.h>
30*bbb1b6f9SApple OSS Distributions #include <sys/types.h>
31*bbb1b6f9SApple OSS Distributions #include <sys/munge.h>
32*bbb1b6f9SApple OSS Distributions #include <stdint.h>
33*bbb1b6f9SApple OSS Distributions 
34*bbb1b6f9SApple OSS Distributions /*
35*bbb1b6f9SApple OSS Distributions  * Refer to comments in bsd/sys/munge.h
36*bbb1b6f9SApple OSS Distributions  */
37*bbb1b6f9SApple OSS Distributions 
38*bbb1b6f9SApple OSS Distributions static inline __attribute__((always_inline)) void
39*bbb1b6f9SApple OSS Distributions munge_32_to_64_unsigned(volatile uint64_t *dest, volatile uint32_t *src, int count);
40*bbb1b6f9SApple OSS Distributions 
41*bbb1b6f9SApple OSS Distributions void
munge_w(void * args)42*bbb1b6f9SApple OSS Distributions munge_w(void *args)
43*bbb1b6f9SApple OSS Distributions {
44*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 1);
45*bbb1b6f9SApple OSS Distributions }
46*bbb1b6f9SApple OSS Distributions 
47*bbb1b6f9SApple OSS Distributions void
munge_ww(void * args)48*bbb1b6f9SApple OSS Distributions munge_ww(void *args)
49*bbb1b6f9SApple OSS Distributions {
50*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 2);
51*bbb1b6f9SApple OSS Distributions }
52*bbb1b6f9SApple OSS Distributions 
53*bbb1b6f9SApple OSS Distributions void
munge_www(void * args)54*bbb1b6f9SApple OSS Distributions munge_www(void *args)
55*bbb1b6f9SApple OSS Distributions {
56*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 3);
57*bbb1b6f9SApple OSS Distributions }
58*bbb1b6f9SApple OSS Distributions 
59*bbb1b6f9SApple OSS Distributions void
munge_wwww(void * args)60*bbb1b6f9SApple OSS Distributions munge_wwww(void *args)
61*bbb1b6f9SApple OSS Distributions {
62*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 4);
63*bbb1b6f9SApple OSS Distributions }
64*bbb1b6f9SApple OSS Distributions 
65*bbb1b6f9SApple OSS Distributions void
munge_wwwww(void * args)66*bbb1b6f9SApple OSS Distributions munge_wwwww(void *args)
67*bbb1b6f9SApple OSS Distributions {
68*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 5);
69*bbb1b6f9SApple OSS Distributions }
70*bbb1b6f9SApple OSS Distributions 
71*bbb1b6f9SApple OSS Distributions void
munge_wwwwww(void * args)72*bbb1b6f9SApple OSS Distributions munge_wwwwww(void *args)
73*bbb1b6f9SApple OSS Distributions {
74*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 6);
75*bbb1b6f9SApple OSS Distributions }
76*bbb1b6f9SApple OSS Distributions 
77*bbb1b6f9SApple OSS Distributions void
munge_wwwwwww(void * args)78*bbb1b6f9SApple OSS Distributions munge_wwwwwww(void *args)
79*bbb1b6f9SApple OSS Distributions {
80*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 7);
81*bbb1b6f9SApple OSS Distributions }
82*bbb1b6f9SApple OSS Distributions 
83*bbb1b6f9SApple OSS Distributions void
munge_wwwwwwww(void * args)84*bbb1b6f9SApple OSS Distributions munge_wwwwwwww(void *args)
85*bbb1b6f9SApple OSS Distributions {
86*bbb1b6f9SApple OSS Distributions 	munge_32_to_64_unsigned(args, args, 8);
87*bbb1b6f9SApple OSS Distributions }
88*bbb1b6f9SApple OSS Distributions 
89*bbb1b6f9SApple OSS Distributions void
munge_wl(void * args)90*bbb1b6f9SApple OSS Distributions munge_wl(void *args)
91*bbb1b6f9SApple OSS Distributions {
92*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
93*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
94*bbb1b6f9SApple OSS Distributions 
95*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
96*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
97*bbb1b6f9SApple OSS Distributions }
98*bbb1b6f9SApple OSS Distributions 
99*bbb1b6f9SApple OSS Distributions void
munge_wwl(void * args)100*bbb1b6f9SApple OSS Distributions munge_wwl(void *args)
101*bbb1b6f9SApple OSS Distributions {
102*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
103*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
104*bbb1b6f9SApple OSS Distributions 
105*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
106*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
107*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
108*bbb1b6f9SApple OSS Distributions }
109*bbb1b6f9SApple OSS Distributions 
110*bbb1b6f9SApple OSS Distributions void
munge_wwlw(void * args)111*bbb1b6f9SApple OSS Distributions munge_wwlw(void *args)
112*bbb1b6f9SApple OSS Distributions {
113*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
114*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
115*bbb1b6f9SApple OSS Distributions 
116*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
117*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
118*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
119*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
120*bbb1b6f9SApple OSS Distributions }
121*bbb1b6f9SApple OSS Distributions void
munge_wwlll(void * args)122*bbb1b6f9SApple OSS Distributions munge_wwlll(void *args)
123*bbb1b6f9SApple OSS Distributions {
124*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
125*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
126*bbb1b6f9SApple OSS Distributions 
127*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[6];
128*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[4];
129*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
130*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
131*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
132*bbb1b6f9SApple OSS Distributions }
133*bbb1b6f9SApple OSS Distributions 
134*bbb1b6f9SApple OSS Distributions void
munge_wwlllll(void * args)135*bbb1b6f9SApple OSS Distributions munge_wwlllll(void *args)
136*bbb1b6f9SApple OSS Distributions {
137*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
138*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
139*bbb1b6f9SApple OSS Distributions 
140*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[10];
141*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[8];
142*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[6];
143*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[4];
144*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
145*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
146*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
147*bbb1b6f9SApple OSS Distributions }
148*bbb1b6f9SApple OSS Distributions 
149*bbb1b6f9SApple OSS Distributions void
munge_wwllllll(void * args)150*bbb1b6f9SApple OSS Distributions munge_wwllllll(void *args)
151*bbb1b6f9SApple OSS Distributions {
152*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
153*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
154*bbb1b6f9SApple OSS Distributions 
155*bbb1b6f9SApple OSS Distributions 	out_args[7] = *(volatile uint64_t*)&in_args[12];
156*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[10];
157*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[8];
158*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[6];
159*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[4];
160*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
161*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
162*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
163*bbb1b6f9SApple OSS Distributions }
164*bbb1b6f9SApple OSS Distributions 
165*bbb1b6f9SApple OSS Distributions 
166*bbb1b6f9SApple OSS Distributions void
munge_wwllww(void * args)167*bbb1b6f9SApple OSS Distributions munge_wwllww(void *args)
168*bbb1b6f9SApple OSS Distributions {
169*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
170*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
171*bbb1b6f9SApple OSS Distributions 
172*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[7];
173*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[6];
174*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[4];
175*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
176*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
177*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
178*bbb1b6f9SApple OSS Distributions }
179*bbb1b6f9SApple OSS Distributions 
180*bbb1b6f9SApple OSS Distributions void
munge_wlw(void * args)181*bbb1b6f9SApple OSS Distributions munge_wlw(void *args)
182*bbb1b6f9SApple OSS Distributions {
183*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
184*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
185*bbb1b6f9SApple OSS Distributions 
186*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
187*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
188*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
189*bbb1b6f9SApple OSS Distributions }
190*bbb1b6f9SApple OSS Distributions 
191*bbb1b6f9SApple OSS Distributions void
munge_wlww(void * args)192*bbb1b6f9SApple OSS Distributions munge_wlww(void *args)
193*bbb1b6f9SApple OSS Distributions {
194*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
195*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
196*bbb1b6f9SApple OSS Distributions 
197*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
198*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
199*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
200*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
201*bbb1b6f9SApple OSS Distributions }
202*bbb1b6f9SApple OSS Distributions 
203*bbb1b6f9SApple OSS Distributions void
munge_wlwwwll(void * args)204*bbb1b6f9SApple OSS Distributions munge_wlwwwll(void *args)
205*bbb1b6f9SApple OSS Distributions {
206*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
207*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
208*bbb1b6f9SApple OSS Distributions 
209*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[8];
210*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[6];
211*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
212*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
213*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
214*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
215*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
216*bbb1b6f9SApple OSS Distributions }
217*bbb1b6f9SApple OSS Distributions 
218*bbb1b6f9SApple OSS Distributions void
munge_wlwwwllw(void * args)219*bbb1b6f9SApple OSS Distributions munge_wlwwwllw(void *args)
220*bbb1b6f9SApple OSS Distributions {
221*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
222*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
223*bbb1b6f9SApple OSS Distributions 
224*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[10];
225*bbb1b6f9SApple OSS Distributions 	munge_wlwwwll(args);
226*bbb1b6f9SApple OSS Distributions }
227*bbb1b6f9SApple OSS Distributions 
228*bbb1b6f9SApple OSS Distributions void
munge_wlwwlwlw(void * args)229*bbb1b6f9SApple OSS Distributions munge_wlwwlwlw(void *args)
230*bbb1b6f9SApple OSS Distributions {
231*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
232*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
233*bbb1b6f9SApple OSS Distributions 
234*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[10];
235*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[8];
236*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[7];
237*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[5];
238*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
239*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
240*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
241*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
242*bbb1b6f9SApple OSS Distributions }
243*bbb1b6f9SApple OSS Distributions 
244*bbb1b6f9SApple OSS Distributions void
munge_wll(void * args)245*bbb1b6f9SApple OSS Distributions munge_wll(void *args)
246*bbb1b6f9SApple OSS Distributions {
247*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
248*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
249*bbb1b6f9SApple OSS Distributions 
250*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[3];
251*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
252*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
253*bbb1b6f9SApple OSS Distributions }
254*bbb1b6f9SApple OSS Distributions 
255*bbb1b6f9SApple OSS Distributions void
munge_wlll(void * args)256*bbb1b6f9SApple OSS Distributions munge_wlll(void *args)
257*bbb1b6f9SApple OSS Distributions {
258*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
259*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
260*bbb1b6f9SApple OSS Distributions 
261*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[5];
262*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[3];
263*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
264*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
265*bbb1b6f9SApple OSS Distributions }
266*bbb1b6f9SApple OSS Distributions 
267*bbb1b6f9SApple OSS Distributions void
munge_wlllww(void * args)268*bbb1b6f9SApple OSS Distributions munge_wlllww(void *args)
269*bbb1b6f9SApple OSS Distributions {
270*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
271*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
272*bbb1b6f9SApple OSS Distributions 
273*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[8];
274*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[7];
275*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[5];
276*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[3];
277*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
278*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
279*bbb1b6f9SApple OSS Distributions }
280*bbb1b6f9SApple OSS Distributions 
281*bbb1b6f9SApple OSS Distributions void
munge_wllll(void * args)282*bbb1b6f9SApple OSS Distributions munge_wllll(void *args)
283*bbb1b6f9SApple OSS Distributions {
284*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
285*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
286*bbb1b6f9SApple OSS Distributions 
287*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[7];
288*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[5];
289*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[3];
290*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
291*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
292*bbb1b6f9SApple OSS Distributions }
293*bbb1b6f9SApple OSS Distributions 
294*bbb1b6f9SApple OSS Distributions void
munge_wllww(void * args)295*bbb1b6f9SApple OSS Distributions munge_wllww(void *args)
296*bbb1b6f9SApple OSS Distributions {
297*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
298*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
299*bbb1b6f9SApple OSS Distributions 
300*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[6];
301*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[5];
302*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[3];
303*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
304*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
305*bbb1b6f9SApple OSS Distributions }
306*bbb1b6f9SApple OSS Distributions 
307*bbb1b6f9SApple OSS Distributions void
munge_wllwwll(void * args)308*bbb1b6f9SApple OSS Distributions munge_wllwwll(void *args)
309*bbb1b6f9SApple OSS Distributions {
310*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
311*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
312*bbb1b6f9SApple OSS Distributions 
313*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[9];
314*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[7];
315*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[6];
316*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[5];
317*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[3];
318*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
319*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
320*bbb1b6f9SApple OSS Distributions }
321*bbb1b6f9SApple OSS Distributions 
322*bbb1b6f9SApple OSS Distributions void
munge_wwwlw(void * args)323*bbb1b6f9SApple OSS Distributions munge_wwwlw(void *args)
324*bbb1b6f9SApple OSS Distributions {
325*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
326*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
327*bbb1b6f9SApple OSS Distributions 
328*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
329*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[3];
330*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
331*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
332*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
333*bbb1b6f9SApple OSS Distributions }
334*bbb1b6f9SApple OSS Distributions 
335*bbb1b6f9SApple OSS Distributions void
munge_wwwlww(void * args)336*bbb1b6f9SApple OSS Distributions munge_wwwlww(void *args)
337*bbb1b6f9SApple OSS Distributions {
338*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
339*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
340*bbb1b6f9SApple OSS Distributions 
341*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[6];
342*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
343*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[3];
344*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
345*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
346*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
347*bbb1b6f9SApple OSS Distributions }
348*bbb1b6f9SApple OSS Distributions 
349*bbb1b6f9SApple OSS Distributions void
munge_wwwlwww(void * args)350*bbb1b6f9SApple OSS Distributions munge_wwwlwww(void *args)
351*bbb1b6f9SApple OSS Distributions {
352*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
353*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
354*bbb1b6f9SApple OSS Distributions 
355*bbb1b6f9SApple OSS Distributions 	out_args[6] = in_args[7];
356*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[6];
357*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
358*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[3];
359*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
360*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
361*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
362*bbb1b6f9SApple OSS Distributions }
363*bbb1b6f9SApple OSS Distributions 
364*bbb1b6f9SApple OSS Distributions void
munge_wwwl(void * args)365*bbb1b6f9SApple OSS Distributions munge_wwwl(void *args)
366*bbb1b6f9SApple OSS Distributions {
367*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
368*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
369*bbb1b6f9SApple OSS Distributions 
370*bbb1b6f9SApple OSS Distributions 	out_args[3] = *(volatile uint64_t*)&in_args[3];
371*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
372*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
373*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
374*bbb1b6f9SApple OSS Distributions }
375*bbb1b6f9SApple OSS Distributions 
376*bbb1b6f9SApple OSS Distributions void
munge_wwwwlw(void * args)377*bbb1b6f9SApple OSS Distributions munge_wwwwlw(void *args)
378*bbb1b6f9SApple OSS Distributions {
379*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
380*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
381*bbb1b6f9SApple OSS Distributions 
382*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[6];
383*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[4];
384*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
385*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
386*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
387*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
388*bbb1b6f9SApple OSS Distributions }
389*bbb1b6f9SApple OSS Distributions 
390*bbb1b6f9SApple OSS Distributions void
munge_wwwwllww(void * args)391*bbb1b6f9SApple OSS Distributions munge_wwwwllww(void *args)
392*bbb1b6f9SApple OSS Distributions {
393*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
394*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
395*bbb1b6f9SApple OSS Distributions 
396*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[9];
397*bbb1b6f9SApple OSS Distributions 	out_args[6] = in_args[8];
398*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[6];
399*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[4];
400*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
401*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
402*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
403*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
404*bbb1b6f9SApple OSS Distributions }
405*bbb1b6f9SApple OSS Distributions 
406*bbb1b6f9SApple OSS Distributions void
munge_wwwwl(void * args)407*bbb1b6f9SApple OSS Distributions munge_wwwwl(void *args)
408*bbb1b6f9SApple OSS Distributions {
409*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
410*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
411*bbb1b6f9SApple OSS Distributions 
412*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[4];
413*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
414*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
415*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
416*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
417*bbb1b6f9SApple OSS Distributions }
418*bbb1b6f9SApple OSS Distributions 
419*bbb1b6f9SApple OSS Distributions void
munge_wwwwwl(void * args)420*bbb1b6f9SApple OSS Distributions munge_wwwwwl(void *args)
421*bbb1b6f9SApple OSS Distributions {
422*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
423*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
424*bbb1b6f9SApple OSS Distributions 
425*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[5];
426*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
427*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
428*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
429*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
430*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
431*bbb1b6f9SApple OSS Distributions }
432*bbb1b6f9SApple OSS Distributions 
433*bbb1b6f9SApple OSS Distributions void
munge_wwwwwlww(void * args)434*bbb1b6f9SApple OSS Distributions munge_wwwwwlww(void *args)
435*bbb1b6f9SApple OSS Distributions {
436*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
437*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
438*bbb1b6f9SApple OSS Distributions 
439*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[8];
440*bbb1b6f9SApple OSS Distributions 	out_args[6] = in_args[7];
441*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[5];
442*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
443*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
444*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
445*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
446*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
447*bbb1b6f9SApple OSS Distributions }
448*bbb1b6f9SApple OSS Distributions 
449*bbb1b6f9SApple OSS Distributions void
munge_wwwwwllw(void * args)450*bbb1b6f9SApple OSS Distributions munge_wwwwwllw(void *args)
451*bbb1b6f9SApple OSS Distributions {
452*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
453*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
454*bbb1b6f9SApple OSS Distributions 
455*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[9];
456*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[7];
457*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[5];
458*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
459*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
460*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
461*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
462*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
463*bbb1b6f9SApple OSS Distributions }
464*bbb1b6f9SApple OSS Distributions 
465*bbb1b6f9SApple OSS Distributions void
munge_wwwwwlll(void * args)466*bbb1b6f9SApple OSS Distributions munge_wwwwwlll(void *args)
467*bbb1b6f9SApple OSS Distributions {
468*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
469*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
470*bbb1b6f9SApple OSS Distributions 
471*bbb1b6f9SApple OSS Distributions 	out_args[7] = *(volatile uint64_t*)&in_args[9];
472*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[7];
473*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[5];
474*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
475*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
476*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
477*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
478*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
479*bbb1b6f9SApple OSS Distributions }
480*bbb1b6f9SApple OSS Distributions 
481*bbb1b6f9SApple OSS Distributions void
munge_wwwwwwl(void * args)482*bbb1b6f9SApple OSS Distributions munge_wwwwwwl(void *args)
483*bbb1b6f9SApple OSS Distributions {
484*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
485*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
486*bbb1b6f9SApple OSS Distributions 
487*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[6];
488*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[5];
489*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
490*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
491*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
492*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
493*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
494*bbb1b6f9SApple OSS Distributions }
495*bbb1b6f9SApple OSS Distributions 
496*bbb1b6f9SApple OSS Distributions void
munge_wwwwwwlw(void * args)497*bbb1b6f9SApple OSS Distributions munge_wwwwwwlw(void *args)
498*bbb1b6f9SApple OSS Distributions {
499*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
500*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
501*bbb1b6f9SApple OSS Distributions 
502*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[8];
503*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[6];
504*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[5];
505*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
506*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
507*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
508*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
509*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
510*bbb1b6f9SApple OSS Distributions }
511*bbb1b6f9SApple OSS Distributions 
512*bbb1b6f9SApple OSS Distributions void
munge_wwwwwwll(void * args)513*bbb1b6f9SApple OSS Distributions munge_wwwwwwll(void *args)
514*bbb1b6f9SApple OSS Distributions {
515*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
516*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
517*bbb1b6f9SApple OSS Distributions 
518*bbb1b6f9SApple OSS Distributions 	out_args[7] = *(volatile uint64_t*)&in_args[8];
519*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[6];
520*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[5];
521*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
522*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[3];
523*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
524*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
525*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
526*bbb1b6f9SApple OSS Distributions }
527*bbb1b6f9SApple OSS Distributions 
528*bbb1b6f9SApple OSS Distributions void
munge_wsw(void * args)529*bbb1b6f9SApple OSS Distributions munge_wsw(void *args)
530*bbb1b6f9SApple OSS Distributions {
531*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
532*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
533*bbb1b6f9SApple OSS Distributions 
534*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
535*bbb1b6f9SApple OSS Distributions 	out_args[1] = (int64_t)(int)in_args[1]; /* Sign-extend */
536*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
537*bbb1b6f9SApple OSS Distributions }
538*bbb1b6f9SApple OSS Distributions 
539*bbb1b6f9SApple OSS Distributions void
munge_wws(void * args)540*bbb1b6f9SApple OSS Distributions munge_wws(void *args)
541*bbb1b6f9SApple OSS Distributions {
542*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
543*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
544*bbb1b6f9SApple OSS Distributions 
545*bbb1b6f9SApple OSS Distributions 	out_args[2] = (int64_t)(int)in_args[2]; /* Sign-extend */
546*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
547*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
548*bbb1b6f9SApple OSS Distributions }
549*bbb1b6f9SApple OSS Distributions 
550*bbb1b6f9SApple OSS Distributions void
munge_wwws(void * args)551*bbb1b6f9SApple OSS Distributions munge_wwws(void *args)
552*bbb1b6f9SApple OSS Distributions {
553*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
554*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
555*bbb1b6f9SApple OSS Distributions 
556*bbb1b6f9SApple OSS Distributions 	out_args[3] = (int64_t)(int)in_args[3]; /* Sign-extend */
557*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
558*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
559*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
560*bbb1b6f9SApple OSS Distributions }
561*bbb1b6f9SApple OSS Distributions 
562*bbb1b6f9SApple OSS Distributions 
563*bbb1b6f9SApple OSS Distributions void
munge_wwwsw(void * args)564*bbb1b6f9SApple OSS Distributions munge_wwwsw(void *args)
565*bbb1b6f9SApple OSS Distributions {
566*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
567*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
568*bbb1b6f9SApple OSS Distributions 
569*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[4];
570*bbb1b6f9SApple OSS Distributions 	out_args[3] = (int64_t)(int)in_args[3]; /* Sign-extend */
571*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[2];
572*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
573*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
574*bbb1b6f9SApple OSS Distributions }
575*bbb1b6f9SApple OSS Distributions 
576*bbb1b6f9SApple OSS Distributions void
munge_llllllll(void * args __unused)577*bbb1b6f9SApple OSS Distributions munge_llllllll(void *args __unused)
578*bbb1b6f9SApple OSS Distributions {
579*bbb1b6f9SApple OSS Distributions 	/* Nothing to do, already all 64-bit */
580*bbb1b6f9SApple OSS Distributions }
581*bbb1b6f9SApple OSS Distributions 
582*bbb1b6f9SApple OSS Distributions void
munge_llllll(void * args __unused)583*bbb1b6f9SApple OSS Distributions munge_llllll(void *args __unused)
584*bbb1b6f9SApple OSS Distributions {
585*bbb1b6f9SApple OSS Distributions 	/* Nothing to do, already all 64-bit */
586*bbb1b6f9SApple OSS Distributions }
587*bbb1b6f9SApple OSS Distributions 
588*bbb1b6f9SApple OSS Distributions void
munge_llll(void * args __unused)589*bbb1b6f9SApple OSS Distributions munge_llll(void *args __unused)
590*bbb1b6f9SApple OSS Distributions {
591*bbb1b6f9SApple OSS Distributions 	/* Nothing to do, already all 64-bit */
592*bbb1b6f9SApple OSS Distributions }
593*bbb1b6f9SApple OSS Distributions 
594*bbb1b6f9SApple OSS Distributions void
munge_lll(void * args __unused)595*bbb1b6f9SApple OSS Distributions munge_lll(void *args __unused)
596*bbb1b6f9SApple OSS Distributions {
597*bbb1b6f9SApple OSS Distributions 	/* Nothing to do, already all 64-bit */
598*bbb1b6f9SApple OSS Distributions }
599*bbb1b6f9SApple OSS Distributions 
600*bbb1b6f9SApple OSS Distributions void
munge_ll(void * args __unused)601*bbb1b6f9SApple OSS Distributions munge_ll(void *args __unused)
602*bbb1b6f9SApple OSS Distributions {
603*bbb1b6f9SApple OSS Distributions 	/* Nothing to do, already all 64-bit */
604*bbb1b6f9SApple OSS Distributions }
605*bbb1b6f9SApple OSS Distributions 
606*bbb1b6f9SApple OSS Distributions void
munge_l(void * args __unused)607*bbb1b6f9SApple OSS Distributions munge_l(void *args __unused)
608*bbb1b6f9SApple OSS Distributions {
609*bbb1b6f9SApple OSS Distributions 	/* Nothing to do, already all 64-bit */
610*bbb1b6f9SApple OSS Distributions }
611*bbb1b6f9SApple OSS Distributions 
612*bbb1b6f9SApple OSS Distributions void
munge_lw(void * args)613*bbb1b6f9SApple OSS Distributions munge_lw(void *args)
614*bbb1b6f9SApple OSS Distributions {
615*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
616*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
617*bbb1b6f9SApple OSS Distributions 
618*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[2];
619*bbb1b6f9SApple OSS Distributions 	out_args[0] = *(volatile uint64_t*)&in_args[0];
620*bbb1b6f9SApple OSS Distributions }
621*bbb1b6f9SApple OSS Distributions 
622*bbb1b6f9SApple OSS Distributions void
munge_lww(void * args)623*bbb1b6f9SApple OSS Distributions munge_lww(void *args)
624*bbb1b6f9SApple OSS Distributions {
625*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
626*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
627*bbb1b6f9SApple OSS Distributions 
628*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
629*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[2];
630*bbb1b6f9SApple OSS Distributions 	out_args[0] = *(volatile uint64_t*)&in_args[0];
631*bbb1b6f9SApple OSS Distributions }
632*bbb1b6f9SApple OSS Distributions 
633*bbb1b6f9SApple OSS Distributions void
munge_lwww(void * args)634*bbb1b6f9SApple OSS Distributions munge_lwww(void *args)
635*bbb1b6f9SApple OSS Distributions {
636*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
637*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
638*bbb1b6f9SApple OSS Distributions 
639*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
640*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
641*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[2];
642*bbb1b6f9SApple OSS Distributions 	out_args[0] = *(volatile uint64_t*)&in_args[0];
643*bbb1b6f9SApple OSS Distributions }
644*bbb1b6f9SApple OSS Distributions 
645*bbb1b6f9SApple OSS Distributions void
munge_lwwwwwww(void * args)646*bbb1b6f9SApple OSS Distributions munge_lwwwwwww(void *args)
647*bbb1b6f9SApple OSS Distributions {
648*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
649*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
650*bbb1b6f9SApple OSS Distributions 
651*bbb1b6f9SApple OSS Distributions 	out_args[7] = in_args[8];
652*bbb1b6f9SApple OSS Distributions 	out_args[6] = in_args[7];
653*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[6];
654*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
655*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
656*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
657*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[2];
658*bbb1b6f9SApple OSS Distributions 	out_args[0] = *(volatile uint64_t*)&in_args[0];
659*bbb1b6f9SApple OSS Distributions }
660*bbb1b6f9SApple OSS Distributions 
661*bbb1b6f9SApple OSS Distributions void
munge_wwlww(void * args)662*bbb1b6f9SApple OSS Distributions munge_wwlww(void *args)
663*bbb1b6f9SApple OSS Distributions {
664*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
665*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
666*bbb1b6f9SApple OSS Distributions 
667*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
668*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
669*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
670*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
671*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
672*bbb1b6f9SApple OSS Distributions }
673*bbb1b6f9SApple OSS Distributions 
674*bbb1b6f9SApple OSS Distributions void
munge_wwlwww(void * args)675*bbb1b6f9SApple OSS Distributions munge_wwlwww(void *args)
676*bbb1b6f9SApple OSS Distributions {
677*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
678*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
679*bbb1b6f9SApple OSS Distributions 
680*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[6];
681*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
682*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
683*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
684*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
685*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
686*bbb1b6f9SApple OSS Distributions }
687*bbb1b6f9SApple OSS Distributions 
688*bbb1b6f9SApple OSS Distributions void
munge_wlwwwl(void * args)689*bbb1b6f9SApple OSS Distributions munge_wlwwwl(void *args)
690*bbb1b6f9SApple OSS Distributions {
691*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
692*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
693*bbb1b6f9SApple OSS Distributions 
694*bbb1b6f9SApple OSS Distributions 	out_args[5] = *(volatile uint64_t*)&in_args[6];
695*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
696*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
697*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
698*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
699*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
700*bbb1b6f9SApple OSS Distributions }
701*bbb1b6f9SApple OSS Distributions 
702*bbb1b6f9SApple OSS Distributions void
munge_wwlwwwl(void * args)703*bbb1b6f9SApple OSS Distributions munge_wwlwwwl(void *args)
704*bbb1b6f9SApple OSS Distributions {
705*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
706*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
707*bbb1b6f9SApple OSS Distributions 
708*bbb1b6f9SApple OSS Distributions 	out_args[6] = *(volatile uint64_t*)&in_args[7];
709*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[6];
710*bbb1b6f9SApple OSS Distributions 	out_args[4] = in_args[5];
711*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
712*bbb1b6f9SApple OSS Distributions 	out_args[2] = *(volatile uint64_t*)&in_args[2];
713*bbb1b6f9SApple OSS Distributions 	out_args[1] = in_args[1];
714*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
715*bbb1b6f9SApple OSS Distributions }
716*bbb1b6f9SApple OSS Distributions 
717*bbb1b6f9SApple OSS Distributions void
munge_wlwwlww(void * args)718*bbb1b6f9SApple OSS Distributions munge_wlwwlww(void *args)
719*bbb1b6f9SApple OSS Distributions {
720*bbb1b6f9SApple OSS Distributions 	volatile uint64_t *out_args = (volatile uint64_t*)args;
721*bbb1b6f9SApple OSS Distributions 	volatile uint32_t *in_args = (volatile uint32_t*)args;
722*bbb1b6f9SApple OSS Distributions 
723*bbb1b6f9SApple OSS Distributions 	out_args[6] = in_args[8];
724*bbb1b6f9SApple OSS Distributions 	out_args[5] = in_args[7];
725*bbb1b6f9SApple OSS Distributions 	out_args[4] = *(volatile uint64_t*)&in_args[5];
726*bbb1b6f9SApple OSS Distributions 	out_args[3] = in_args[4];
727*bbb1b6f9SApple OSS Distributions 	out_args[2] = in_args[3];
728*bbb1b6f9SApple OSS Distributions 	out_args[1] = *(volatile uint64_t*)&in_args[1];
729*bbb1b6f9SApple OSS Distributions 	out_args[0] = in_args[0];
730*bbb1b6f9SApple OSS Distributions }
731*bbb1b6f9SApple OSS Distributions 
732*bbb1b6f9SApple OSS Distributions /*
733*bbb1b6f9SApple OSS Distributions  * Munge array of 32-bit values into an array of 64-bit values,
734*bbb1b6f9SApple OSS Distributions  * without sign extension.  Note, src and dest can be the same
735*bbb1b6f9SApple OSS Distributions  * (copies from end of array)
736*bbb1b6f9SApple OSS Distributions  */
737*bbb1b6f9SApple OSS Distributions static inline __attribute__((always_inline)) void
munge_32_to_64_unsigned(volatile uint64_t * dest,volatile uint32_t * src,int count)738*bbb1b6f9SApple OSS Distributions munge_32_to_64_unsigned(volatile uint64_t *dest, volatile uint32_t *src, int count)
739*bbb1b6f9SApple OSS Distributions {
740*bbb1b6f9SApple OSS Distributions 	int i;
741*bbb1b6f9SApple OSS Distributions 
742*bbb1b6f9SApple OSS Distributions 	for (i = count - 1; i >= 0; i--) {
743*bbb1b6f9SApple OSS Distributions 		dest[i] = src[i];
744*bbb1b6f9SApple OSS Distributions 	}
745*bbb1b6f9SApple OSS Distributions }
746