?? aes-ppc.pl
字號:
xor $s3,$s3,$t3 mtctr $acc00.align 4Lenc_loop: rlwinm $acc00,$s0,`32-24+3`,21,28 rlwinm $acc01,$s1,`32-24+3`,21,28 lwz $t0,0($key) lwz $t1,4($key) rlwinm $acc02,$s2,`32-24+3`,21,28 rlwinm $acc03,$s3,`32-24+3`,21,28 lwz $t2,8($key) lwz $t3,12($key) rlwinm $acc04,$s1,`32-16+3`,21,28 rlwinm $acc05,$s2,`32-16+3`,21,28 lwzx $acc00,$Tbl0,$acc00 lwzx $acc01,$Tbl0,$acc01 rlwinm $acc06,$s3,`32-16+3`,21,28 rlwinm $acc07,$s0,`32-16+3`,21,28 lwzx $acc02,$Tbl0,$acc02 lwzx $acc03,$Tbl0,$acc03 rlwinm $acc08,$s2,`32-8+3`,21,28 rlwinm $acc09,$s3,`32-8+3`,21,28 lwzx $acc04,$Tbl1,$acc04 lwzx $acc05,$Tbl1,$acc05 rlwinm $acc10,$s0,`32-8+3`,21,28 rlwinm $acc11,$s1,`32-8+3`,21,28 lwzx $acc06,$Tbl1,$acc06 lwzx $acc07,$Tbl1,$acc07 rlwinm $acc12,$s3,`0+3`,21,28 rlwinm $acc13,$s0,`0+3`,21,28 lwzx $acc08,$Tbl2,$acc08 lwzx $acc09,$Tbl2,$acc09 rlwinm $acc14,$s1,`0+3`,21,28 rlwinm $acc15,$s2,`0+3`,21,28 lwzx $acc10,$Tbl2,$acc10 lwzx $acc11,$Tbl2,$acc11 xor $t0,$t0,$acc00 xor $t1,$t1,$acc01 lwzx $acc12,$Tbl3,$acc12 lwzx $acc13,$Tbl3,$acc13 xor $t2,$t2,$acc02 xor $t3,$t3,$acc03 lwzx $acc14,$Tbl3,$acc14 lwzx $acc15,$Tbl3,$acc15 xor $t0,$t0,$acc04 xor $t1,$t1,$acc05 xor $t2,$t2,$acc06 xor $t3,$t3,$acc07 xor $t0,$t0,$acc08 xor $t1,$t1,$acc09 xor $t2,$t2,$acc10 xor $t3,$t3,$acc11 xor $s0,$t0,$acc12 xor $s1,$t1,$acc13 xor $s2,$t2,$acc14 xor $s3,$t3,$acc15 addi $key,$key,16 bdnz- Lenc_loop addi $Tbl2,$Tbl0,2048 nop lwz $acc08,`2048+0`($Tbl0) ! prefetch Te4 lwz $acc09,`2048+32`($Tbl0) lwz $acc10,`2048+64`($Tbl0) lwz $acc11,`2048+96`($Tbl0) lwz $acc08,`2048+128`($Tbl0) lwz $acc09,`2048+160`($Tbl0) lwz $acc10,`2048+192`($Tbl0) lwz $acc11,`2048+224`($Tbl0) rlwinm $acc00,$s0,`32-24`,24,31 rlwinm $acc01,$s1,`32-24`,24,31 lwz $t0,0($key) lwz $t1,4($key) rlwinm $acc02,$s2,`32-24`,24,31 rlwinm $acc03,$s3,`32-24`,24,31 lwz $t2,8($key) lwz $t3,12($key) rlwinm $acc04,$s1,`32-16`,24,31 rlwinm $acc05,$s2,`32-16`,24,31 lbzx $acc00,$Tbl2,$acc00 lbzx $acc01,$Tbl2,$acc01 rlwinm $acc06,$s3,`32-16`,24,31 rlwinm $acc07,$s0,`32-16`,24,31 lbzx $acc02,$Tbl2,$acc02 lbzx $acc03,$Tbl2,$acc03 rlwinm $acc08,$s2,`32-8`,24,31 rlwinm $acc09,$s3,`32-8`,24,31 lbzx $acc04,$Tbl2,$acc04 lbzx $acc05,$Tbl2,$acc05 rlwinm $acc10,$s0,`32-8`,24,31 rlwinm $acc11,$s1,`32-8`,24,31 lbzx $acc06,$Tbl2,$acc06 lbzx $acc07,$Tbl2,$acc07 rlwinm $acc12,$s3,`0`,24,31 rlwinm $acc13,$s0,`0`,24,31 lbzx $acc08,$Tbl2,$acc08 lbzx $acc09,$Tbl2,$acc09 rlwinm $acc14,$s1,`0`,24,31 rlwinm $acc15,$s2,`0`,24,31 lbzx $acc10,$Tbl2,$acc10 lbzx $acc11,$Tbl2,$acc11 rlwinm $s0,$acc00,24,0,7 rlwinm $s1,$acc01,24,0,7 lbzx $acc12,$Tbl2,$acc12 lbzx $acc13,$Tbl2,$acc13 rlwinm $s2,$acc02,24,0,7 rlwinm $s3,$acc03,24,0,7 lbzx $acc14,$Tbl2,$acc14 lbzx $acc15,$Tbl2,$acc15 rlwimi $s0,$acc04,16,8,15 rlwimi $s1,$acc05,16,8,15 rlwimi $s2,$acc06,16,8,15 rlwimi $s3,$acc07,16,8,15 rlwimi $s0,$acc08,8,16,23 rlwimi $s1,$acc09,8,16,23 rlwimi $s2,$acc10,8,16,23 rlwimi $s3,$acc11,8,16,23 or $s0,$s0,$acc12 or $s1,$s1,$acc13 or $s2,$s2,$acc14 or $s3,$s3,$acc15 xor $s0,$s0,$t0 xor $s1,$s1,$t1 xor $s2,$s2,$t2 xor $s3,$s3,$t3 blr.align 4Lppc_AES_encrypt_compact: lwz $acc00,240($key) lwz $t0,0($key) lwz $t1,4($key) lwz $t2,8($key) lwz $t3,12($key) addi $Tbl1,$Tbl0,2048 lis $mask80,0x8080 lis $mask1b,0x1b1b addi $key,$key,16 ori $mask80,$mask80,0x8080 ori $mask1b,$mask1b,0x1b1b mtctr $acc00.align 4Lenc_compact_loop: xor $s0,$s0,$t0 xor $s1,$s1,$t1 xor $s2,$s2,$t2 xor $s3,$s3,$t3 rlwinm $acc00,$s0,`32-24`,24,31 rlwinm $acc01,$s1,`32-24`,24,31 rlwinm $acc02,$s2,`32-24`,24,31 rlwinm $acc03,$s3,`32-24`,24,31 lbzx $acc00,$Tbl1,$acc00 lbzx $acc01,$Tbl1,$acc01 rlwinm $acc04,$s1,`32-16`,24,31 rlwinm $acc05,$s2,`32-16`,24,31 lbzx $acc02,$Tbl1,$acc02 lbzx $acc03,$Tbl1,$acc03 rlwinm $acc06,$s3,`32-16`,24,31 rlwinm $acc07,$s0,`32-16`,24,31 lbzx $acc04,$Tbl1,$acc04 lbzx $acc05,$Tbl1,$acc05 rlwinm $acc08,$s2,`32-8`,24,31 rlwinm $acc09,$s3,`32-8`,24,31 lbzx $acc06,$Tbl1,$acc06 lbzx $acc07,$Tbl1,$acc07 rlwinm $acc10,$s0,`32-8`,24,31 rlwinm $acc11,$s1,`32-8`,24,31 lbzx $acc08,$Tbl1,$acc08 lbzx $acc09,$Tbl1,$acc09 rlwinm $acc12,$s3,`0`,24,31 rlwinm $acc13,$s0,`0`,24,31 lbzx $acc10,$Tbl1,$acc10 lbzx $acc11,$Tbl1,$acc11 rlwinm $acc14,$s1,`0`,24,31 rlwinm $acc15,$s2,`0`,24,31 lbzx $acc12,$Tbl1,$acc12 lbzx $acc13,$Tbl1,$acc13 rlwinm $s0,$acc00,24,0,7 rlwinm $s1,$acc01,24,0,7 lbzx $acc14,$Tbl1,$acc14 lbzx $acc15,$Tbl1,$acc15 rlwinm $s2,$acc02,24,0,7 rlwinm $s3,$acc03,24,0,7 rlwimi $s0,$acc04,16,8,15 rlwimi $s1,$acc05,16,8,15 rlwimi $s2,$acc06,16,8,15 rlwimi $s3,$acc07,16,8,15 rlwimi $s0,$acc08,8,16,23 rlwimi $s1,$acc09,8,16,23 rlwimi $s2,$acc10,8,16,23 rlwimi $s3,$acc11,8,16,23 lwz $t0,0($key) lwz $t1,4($key) or $s0,$s0,$acc12 or $s1,$s1,$acc13 lwz $t2,8($key) lwz $t3,12($key) or $s2,$s2,$acc14 or $s3,$s3,$acc15 addi $key,$key,16 bdz Lenc_compact_done and $acc00,$s0,$mask80 # r1=r0&0x80808080 and $acc01,$s1,$mask80 and $acc02,$s2,$mask80 and $acc03,$s3,$mask80 srwi $acc04,$acc00,7 # r1>>7 srwi $acc05,$acc01,7 srwi $acc06,$acc02,7 srwi $acc07,$acc03,7 andc $acc08,$s0,$mask80 # r0&0x7f7f7f7f andc $acc09,$s1,$mask80 andc $acc10,$s2,$mask80 andc $acc11,$s3,$mask80 sub $acc00,$acc00,$acc04 # r1-(r1>>7) sub $acc01,$acc01,$acc05 sub $acc02,$acc02,$acc06 sub $acc03,$acc03,$acc07 add $acc08,$acc08,$acc08 # (r0&0x7f7f7f7f)<<1 add $acc09,$acc09,$acc09 add $acc10,$acc10,$acc10 add $acc11,$acc11,$acc11 and $acc00,$acc00,$mask1b # (r1-(r1>>7))&0x1b1b1b1b and $acc01,$acc01,$mask1b and $acc02,$acc02,$mask1b and $acc03,$acc03,$mask1b xor $acc00,$acc00,$acc08 # r2 xor $acc01,$acc01,$acc09 xor $acc02,$acc02,$acc10 xor $acc03,$acc03,$acc11 rotlwi $acc12,$s0,16 # ROTATE(r0,16) rotlwi $acc13,$s1,16 rotlwi $acc14,$s2,16 rotlwi $acc15,$s3,16 xor $s0,$s0,$acc00 # r0^r2 xor $s1,$s1,$acc01 xor $s2,$s2,$acc02 xor $s3,$s3,$acc03 rotrwi $s0,$s0,24 # ROTATE(r2^r0,24) rotrwi $s1,$s1,24 rotrwi $s2,$s2,24 rotrwi $s3,$s3,24 xor $s0,$s0,$acc00 # ROTATE(r2^r0,24)^r2 xor $s1,$s1,$acc01 xor $s2,$s2,$acc02 xor $s3,$s3,$acc03 rotlwi $acc08,$acc12,8 # ROTATE(r0,24) rotlwi $acc09,$acc13,8 rotlwi $acc10,$acc14,8 rotlwi $acc11,$acc15,8 xor $s0,$s0,$acc12 # xor $s1,$s1,$acc13 xor $s2,$s2,$acc14 xor $s3,$s3,$acc15 xor $s0,$s0,$acc08 # xor $s1,$s1,$acc09 xor $s2,$s2,$acc10 xor $s3,$s3,$acc11 b Lenc_compact_loop.align 4Lenc_compact_done: xor $s0,$s0,$t0 xor $s1,$s1,$t1 xor $s2,$s2,$t2 xor $s3,$s3,$t3 blr.globl .AES_decrypt.align 7.AES_decrypt: mflr r0 $STU $sp,-$FRAME($sp) $PUSH r0,`$FRAME-$SIZE_T*21`($sp) $PUSH $toc,`$FRAME-$SIZE_T*20`($sp) $PUSH r13,`$FRAME-$SIZE_T*19`($sp) $PUSH r14,`$FRAME-$SIZE_T*18`($sp) $PUSH r15,`$FRAME-$SIZE_T*17`($sp) $PUSH r16,`$FRAME-$SIZE_T*16`($sp) $PUSH r17,`$FRAME-$SIZE_T*15`($sp) $PUSH r18,`$FRAME-$SIZE_T*14`($sp) $PUSH r19,`$FRAME-$SIZE_T*13`($sp) $PUSH r20,`$FRAME-$SIZE_T*12`($sp) $PUSH r21,`$FRAME-$SIZE_T*11`($sp) $PUSH r22,`$FRAME-$SIZE_T*10`($sp) $PUSH r23,`$FRAME-$SIZE_T*9`($sp) $PUSH r24,`$FRAME-$SIZE_T*8`($sp) $PUSH r25,`$FRAME-$SIZE_T*7`($sp) $PUSH r26,`$FRAME-$SIZE_T*6`($sp) $PUSH r27,`$FRAME-$SIZE_T*5`($sp) $PUSH r28,`$FRAME-$SIZE_T*4`($sp) $PUSH r29,`$FRAME-$SIZE_T*3`($sp) $PUSH r30,`$FRAME-$SIZE_T*2`($sp) $PUSH r31,`$FRAME-$SIZE_T*1`($sp) lwz $s0,0($inp) lwz $s1,4($inp) lwz $s2,8($inp) lwz $s3,12($inp) bl LAES_Td bl Lppc_AES_decrypt_compact stw $s0,0($out) stw $s1,4($out) stw $s2,8($out) stw $s3,12($out) $POP r0,`$FRAME-$SIZE_T*21`($sp) $POP $toc,`$FRAME-$SIZE_T*20`($sp) $POP r13,`$FRAME-$SIZE_T*19`($sp) $POP r14,`$FRAME-$SIZE_T*18`($sp) $POP r15,`$FRAME-$SIZE_T*17`($sp) $POP r16,`$FRAME-$SIZE_T*16`($sp) $POP r17,`$FRAME-$SIZE_T*15`($sp) $POP r18,`$FRAME-$SIZE_T*14`($sp) $POP r19,`$FRAME-$SIZE_T*13`($sp) $POP r20,`$FRAME-$SIZE_T*12`($sp) $POP r21,`$FRAME-$SIZE_T*11`($sp) $POP r22,`$FRAME-$SIZE_T*10`($sp) $POP r23,`$FRAME-$SIZE_T*9`($sp) $POP r24,`$FRAME-$SIZE_T*8`($sp) $POP r25,`$FRAME-$SIZE_T*7`($sp) $POP r26,`$FRAME-$SIZE_T*6`($sp) $POP r27,`$FRAME-$SIZE_T*5`($sp) $POP r28,`$FRAME-$SIZE_T*4`($sp) $POP r29,`$FRAME-$SIZE_T*3`($sp) $POP r30,`$FRAME-$SIZE_T*2`($sp) $POP r31,`$FRAME-$SIZE_T*1`($sp) mtlr r0 addi $sp,$sp,$FRAME blr.align 4Lppc_AES_decrypt: lwz $acc00,240($key) lwz $t0,0($key) lwz $t1,4($key) lwz $t2,8($key) lwz $t3,12($key) addi $Tbl1,$Tbl0,3 addi $Tbl2,$Tbl0,2 addi $Tbl3,$Tbl0,1 addi $acc00,$acc00,-1 addi $key,$key,16 xor $s0,$s0,$t0 xor $s1,$s1,$t1 xor $s2,$s2,$t2 xor $s3,$s3,$t3 mtctr $acc00.align 4Ldec_loop: rlwinm $acc00,$s0,`32-24+3`,21,28 rlwinm $acc01,$s1,`32-24+3`,21,28 lwz $t0,0($key) lwz $t1,4($key) rlwinm $acc02,$s2,`32-24+3`,21,28 rlwinm $acc03,$s3,`32-24+3`,21,28 lwz $t2,8($key) lwz $t3,12($key) rlwinm $acc04,$s3,`32-16+3`,21,28 rlwinm $acc05,$s0,`32-16+3`,21,28 lwzx $acc00,$Tbl0,$acc00 lwzx $acc01,$Tbl0,$acc01 rlwinm $acc06,$s1,`32-16+3`,21,28 rlwinm $acc07,$s2,`32-16+3`,21,28 lwzx $acc02,$Tbl0,$acc02 lwzx $acc03,$Tbl0,$acc03 rlwinm $acc08,$s2,`32-8+3`,21,28 rlwinm $acc09,$s3,`32-8+3`,21,28 lwzx $acc04,$Tbl1,$acc04 lwzx $acc05,$Tbl1,$acc05 rlwinm $acc10,$s0,`32-8+3`,21,28 rlwinm $acc11,$s1,`32-8+3`,21,28 lwzx $acc06,$Tbl1,$acc06 lwzx $acc07,$Tbl1,$acc07 rlwinm $acc12,$s1,`0+3`,21,28 rlwinm $acc13,$s2,`0+3`,21,28 lwzx $acc08,$Tbl2,$acc08 lwzx $acc09,$Tbl2,$acc09 rlwinm $acc14,$s3,`0+3`,21,28 rlwinm $acc15,$s0,`0+3`,21,28 lwzx $acc10,$Tbl2,$acc10 lwzx $acc11,$Tbl2,$acc11 xor $t0,$t0,$acc00 xor $t1,$t1,$acc01 lwzx $acc12,$Tbl3,$acc12 lwzx $acc13,$Tbl3,$acc13 xor $t2,$t2,$acc02 xor $t3,$t3,$acc03 lwzx $acc14,$Tbl3,$acc14 lwzx $acc15,$Tbl3,$acc15
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -