.globl ChaCha20_ctr32_vsx_p10 .type ChaCha20_ctr32_vsx_p10,@function .align 5 ChaCha20_ctr32_vsx_p10: cmplwi 5,255 ble .Not_greater_than_8x b ChaCha20_ctr32_vsx_8x .Not_greater_than_8x: stwu 1,-200(1) mflr 0 li 10,103 li 11,119 mfspr 12,256 stvx 26,10,1 addi 10,10,32 stvx 27,11,1 addi 11,11,32 stvx 28,10,1 addi 10,10,32 stvx 29,11,1 addi 11,11,32 stvx 30,10,1 stvx 31,11,1 stw 12,196(1) li 12,-4096+63 stw 0, 204(1) mtspr 256,12 bl .Lconsts .long 0x7E006619 addi 12,12,0x70 li 8,16 li 9,32 li 10,48 li 11,64 .long 0x7E203619 .long 0x7E483619 .long 0x7E603E19 vxor 27,27,27 .long 0x7F8B6619 vspltw 26,19,0 vsldoi 19,19,27,4 vsldoi 19,27,19,12 vadduwm 26,26,28 lvsl 31,0,8 vspltisb 27,3 vxor 31,31,27 li 0,10 mtctr 0 b .Loop_outer_vsx .align 5 .Loop_outer_vsx: lvx 0,0,12 lvx 1,8,12 lvx 2,9,12 lvx 3,10,12 vspltw 4,17,0 vspltw 5,17,1 vspltw 6,17,2 vspltw 7,17,3 vspltw 8,18,0 vspltw 9,18,1 vspltw 10,18,2 vspltw 11,18,3 vor 12,26,26 vspltw 13,19,1 vspltw 14,19,2 vspltw 15,19,3 vspltisw 27,-16 vspltisw 28,12 vspltisw 29,8 vspltisw 30,7 .Loop_vsx_4x: vadduwm 0,0,4 vadduwm 1,1,5 vadduwm 2,2,6 vadduwm 3,3,7 vxor 12,12,0 vxor 13,13,1 vxor 14,14,2 vxor 15,15,3 vrlw 12,12,27 vrlw 13,13,27 vrlw 14,14,27 vrlw 15,15,27 vadduwm 8,8,12 vadduwm 9,9,13 vadduwm 10,10,14 vadduwm 11,11,15 vxor 4,4,8 vxor 5,5,9 vxor 6,6,10 vxor 7,7,11 vrlw 4,4,28 vrlw 5,5,28 vrlw 6,6,28 vrlw 7,7,28 vadduwm 0,0,4 vadduwm 1,1,5 vadduwm 2,2,6 vadduwm 3,3,7 vxor 12,12,0 vxor 13,13,1 vxor 14,14,2 vxor 15,15,3 vrlw 12,12,29 vrlw 13,13,29 vrlw 14,14,29 vrlw 15,15,29 vadduwm 8,8,12 vadduwm 9,9,13 vadduwm 10,10,14 vadduwm 11,11,15 vxor 4,4,8 vxor 5,5,9 vxor 6,6,10 vxor 7,7,11 vrlw 4,4,30 vrlw 5,5,30 vrlw 6,6,30 vrlw 7,7,30 vadduwm 0,0,5 vadduwm 1,1,6 vadduwm 2,2,7 vadduwm 3,3,4 vxor 15,15,0 vxor 12,12,1 vxor 13,13,2 vxor 14,14,3 vrlw 15,15,27 vrlw 12,12,27 vrlw 13,13,27 vrlw 14,14,27 vadduwm 10,10,15 vadduwm 11,11,12 vadduwm 8,8,13 vadduwm 9,9,14 vxor 5,5,10 vxor 6,6,11 vxor 7,7,8 vxor 4,4,9 vrlw 5,5,28 vrlw 6,6,28 vrlw 7,7,28 vrlw 4,4,28 vadduwm 0,0,5 vadduwm 1,1,6 vadduwm 2,2,7 vadduwm 3,3,4 vxor 15,15,0 vxor 12,12,1 vxor 13,13,2 vxor 14,14,3 vrlw 15,15,29 vrlw 12,12,29 vrlw 13,13,29 vrlw 14,14,29 vadduwm 10,10,15 vadduwm 11,11,12 vadduwm 8,8,13 vadduwm 9,9,14 vxor 5,5,10 vxor 6,6,11 vxor 7,7,8 vxor 4,4,9 vrlw 5,5,30 vrlw 6,6,30 vrlw 7,7,30 vrlw 4,4,30 bc 16,0,.Loop_vsx_4x vadduwm 12,12,26 .long 0x13600F8C .long 0x13821F8C .long 0x10000E8C .long 0x10421E8C .long 0x13A42F8C .long 0x13C63F8C .long 0xF0201057 .long 0xF0601357 .long 0xF01BE057 .long 0xF05BE357 .long 0x10842E8C .long 0x10C63E8C .long 0x13684F8C .long 0x138A5F8C .long 0xF0A43057 .long 0xF0E43357 .long 0xF09DF057 .long 0xF0DDF357 .long 0x11084E8C .long 0x114A5E8C .long 0x13AC6F8C .long 0x13CE7F8C .long 0xF1285057 .long 0xF1685357 .long 0xF11BE057 .long 0xF15BE357 .long 0x118C6E8C .long 0x11CE7E8C vspltisw 27,4 vadduwm 26,26,27 .long 0xF1AC7057 .long 0xF1EC7357 .long 0xF19DF057 .long 0xF1DDF357 vadduwm 0,0,16 vadduwm 4,4,17 vadduwm 8,8,18 vadduwm 12,12,19 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx .long 0x7F602619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 27,27,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7F601F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx vadduwm 0,1,16 vadduwm 4,5,17 vadduwm 8,9,18 vadduwm 12,13,19 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx .long 0x7F602619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 27,27,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7F601F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx vadduwm 0,2,16 vadduwm 4,6,17 vadduwm 8,10,18 vadduwm 12,14,19 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx .long 0x7F602619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 27,27,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7F601F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx vadduwm 0,3,16 vadduwm 4,7,17 vadduwm 8,11,18 vadduwm 12,15,19 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx .long 0x7F602619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 27,27,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7F601F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 mtctr 0 bne .Loop_outer_vsx .Ldone_vsx: lwz 12,196(1) li 10,103 li 11,119 lwz 0, 204(1) mtspr 256,12 lvx 26,10,1 addi 10,10,32 lvx 27,11,1 addi 11,11,32 lvx 28,10,1 addi 10,10,32 lvx 29,11,1 addi 11,11,32 lvx 30,10,1 lvx 31,11,1 mtlr 0 addi 1,1,200 blr .align 4 .Ltail_vsx: addi 11,1,24 mtctr 5 .long 0x7C005F19 .long 0x7C885F19 .long 0x7D095F19 .long 0x7D8A5F19 subi 12,11,1 subi 4,4,1 subi 3,3,1 .Loop_tail_vsx: lbzu 6,1(12) lbzu 7,1(4) xor 6,6,7 stbu 6,1(3) bc 16,0,.Loop_tail_vsx .long 0x7E005F19 .long 0x7E085F19 .long 0x7E095F19 .long 0x7E0A5F19 b .Ldone_vsx .long 0 .byte 0,12,0x04,1,0x80,0,5,0 .long 0 .globl ChaCha20_ctr32_vsx_8x .type ChaCha20_ctr32_vsx_8x,@function .align 5 ChaCha20_ctr32_vsx_8x: stwu 1,-232(1) mflr 0 li 10,103 li 11,119 mfspr 12,256 stvx 24,10,1 addi 10,10,32 stvx 25,11,1 addi 11,11,32 stvx 26,10,1 addi 10,10,32 stvx 27,11,1 addi 11,11,32 stvx 28,10,1 addi 10,10,32 stvx 29,11,1 addi 11,11,32 stvx 30,10,1 stvx 31,11,1 stw 12,228(1) li 12,-4096+63 stw 0, 236(1) mtspr 256,12 bl .Lconsts .long 0x7F606619 addi 12,12,0x70 li 8,16 li 9,32 li 10,48 li 11,64 vspltisw 16,-16 vspltisw 20,12 vspltisw 24,8 vspltisw 28,7 lvx 0,0,12 lvx 1,8,12 lvx 2,9,12 lvx 3,10,12 .long 0xF1308496 .long 0xF154A496 .long 0xF178C496 .long 0xF19CE496 .long 0xF2C00496 .long 0xF2E10C96 .long 0xF3021496 .long 0xF3231C96 .long 0x7F003619 .long 0x7F283619 .long 0x7F403E19 vspltisw 30,4 vxor 29,29,29 .long 0x7F8B6619 vspltw 2,26,0 vsldoi 26,26,29,4 vsldoi 26,29,26,12 vadduwm 28,2,28 vadduwm 30,28,30 vspltw 0,25,2 lvsl 31,0,8 vspltisb 23,3 vxor 31,31,23 .long 0xF35FFC96 .long 0xF01BDC96 .long 0xF038C496 .long 0xF059CC96 .long 0xF07AD496 .long 0xF09CE496 .long 0xF0BEF496 .long 0xF1000496 li 0,10 mtctr 0 b .Loop_outer_vsx_8x .align 5 .Loop_outer_vsx_8x: .long 0xF016B491 .long 0xF037BC91 .long 0xF058C491 .long 0xF079CC91 .long 0xF216B491 .long 0xF237BC91 .long 0xF258C491 .long 0xF279CC91 vspltw 4,24,0 vspltw 5,24,1 vspltw 6,24,2 vspltw 7,24,3 vspltw 20,24,0 vspltw 21,24,1 vspltw 22,24,2 vspltw 23,24,3 vspltw 8,25,0 vspltw 9,25,1 vspltw 10,25,2 vspltw 11,25,3 vspltw 24,25,0 vspltw 27,25,3 vspltw 25,25,1 .long 0xF1842491 vspltw 13,26,1 vspltw 14,26,2 vspltw 15,26,3 .long 0xF3852C91 vspltw 29,26,1 vspltw 30,26,2 vspltw 31,26,3 .long 0xF3484491 .Loop_vsx_8x: .long 0xF1FBDC96 .long 0xF3694C91 vadduwm 0,0,4 vadduwm 1,1,5 vadduwm 2,2,6 vadduwm 3,3,7 vadduwm 16,16,20 vadduwm 17,17,21 vadduwm 18,18,22 vadduwm 19,19,23 vxor 12,12,0 vxor 13,13,1 vxor 14,14,2 vxor 15,15,3 vxor 28,28,16 vxor 29,29,17 vxor 30,30,18 vxor 31,31,19 vrlw 12,12,27 vrlw 13,13,27 vrlw 14,14,27 vrlw 15,15,27 vrlw 28,28,27 vrlw 29,29,27 vrlw 30,30,27 vrlw 31,31,27 .long 0xF1B39C96 .long 0xF36F7C91 .long 0xF26A5491 vadduwm 8,8,12 vadduwm 9,9,13 vadduwm 10,10,14 vadduwm 11,11,15 vadduwm 24,24,28 vadduwm 25,25,29 vadduwm 26,26,30 vadduwm 27,27,31 vxor 4,4,8 vxor 5,5,9 vxor 6,6,10 vxor 7,7,11 vxor 20,20,24 vxor 21,21,25 vxor 22,22,26 vxor 23,23,27 vrlw 4,4,19 vrlw 5,5,19 vrlw 6,6,19 vrlw 7,7,19 vrlw 20,20,19 vrlw 21,21,19 vrlw 22,22,19 vrlw 23,23,19 .long 0xF26D6C91 .long 0xF1FBDC96 .long 0xF36B5C91 vadduwm 0,0,4 vadduwm 1,1,5 vadduwm 2,2,6 vadduwm 3,3,7 vadduwm 16,16,20 vadduwm 17,17,21 vadduwm 18,18,22 vadduwm 19,19,23 vxor 12,12,0 vxor 13,13,1 vxor 14,14,2 vxor 15,15,3 vxor 28,28,16 vxor 29,29,17 vxor 30,30,18 vxor 31,31,19 vrlw 12,12,27 vrlw 13,13,27 vrlw 14,14,27 vrlw 15,15,27 vrlw 28,28,27 vrlw 29,29,27 vrlw 30,30,27 vrlw 31,31,27 .long 0xF36F7C91 .long 0xF1B39C96 .long 0xF26C6491 vadduwm 8,8,12 vadduwm 9,9,13 vadduwm 10,10,14 vadduwm 11,11,15 vadduwm 24,24,28 vadduwm 25,25,29 vadduwm 26,26,30 vadduwm 27,27,31 vxor 4,4,8 vxor 5,5,9 vxor 6,6,10 vxor 7,7,11 vxor 20,20,24 vxor 21,21,25 vxor 22,22,26 vxor 23,23,27 vrlw 4,4,19 vrlw 5,5,19 vrlw 6,6,19 vrlw 7,7,19 vrlw 20,20,19 vrlw 21,21,19 vrlw 22,22,19 vrlw 23,23,19 .long 0xF26D6C91 .long 0xF1F9CC96 .long 0xF3294C91 vadduwm 0,0,5 vadduwm 1,1,6 vadduwm 2,2,7 vadduwm 3,3,4 vadduwm 16,16,21 vadduwm 17,17,22 vadduwm 18,18,23 vadduwm 19,19,20 vxor 15,15,0 vxor 12,12,1 vxor 13,13,2 vxor 14,14,3 vxor 31,31,16 vxor 28,28,17 vxor 29,29,18 vxor 30,30,19 vrlw 15,15,25 vrlw 12,12,25 vrlw 13,13,25 vrlw 14,14,25 vrlw 31,31,25 vrlw 28,28,25 vrlw 29,29,25 vrlw 30,30,25 .long 0xF1B39C96 .long 0xF32F7C91 .long 0xF26A5491 vadduwm 10,10,15 vadduwm 11,11,12 vadduwm 8,8,13 vadduwm 9,9,14 vadduwm 26,26,31 vadduwm 27,27,28 vadduwm 24,24,29 vadduwm 25,25,30 vxor 5,5,10 vxor 6,6,11 vxor 7,7,8 vxor 4,4,9 vxor 21,21,26 vxor 22,22,27 vxor 23,23,24 vxor 20,20,25 vrlw 5,5,19 vrlw 6,6,19 vrlw 7,7,19 vrlw 4,4,19 vrlw 21,21,19 vrlw 22,22,19 vrlw 23,23,19 vrlw 20,20,19 .long 0xF26D6C91 .long 0xF1F9CC96 .long 0xF32B5C91 vadduwm 0,0,5 vadduwm 1,1,6 vadduwm 2,2,7 vadduwm 3,3,4 vadduwm 16,16,21 vadduwm 17,17,22 vadduwm 18,18,23 vadduwm 19,19,20 vxor 15,15,0 vxor 12,12,1 vxor 13,13,2 vxor 14,14,3 vxor 31,31,16 vxor 28,28,17 vxor 29,29,18 vxor 30,30,19 vrlw 15,15,25 vrlw 12,12,25 vrlw 13,13,25 vrlw 14,14,25 vrlw 31,31,25 vrlw 28,28,25 vrlw 29,29,25 vrlw 30,30,25 .long 0xF32F7C91 .long 0xF1B39C96 .long 0xF26C6491 vadduwm 10,10,15 vadduwm 11,11,12 vadduwm 8,8,13 vadduwm 9,9,14 vadduwm 26,26,31 vadduwm 27,27,28 vadduwm 24,24,29 vadduwm 25,25,30 vxor 5,5,10 vxor 6,6,11 vxor 7,7,8 vxor 4,4,9 vxor 21,21,26 vxor 22,22,27 vxor 23,23,24 vxor 20,20,25 vrlw 5,5,19 vrlw 6,6,19 vrlw 7,7,19 vrlw 4,4,19 vrlw 21,21,19 vrlw 22,22,19 vrlw 23,23,19 vrlw 20,20,19 .long 0xF26D6C91 bc 16,0,.Loop_vsx_8x .long 0xF1BCE496 .long 0xF1DDEC96 .long 0xF1FEF496 .long 0xF21FFC96 .long 0xF258C496 .long 0xF279CC96 .long 0xF29AD496 .long 0xF2BBDC96 .long 0xF0D6B496 .long 0xF0F7BC96 .long 0xF3FAD491 .long 0xF3600491 .long 0xF3010C91 .long 0xF3221491 .long 0xF3431C91 .long 0xF2C42491 .long 0x12E00F8C .long 0x13821F8C .long 0x10000E8C .long 0x10421E8C .long 0x13A42F8C .long 0x13C63F8C .long 0x10842E8C .long 0x10C63E8C vadduwm 12,12,22 .long 0xF0201057 .long 0xF0601357 .long 0xF017E057 .long 0xF057E357 .long 0xF0A43057 .long 0xF0E43357 .long 0xF09DF057 .long 0xF0DDF357 .long 0x12E84F8C .long 0x138A5F8C .long 0x11084E8C .long 0x114A5E8C .long 0x13AC6F8C .long 0x13CE7F8C .long 0x118C6E8C .long 0x11CE7E8C .long 0xF1285057 .long 0xF1685357 .long 0xF117E057 .long 0xF157E357 .long 0xF1AC7057 .long 0xF1EC7357 .long 0xF19DF057 .long 0xF1DDF357 vspltisw 23,8 vadduwm 22,22,23 .long 0xF096B496 vadduwm 0,0,27 vadduwm 4,4,24 vadduwm 8,8,25 vadduwm 12,12,26 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx_8x .long 0x7EE02619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 23,23,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7EE01F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x vadduwm 0,1,27 vadduwm 4,5,24 vadduwm 8,9,25 vadduwm 12,13,26 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx_8x .long 0x7EE02619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 23,23,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7EE01F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x vadduwm 0,2,27 vadduwm 4,6,24 vadduwm 8,10,25 vadduwm 12,14,26 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx_8x .long 0x7EE02619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 23,23,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7EE01F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x vadduwm 0,3,27 vadduwm 4,7,24 vadduwm 8,11,25 vadduwm 12,15,26 vperm 0,0,0,31 vperm 4,4,4,31 vperm 8,8,8,31 vperm 12,12,12,31 cmplwi 5,0x40 blt .Ltail_vsx_8x .long 0x7EE02619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 23,23,0 vxor 28,28,4 vxor 29,29,8 vxor 30,30,12 .long 0x7EE01F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x .long 0xF0A52C91 .long 0xF1129491 .long 0xF1339C91 .long 0xF154A491 .long 0xF175AC91 .long 0xF18D6C91 .long 0xF1AE7491 .long 0xF1CF7C91 .long 0xF1F08491 vadduwm 12,12,5 .long 0xF2C63491 .long 0xF2E73C91 .long 0x10908F8C .long 0x13929F8C .long 0x12108E8C .long 0x12529E8C .long 0x13B4AF8C .long 0x13D6BF8C .long 0x1294AE8C .long 0x12D6BE8C .long 0xF2309057 .long 0xF2709357 .long 0xF204E057 .long 0xF244E357 .long 0xF2B4B057 .long 0xF2F4B357 .long 0xF29DF057 .long 0xF2DDF357 .long 0x10884F8C .long 0x138A5F8C .long 0x11084E8C .long 0x114A5E8C .long 0x13AC6F8C .long 0x13CE7F8C .long 0x118C6E8C .long 0x11CE7E8C .long 0xF1285057 .long 0xF1685357 .long 0xF104E057 .long 0xF144E357 .long 0xF1AC7057 .long 0xF1EC7357 .long 0xF19DF057 .long 0xF1DDF357 vspltisw 4,8 vadduwm 5,5,4 .long 0xF0A52C96 vadduwm 0,16,27 vadduwm 1,20,24 vadduwm 2,8,25 vadduwm 3,12,26 vperm 0,0,0,31 vperm 1,1,1,31 vperm 2,2,2,31 vperm 3,3,3,31 cmplwi 5,0x40 blt .Ltail_vsx_8x_1 .long 0x7C802619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 4,4,0 vxor 28,28,1 vxor 29,29,2 vxor 30,30,3 .long 0x7C801F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x vadduwm 0,17,27 vadduwm 1,21,24 vadduwm 2,9,25 vadduwm 3,13,26 vperm 0,0,0,31 vperm 1,1,1,31 vperm 2,2,2,31 vperm 3,3,3,31 cmplwi 5,0x40 blt .Ltail_vsx_8x_1 .long 0x7C802619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 4,4,0 vxor 28,28,1 vxor 29,29,2 vxor 30,30,3 .long 0x7C801F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x vadduwm 0,18,27 vadduwm 1,22,24 vadduwm 2,10,25 vadduwm 3,14,26 vperm 0,0,0,31 vperm 1,1,1,31 vperm 2,2,2,31 vperm 3,3,3,31 cmplwi 5,0x40 blt .Ltail_vsx_8x_1 .long 0x7C802619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 4,4,0 vxor 28,28,1 vxor 29,29,2 vxor 30,30,3 .long 0x7C801F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x vadduwm 0,19,27 vadduwm 1,23,24 vadduwm 2,11,25 vadduwm 3,15,26 vperm 0,0,0,31 vperm 1,1,1,31 vperm 2,2,2,31 vperm 3,3,3,31 cmplwi 5,0x40 blt .Ltail_vsx_8x_1 .long 0x7C802619 .long 0x7F882619 .long 0x7FA92619 .long 0x7FCA2619 vxor 4,4,0 vxor 28,28,1 vxor 29,29,2 vxor 30,30,3 .long 0x7C801F19 .long 0x7F881F19 addi 4,4,0x40 .long 0x7FA91F19 subi 5,5,0x40 .long 0x7FCA1F19 addi 3,3,0x40 beq .Ldone_vsx_8x mtctr 0 bne .Loop_outer_vsx_8x .Ldone_vsx_8x: lwz 12,228(1) li 10,103 li 11,119 lwz 0, 236(1) mtspr 256,12 lvx 24,10,1 addi 10,10,32 lvx 25,11,1 addi 11,11,32 lvx 26,10,1 addi 10,10,32 lvx 27,11,1 addi 11,11,32 lvx 28,10,1 addi 10,10,32 lvx 29,11,1 addi 11,11,32 lvx 30,10,1 lvx 31,11,1 mtlr 0 addi 1,1,232 blr .align 4 .Ltail_vsx_8x: addi 11,1,24 mtctr 5 .long 0x7C005F19 .long 0x7C885F19 .long 0x7D095F19 .long 0x7D8A5F19 subi 12,11,1 subi 4,4,1 subi 3,3,1 bl .Loop_tail_vsx_8x .Ltail_vsx_8x_1: addi 11,1,24 mtctr 5 .long 0x7C005F19 .long 0x7C285F19 .long 0x7C495F19 .long 0x7C6A5F19 subi 12,11,1 subi 4,4,1 subi 3,3,1 bl .Loop_tail_vsx_8x .Loop_tail_vsx_8x: lbzu 6,1(12) lbzu 7,1(4) xor 6,6,7 stbu 6,1(3) bc 16,0,.Loop_tail_vsx_8x .long 0x7F605F19 .long 0x7F685F19 .long 0x7F695F19 .long 0x7F6A5F19 b .Ldone_vsx_8x .long 0 .byte 0,12,0x04,1,0x80,0,5,0 .long 0 .align 5 .Lconsts: mflr 0 bcl 20,31,$+4 mflr 12 addi 12,12,56 mtlr 0 blr .long 0 .byte 0,12,0x14,0,0,0,0,0 .space 28 .Lsigma: .long 0x61707865,0x3320646e,0x79622d32,0x6b206574 .long 1,0,0,0 .long 2,0,0,0 .long 3,0,0,0 .long 4,0,0,0 .long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d .long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c .long 0x61707865,0x61707865,0x61707865,0x61707865 .long 0x3320646e,0x3320646e,0x3320646e,0x3320646e .long 0x79622d32,0x79622d32,0x79622d32,0x79622d32 .long 0x6b206574,0x6b206574,0x6b206574,0x6b206574 .long 0,1,2,3 .long 0x03020100,0x07060504,0x0b0a0908,0x0f0e0d0c .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,80,111,119,101,114,80,67,47,65,108,116,105,86,101,99,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .align 2 .align 2