/[pearpc]/src/cpu/cpu_jitc_x86/ppc_mmu.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /src/cpu/cpu_jitc_x86/ppc_mmu.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations)
Wed Sep 5 17:11:21 2007 UTC (12 years, 2 months ago) by dpavlin
File MIME type: text/plain
File size: 7044 byte(s)
import upstream CVS
1 /*
2 * PearPC
3 * ppc_mmu.h
4 *
5 * Copyright (C) 2003, 2004 Sebastian Biallas (sb@biallas.net)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20
21 #ifndef __PPC_MMU_H__
22 #define __PPC_MMU_H__
23
24 #include "system/types.h"
25
26 extern byte *gMemory;
27 extern uint32 gMemorySize;
28
29 #define PPC_MMU_READ 1
30 #define PPC_MMU_WRITE 2
31 #define PPC_MMU_CODE 4
32 #define PPC_MMU_SV 8
33 #define PPC_MMU_NO_EXC 16
34
35 #define PPC_MMU_OK 0
36 #define PPC_MMU_EXC 1
37 #define PPC_MMU_FATAL 2
38
39 int FASTCALL ppc_effective_to_physical(uint32 addr, int flags, uint32 &result);
40 int FASTCALL ppc_effective_to_physical_vm(uint32 addr, int flags, uint32 &result);
41 bool FASTCALL ppc_mmu_set_sdr1(uint32 newval, bool quiesce);
42 void ppc_mmu_tlb_invalidate();
43
44 int FASTCALL ppc_read_physical_dword(uint32 addr, uint64 &result);
45 int FASTCALL ppc_read_physical_word(uint32 addr, uint32 &result);
46 int FASTCALL ppc_read_physical_half(uint32 addr, uint16 &result);
47 int FASTCALL ppc_read_physical_byte(uint32 addr, uint8 &result);
48
49 int FASTCALL ppc_read_effective_code(uint32 addr, uint32 &result);
50 int FASTCALL ppc_read_effective_dword(uint32 addr, uint64 &result);
51 int FASTCALL ppc_read_effective_word(uint32 addr, uint32 &result);
52 int FASTCALL ppc_read_effective_half(uint32 addr, uint16 &result);
53 int FASTCALL ppc_read_effective_byte(uint32 addr, uint8 &result);
54
55 int FASTCALL ppc_write_physical_dword(uint32 addr, uint64 data);
56 int FASTCALL ppc_write_physical_word(uint32 addr, uint32 data);
57 int FASTCALL ppc_write_physical_half(uint32 addr, uint16 data);
58 int FASTCALL ppc_write_physical_byte(uint32 addr, uint8 data);
59
60 int FASTCALL ppc_write_effective_dword(uint32 addr, uint64 data);
61 int FASTCALL ppc_write_effective_word(uint32 addr, uint32 data);
62 int FASTCALL ppc_write_effective_half(uint32 addr, uint16 data);
63 int FASTCALL ppc_write_effective_byte(uint32 addr, uint8 data);
64
65 int FASTCALL ppc_direct_physical_memory_handle(uint32 addr, byte *&ptr);
66 int FASTCALL ppc_direct_effective_memory_handle(uint32 addr, byte *&ptr);
67 int FASTCALL ppc_direct_effective_memory_handle_code(uint32 addr, byte *&ptr);
68 bool FASTCALL ppc_mmu_page_create(uint32 ea, uint32 pa);
69 bool FASTCALL ppc_mmu_page_free(uint32 ea);
70 bool FASTCALL ppc_init_physical_memory(uint size);
71
72 /*
73 pte: (page table entry)
74 1st word:
75 0 V Valid
76 1-24 VSID Virtual Segment ID
77 25 H Hash function
78 26-31 API Abbreviated page index
79 2nd word:
80 0-19 RPN Physical page number
81 20-22 res
82 23 R Referenced bit
83 24 C Changed bit
84 25-28 WIMG Memory/cache control bits
85 29 res
86 30-31 PP Page protection bits
87 */
88
89 /*
90 * MMU Opcodes
91 */
92 void ppc_opc_dcbz();
93
94 void ppc_opc_lbz();
95 void ppc_opc_lbzu();
96 void ppc_opc_lbzux();
97 void ppc_opc_lbzx();
98 void ppc_opc_lfd();
99 void ppc_opc_lfdu();
100 void ppc_opc_lfdux();
101 void ppc_opc_lfdx();
102 void ppc_opc_lfs();
103 void ppc_opc_lfsu();
104 void ppc_opc_lfsux();
105 void ppc_opc_lfsx();
106 void ppc_opc_lha();
107 void ppc_opc_lhau();
108 void ppc_opc_lhaux();
109 void ppc_opc_lhax();
110 void ppc_opc_lhbrx();
111 void ppc_opc_lhz();
112 void ppc_opc_lhzu();
113 void ppc_opc_lhzux();
114 void ppc_opc_lhzx();
115 void ppc_opc_lmw();
116 void ppc_opc_lswi();
117 void ppc_opc_lswx();
118 void ppc_opc_lwarx();
119 void ppc_opc_lwbrx();
120 void ppc_opc_lwz();
121 void ppc_opc_lwzu();
122 void ppc_opc_lwzux();
123 void ppc_opc_lwzx();
124 void ppc_opc_lvx(); /* for altivec support */
125 void ppc_opc_lvxl();
126 void ppc_opc_lvebx();
127 void ppc_opc_lvehx();
128 void ppc_opc_lvewx();
129 void ppc_opc_lvsl();
130 void ppc_opc_lvsr();
131 void ppc_opc_dst();
132
133 void ppc_opc_stb();
134 void ppc_opc_stbu();
135 void ppc_opc_stbux();
136 void ppc_opc_stbx();
137 void ppc_opc_stfd();
138 void ppc_opc_stfdu();
139 void ppc_opc_stfdux();
140 void ppc_opc_stfdx();
141 void ppc_opc_stfiwx();
142 void ppc_opc_stfs();
143 void ppc_opc_stfsu();
144 void ppc_opc_stfsux();
145 void ppc_opc_stfsx();
146 void ppc_opc_sth();
147 void ppc_opc_sthbrx();
148 void ppc_opc_sthu();
149 void ppc_opc_sthux();
150 void ppc_opc_sthx();
151 void ppc_opc_stmw();
152 void ppc_opc_stswi();
153 void ppc_opc_stswx();
154 void ppc_opc_stw();
155 void ppc_opc_stwbrx();
156 void ppc_opc_stwcx_();
157 void ppc_opc_stwu();
158 void ppc_opc_stwux();
159 void ppc_opc_stwx();
160 void ppc_opc_stvx(); /* for altivec support */
161 void ppc_opc_stvxl();
162 void ppc_opc_stvebx();
163 void ppc_opc_stvehx();
164 void ppc_opc_stvewx();
165 void ppc_opc_dstst();
166 void ppc_opc_dss();
167
168 #include "jitc_types.h"
169
170 JITCFlow ppc_opc_gen_dcbz();
171
172 JITCFlow ppc_opc_gen_lbz();
173 JITCFlow ppc_opc_gen_lbzu();
174 JITCFlow ppc_opc_gen_lbzux();
175 JITCFlow ppc_opc_gen_lbzx();
176 JITCFlow ppc_opc_gen_lfd();
177 JITCFlow ppc_opc_gen_lfdu();
178 JITCFlow ppc_opc_gen_lfdux();
179 JITCFlow ppc_opc_gen_lfdx();
180 JITCFlow ppc_opc_gen_lfs();
181 JITCFlow ppc_opc_gen_lfsu();
182 JITCFlow ppc_opc_gen_lfsux();
183 JITCFlow ppc_opc_gen_lfsx();
184 JITCFlow ppc_opc_gen_lha();
185 JITCFlow ppc_opc_gen_lhau();
186 JITCFlow ppc_opc_gen_lhaux();
187 JITCFlow ppc_opc_gen_lhax();
188 JITCFlow ppc_opc_gen_lhbrx();
189 JITCFlow ppc_opc_gen_lhz();
190 JITCFlow ppc_opc_gen_lhzu();
191 JITCFlow ppc_opc_gen_lhzux();
192 JITCFlow ppc_opc_gen_lhzx();
193 JITCFlow ppc_opc_gen_lmw();
194 JITCFlow ppc_opc_gen_lswi();
195 JITCFlow ppc_opc_gen_lswx();
196 JITCFlow ppc_opc_gen_lwarx();
197 JITCFlow ppc_opc_gen_lwbrx();
198 JITCFlow ppc_opc_gen_lwz();
199 JITCFlow ppc_opc_gen_lwzu();
200 JITCFlow ppc_opc_gen_lwzux();
201 JITCFlow ppc_opc_gen_lwzx();
202 JITCFlow ppc_opc_gen_lvx(); /* for altivec support */
203 JITCFlow ppc_opc_gen_lvxl();
204 JITCFlow ppc_opc_gen_lvebx();
205 JITCFlow ppc_opc_gen_lvehx();
206 JITCFlow ppc_opc_gen_lvewx();
207 JITCFlow ppc_opc_gen_lvsl();
208 JITCFlow ppc_opc_gen_lvsr();
209 JITCFlow ppc_opc_gen_dst();
210
211 JITCFlow ppc_opc_gen_stb();
212 JITCFlow ppc_opc_gen_stbu();
213 JITCFlow ppc_opc_gen_stbux();
214 JITCFlow ppc_opc_gen_stbx();
215 JITCFlow ppc_opc_gen_stfd();
216 JITCFlow ppc_opc_gen_stfdu();
217 JITCFlow ppc_opc_gen_stfdux();
218 JITCFlow ppc_opc_gen_stfdx();
219 JITCFlow ppc_opc_gen_stfiwx();
220 JITCFlow ppc_opc_gen_stfs();
221 JITCFlow ppc_opc_gen_stfsu();
222 JITCFlow ppc_opc_gen_stfsux();
223 JITCFlow ppc_opc_gen_stfsx();
224 JITCFlow ppc_opc_gen_sth();
225 JITCFlow ppc_opc_gen_sthbrx();
226 JITCFlow ppc_opc_gen_sthu();
227 JITCFlow ppc_opc_gen_sthux();
228 JITCFlow ppc_opc_gen_sthx();
229 JITCFlow ppc_opc_gen_stmw();
230 JITCFlow ppc_opc_gen_stswi();
231 JITCFlow ppc_opc_gen_stswx();
232 JITCFlow ppc_opc_gen_stw();
233 JITCFlow ppc_opc_gen_stwbrx();
234 JITCFlow ppc_opc_gen_stwcx_();
235 JITCFlow ppc_opc_gen_stwu();
236 JITCFlow ppc_opc_gen_stwux();
237 JITCFlow ppc_opc_gen_stwx();
238 JITCFlow ppc_opc_gen_stvx(); /* for altivec support */
239 JITCFlow ppc_opc_gen_stvxl();
240 JITCFlow ppc_opc_gen_stvebx();
241 JITCFlow ppc_opc_gen_stvehx();
242 JITCFlow ppc_opc_gen_stvewx();
243 JITCFlow ppc_opc_gen_dstst();
244 JITCFlow ppc_opc_gen_dss();
245
246 #endif
247

  ViewVC Help
Powered by ViewVC 1.1.26