Revision 701eed4b target-sparc/helper.c
b/target-sparc/helper.c | ||
---|---|---|
107 | 107 |
int access_perms = 0; |
108 | 108 |
target_phys_addr_t pde_ptr; |
109 | 109 |
uint32_t pde; |
110 |
target_ulong virt_addr; |
|
111 | 110 |
int error_code = 0, is_dirty, is_user; |
112 | 111 |
unsigned long page_offset; |
113 | 112 |
|
114 | 113 |
is_user = mmu_idx == MMU_USER_IDX; |
115 |
virt_addr = address & TARGET_PAGE_MASK; |
|
116 | 114 |
|
117 | 115 |
if ((env->mmuregs[0] & MMU_E) == 0) { /* MMU disabled */ |
118 | 116 |
// Boot mode: instruction fetches are taken from PROM |
... | ... | |
174 | 172 |
case 3: /* Reserved */ |
175 | 173 |
return (3 << 8) | (4 << 2); |
176 | 174 |
case 2: /* L3 PTE */ |
177 |
virt_addr = address & TARGET_PAGE_MASK; |
|
178 | 175 |
page_offset = (address & TARGET_PAGE_MASK) & |
179 | 176 |
(TARGET_PAGE_SIZE - 1); |
180 | 177 |
} |
181 | 178 |
break; |
182 | 179 |
case 2: /* L2 PTE */ |
183 |
virt_addr = address & ~0x3ffff; |
|
184 | 180 |
page_offset = address & 0x3ffff; |
185 | 181 |
} |
186 | 182 |
break; |
187 | 183 |
case 2: /* L1 PTE */ |
188 |
virt_addr = address & ~0xffffff; |
|
189 | 184 |
page_offset = address & 0xffffff; |
190 | 185 |
} |
191 | 186 |
} |
Also available in: Unified diff