/trunk/kernel/arch/sparc64/include/asm.h |
---|
330,7 → 330,7 |
extern void write_to_ag_g7(uint64_t val); |
extern void write_to_ig_g6(uint64_t val); |
extern void switch_to_userspace(uint64_t pc, uint64_t sp); |
extern void switch_to_userspace(uint64_t pc, uint64_t sp, uint64_t uarg); |
#endif |
/trunk/kernel/arch/sparc64/include/trap/mmu.h |
---|
127,17 → 127,16 |
*/ |
.macro HANDLE_MMU_TRAPS_FROM_SPILL_OR_FILL |
rdpr %tl, %g1 |
dec %g1 |
brz %g1, 0f ! if TL was 1, skip |
sub %g1, 1, %g2 |
brz %g2, 0f ! if TL was 1, skip |
nop |
wrpr %g1, 0, %tl ! TL-- |
rdpr %tt, %g2 |
cmp %g2, TT_SPILL_1_NORMAL |
be 0f ! trap from spill_1_normal |
cmp %g2, TT_FILL_1_NORMAL |
be 0f ! trap from fill_1_normal |
inc %g1 |
wrpr %g1, 0, %tl ! another trap, TL++ |
wrpr %g2, 0, %tl ! TL-- |
rdpr %tt, %g3 |
cmp %g3, TT_SPILL_1_NORMAL |
be 0f ! trap from spill_1_normal? |
cmp %g3, TT_FILL_1_NORMAL |
bne,a 0f ! trap from fill_1_normal? (negated condition) |
wrpr %g1, 0, %tl ! TL++ |
0: |
.endm |
/trunk/kernel/arch/sparc64/include/mm/tlb.h |
---|
179,7 → 179,7 |
*/ |
static inline void mmu_secondary_context_write(uint64_t v) |
{ |
asi_u64_write(ASI_DMMU, VA_PRIMARY_CONTEXT_REG, v); |
asi_u64_write(ASI_DMMU, VA_SECONDARY_CONTEXT_REG, v); |
flush(); |
} |
/trunk/kernel/arch/sparc64/include/mm/as.h |
---|
42,7 → 42,7 |
#define USER_ADDRESS_SPACE_START_ARCH (unsigned long) 0x0000000000000000 |
#define USER_ADDRESS_SPACE_END_ARCH (unsigned long) 0xffffffffffffffff |
#define USTACK_ADDRESS_ARCH (0x7fffffffffffffff-(PAGE_SIZE-1)) |
#define USTACK_ADDRESS_ARCH (0xffffffffffffffffULL-(PAGE_SIZE-1)) |
extern void as_arch_init(void); |