[OSy] Problemy se zapisem do tlb
Tom� Martinec
fyzmat at gmail.com
Tue Dec 2 11:32:41 CET 2008
Dobry den,
Resim uz chvili problem pri zapisu do tlb polozky. Naplnim registry HI
a LO prislusnymi hodnotami, nastavim index registr na prvni polozku
tlb a nasledne zapisu polozku instrukci tlbwi. Hned na to polozku ctu
instrukci tlbr a zjistuji, ze v tlb je jina hodnota nez jsem tam
zapsal.
Vytazek z trasovani:
/* Zapis do HI */
800021F0 mtc0 s1, entryhi # cp0_entryhi: 0x000000ff->0x03bae000
800021F4 andi s0, s0, 0x0001 # s0: 0x800d0->0x0
800021F8 bne s0, 0, 0x1d # 0x1d=29
800021FC addiu v1, 0, 0x1 # v1: 0x30->0x1
80002200 sll v0, s2, 0x06 # v0: 0xffffe000->0x2003400
80002204 ori v0, v0, 0x0007 # v0: 0x2003400->0x2003407
80002208 nop
/* Zapis do LO */
8000220C mtc0 v0, entrylo0 #
# cp0_entrylo0: 0x00000001->0x02003407
80002210 addiu v1, 0, 0x1
80002214 nop
80002218 mtc0 v1, entrylo1
8000221C addu v0, 0, 0 # v0: 0x2003407->0x0
80002220 nop
/* Nastaveni indexu na polozku nula TLB tabulky*/
80002224 mtc0 v0, index # cp0_index: 0x0000002f->0x00000000
/* Zapis do TLB*/
80002228 tlbwi
/* Precteni stejne polozky, hodnota je jina nez by mela byt*/
8000222C tlbr #
# cp0_entrylo0: 0x02003407->0xfe003407
Podle manualu by meli byt dva nejvyssi bity navracene hodnoty dokonce nulove.
Vim, ze podobne veci jsou vetsinou zpusobene hloupostmi; chtel bych se
tedy chtel jenom zeptat, jestli netusite v cem
by mohl byt problem.
S pozdravem
Tomas Martinec
More information about the NSWI004
mailing list