1.machine "any" 2 3.text 4 5.globl gcm_init_p8 6.type gcm_init_p8,@function 7.align 5 8gcm_init_p8: 9 lis 0,0xfff0 10 li 8,0x10 11 mfspr 12,256 12 li 9,0x20 13 mtspr 256,0 14 li 10,0x30 15.long 0x7D202699 16 17 vspltisb 8,-16 18 vspltisb 5,1 19 vaddubm 8,8,8 20 vxor 4,4,4 21 vor 8,8,5 22 vsldoi 8,8,4,15 23 vsldoi 6,4,5,1 24 vaddubm 8,8,8 25 vspltisb 7,7 26 vor 8,8,6 27 vspltb 6,9,0 28 vsl 9,9,5 29 vsrab 6,6,7 30 vand 6,6,8 31 vxor 9,9,6 32 33 vsldoi 9,9,9,8 34 vsldoi 8,4,8,8 35 vsldoi 11,4,9,8 36 vsldoi 10,9,4,8 37 38.long 0x7D001F99 39.long 0x7D681F99 40.long 0x7D291F99 41.long 0x7D4A1F99 42 43 mtspr 256,12 44 blr 45.long 0 46.byte 0,12,0x14,0,0,0,2,0 47.long 0 48 49 50.globl gcm_gmult_p8 51.type gcm_gmult_p8,@function 52.align 5 53gcm_gmult_p8: 54 lis 0,0xfff8 55 li 8,0x10 56 mfspr 12,256 57 li 9,0x20 58 mtspr 256,0 59 li 10,0x30 60.long 0x7C601E99 61 62.long 0x7D682699 63 64.long 0x7D292699 65 66.long 0x7D4A2699 67 68.long 0x7D002699 69 70 vxor 4,4,4 71 72.long 0x10035CC8 73.long 0x10234CC8 74.long 0x104354C8 75 76.long 0x10E044C8 77 78 vsldoi 5,1,4,8 79 vsldoi 6,4,1,8 80 vxor 0,0,5 81 vxor 2,2,6 82 83 vsldoi 0,0,0,8 84 vxor 0,0,7 85 86 vsldoi 6,0,0,8 87.long 0x100044C8 88 vxor 6,6,2 89 vxor 0,0,6 90 91 92.long 0x7C001F99 93 94 mtspr 256,12 95 blr 96.long 0 97.byte 0,12,0x14,0,0,0,2,0 98.long 0 99 100 101.globl gcm_ghash_p8 102.type gcm_ghash_p8,@function 103.align 5 104gcm_ghash_p8: 105 lis 0,0xfff8 106 li 8,0x10 107 mfspr 12,256 108 li 9,0x20 109 mtspr 256,0 110 li 10,0x30 111.long 0x7C001E99 112 113.long 0x7D682699 114 115.long 0x7D292699 116 117.long 0x7D4A2699 118 119.long 0x7D002699 120 121 vxor 4,4,4 122 123.long 0x7C602E99 124 addi 5,5,16 125 subi 6,6,16 126 127 vxor 3,3,0 128 b .Loop 129 130.align 5 131.Loop: 132 subic 6,6,16 133.long 0x10035CC8 134 subfe. 0,0,0 135.long 0x10234CC8 136 and 0,0,6 137.long 0x104354C8 138 add 5,5,0 139 140.long 0x10E044C8 141 142 vsldoi 5,1,4,8 143 vsldoi 6,4,1,8 144 vxor 0,0,5 145 vxor 2,2,6 146 147 vsldoi 0,0,0,8 148 vxor 0,0,7 149.long 0x7C602E99 150 addi 5,5,16 151 152 vsldoi 6,0,0,8 153.long 0x100044C8 154 155 vxor 6,6,2 156 vxor 3,3,6 157 vxor 3,3,0 158 beq .Loop 159 160 vxor 0,0,6 161 162.long 0x7C001F99 163 164 mtspr 256,12 165 blr 166.long 0 167.byte 0,12,0x14,0,0,0,4,0 168.long 0 169 170 171.byte 71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,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 172.align 2 173.align 2 174