These changes fix logical consistency and correctness issues with the instruction definitions as printed in the manual. The most serious issues were: - div0u/div0s/div1 use `m` as a temporary variable which contradicts the existence of the `m` register number - missing semicolons - inconsistent references to immediate and displacement variable names
15 lines
405 B
Plaintext
15 lines
405 B
Plaintext
0000000000111000
|
|
md ← ZeroExtend1(MD);
|
|
IF (md = 0)
|
|
THROW RESINST;
|
|
UTLB[MMUCR.URC].ASID ← PTEH.ASID;
|
|
UTLB[MMUCR.URC].VPN ← PTEH.VPN;
|
|
UTLB[MMUCR.URC].PPN ← PTEH.PPN;
|
|
UTLB[MMUCR.URC].SZ ← PTEL.SZ1<<1 + PTEL.SZ0;
|
|
UTLB[MMUCR.URC].SH ← PTEL.SH;
|
|
UTLB[MMUCR.URC].PR ← PTEL.PR;
|
|
UTLB[MMUCR.URC].WT ← PTEL.WT;
|
|
UTLB[MMUCR.URC].C ← PTEL.C;
|
|
UTLB[MMUCR.URC].D ← PTEL.D;
|
|
UTLB[MMUCR.URC].V ← PTEL.V;
|