1.machine "any" 2.text 3.globl poly1305_init_int 4.type poly1305_init_int,@function 5.section ".opd","aw" 6.align 3 7poly1305_init_int: 8.quad .poly1305_init_int,.TOC.@tocbase,0 9.previous 10.align 4 11.poly1305_init_int: 12 xor 0,0,0 13 std 0,0(3) 14 std 0,8(3) 15 std 0,16(3) 16 17 cmpld 4,0 18 beq- .Lno_key 19 li 7,4 20 lwbrx 10,0,4 21 li 11,8 22 lwbrx 7,7,4 23 li 8,12 24 lwbrx 11,11,4 25 lwbrx 8,8,4 26 insrdi 10,7,32,0 27 insrdi 11,8,32,0 28 lis 8,0xfff 29 ori 8,8,0xfffc 30 insrdi 8,8,32,0 31 ori 7,8,3 32 33 and 10,10,7 34 and 11,11,8 35 36 std 10,32(3) 37 std 11,40(3) 38 39.Lno_key: 40 xor 3,3,3 41 blr 42.long 0 43.byte 0,12,0x14,0,0,0,2,0 44 45 46.globl poly1305_blocks 47.type poly1305_blocks,@function 48.section ".opd","aw" 49.align 3 50poly1305_blocks: 51.quad .poly1305_blocks,.TOC.@tocbase,0 52.previous 53.align 4 54.poly1305_blocks: 55 srdi. 5,5,4 56 beq- .Labort 57 58 stdu 1,-192(1) 59 mflr 0 60 std 27,152(1) 61 std 28,160(1) 62 std 29,168(1) 63 std 30,176(1) 64 std 31,184(1) 65 std 0,208(1) 66 67 ld 27,32(3) 68 ld 28,40(3) 69 70 ld 7,0(3) 71 ld 8,8(3) 72 ld 9,16(3) 73 74 srdi 29,28,2 75 mtctr 5 76 add 29,29,28 77 li 0,3 78 b .Loop 79 80.align 4 81.Loop: 82 li 10,4 83 lwbrx 30,0,4 84 li 31,8 85 lwbrx 10,10,4 86 li 11,12 87 lwbrx 31,31,4 88 lwbrx 11,11,4 89 insrdi 30,10,32,0 90 insrdi 31,11,32,0 91 addi 4,4,16 92 93 addc 7,7,30 94 adde 8,8,31 95 96 mulld 10,7,27 97 mulhdu 11,7,27 98 adde 9,9,6 99 100 mulld 30,8,29 101 mulhdu 31,8,29 102 addc 10,10,30 103 adde 11,11,31 104 105 mulld 30,7,28 106 mulhdu 12,7,28 107 addc 11,11,30 108 addze 12,12 109 110 mulld 30,8,27 111 mulhdu 31,8,27 112 addc 11,11,30 113 adde 12,12,31 114 115 mulld 30,9,29 116 mulld 31,9,27 117 addc 11,11,30 118 adde 12,12,31 119 120 andc 30,12,0 121 and 9,12,0 122 srdi 31,30,2 123 add 30,30,31 124 addc 7,10,30 125 addze 8,11 126 addze 9,9 127 128 bc 16,0,.Loop 129 130 std 7,0(3) 131 std 8,8(3) 132 std 9,16(3) 133 134 ld 27,152(1) 135 ld 28,160(1) 136 ld 29,168(1) 137 ld 30,176(1) 138 ld 31,184(1) 139 addi 1,1,192 140.Labort: 141 blr 142.long 0 143.byte 0,12,4,1,0x80,5,4,0 144 145 146.globl poly1305_emit 147.type poly1305_emit,@function 148.section ".opd","aw" 149.align 3 150poly1305_emit: 151.quad .poly1305_emit,.TOC.@tocbase,0 152.previous 153.align 4 154.poly1305_emit: 155 ld 7,0(3) 156 ld 8,8(3) 157 ld 9,16(3) 158 ld 6,0(5) 159 ld 5,8(5) 160 161 addic 10,7,5 162 addze 11,8 163 addze 12,9 164 165 srdi 0,12,2 166 neg 0,0 167 168 andc 7,7,0 169 and 10,10,0 170 andc 8,8,0 171 and 11,11,0 172 or 7,7,10 173 or 8,8,11 174 rotldi 6,6,32 175 rotldi 5,5,32 176 addc 7,7,6 177 adde 8,8,5 178 rldicl 0,7,32,32 179 li 10,4 180 stwbrx 7,0,4 181 rldicl 7,8,32,32 182 li 11,8 183 stwbrx 0,10,4 184 li 12,12 185 stwbrx 8,11,4 186 stwbrx 7,12,4 187 blr 188.long 0 189.byte 0,12,0x14,0,0,0,3,0 190 191.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,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 192.align 2 193