; AUTO-GENERATED SYMBOL LIST ######################################################################## MRPriCrash ; C00 bl SystemCrash MRSecException ; C04 b MRSecException2 ######################################################################## MRPriSTFSx ; C08 rlwinm r17, r17, 0,16,10 MRPriSTFSUx ; C0C crclr cr7_so b MRDoTableSTFD MRPriSTFDx ; C14 rlwinm r17, r17, 0,16,10 MRPriSTFDUx ; C18 crset cr7_so MRDoTableSTFD ; C1C ; This table is of the form: ; stfd , KDP.FloatScratch(r1) ; b clrrwi r19, r25, 10 rlwimi r19, r17, 14,24,28 addi r19, r19, STFDTable-MRBase mtlr r19 rlwimi r14, r11, 0,18,18 mtmsr r14 blr MRDoneTableSTFD ; c38 ori r11, r11, 0x2000 lwz r20, KDP.FloatScratch(r1) lwz r21, KDP.FloatScratch+4(r1) bso cr7, MRPriUpdLoad extrwi r23, r20, 11,1 cmpwi r23, 0x380 insrwi r20, r20, 27,2 inslwi r20, r21, 3,29 mr r21, r20 bgt MRPriUpdLoad cmpwi r23, 0x36A clrrwi r21, r20, 31 blt MRPriUpdLoad oris r20, r20, 0x80 neg r23, r23 clrlwi r20, r20, 8 srw r20, r20, r23 rlwimi r21, r20, 31,9,31 b MRPriUpdLoad ######################################################################## MRPriSTWBRX ; C84 rlwinm r28, r17, 13,25,29 lwbrx r21, r1, r28 b MRPriPlainLoad MRPriSTHBRX ; C90 rlwinm r28, r17, 13,25,29 addi r21, r1, 2 lhbrx r21, r21, r28 b MRPriPlainLoad ######################################################################## MRPriUpdStore ; CA0 rlwinm r28, r17, 13,25,29 lwzx r21, r1, r28 b MRPriUpdLoad MRPriPlainStore ; CAC rlwinm r28, r17, 13,25,29 lwzx r21, r1, r28 MRPriPlainLoad ; CB4 rlwinm r17, r17, 0,16,10 MRPriUpdLoad ; CB8 extrwi. r22, r17, 4,27 add r19, r18, r22 ######################################################################## MRPriDone ; CC0 clrrwi r25, r25, 10 insrwi r25, r19, 3,28 insrwi r25, r17, 4,24 lha r22, MRMemtab-MRBase(r25) addi r23, r1, KDP.VecTblMemRetry add r22, r22, r25 mtlr r22 mtsprg 3, r23 mtmsr r15 insrwi r25, r26, 8,22 bnelr b MRDoSecondary ######################################################################## MRStore22 ; Fast return paths from MemAccess code srwi r23, r21, 16 sth r23, -4(r19) addi r17, r17, -4 sth r21, -2(r19) b MRDoSecondary MRLoad22 lhz r23, -4(r19) addi r17, r17, -4 insrwi r21, r23, 16,0 MRLoad2 lhz r23, -2(r19) insrwi r21, r23, 16,16 MRDoSecondary ; D18 sync rlwinm. r28, r17, 18,25,29 mtlr r25 cror cr0_eq, cr0_eq, mrOpflag3 mtmsr r14 mtsprg 3, r24 beqlr crset mrFlagDidLoad stwx r18, r1, r28 blr ######################################################################## MRSecLoadExt ; D40 extsh r21, r21 MRSecLoad ; D44 rlwinm r28, r17, 13,25,29 crset mrFlagDidLoad stwx r21, r1, r28 ######################################################################## MRSecDone andi. r23, r16, ContextFlagTraceWhenDone ; Time to return from interrupt addi r10, r10, 4 mtsrr0 r10 mtsrr1 r11 bne @trace ; Is a Trace flagged? mtlr r12 bc BO_IF_NOT, mrFlagDidLoad, @load_ewa_registers mtcr r13 lmw r2, KDP.r2(r1) lwz r0, KDP.r0(r1) lwz r1, KDP.r1(r1) rfi @load_ewa_registers ; Only load changed registers mtcr r13 lmw r10, KDP.r10(r1) lwz r1, KDP.r1(r1) rfi @trace ; Jump to Trace int handler mfsprg r24, 3 mtsprg 2, r12 _clear r16, r16, bitContextFlagTraceWhenDone lwz r12, VecTbl.Trace(r24) stw r16, KDP.Flags(r1) mtcr r13 mtlr r12 lmw r2, KDP.r2(r1) lwz r0, KDP.r0(r1) lwz r1, KDP.r1(r1) mtsprg 1, r1 blrl ######################################################################## MRSecLHBRX ; DC0 slwi r21, r21, 16 MRSecLWBRX ; DC4 rlwinm r28, r17, 13,25,29 crset mrFlagDidLoad stwbrx r21, r1, r28 b MRSecDone ######################################################################## MRSecLFSu ; DD4 clrrwi r20, r21, 31 xor. r21, r20, r21 beq MRSecLFDu rlwinm. r23, r21, 16,17,24 addi r23, r23, 0x80 rlwimi r20, r21, 29,5,31 extsh r23, r23 rlwimi r20, r21, 0,1,1 slwi r21, r21, 29 addi r23, r23, -0x4080 rlwimi r20, r23, 0,2,4 bne MRSecLFDu srwi r21, r21, 20 insrwi r21, r20, 20,0 cntlzw r23, r21 slw r21, r21, r23 neg r23, r23 rlwimi r20, r21, 21,12,31 addi r23, r23, 0x380 slwi r21, r21, 21 insrwi r20, r23, 11,1 MRSecLFDu ; E28 ; This table is of the form: ; lfd , KDP.FloatScratch(r1) ; b MRSecDone clrrwi r23, r25, 10 rlwimi r23, r17, 14,24,28 addi r23, r23, LFDTable-MRBase mtlr r23 stw r20, KDP.FloatScratch(r1) stw r21, KDP.FloatScratch+4(r1) rlwimi r14, r11, 0,18,18 mtmsr r14 ori r11, r11, 0x2000 blr ######################################################################## MRSecLMW ; E50 rlwinm. r28, r17, 13,25,29 rlwinm r23, r17, 18,25,29 cmpw cr7, r28, r23 addis r17, r17, 0x20 beq loc_E68 beq cr7, loc_E6C loc_E68 ; E68 stwx r21, r1, r28 loc_E6C ; E6C cmpwi r28, 0x7C li r22, 9 insrwi r17, r22, 6,26 addi r19, r19, 4 bne MRPriDone b MRSecDone MRSecSTMW ; E84 addis r17, r17, 0x20 rlwinm. r28, r17, 13,25,29 beq MRSecDone lwzx r21, r1, r28 li r22, 8 insrwi r17, r22, 6,26 addi r19, r19, 4 b MRPriDone ######################################################################## MRPriDCBZ ; Zero four 8b chunks of the cache blk clrrwi r19, r18, 5 ; r19 = address of chunk to zero b MRComDCBZ ; (for use by this code only) MRSecDCBZ ; EAC andi. r22, r19, 0x18 clrrwi r19, r19, 3 ; MemAccess code decrements this reg beq MRSecDone ; Zeroed all foun chunks -> done! MRComDCBZ ; EB8 li r22, 0x10 ; Set 8 bytes (? set bit 27) insrwi. r17, r22, 6,26 addi r19, r19, 8 ; Align ptr to right hand size of chunk li r20, 0 ; Contents = zeros li r21, 0 b MRPriDone ; Go, then come back to MRSecDCBZ ######################################################################## MRSecLWARX ; ED0 rlwinm r28, r17, 13,25,29 crset mrFlagDidLoad stwx r21, r1, r28 stwcx. r21, r1, r28 b MRSecDone MRSecSTWCX ; EE4 stwcx. r0, 0, r1 mfcr r23 rlwinm r23, r23, 0,3,1 rlwimi r13, r23, 0,0,3 b MRSecDone ######################################################################## MRSecRedoNoTrace ; Rerun the (cache) instruction, but not its Trace Exception rlwinm r16, r16, 0, ~(ContextFlagTraceWhenDone | ContextFlagMemRetryErr) subi r10, r10, 4 stw r16, KDP.Flags(r1) b MRSecDone ######################################################################## MRSecException2 ; F08 li r8, ecDataInvalidAddress b MRException ######################################################################## MRPriSTSWI ; F10 addi r22, r27, -0x800 extrwi r22, r22, 5,16 b loc_F2C MRPriSTSWX ; F1C mfxer r22 andi. r22, r22, 0x7F addi r22, r22, -1 beq MRSecDone loc_F2C ; F2C rlwimi r17, r22, 4,21,25 not r22, r22 insrwi r17, r22, 2,4 mr r19, r18 b loc_1008 MRSecStrStore ; F40 andi. r22, r17, 0x7C0 addis r28, r17, 0x20 rlwimi r17, r28, 0,6,10 addi r17, r17, -0x40 bne loc_1008 b MRSecDone ######################################################################## MRPriLSWI ; F58 addi r22, r27, -0x800 extrwi r22, r22, 5,16 addis r28, r27, 0x3E0 rlwimi r17, r28, 22,16,20 b loc_F80 MRPriLSWX ; F6C mfxer r22 andi. r22, r22, 0x7F rlwimi r17, r27, 0,16,20 addi r22, r22, -1 beq MRSecDone loc_F80 ; F80 andis. r23, r17, 0x1F rlwimi r17, r22, 4,21,25 not r22, r22 insrwi r17, r22, 2,4 mr r19, r18 bne loc_1070 rlwimi r17, r17, 5,11,15 b loc_1070 MRSecLSWix ; FA0 andi. r22, r17, 0x7C0 rlwinm r28, r17, 13,25,29 bne loc_1044 rlwinm r22, r17, 9,27,28 slw r21, r21, r22 b loc_1044 ######################################################################## MRPriLSCBX ; FB8 mfxer r22 andi. r22, r22, 0x7F rlwimi r17, r27, 0,16,20 insrwi r17, r27, 1,3 addi r22, r22, -1 beq MRSecDone andis. r23, r17, 0x1F rlwimi r17, r22, 4,21,25 not r22, r22 insrwi r17, r22, 2,4 mr r19, r18 bne loc_10C8 rlwimi r17, r17, 5,11,15 b loc_10C8 MRSecLSCBX ; FF0 rlwinm. r22, r17, 28,25,29 rlwinm r28, r17, 13,25,29 bne loc_109C rlwinm r23, r17, 9,27,28 slw r21, r21, r23 b loc_109C ######################################################################## loc_1008 ; 1008 andi. r23, r17, 0x7C0 rlwinm r28, r17, 13,25,29 lwzx r21, r1, r28 li r22, 8 insrwi r17, r22, 6,26 addi r19, r19, 4 bne MRPriDone rlwinm r22, r17, 9,27,28 srw r21, r21, r22 extrwi r22, r17, 2,4 neg r22, r22 add r19, r19, r22 addi r22, r22, 4 insrwi. r17, r22, 5,26 b MRPriDone loc_1044 ; 1044 rlwinm r23, r17, 18,25,29 cmpw cr7, r28, r23 rlwinm r23, r17, 23,25,29 cmpw cr6, r28, r23 beq cr7, loc_1060 beq cr6, loc_1060 stwx r21, r1, r28 loc_1060 ; 1060 addis r28, r17, 0x20 rlwimi r17, r28, 0,6,10 addi r17, r17, -0x40 beq MRSecDone loc_1070 ; 1070 andi. r23, r17, 0x7C0 li r22, 9 insrwi r17, r22, 6,26 addi r19, r19, 4 bne MRPriDone extrwi r22, r17, 2,4 neg r22, r22 add r19, r19, r22 addi r22, r22, 4 insrwi. r17, r22, 5,26 b MRPriDone loc_109C ; 109C rlwinm r23, r17, 18,25,29 cmpw cr7, r28, r23 rlwinm r23, r17, 23,25,29 cmpw cr6, r28, r23 beq cr7, loc_10B8 beq cr6, loc_10B8 stwx r21, r1, r28 loc_10B8 ; 10B8 addis r28, r17, 0x20 rlwimi r17, r28, 0,6,10 addi r17, r17, -0x40 beq MRSecDone loc_10C8 ; 10C8 not r22, r22 rlwimi r22, r17, 6,30,31 li r28, 1 mfxer r23 extrwi r23, r23, 8,16 srwi r20, r21, 24 cmpw cr7, r20, r23 add. r22, r22, r28 beq cr7, loc_112C beq loc_112C extrwi r20, r21, 8,8 cmpw cr7, r20, r23 add. r22, r22, r28 beq cr7, loc_112C beq loc_112C extrwi r20, r21, 8,16 cmpw cr7, r20, r23 add. r22, r22, r28 beq cr7, loc_112C beq loc_112C clrlwi r20, r21, 24 cmpw cr7, r20, r23 add. r22, r22, r28 beq cr7, loc_112C bne loc_1070 loc_112C ; 112C rlwinm. r28, r17, 0,3,3 mfxer r23 add r22, r22, r23 insrwi r23, r22, 7,25 mtxer r23 beq MRSecDone mfcr r23 clrlwi r23, r23, 30 insrwi r13, r23, 4,0 b MRSecDone