Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 899 → Rev 900

/kernel/trunk/arch/ia64/src/mm/tlb.c
33,7 → 33,9
#include <mm/tlb.h>
#include <arch/mm/tlb.h>
#include <arch/barrier.h>
#include <arch/interrupt.h>
#include <typedefs.h>
#include <panic.h>
 
/** Invalidate all TLB entries. */
void tlb_invalidate_all(void)
102,8 → 104,7
__asm__ volatile (
"mov r8=psr;;\n"
"and r9=r8,%0;;\n" /* (~PSR_IC_MASK) */
"mov psr.l=r9;;\n"
"rsm %0;;\n" /* PSR_IC_MASK */
"srlz.d;;\n"
"srlz.i;;\n"
"mov cr.ifa=%1\n" /* va */
114,8 → 115,8
"mov psr.l=r8;;\n"
"srlz.d;;\n"
:
: "r" (~PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (dtc)
: "p6", "p7", "r8", "r9"
: "i" (PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (dtc)
: "p6", "p7", "r8"
);
if (restore_rr) {
182,8 → 183,7
 
__asm__ volatile (
"mov r8=psr;;\n"
"and r9=r8,%0;;\n" /* (~PSR_IC_MASK) */
"mov psr.l=r9;;\n"
"rsm %0;;\n" /* PSR_IC_MASK */
"srlz.d;;\n"
"srlz.i;;\n"
"mov cr.ifa=%1\n" /* va */
194,8 → 194,8
"mov psr.l=r8;;\n"
"srlz.d;;\n"
:
:"r" (~PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (tr), "r" (dtr)
: "p6", "p7", "r8", "r9"
: "i" (PSR_IC_MASK), "r" (va), "r" (entry.word[1]), "r" (entry.word[0]), "r" (tr), "r" (dtr)
: "p6", "p7", "r8"
);
if (restore_rr) {
205,37 → 205,37
}
}
 
void alternate_instruction_tlb_fault(void)
void alternate_instruction_tlb_fault(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
}
 
void alternate_data_tlb_fault(void)
void alternate_data_tlb_fault(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
panic("%s: %P\n", __FUNCTION__, pstate->cr_ifa);
}
 
void data_nested_tlb_fault(void)
void data_nested_tlb_fault(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
}
 
void data_dirty_bit_fault(void)
void data_dirty_bit_fault(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
}
 
void instruction_access_bit_fault(void)
void instruction_access_bit_fault(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
}
 
void data_access_bit_fault(void)
void data_access_bit_fault(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
}
 
void page_not_present(void)
void page_not_present(__u64 vector, struct exception_regdump *pstate)
{
panic("%s\n", __FUNCTION__);
}