1/*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23#ifndef RLD
24
25#define __cr cr
26#define __ctr ctr
27#define __dar dar
28#define __dsisr dsisr
29#define __exception exception
30#define __fpregs fpregs
31#define __fpscr fpscr
32#define __fpscr_pad fpscr_pad
33#define __lr lr
34#define __mq mq
35#define __pad0 pad0
36#define __pad1 pad1
37#define __r0 r0
38#define __r1 r1
39#define __r10 r10
40#define __r11 r11
41#define __r12 r12
42#define __r13 r13
43#define __r14 r14
44#define __r15 r15
45#define __r16 r16
46#define __r17 r17
47#define __r18 r18
48#define __r19 r19
49#define __r2 r2
50#define __r20 r20
51#define __r21 r21
52#define __r22 r22
53#define __r23 r23
54#define __r24 r24
55#define __r25 r25
56#define __r26 r26
57#define __r27 r27
58#define __r28 r28
59#define __r29 r29
60#define __r3 r3
61#define __r30 r30
62#define __r31 r31
63#define __r4 r4
64#define __r5 r5
65#define __r6 r6
66#define __r7 r7
67#define __r8 r8
68#define __r9 r9
69#define __srr0 srr0
70#define __srr1 srr1
71#define __vrsave vrsave
72#define __xer xer
73
74#import <mach-o/ppc/swap.h>
75#import <architecture/nrw/reg_help.h>
76
77void
78swap_ppc_thread_state_t(
79ppc_thread_state_t *cpu,
80enum NXByteOrder target_byte_sex)
81{
82	cpu->srr0 = OSSwapInt32(cpu->srr0);
83	cpu->srr1 = OSSwapInt32(cpu->srr1);
84	cpu->r0 = OSSwapInt32(cpu->r0);
85	cpu->r1 = OSSwapInt32(cpu->r1);
86	cpu->r2 = OSSwapInt32(cpu->r2);
87	cpu->r3 = OSSwapInt32(cpu->r3);
88	cpu->r4 = OSSwapInt32(cpu->r4);
89	cpu->r5 = OSSwapInt32(cpu->r5);
90	cpu->r6 = OSSwapInt32(cpu->r6);
91	cpu->r7 = OSSwapInt32(cpu->r7);
92	cpu->r8 = OSSwapInt32(cpu->r8);
93	cpu->r9 = OSSwapInt32(cpu->r9);
94	cpu->r10 = OSSwapInt32(cpu->r10);
95	cpu->r11 = OSSwapInt32(cpu->r11);
96	cpu->r12 = OSSwapInt32(cpu->r12);
97	cpu->r13 = OSSwapInt32(cpu->r13);
98	cpu->r14 = OSSwapInt32(cpu->r14);
99	cpu->r15 = OSSwapInt32(cpu->r15);
100	cpu->r16 = OSSwapInt32(cpu->r16);
101	cpu->r17 = OSSwapInt32(cpu->r17);
102	cpu->r18 = OSSwapInt32(cpu->r18);
103	cpu->r19 = OSSwapInt32(cpu->r19);
104	cpu->r20 = OSSwapInt32(cpu->r20);
105	cpu->r21 = OSSwapInt32(cpu->r21);
106	cpu->r22 = OSSwapInt32(cpu->r22);
107	cpu->r23 = OSSwapInt32(cpu->r23);
108	cpu->r24 = OSSwapInt32(cpu->r24);
109	cpu->r25 = OSSwapInt32(cpu->r25);
110	cpu->r26 = OSSwapInt32(cpu->r26);
111	cpu->r27 = OSSwapInt32(cpu->r27);
112	cpu->r28 = OSSwapInt32(cpu->r28);
113	cpu->r29 = OSSwapInt32(cpu->r29);
114	cpu->r30 = OSSwapInt32(cpu->r30);
115	cpu->r31 = OSSwapInt32(cpu->r31);
116	cpu->lr  = OSSwapInt32(cpu->lr);
117	cpu->cr  = OSSwapInt32(cpu->cr);
118	cpu->xer = OSSwapInt32(cpu->xer);
119	cpu->ctr = OSSwapInt32(cpu->ctr);
120	cpu->mq  = OSSwapInt32(cpu->mq);
121	cpu->vrsave = OSSwapInt32(cpu->vrsave);
122
123}
124
125void
126swap_ppc_float_state_t(
127ppc_float_state_t *fpu,
128enum NXByteOrder target_byte_sex)
129{
130    uint32_t i;
131
132	for(i = 0; i < 32; i++)
133	    fpu->fpregs[i] = OSSwapInt64(fpu->fpregs[i]);
134
135	fpu->fpscr_pad = OSSwapInt32(fpu->fpscr_pad);
136	fpu->fpscr = OSSwapInt32(fpu->fpscr);
137}
138
139void
140swap_ppc_exception_state_t(
141ppc_exception_state_t *state,
142enum NXByteOrder target_byte_sex)
143{
144    uint32_t i;
145
146	state->dar = OSSwapInt32(state->dar);
147	state->dsisr = OSSwapInt32(state->dsisr);
148	state->exception = OSSwapInt32(state->exception);
149	state->pad0 = OSSwapInt32(state->pad0);
150
151	for(i = 0; i < 4; i++)
152	    state->pad1[i] = OSSwapInt32(state->pad1[i]);
153}
154#endif /* !defined(RLD) */
155