1.machine "any" 2.csect .text[PR],7 3 4.globl .OPENSSL_fpu_probe 5.align 4 6.OPENSSL_fpu_probe: 7 fmr 0,0 8 blr 9.long 0 10.byte 0,12,0x14,0,0,0,0,0 11 12.globl .OPENSSL_ppc64_probe 13.align 4 14.OPENSSL_ppc64_probe: 15 fcfid 1,1 16 rldicl 0,0,32,32 17 blr 18.long 0 19.byte 0,12,0x14,0,0,0,0,0 20 21 22.globl .OPENSSL_altivec_probe 23.align 4 24.OPENSSL_altivec_probe: 25.long 0x10000484 26 blr 27.long 0 28.byte 0,12,0x14,0,0,0,0,0 29 30 31.globl .OPENSSL_crypto207_probe 32.align 4 33.OPENSSL_crypto207_probe: 34 .long 0x7C000E99 35 .long 0x10000508 36 blr 37.long 0 38.byte 0,12,0x14,0,0,0,0,0 39 40 41.globl .OPENSSL_madd300_probe 42.align 4 43.OPENSSL_madd300_probe: 44 xor 0,0,0 45 .long 0x10600033 46 .long 0x10600031 47 blr 48.long 0 49.byte 0,12,0x14,0,0,0,0,0 50 51.globl .OPENSSL_wipe_cpu 52.align 4 53.OPENSSL_wipe_cpu: 54 xor 0,0,0 55 fmr 0,31 56 fmr 1,31 57 fmr 2,31 58 mr 3,1 59 fmr 3,31 60 xor 4,4,4 61 fmr 4,31 62 xor 5,5,5 63 fmr 5,31 64 xor 6,6,6 65 fmr 6,31 66 xor 7,7,7 67 fmr 7,31 68 xor 8,8,8 69 fmr 8,31 70 xor 9,9,9 71 fmr 9,31 72 xor 10,10,10 73 fmr 10,31 74 xor 11,11,11 75 fmr 11,31 76 xor 12,12,12 77 fmr 12,31 78 fmr 13,31 79 blr 80.long 0 81.byte 0,12,0x14,0,0,0,0,0 82 83 84.globl .OPENSSL_atomic_add 85.align 4 86.OPENSSL_atomic_add: 87Ladd: lwarx 5,0,3 88 add 0,4,5 89 stwcx. 0,0,3 90 bne- Ladd 91 extsw 3,0 92 blr 93.long 0 94.byte 0,12,0x14,0,0,0,2,0 95.long 0 96 97 98.globl .OPENSSL_rdtsc_mftb 99.align 4 100.OPENSSL_rdtsc_mftb: 101 mftb 3 102 blr 103.long 0 104.byte 0,12,0x14,0,0,0,0,0 105 106 107.globl .OPENSSL_rdtsc_mfspr268 108.align 4 109.OPENSSL_rdtsc_mfspr268: 110 mfspr 3,268 111 blr 112.long 0 113.byte 0,12,0x14,0,0,0,0,0 114 115 116.globl .OPENSSL_cleanse 117.align 4 118.OPENSSL_cleanse: 119 cmpldi 4,7 120 li 0,0 121 bge Lot 122 cmpldi 4,0 123 bclr 14,2 124Little: mtctr 4 125 stb 0,0(3) 126 addi 3,3,1 127 bc 16,0,$-8 128 blr 129Lot: andi. 5,3,3 130 beq Laligned 131 stb 0,0(3) 132 subi 4,4,1 133 addi 3,3,1 134 b Lot 135Laligned: 136 srdi 5,4,2 137 mtctr 5 138 stw 0,0(3) 139 addi 3,3,4 140 bc 16,0,$-8 141 andi. 4,4,3 142 bne Little 143 blr 144.long 0 145.byte 0,12,0x14,0,0,0,2,0 146.long 0 147 148 149.globl .CRYPTO_memcmp 150.align 4 151.CRYPTO_memcmp: 152 cmpldi 5,0 153 li 0,0 154 beq Lno_data 155 mtctr 5 156Loop_cmp: 157 lbz 6,0(3) 158 addi 3,3,1 159 lbz 7,0(4) 160 addi 4,4,1 161 xor 6,6,7 162 or 0,0,6 163 bc 16,0,Loop_cmp 164 165Lno_data: 166 li 3,0 167 sub 3,3,0 168 extrwi 3,3,1,0 169 blr 170.long 0 171.byte 0,12,0x14,0,0,0,3,0 172.long 0 173 174.globl .OPENSSL_instrument_bus_mftb 175.align 4 176.OPENSSL_instrument_bus_mftb: 177 mtctr 4 178 179 mftb 7 180 li 8,0 181 182 dcbf 0,3 183 lwarx 6,0,3 184 add 6,6,8 185 stwcx. 6,0,3 186 stwx 6,0,3 187 188Loop: mftb 6 189 sub 8,6,7 190 mr 7,6 191 dcbf 0,3 192 lwarx 6,0,3 193 add 6,6,8 194 stwcx. 6,0,3 195 stwx 6,0,3 196 addi 3,3,4 197 bc 16,0,Loop 198 199 mr 3,4 200 blr 201.long 0 202.byte 0,12,0x14,0,0,0,2,0 203.long 0 204 205 206.globl .OPENSSL_instrument_bus2_mftb 207.align 4 208.OPENSSL_instrument_bus2_mftb: 209 mr 0,4 210 slwi 4,4,2 211 212 mftb 7 213 li 8,0 214 215 dcbf 0,3 216 lwarx 6,0,3 217 add 6,6,8 218 stwcx. 6,0,3 219 stwx 6,0,3 220 221 mftb 6 222 sub 8,6,7 223 mr 7,6 224 mr 9,8 225Loop2: 226 dcbf 0,3 227 lwarx 6,0,3 228 add 6,6,8 229 stwcx. 6,0,3 230 stwx 6,0,3 231 232 addic. 5,5,-1 233 beq Ldone2 234 235 mftb 6 236 sub 8,6,7 237 mr 7,6 238 cmplw 7,8,9 239 mr 9,8 240 241 mfcr 6 242 not 6,6 243 rlwinm 6,6,1,29,29 244 245 sub. 4,4,6 246 add 3,3,6 247 bne Loop2 248 249Ldone2: 250 srwi 4,4,2 251 sub 3,0,4 252 blr 253.long 0 254.byte 0,12,0x14,0,0,0,3,0 255.long 0 256 257 258.globl .OPENSSL_instrument_bus_mfspr268 259.align 4 260.OPENSSL_instrument_bus_mfspr268: 261 mtctr 4 262 263 mfspr 7,268 264 li 8,0 265 266 dcbf 0,3 267 lwarx 6,0,3 268 add 6,6,8 269 stwcx. 6,0,3 270 stwx 6,0,3 271 272Loop3: mfspr 6,268 273 sub 8,6,7 274 mr 7,6 275 dcbf 0,3 276 lwarx 6,0,3 277 add 6,6,8 278 stwcx. 6,0,3 279 stwx 6,0,3 280 addi 3,3,4 281 bc 16,0,Loop3 282 283 mr 3,4 284 blr 285.long 0 286.byte 0,12,0x14,0,0,0,2,0 287.long 0 288 289 290.globl .OPENSSL_instrument_bus2_mfspr268 291.align 4 292.OPENSSL_instrument_bus2_mfspr268: 293 mr 0,4 294 slwi 4,4,2 295 296 mfspr 7,268 297 li 8,0 298 299 dcbf 0,3 300 lwarx 6,0,3 301 add 6,6,8 302 stwcx. 6,0,3 303 stwx 6,0,3 304 305 mfspr 6,268 306 sub 8,6,7 307 mr 7,6 308 mr 9,8 309Loop4: 310 dcbf 0,3 311 lwarx 6,0,3 312 add 6,6,8 313 stwcx. 6,0,3 314 stwx 6,0,3 315 316 addic. 5,5,-1 317 beq Ldone4 318 319 mfspr 6,268 320 sub 8,6,7 321 mr 7,6 322 cmplw 7,8,9 323 mr 9,8 324 325 mfcr 6 326 not 6,6 327 rlwinm 6,6,1,29,29 328 329 sub. 4,4,6 330 add 3,3,6 331 bne Loop4 332 333Ldone4: 334 srwi 4,4,2 335 sub 3,0,4 336 blr 337.long 0 338.byte 0,12,0x14,0,0,0,3,0 339.long 0 340 341