mirror of
https://github.com/elliotnunn/powermac-rom.git
synced 2024-06-06 17:29:32 +00:00
round trips
This commit is contained in:
parent
fd02e62892
commit
f7aed5e009
|
@ -80,10 +80,10 @@ maskMsrFlags equ 0x00000F00
|
|||
########################################################################
|
||||
|
||||
; MemRetry flags in CR3
|
||||
_bitequate cr3_lt, mrSkipInstLoad ; misalignment handler need not read the instruction
|
||||
_bitequate cr3_gt, mrXformIgnoreIdxReg ; instruction is X-form but without an rB field
|
||||
_bitequate cr3_eq, mrSuppressUpdate ; instruction may not update base reg in-place
|
||||
_bitequate cr3_so, mrChangedRegInEWA ; have "loaded" a new reg value (i.e. saved into EWA)
|
||||
mrSkipInstLoad equ cr3_lt ; misalignment handler need not read the instruction
|
||||
mrXformIgnoreIdxReg equ cr3_gt ; instruction is X-form but without an rB field
|
||||
mrSuppressUpdate equ cr3_eq ; instruction may not update base reg in-place
|
||||
mrChangedRegInEWA equ cr3_so ; have "loaded" a new reg value (i.e. saved into EWA)
|
||||
|
||||
########################################################################
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ VMInit ; logicalpages a0/r4, pagearray (logical ptr) a1/r5
|
|||
rlwinm r3, r16, 23, 9, 28
|
||||
lwzux r8, r14, r3
|
||||
lwz r9, 4(r14)
|
||||
andis. r3, r8, UpteValid >> 16 ; that pte must be valid, and one of P0/P1 must be set!
|
||||
andis. r3, r8, 0x8000;UpteValid ; that pte must be valid, and one of P0/P1 must be set!
|
||||
beql SystemCrash
|
||||
andi. r3, r9, LpteP0 | LpteP1
|
||||
cmpwi r3, 0
|
||||
|
@ -240,7 +240,7 @@ VMInit ; logicalpages a0/r4, pagearray (logical ptr) a1/r5
|
|||
li r8, PMDT_InvalidAddress ; (second word: PMDT_InvalidAddress)
|
||||
@pmdtresetloop
|
||||
lwz r3, 0(r6)
|
||||
addi r6, r6, 0
|
||||
addi r6, r6, 8
|
||||
stw r7, 0(r3)
|
||||
stw r8, 4(r3)
|
||||
stw r7, 8(r3)
|
||||
|
@ -343,7 +343,7 @@ VMIsInited ; page a0/r4 // bool d0/r3
|
|||
; An uninited page is not resident and does not have its Inited bit set
|
||||
bl PageInfo
|
||||
bc BO_IF, bM68pdResident, vmRet1
|
||||
_mvbit r3, 31, r16, bM68pdInited
|
||||
_mvbit0 r3, 31, r16, bM68pdInited
|
||||
b vmRet
|
||||
|
||||
########################################################################
|
||||
|
@ -357,7 +357,7 @@ VMIsResident ; page a0/r4 // bool d0/r3
|
|||
|
||||
VMIsUnmodified ; page a0/r4 // bool d0/r3
|
||||
bl PageInfo
|
||||
rlwinm r3, r16, bM68pdModified + 1, 1
|
||||
_mvbit0 r3, 31, r16, bM68pdModified
|
||||
xori r3, r3, 1
|
||||
b vmRet
|
||||
|
||||
|
|
|
@ -51,6 +51,13 @@ my_pad set (my_align - (my_offset & my_mask)) & my_mask
|
|||
rlwimi &rd, &rs, (32 + &bs - &bd) % 32, &bd, &bd
|
||||
ENDM
|
||||
|
||||
########################################################################
|
||||
|
||||
MACRO
|
||||
_mvbit0 &rd, &bd, &rs, &bs
|
||||
rlwinm &rd, &rs, (32 + &bs - &bd) % 32, &bd, &bd
|
||||
ENDM
|
||||
|
||||
########################################################################
|
||||
|
||||
MACRO
|
||||
|
|
Loading…
Reference in New Issue
Block a user