12a58b312SMartin Matuska/* 22a58b312SMartin Matuska * Copyright 2004-2022 The OpenSSL Project Authors. All Rights Reserved. 32a58b312SMartin Matuska * 42a58b312SMartin Matuska * Licensed under the Apache License, Version 2.0 (the "License"); 52a58b312SMartin Matuska * you may not use this file except in compliance with the License. 62a58b312SMartin Matuska * You may obtain a copy of the License at 72a58b312SMartin Matuska * 82a58b312SMartin Matuska * https://www.apache.org/licenses/LICENSE-2.0 92a58b312SMartin Matuska * 102a58b312SMartin Matuska * Unless required by applicable law or agreed to in writing, software 112a58b312SMartin Matuska * distributed under the License is distributed on an "AS IS" BASIS, 122a58b312SMartin Matuska * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132a58b312SMartin Matuska * See the License for the specific language governing permissions and 142a58b312SMartin Matuska * limitations under the License. 152a58b312SMartin Matuska */ 162a58b312SMartin Matuska 172a58b312SMartin Matuska/* 182a58b312SMartin Matuska * Portions Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de> 192a58b312SMartin Matuska * - modified assembly to fit into OpenZFS 202a58b312SMartin Matuska */ 212a58b312SMartin Matuska 222a58b312SMartin Matuska#if (defined(__PPC64__) && defined(__BIG_ENDIAN__)) 232a58b312SMartin Matuska 240468e89cSJustin Hibbits#if (!defined(_CALL_ELF) || _CALL_ELF == 1) 252a58b312SMartin Matuska.text 262a58b312SMartin Matuska 272a58b312SMartin Matuska.globl zfs_sha512_power8 282a58b312SMartin Matuska.globl .zfs_sha512_power8 292a58b312SMartin Matuska.type zfs_sha512_power8,@function 302a58b312SMartin Matuska.section ".opd","aw" 312a58b312SMartin Matuska.align 3 322a58b312SMartin Matuskazfs_sha512_power8: 332a58b312SMartin Matuska.quad .zfs_sha512_power8,.TOC.@tocbase,0 342a58b312SMartin Matuska.previous 352a58b312SMartin Matuska.align 6 362a58b312SMartin Matuska.zfs_sha512_power8: 370468e89cSJustin Hibbits#else 380468e89cSJustin Hibbits.abiversion 2 390468e89cSJustin Hibbits.text 400468e89cSJustin Hibbits 410468e89cSJustin Hibbits.globl zfs_sha512_power8 420468e89cSJustin Hibbits.type zfs_sha512_power8,@function 430468e89cSJustin Hibbits.align 6 440468e89cSJustin Hibbitszfs_sha512_power8: 450468e89cSJustin Hibbits.localentry zfs_sha512_power8,0 460468e89cSJustin Hibbits#endif 470468e89cSJustin Hibbits 482a58b312SMartin Matuska stdu 1,-384(1) 492a58b312SMartin Matuska mflr 8 502a58b312SMartin Matuska li 10,207 512a58b312SMartin Matuska li 11,223 522a58b312SMartin Matuska stvx 24,10,1 532a58b312SMartin Matuska addi 10,10,32 542a58b312SMartin Matuska mfspr 12,256 552a58b312SMartin Matuska stvx 25,11,1 562a58b312SMartin Matuska addi 11,11,32 572a58b312SMartin Matuska stvx 26,10,1 582a58b312SMartin Matuska addi 10,10,32 592a58b312SMartin Matuska stvx 27,11,1 602a58b312SMartin Matuska addi 11,11,32 612a58b312SMartin Matuska stvx 28,10,1 622a58b312SMartin Matuska addi 10,10,32 632a58b312SMartin Matuska stvx 29,11,1 642a58b312SMartin Matuska addi 11,11,32 652a58b312SMartin Matuska stvx 30,10,1 662a58b312SMartin Matuska stvx 31,11,1 672a58b312SMartin Matuska li 11,-4096+255 682a58b312SMartin Matuska stw 12,332(1) 692a58b312SMartin Matuska li 10,0x10 702a58b312SMartin Matuska std 26,336(1) 712a58b312SMartin Matuska li 26,0x20 722a58b312SMartin Matuska std 27,344(1) 732a58b312SMartin Matuska li 27,0x30 742a58b312SMartin Matuska std 28,352(1) 752a58b312SMartin Matuska li 28,0x40 762a58b312SMartin Matuska std 29,360(1) 772a58b312SMartin Matuska li 29,0x50 782a58b312SMartin Matuska std 30,368(1) 792a58b312SMartin Matuska li 30,0x60 802a58b312SMartin Matuska std 31,376(1) 812a58b312SMartin Matuska li 31,0x70 822a58b312SMartin Matuska std 8,400(1) 832a58b312SMartin Matuska mtspr 256,11 842a58b312SMartin Matuska 852a58b312SMartin Matuska bl .LPICmeup 862a58b312SMartin Matuska addi 11,1,79 872a58b312SMartin Matuska .long 0x7C001E99 882a58b312SMartin Matuska .long 0x7C4A1E99 892a58b312SMartin Matuska .long 0x7C9A1E99 902a58b312SMartin Matuska vsldoi 1,0,0,8 912a58b312SMartin Matuska .long 0x7CDB1E99 922a58b312SMartin Matuska vsldoi 3,2,2,8 932a58b312SMartin Matuska vsldoi 5,4,4,8 942a58b312SMartin Matuska vsldoi 7,6,6,8 952a58b312SMartin Matuska li 0,4 962a58b312SMartin Matuska b .Loop 972a58b312SMartin Matuska.align 5 982a58b312SMartin Matuska.Loop: 992a58b312SMartin Matuska lvx 28,0,6 1002a58b312SMartin Matuska .long 0x7D002699 1012a58b312SMartin Matuska addi 4,4,16 1022a58b312SMartin Matuska mr 7,6 1032a58b312SMartin Matuska stvx 0,0,11 1042a58b312SMartin Matuska stvx 1,10,11 1052a58b312SMartin Matuska stvx 2,26,11 1062a58b312SMartin Matuska stvx 3,27,11 1072a58b312SMartin Matuska stvx 4,28,11 1082a58b312SMartin Matuska stvx 5,29,11 1092a58b312SMartin Matuska stvx 6,30,11 1102a58b312SMartin Matuska stvx 7,31,11 1112a58b312SMartin Matuska .long 0x10E7E0C0 1122a58b312SMartin Matuska lvx 28,10,6 1132a58b312SMartin Matuska .long 0x10E740C0 1142a58b312SMartin Matuska vsel 29,6,5,4 1152a58b312SMartin Matuska .long 0x10C6E0C0 1162a58b312SMartin Matuska .long 0x10E7E8C0 1172a58b312SMartin Matuska .long 0x13C4FEC2 1182a58b312SMartin Matuska .long 0x10E7F0C0 1192a58b312SMartin Matuska vxor 29,0,1 1202a58b312SMartin Matuska vsel 29,1,2,29 1212a58b312SMartin Matuska .long 0x106338C0 1222a58b312SMartin Matuska .long 0x13C086C2 1232a58b312SMartin Matuska .long 0x13DEE8C0 1242a58b312SMartin Matuska .long 0x10E7F0C0 1252a58b312SMartin Matuska lvx 28,26,7 1262a58b312SMartin Matuska .long 0x7D402699 1272a58b312SMartin Matuska addi 4,4,16 1282a58b312SMartin Matuska vsldoi 9,8,8,8 1292a58b312SMartin Matuska .long 0x10C648C0 1302a58b312SMartin Matuska vsel 29,5,4,3 1312a58b312SMartin Matuska .long 0x10A5E0C0 1322a58b312SMartin Matuska .long 0x10C6E8C0 1332a58b312SMartin Matuska .long 0x13C3FEC2 1342a58b312SMartin Matuska .long 0x10C6F0C0 1352a58b312SMartin Matuska vxor 29,7,0 1362a58b312SMartin Matuska vsel 29,0,1,29 1372a58b312SMartin Matuska .long 0x104230C0 1382a58b312SMartin Matuska .long 0x13C786C2 1392a58b312SMartin Matuska .long 0x13DEE8C0 1402a58b312SMartin Matuska .long 0x10C6F0C0 1412a58b312SMartin Matuska lvx 28,27,7 1422a58b312SMartin Matuska .long 0x10A550C0 1432a58b312SMartin Matuska vsel 29,4,3,2 1442a58b312SMartin Matuska .long 0x1084E0C0 1452a58b312SMartin Matuska .long 0x10A5E8C0 1462a58b312SMartin Matuska .long 0x13C2FEC2 1472a58b312SMartin Matuska .long 0x10A5F0C0 1482a58b312SMartin Matuska vxor 29,6,7 1492a58b312SMartin Matuska vsel 29,7,0,29 1502a58b312SMartin Matuska .long 0x102128C0 1512a58b312SMartin Matuska .long 0x13C686C2 1522a58b312SMartin Matuska .long 0x13DEE8C0 1532a58b312SMartin Matuska .long 0x10A5F0C0 1542a58b312SMartin Matuska lvx 28,28,7 1552a58b312SMartin Matuska .long 0x7D802699 1562a58b312SMartin Matuska addi 4,4,16 1572a58b312SMartin Matuska vsldoi 11,10,10,8 1582a58b312SMartin Matuska .long 0x108458C0 1592a58b312SMartin Matuska vsel 29,3,2,1 1602a58b312SMartin Matuska .long 0x1063E0C0 1612a58b312SMartin Matuska .long 0x1084E8C0 1622a58b312SMartin Matuska .long 0x13C1FEC2 1632a58b312SMartin Matuska .long 0x1084F0C0 1642a58b312SMartin Matuska vxor 29,5,6 1652a58b312SMartin Matuska vsel 29,6,7,29 1662a58b312SMartin Matuska .long 0x100020C0 1672a58b312SMartin Matuska .long 0x13C586C2 1682a58b312SMartin Matuska .long 0x13DEE8C0 1692a58b312SMartin Matuska .long 0x1084F0C0 1702a58b312SMartin Matuska lvx 28,29,7 1712a58b312SMartin Matuska .long 0x106360C0 1722a58b312SMartin Matuska vsel 29,2,1,0 1732a58b312SMartin Matuska .long 0x1042E0C0 1742a58b312SMartin Matuska .long 0x1063E8C0 1752a58b312SMartin Matuska .long 0x13C0FEC2 1762a58b312SMartin Matuska .long 0x1063F0C0 1772a58b312SMartin Matuska vxor 29,4,5 1782a58b312SMartin Matuska vsel 29,5,6,29 1792a58b312SMartin Matuska .long 0x10E718C0 1802a58b312SMartin Matuska .long 0x13C486C2 1812a58b312SMartin Matuska .long 0x13DEE8C0 1822a58b312SMartin Matuska .long 0x1063F0C0 1832a58b312SMartin Matuska lvx 28,30,7 1842a58b312SMartin Matuska .long 0x7DC02699 1852a58b312SMartin Matuska addi 4,4,16 1862a58b312SMartin Matuska vsldoi 13,12,12,8 1872a58b312SMartin Matuska .long 0x104268C0 1882a58b312SMartin Matuska vsel 29,1,0,7 1892a58b312SMartin Matuska .long 0x1021E0C0 1902a58b312SMartin Matuska .long 0x1042E8C0 1912a58b312SMartin Matuska .long 0x13C7FEC2 1922a58b312SMartin Matuska .long 0x1042F0C0 1932a58b312SMartin Matuska vxor 29,3,4 1942a58b312SMartin Matuska vsel 29,4,5,29 1952a58b312SMartin Matuska .long 0x10C610C0 1962a58b312SMartin Matuska .long 0x13C386C2 1972a58b312SMartin Matuska .long 0x13DEE8C0 1982a58b312SMartin Matuska .long 0x1042F0C0 1992a58b312SMartin Matuska lvx 28,31,7 2002a58b312SMartin Matuska addi 7,7,0x80 2012a58b312SMartin Matuska .long 0x102170C0 2022a58b312SMartin Matuska vsel 29,0,7,6 2032a58b312SMartin Matuska .long 0x1000E0C0 2042a58b312SMartin Matuska .long 0x1021E8C0 2052a58b312SMartin Matuska .long 0x13C6FEC2 2062a58b312SMartin Matuska .long 0x1021F0C0 2072a58b312SMartin Matuska vxor 29,2,3 2082a58b312SMartin Matuska vsel 29,3,4,29 2092a58b312SMartin Matuska .long 0x10A508C0 2102a58b312SMartin Matuska .long 0x13C286C2 2112a58b312SMartin Matuska .long 0x13DEE8C0 2122a58b312SMartin Matuska .long 0x1021F0C0 2132a58b312SMartin Matuska lvx 28,0,7 2142a58b312SMartin Matuska .long 0x7E002699 2152a58b312SMartin Matuska addi 4,4,16 2162a58b312SMartin Matuska vsldoi 15,14,14,8 2172a58b312SMartin Matuska .long 0x100078C0 2182a58b312SMartin Matuska vsel 29,7,6,5 2192a58b312SMartin Matuska .long 0x10E7E0C0 2202a58b312SMartin Matuska .long 0x1000E8C0 2212a58b312SMartin Matuska .long 0x13C5FEC2 2222a58b312SMartin Matuska .long 0x1000F0C0 2232a58b312SMartin Matuska vxor 29,1,2 2242a58b312SMartin Matuska vsel 29,2,3,29 2252a58b312SMartin Matuska .long 0x108400C0 2262a58b312SMartin Matuska .long 0x13C186C2 2272a58b312SMartin Matuska .long 0x13DEE8C0 2282a58b312SMartin Matuska .long 0x1000F0C0 2292a58b312SMartin Matuska lvx 28,10,7 2302a58b312SMartin Matuska .long 0x10E780C0 2312a58b312SMartin Matuska vsel 29,6,5,4 2322a58b312SMartin Matuska .long 0x10C6E0C0 2332a58b312SMartin Matuska .long 0x10E7E8C0 2342a58b312SMartin Matuska .long 0x13C4FEC2 2352a58b312SMartin Matuska .long 0x10E7F0C0 2362a58b312SMartin Matuska vxor 29,0,1 2372a58b312SMartin Matuska vsel 29,1,2,29 2382a58b312SMartin Matuska .long 0x106338C0 2392a58b312SMartin Matuska .long 0x13C086C2 2402a58b312SMartin Matuska .long 0x13DEE8C0 2412a58b312SMartin Matuska .long 0x10E7F0C0 2422a58b312SMartin Matuska lvx 28,26,7 2432a58b312SMartin Matuska .long 0x7E402699 2442a58b312SMartin Matuska addi 4,4,16 2452a58b312SMartin Matuska vsldoi 17,16,16,8 2462a58b312SMartin Matuska .long 0x10C688C0 2472a58b312SMartin Matuska vsel 29,5,4,3 2482a58b312SMartin Matuska .long 0x10A5E0C0 2492a58b312SMartin Matuska .long 0x10C6E8C0 2502a58b312SMartin Matuska .long 0x13C3FEC2 2512a58b312SMartin Matuska .long 0x10C6F0C0 2522a58b312SMartin Matuska vxor 29,7,0 2532a58b312SMartin Matuska vsel 29,0,1,29 2542a58b312SMartin Matuska .long 0x104230C0 2552a58b312SMartin Matuska .long 0x13C786C2 2562a58b312SMartin Matuska .long 0x13DEE8C0 2572a58b312SMartin Matuska .long 0x10C6F0C0 2582a58b312SMartin Matuska lvx 28,27,7 2592a58b312SMartin Matuska .long 0x10A590C0 2602a58b312SMartin Matuska vsel 29,4,3,2 2612a58b312SMartin Matuska .long 0x1084E0C0 2622a58b312SMartin Matuska .long 0x10A5E8C0 2632a58b312SMartin Matuska .long 0x13C2FEC2 2642a58b312SMartin Matuska .long 0x10A5F0C0 2652a58b312SMartin Matuska vxor 29,6,7 2662a58b312SMartin Matuska vsel 29,7,0,29 2672a58b312SMartin Matuska .long 0x102128C0 2682a58b312SMartin Matuska .long 0x13C686C2 2692a58b312SMartin Matuska .long 0x13DEE8C0 2702a58b312SMartin Matuska .long 0x10A5F0C0 2712a58b312SMartin Matuska lvx 28,28,7 2722a58b312SMartin Matuska .long 0x7F002699 2732a58b312SMartin Matuska addi 4,4,16 2742a58b312SMartin Matuska vsldoi 19,18,18,8 2752a58b312SMartin Matuska .long 0x108498C0 2762a58b312SMartin Matuska vsel 29,3,2,1 2772a58b312SMartin Matuska .long 0x1063E0C0 2782a58b312SMartin Matuska .long 0x1084E8C0 2792a58b312SMartin Matuska .long 0x13C1FEC2 2802a58b312SMartin Matuska .long 0x1084F0C0 2812a58b312SMartin Matuska vxor 29,5,6 2822a58b312SMartin Matuska vsel 29,6,7,29 2832a58b312SMartin Matuska .long 0x100020C0 2842a58b312SMartin Matuska .long 0x13C586C2 2852a58b312SMartin Matuska .long 0x13DEE8C0 2862a58b312SMartin Matuska .long 0x1084F0C0 2872a58b312SMartin Matuska lvx 28,29,7 2882a58b312SMartin Matuska .long 0x1063C0C0 2892a58b312SMartin Matuska vsel 29,2,1,0 2902a58b312SMartin Matuska .long 0x1042E0C0 2912a58b312SMartin Matuska .long 0x1063E8C0 2922a58b312SMartin Matuska .long 0x13C0FEC2 2932a58b312SMartin Matuska .long 0x1063F0C0 2942a58b312SMartin Matuska vxor 29,4,5 2952a58b312SMartin Matuska vsel 29,5,6,29 2962a58b312SMartin Matuska .long 0x10E718C0 2972a58b312SMartin Matuska .long 0x13C486C2 2982a58b312SMartin Matuska .long 0x13DEE8C0 2992a58b312SMartin Matuska .long 0x1063F0C0 3002a58b312SMartin Matuska lvx 28,30,7 3012a58b312SMartin Matuska .long 0x7F402699 3022a58b312SMartin Matuska addi 4,4,16 3032a58b312SMartin Matuska vsldoi 25,24,24,8 3042a58b312SMartin Matuska .long 0x1042C8C0 3052a58b312SMartin Matuska vsel 29,1,0,7 3062a58b312SMartin Matuska .long 0x1021E0C0 3072a58b312SMartin Matuska .long 0x1042E8C0 3082a58b312SMartin Matuska .long 0x13C7FEC2 3092a58b312SMartin Matuska .long 0x1042F0C0 3102a58b312SMartin Matuska vxor 29,3,4 3112a58b312SMartin Matuska vsel 29,4,5,29 3122a58b312SMartin Matuska .long 0x10C610C0 3132a58b312SMartin Matuska .long 0x13C386C2 3142a58b312SMartin Matuska .long 0x13DEE8C0 3152a58b312SMartin Matuska .long 0x1042F0C0 3162a58b312SMartin Matuska lvx 28,31,7 3172a58b312SMartin Matuska addi 7,7,0x80 3182a58b312SMartin Matuska .long 0x1021D0C0 3192a58b312SMartin Matuska vsel 29,0,7,6 3202a58b312SMartin Matuska .long 0x1000E0C0 3212a58b312SMartin Matuska .long 0x1021E8C0 3222a58b312SMartin Matuska .long 0x13C6FEC2 3232a58b312SMartin Matuska .long 0x1021F0C0 3242a58b312SMartin Matuska vxor 29,2,3 3252a58b312SMartin Matuska vsel 29,3,4,29 3262a58b312SMartin Matuska .long 0x10A508C0 3272a58b312SMartin Matuska .long 0x13C286C2 3282a58b312SMartin Matuska .long 0x13DEE8C0 3292a58b312SMartin Matuska .long 0x1021F0C0 3302a58b312SMartin Matuska lvx 28,0,7 3312a58b312SMartin Matuska vsldoi 27,26,26,8 3322a58b312SMartin Matuska .long 0x13C906C2 3332a58b312SMartin Matuska .long 0x1108F0C0 3342a58b312SMartin Matuska .long 0x13DA7EC2 3352a58b312SMartin Matuska .long 0x1108F0C0 3362a58b312SMartin Matuska .long 0x110888C0 3372a58b312SMartin Matuska .long 0x1000D8C0 3382a58b312SMartin Matuska vsel 29,7,6,5 3392a58b312SMartin Matuska .long 0x10E7E0C0 3402a58b312SMartin Matuska .long 0x1000E8C0 3412a58b312SMartin Matuska .long 0x13C5FEC2 3422a58b312SMartin Matuska .long 0x1000F0C0 3432a58b312SMartin Matuska vxor 29,1,2 3442a58b312SMartin Matuska vsel 29,2,3,29 3452a58b312SMartin Matuska .long 0x108400C0 3462a58b312SMartin Matuska .long 0x13C186C2 3472a58b312SMartin Matuska .long 0x13DEE8C0 3482a58b312SMartin Matuska .long 0x1000F0C0 3492a58b312SMartin Matuska lvx 28,10,7 3502a58b312SMartin Matuska mtctr 0 3512a58b312SMartin Matuska b .L16_xx 3522a58b312SMartin Matuska.align 5 3532a58b312SMartin Matuska.L16_xx: 3542a58b312SMartin Matuska .long 0x13CA06C2 3552a58b312SMartin Matuska .long 0x1129F0C0 3562a58b312SMartin Matuska .long 0x13DB7EC2 3572a58b312SMartin Matuska .long 0x1129F0C0 3582a58b312SMartin Matuska .long 0x112990C0 3592a58b312SMartin Matuska .long 0x10E740C0 3602a58b312SMartin Matuska vsel 29,6,5,4 3612a58b312SMartin Matuska .long 0x10C6E0C0 3622a58b312SMartin Matuska .long 0x10E7E8C0 3632a58b312SMartin Matuska .long 0x13C4FEC2 3642a58b312SMartin Matuska .long 0x10E7F0C0 3652a58b312SMartin Matuska vxor 29,0,1 3662a58b312SMartin Matuska vsel 29,1,2,29 3672a58b312SMartin Matuska .long 0x106338C0 3682a58b312SMartin Matuska .long 0x13C086C2 3692a58b312SMartin Matuska .long 0x13DEE8C0 3702a58b312SMartin Matuska .long 0x10E7F0C0 3712a58b312SMartin Matuska lvx 28,26,7 3722a58b312SMartin Matuska .long 0x13CB06C2 3732a58b312SMartin Matuska .long 0x114AF0C0 3742a58b312SMartin Matuska .long 0x13C87EC2 3752a58b312SMartin Matuska .long 0x114AF0C0 3762a58b312SMartin Matuska .long 0x114A98C0 3772a58b312SMartin Matuska .long 0x10C648C0 3782a58b312SMartin Matuska vsel 29,5,4,3 3792a58b312SMartin Matuska .long 0x10A5E0C0 3802a58b312SMartin Matuska .long 0x10C6E8C0 3812a58b312SMartin Matuska .long 0x13C3FEC2 3822a58b312SMartin Matuska .long 0x10C6F0C0 3832a58b312SMartin Matuska vxor 29,7,0 3842a58b312SMartin Matuska vsel 29,0,1,29 3852a58b312SMartin Matuska .long 0x104230C0 3862a58b312SMartin Matuska .long 0x13C786C2 3872a58b312SMartin Matuska .long 0x13DEE8C0 3882a58b312SMartin Matuska .long 0x10C6F0C0 3892a58b312SMartin Matuska lvx 28,27,7 3902a58b312SMartin Matuska .long 0x13CC06C2 3912a58b312SMartin Matuska .long 0x116BF0C0 3922a58b312SMartin Matuska .long 0x13C97EC2 3932a58b312SMartin Matuska .long 0x116BF0C0 3942a58b312SMartin Matuska .long 0x116BC0C0 3952a58b312SMartin Matuska .long 0x10A550C0 3962a58b312SMartin Matuska vsel 29,4,3,2 3972a58b312SMartin Matuska .long 0x1084E0C0 3982a58b312SMartin Matuska .long 0x10A5E8C0 3992a58b312SMartin Matuska .long 0x13C2FEC2 4002a58b312SMartin Matuska .long 0x10A5F0C0 4012a58b312SMartin Matuska vxor 29,6,7 4022a58b312SMartin Matuska vsel 29,7,0,29 4032a58b312SMartin Matuska .long 0x102128C0 4042a58b312SMartin Matuska .long 0x13C686C2 4052a58b312SMartin Matuska .long 0x13DEE8C0 4062a58b312SMartin Matuska .long 0x10A5F0C0 4072a58b312SMartin Matuska lvx 28,28,7 4082a58b312SMartin Matuska .long 0x13CD06C2 4092a58b312SMartin Matuska .long 0x118CF0C0 4102a58b312SMartin Matuska .long 0x13CA7EC2 4112a58b312SMartin Matuska .long 0x118CF0C0 4122a58b312SMartin Matuska .long 0x118CC8C0 4132a58b312SMartin Matuska .long 0x108458C0 4142a58b312SMartin Matuska vsel 29,3,2,1 4152a58b312SMartin Matuska .long 0x1063E0C0 4162a58b312SMartin Matuska .long 0x1084E8C0 4172a58b312SMartin Matuska .long 0x13C1FEC2 4182a58b312SMartin Matuska .long 0x1084F0C0 4192a58b312SMartin Matuska vxor 29,5,6 4202a58b312SMartin Matuska vsel 29,6,7,29 4212a58b312SMartin Matuska .long 0x100020C0 4222a58b312SMartin Matuska .long 0x13C586C2 4232a58b312SMartin Matuska .long 0x13DEE8C0 4242a58b312SMartin Matuska .long 0x1084F0C0 4252a58b312SMartin Matuska lvx 28,29,7 4262a58b312SMartin Matuska .long 0x13CE06C2 4272a58b312SMartin Matuska .long 0x11ADF0C0 4282a58b312SMartin Matuska .long 0x13CB7EC2 4292a58b312SMartin Matuska .long 0x11ADF0C0 4302a58b312SMartin Matuska .long 0x11ADD0C0 4312a58b312SMartin Matuska .long 0x106360C0 4322a58b312SMartin Matuska vsel 29,2,1,0 4332a58b312SMartin Matuska .long 0x1042E0C0 4342a58b312SMartin Matuska .long 0x1063E8C0 4352a58b312SMartin Matuska .long 0x13C0FEC2 4362a58b312SMartin Matuska .long 0x1063F0C0 4372a58b312SMartin Matuska vxor 29,4,5 4382a58b312SMartin Matuska vsel 29,5,6,29 4392a58b312SMartin Matuska .long 0x10E718C0 4402a58b312SMartin Matuska .long 0x13C486C2 4412a58b312SMartin Matuska .long 0x13DEE8C0 4422a58b312SMartin Matuska .long 0x1063F0C0 4432a58b312SMartin Matuska lvx 28,30,7 4442a58b312SMartin Matuska .long 0x13CF06C2 4452a58b312SMartin Matuska .long 0x11CEF0C0 4462a58b312SMartin Matuska .long 0x13CC7EC2 4472a58b312SMartin Matuska .long 0x11CEF0C0 4482a58b312SMartin Matuska .long 0x11CED8C0 4492a58b312SMartin Matuska .long 0x104268C0 4502a58b312SMartin Matuska vsel 29,1,0,7 4512a58b312SMartin Matuska .long 0x1021E0C0 4522a58b312SMartin Matuska .long 0x1042E8C0 4532a58b312SMartin Matuska .long 0x13C7FEC2 4542a58b312SMartin Matuska .long 0x1042F0C0 4552a58b312SMartin Matuska vxor 29,3,4 4562a58b312SMartin Matuska vsel 29,4,5,29 4572a58b312SMartin Matuska .long 0x10C610C0 4582a58b312SMartin Matuska .long 0x13C386C2 4592a58b312SMartin Matuska .long 0x13DEE8C0 4602a58b312SMartin Matuska .long 0x1042F0C0 4612a58b312SMartin Matuska lvx 28,31,7 4622a58b312SMartin Matuska addi 7,7,0x80 4632a58b312SMartin Matuska .long 0x13D006C2 4642a58b312SMartin Matuska .long 0x11EFF0C0 4652a58b312SMartin Matuska .long 0x13CD7EC2 4662a58b312SMartin Matuska .long 0x11EFF0C0 4672a58b312SMartin Matuska .long 0x11EF40C0 4682a58b312SMartin Matuska .long 0x102170C0 4692a58b312SMartin Matuska vsel 29,0,7,6 4702a58b312SMartin Matuska .long 0x1000E0C0 4712a58b312SMartin Matuska .long 0x1021E8C0 4722a58b312SMartin Matuska .long 0x13C6FEC2 4732a58b312SMartin Matuska .long 0x1021F0C0 4742a58b312SMartin Matuska vxor 29,2,3 4752a58b312SMartin Matuska vsel 29,3,4,29 4762a58b312SMartin Matuska .long 0x10A508C0 4772a58b312SMartin Matuska .long 0x13C286C2 4782a58b312SMartin Matuska .long 0x13DEE8C0 4792a58b312SMartin Matuska .long 0x1021F0C0 4802a58b312SMartin Matuska lvx 28,0,7 4812a58b312SMartin Matuska .long 0x13D106C2 4822a58b312SMartin Matuska .long 0x1210F0C0 4832a58b312SMartin Matuska .long 0x13CE7EC2 4842a58b312SMartin Matuska .long 0x1210F0C0 4852a58b312SMartin Matuska .long 0x121048C0 4862a58b312SMartin Matuska .long 0x100078C0 4872a58b312SMartin Matuska vsel 29,7,6,5 4882a58b312SMartin Matuska .long 0x10E7E0C0 4892a58b312SMartin Matuska .long 0x1000E8C0 4902a58b312SMartin Matuska .long 0x13C5FEC2 4912a58b312SMartin Matuska .long 0x1000F0C0 4922a58b312SMartin Matuska vxor 29,1,2 4932a58b312SMartin Matuska vsel 29,2,3,29 4942a58b312SMartin Matuska .long 0x108400C0 4952a58b312SMartin Matuska .long 0x13C186C2 4962a58b312SMartin Matuska .long 0x13DEE8C0 4972a58b312SMartin Matuska .long 0x1000F0C0 4982a58b312SMartin Matuska lvx 28,10,7 4992a58b312SMartin Matuska .long 0x13D206C2 5002a58b312SMartin Matuska .long 0x1231F0C0 5012a58b312SMartin Matuska .long 0x13CF7EC2 5022a58b312SMartin Matuska .long 0x1231F0C0 5032a58b312SMartin Matuska .long 0x123150C0 5042a58b312SMartin Matuska .long 0x10E780C0 5052a58b312SMartin Matuska vsel 29,6,5,4 5062a58b312SMartin Matuska .long 0x10C6E0C0 5072a58b312SMartin Matuska .long 0x10E7E8C0 5082a58b312SMartin Matuska .long 0x13C4FEC2 5092a58b312SMartin Matuska .long 0x10E7F0C0 5102a58b312SMartin Matuska vxor 29,0,1 5112a58b312SMartin Matuska vsel 29,1,2,29 5122a58b312SMartin Matuska .long 0x106338C0 5132a58b312SMartin Matuska .long 0x13C086C2 5142a58b312SMartin Matuska .long 0x13DEE8C0 5152a58b312SMartin Matuska .long 0x10E7F0C0 5162a58b312SMartin Matuska lvx 28,26,7 5172a58b312SMartin Matuska .long 0x13D306C2 5182a58b312SMartin Matuska .long 0x1252F0C0 5192a58b312SMartin Matuska .long 0x13D07EC2 5202a58b312SMartin Matuska .long 0x1252F0C0 5212a58b312SMartin Matuska .long 0x125258C0 5222a58b312SMartin Matuska .long 0x10C688C0 5232a58b312SMartin Matuska vsel 29,5,4,3 5242a58b312SMartin Matuska .long 0x10A5E0C0 5252a58b312SMartin Matuska .long 0x10C6E8C0 5262a58b312SMartin Matuska .long 0x13C3FEC2 5272a58b312SMartin Matuska .long 0x10C6F0C0 5282a58b312SMartin Matuska vxor 29,7,0 5292a58b312SMartin Matuska vsel 29,0,1,29 5302a58b312SMartin Matuska .long 0x104230C0 5312a58b312SMartin Matuska .long 0x13C786C2 5322a58b312SMartin Matuska .long 0x13DEE8C0 5332a58b312SMartin Matuska .long 0x10C6F0C0 5342a58b312SMartin Matuska lvx 28,27,7 5352a58b312SMartin Matuska .long 0x13D806C2 5362a58b312SMartin Matuska .long 0x1273F0C0 5372a58b312SMartin Matuska .long 0x13D17EC2 5382a58b312SMartin Matuska .long 0x1273F0C0 5392a58b312SMartin Matuska .long 0x127360C0 5402a58b312SMartin Matuska .long 0x10A590C0 5412a58b312SMartin Matuska vsel 29,4,3,2 5422a58b312SMartin Matuska .long 0x1084E0C0 5432a58b312SMartin Matuska .long 0x10A5E8C0 5442a58b312SMartin Matuska .long 0x13C2FEC2 5452a58b312SMartin Matuska .long 0x10A5F0C0 5462a58b312SMartin Matuska vxor 29,6,7 5472a58b312SMartin Matuska vsel 29,7,0,29 5482a58b312SMartin Matuska .long 0x102128C0 5492a58b312SMartin Matuska .long 0x13C686C2 5502a58b312SMartin Matuska .long 0x13DEE8C0 5512a58b312SMartin Matuska .long 0x10A5F0C0 5522a58b312SMartin Matuska lvx 28,28,7 5532a58b312SMartin Matuska .long 0x13D906C2 5542a58b312SMartin Matuska .long 0x1318F0C0 5552a58b312SMartin Matuska .long 0x13D27EC2 5562a58b312SMartin Matuska .long 0x1318F0C0 5572a58b312SMartin Matuska .long 0x131868C0 5582a58b312SMartin Matuska .long 0x108498C0 5592a58b312SMartin Matuska vsel 29,3,2,1 5602a58b312SMartin Matuska .long 0x1063E0C0 5612a58b312SMartin Matuska .long 0x1084E8C0 5622a58b312SMartin Matuska .long 0x13C1FEC2 5632a58b312SMartin Matuska .long 0x1084F0C0 5642a58b312SMartin Matuska vxor 29,5,6 5652a58b312SMartin Matuska vsel 29,6,7,29 5662a58b312SMartin Matuska .long 0x100020C0 5672a58b312SMartin Matuska .long 0x13C586C2 5682a58b312SMartin Matuska .long 0x13DEE8C0 5692a58b312SMartin Matuska .long 0x1084F0C0 5702a58b312SMartin Matuska lvx 28,29,7 5712a58b312SMartin Matuska .long 0x13DA06C2 5722a58b312SMartin Matuska .long 0x1339F0C0 5732a58b312SMartin Matuska .long 0x13D37EC2 5742a58b312SMartin Matuska .long 0x1339F0C0 5752a58b312SMartin Matuska .long 0x133970C0 5762a58b312SMartin Matuska .long 0x1063C0C0 5772a58b312SMartin Matuska vsel 29,2,1,0 5782a58b312SMartin Matuska .long 0x1042E0C0 5792a58b312SMartin Matuska .long 0x1063E8C0 5802a58b312SMartin Matuska .long 0x13C0FEC2 5812a58b312SMartin Matuska .long 0x1063F0C0 5822a58b312SMartin Matuska vxor 29,4,5 5832a58b312SMartin Matuska vsel 29,5,6,29 5842a58b312SMartin Matuska .long 0x10E718C0 5852a58b312SMartin Matuska .long 0x13C486C2 5862a58b312SMartin Matuska .long 0x13DEE8C0 5872a58b312SMartin Matuska .long 0x1063F0C0 5882a58b312SMartin Matuska lvx 28,30,7 5892a58b312SMartin Matuska .long 0x13DB06C2 5902a58b312SMartin Matuska .long 0x135AF0C0 5912a58b312SMartin Matuska .long 0x13D87EC2 5922a58b312SMartin Matuska .long 0x135AF0C0 5932a58b312SMartin Matuska .long 0x135A78C0 5942a58b312SMartin Matuska .long 0x1042C8C0 5952a58b312SMartin Matuska vsel 29,1,0,7 5962a58b312SMartin Matuska .long 0x1021E0C0 5972a58b312SMartin Matuska .long 0x1042E8C0 5982a58b312SMartin Matuska .long 0x13C7FEC2 5992a58b312SMartin Matuska .long 0x1042F0C0 6002a58b312SMartin Matuska vxor 29,3,4 6012a58b312SMartin Matuska vsel 29,4,5,29 6022a58b312SMartin Matuska .long 0x10C610C0 6032a58b312SMartin Matuska .long 0x13C386C2 6042a58b312SMartin Matuska .long 0x13DEE8C0 6052a58b312SMartin Matuska .long 0x1042F0C0 6062a58b312SMartin Matuska lvx 28,31,7 6072a58b312SMartin Matuska addi 7,7,0x80 6082a58b312SMartin Matuska .long 0x13C806C2 6092a58b312SMartin Matuska .long 0x137BF0C0 6102a58b312SMartin Matuska .long 0x13D97EC2 6112a58b312SMartin Matuska .long 0x137BF0C0 6122a58b312SMartin Matuska .long 0x137B80C0 6132a58b312SMartin Matuska .long 0x1021D0C0 6142a58b312SMartin Matuska vsel 29,0,7,6 6152a58b312SMartin Matuska .long 0x1000E0C0 6162a58b312SMartin Matuska .long 0x1021E8C0 6172a58b312SMartin Matuska .long 0x13C6FEC2 6182a58b312SMartin Matuska .long 0x1021F0C0 6192a58b312SMartin Matuska vxor 29,2,3 6202a58b312SMartin Matuska vsel 29,3,4,29 6212a58b312SMartin Matuska .long 0x10A508C0 6222a58b312SMartin Matuska .long 0x13C286C2 6232a58b312SMartin Matuska .long 0x13DEE8C0 6242a58b312SMartin Matuska .long 0x1021F0C0 6252a58b312SMartin Matuska lvx 28,0,7 6262a58b312SMartin Matuska .long 0x13C906C2 6272a58b312SMartin Matuska .long 0x1108F0C0 6282a58b312SMartin Matuska .long 0x13DA7EC2 6292a58b312SMartin Matuska .long 0x1108F0C0 6302a58b312SMartin Matuska .long 0x110888C0 6312a58b312SMartin Matuska .long 0x1000D8C0 6322a58b312SMartin Matuska vsel 29,7,6,5 6332a58b312SMartin Matuska .long 0x10E7E0C0 6342a58b312SMartin Matuska .long 0x1000E8C0 6352a58b312SMartin Matuska .long 0x13C5FEC2 6362a58b312SMartin Matuska .long 0x1000F0C0 6372a58b312SMartin Matuska vxor 29,1,2 6382a58b312SMartin Matuska vsel 29,2,3,29 6392a58b312SMartin Matuska .long 0x108400C0 6402a58b312SMartin Matuska .long 0x13C186C2 6412a58b312SMartin Matuska .long 0x13DEE8C0 6422a58b312SMartin Matuska .long 0x1000F0C0 6432a58b312SMartin Matuska lvx 28,10,7 6442a58b312SMartin Matuska bdnz .L16_xx 6452a58b312SMartin Matuska 6462a58b312SMartin Matuska lvx 10,0,11 6472a58b312SMartin Matuska subic. 5,5,1 6482a58b312SMartin Matuska lvx 11,10,11 6492a58b312SMartin Matuska .long 0x100050C0 6502a58b312SMartin Matuska lvx 12,26,11 6512a58b312SMartin Matuska .long 0x102158C0 6522a58b312SMartin Matuska lvx 13,27,11 6532a58b312SMartin Matuska .long 0x104260C0 6542a58b312SMartin Matuska lvx 14,28,11 6552a58b312SMartin Matuska .long 0x106368C0 6562a58b312SMartin Matuska lvx 15,29,11 6572a58b312SMartin Matuska .long 0x108470C0 6582a58b312SMartin Matuska lvx 16,30,11 6592a58b312SMartin Matuska .long 0x10A578C0 6602a58b312SMartin Matuska lvx 17,31,11 6612a58b312SMartin Matuska .long 0x10C680C0 6622a58b312SMartin Matuska .long 0x10E788C0 6632a58b312SMartin Matuska bne .Loop 6642a58b312SMartin Matuska vperm 0,0,1,28 6652a58b312SMartin Matuska vperm 2,2,3,28 6662a58b312SMartin Matuska vperm 4,4,5,28 6672a58b312SMartin Matuska vperm 6,6,7,28 6682a58b312SMartin Matuska .long 0x7C001F99 6692a58b312SMartin Matuska .long 0x7C4A1F99 6702a58b312SMartin Matuska .long 0x7C9A1F99 6712a58b312SMartin Matuska .long 0x7CDB1F99 6722a58b312SMartin Matuska addi 11,1,207 6732a58b312SMartin Matuska mtlr 8 6742a58b312SMartin Matuska mtspr 256,12 6752a58b312SMartin Matuska lvx 24,0,11 6762a58b312SMartin Matuska lvx 25,10,11 6772a58b312SMartin Matuska lvx 26,26,11 6782a58b312SMartin Matuska lvx 27,27,11 6792a58b312SMartin Matuska lvx 28,28,11 6802a58b312SMartin Matuska lvx 29,29,11 6812a58b312SMartin Matuska lvx 30,30,11 6822a58b312SMartin Matuska lvx 31,31,11 6832a58b312SMartin Matuska ld 26,336(1) 6842a58b312SMartin Matuska ld 27,344(1) 6852a58b312SMartin Matuska ld 28,352(1) 6862a58b312SMartin Matuska ld 29,360(1) 6872a58b312SMartin Matuska ld 30,368(1) 6882a58b312SMartin Matuska ld 31,376(1) 6892a58b312SMartin Matuska addi 1,1,384 6902a58b312SMartin Matuska blr 6912a58b312SMartin Matuska.long 0 6922a58b312SMartin Matuska.byte 0,12,4,1,0x80,6,3,0 6932a58b312SMartin Matuska.long 0 6940468e89cSJustin Hibbits#if (!defined(_CALL_ELF) || _CALL_ELF == 1) 6952a58b312SMartin Matuska.size .zfs_sha512_power8,.-.zfs_sha512_power8 6962a58b312SMartin Matuska.size zfs_sha512_power8,.-.zfs_sha512_power8 6970468e89cSJustin Hibbits#else 6980468e89cSJustin Hibbits.size zfs_sha512_power8,.-zfs_sha512_power8 6990468e89cSJustin Hibbits#endif 7002a58b312SMartin Matuska.align 6 7012a58b312SMartin Matuska.LPICmeup: 7022a58b312SMartin Matuska mflr 0 7032a58b312SMartin Matuska bcl 20,31,$+4 7042a58b312SMartin Matuska mflr 6 7052a58b312SMartin Matuska addi 6,6,56 7062a58b312SMartin Matuska mtlr 0 7072a58b312SMartin Matuska blr 7082a58b312SMartin Matuska.long 0 7092a58b312SMartin Matuska.byte 0,12,0x14,0,0,0,0,0 7102a58b312SMartin Matuska.space 28 7112a58b312SMartin Matuska.long 0x428a2f98,0xd728ae22 7122a58b312SMartin Matuska.long 0x428a2f98,0xd728ae22 7132a58b312SMartin Matuska.long 0x71374491,0x23ef65cd 7142a58b312SMartin Matuska.long 0x71374491,0x23ef65cd 7152a58b312SMartin Matuska.long 0xb5c0fbcf,0xec4d3b2f 7162a58b312SMartin Matuska.long 0xb5c0fbcf,0xec4d3b2f 7172a58b312SMartin Matuska.long 0xe9b5dba5,0x8189dbbc 7182a58b312SMartin Matuska.long 0xe9b5dba5,0x8189dbbc 7192a58b312SMartin Matuska.long 0x3956c25b,0xf348b538 7202a58b312SMartin Matuska.long 0x3956c25b,0xf348b538 7212a58b312SMartin Matuska.long 0x59f111f1,0xb605d019 7222a58b312SMartin Matuska.long 0x59f111f1,0xb605d019 7232a58b312SMartin Matuska.long 0x923f82a4,0xaf194f9b 7242a58b312SMartin Matuska.long 0x923f82a4,0xaf194f9b 7252a58b312SMartin Matuska.long 0xab1c5ed5,0xda6d8118 7262a58b312SMartin Matuska.long 0xab1c5ed5,0xda6d8118 7272a58b312SMartin Matuska.long 0xd807aa98,0xa3030242 7282a58b312SMartin Matuska.long 0xd807aa98,0xa3030242 7292a58b312SMartin Matuska.long 0x12835b01,0x45706fbe 7302a58b312SMartin Matuska.long 0x12835b01,0x45706fbe 7312a58b312SMartin Matuska.long 0x243185be,0x4ee4b28c 7322a58b312SMartin Matuska.long 0x243185be,0x4ee4b28c 7332a58b312SMartin Matuska.long 0x550c7dc3,0xd5ffb4e2 7342a58b312SMartin Matuska.long 0x550c7dc3,0xd5ffb4e2 7352a58b312SMartin Matuska.long 0x72be5d74,0xf27b896f 7362a58b312SMartin Matuska.long 0x72be5d74,0xf27b896f 7372a58b312SMartin Matuska.long 0x80deb1fe,0x3b1696b1 7382a58b312SMartin Matuska.long 0x80deb1fe,0x3b1696b1 7392a58b312SMartin Matuska.long 0x9bdc06a7,0x25c71235 7402a58b312SMartin Matuska.long 0x9bdc06a7,0x25c71235 7412a58b312SMartin Matuska.long 0xc19bf174,0xcf692694 7422a58b312SMartin Matuska.long 0xc19bf174,0xcf692694 7432a58b312SMartin Matuska.long 0xe49b69c1,0x9ef14ad2 7442a58b312SMartin Matuska.long 0xe49b69c1,0x9ef14ad2 7452a58b312SMartin Matuska.long 0xefbe4786,0x384f25e3 7462a58b312SMartin Matuska.long 0xefbe4786,0x384f25e3 7472a58b312SMartin Matuska.long 0x0fc19dc6,0x8b8cd5b5 7482a58b312SMartin Matuska.long 0x0fc19dc6,0x8b8cd5b5 7492a58b312SMartin Matuska.long 0x240ca1cc,0x77ac9c65 7502a58b312SMartin Matuska.long 0x240ca1cc,0x77ac9c65 7512a58b312SMartin Matuska.long 0x2de92c6f,0x592b0275 7522a58b312SMartin Matuska.long 0x2de92c6f,0x592b0275 7532a58b312SMartin Matuska.long 0x4a7484aa,0x6ea6e483 7542a58b312SMartin Matuska.long 0x4a7484aa,0x6ea6e483 7552a58b312SMartin Matuska.long 0x5cb0a9dc,0xbd41fbd4 7562a58b312SMartin Matuska.long 0x5cb0a9dc,0xbd41fbd4 7572a58b312SMartin Matuska.long 0x76f988da,0x831153b5 7582a58b312SMartin Matuska.long 0x76f988da,0x831153b5 7592a58b312SMartin Matuska.long 0x983e5152,0xee66dfab 7602a58b312SMartin Matuska.long 0x983e5152,0xee66dfab 7612a58b312SMartin Matuska.long 0xa831c66d,0x2db43210 7622a58b312SMartin Matuska.long 0xa831c66d,0x2db43210 7632a58b312SMartin Matuska.long 0xb00327c8,0x98fb213f 7642a58b312SMartin Matuska.long 0xb00327c8,0x98fb213f 7652a58b312SMartin Matuska.long 0xbf597fc7,0xbeef0ee4 7662a58b312SMartin Matuska.long 0xbf597fc7,0xbeef0ee4 7672a58b312SMartin Matuska.long 0xc6e00bf3,0x3da88fc2 7682a58b312SMartin Matuska.long 0xc6e00bf3,0x3da88fc2 7692a58b312SMartin Matuska.long 0xd5a79147,0x930aa725 7702a58b312SMartin Matuska.long 0xd5a79147,0x930aa725 7712a58b312SMartin Matuska.long 0x06ca6351,0xe003826f 7722a58b312SMartin Matuska.long 0x06ca6351,0xe003826f 7732a58b312SMartin Matuska.long 0x14292967,0x0a0e6e70 7742a58b312SMartin Matuska.long 0x14292967,0x0a0e6e70 7752a58b312SMartin Matuska.long 0x27b70a85,0x46d22ffc 7762a58b312SMartin Matuska.long 0x27b70a85,0x46d22ffc 7772a58b312SMartin Matuska.long 0x2e1b2138,0x5c26c926 7782a58b312SMartin Matuska.long 0x2e1b2138,0x5c26c926 7792a58b312SMartin Matuska.long 0x4d2c6dfc,0x5ac42aed 7802a58b312SMartin Matuska.long 0x4d2c6dfc,0x5ac42aed 7812a58b312SMartin Matuska.long 0x53380d13,0x9d95b3df 7822a58b312SMartin Matuska.long 0x53380d13,0x9d95b3df 7832a58b312SMartin Matuska.long 0x650a7354,0x8baf63de 7842a58b312SMartin Matuska.long 0x650a7354,0x8baf63de 7852a58b312SMartin Matuska.long 0x766a0abb,0x3c77b2a8 7862a58b312SMartin Matuska.long 0x766a0abb,0x3c77b2a8 7872a58b312SMartin Matuska.long 0x81c2c92e,0x47edaee6 7882a58b312SMartin Matuska.long 0x81c2c92e,0x47edaee6 7892a58b312SMartin Matuska.long 0x92722c85,0x1482353b 7902a58b312SMartin Matuska.long 0x92722c85,0x1482353b 7912a58b312SMartin Matuska.long 0xa2bfe8a1,0x4cf10364 7922a58b312SMartin Matuska.long 0xa2bfe8a1,0x4cf10364 7932a58b312SMartin Matuska.long 0xa81a664b,0xbc423001 7942a58b312SMartin Matuska.long 0xa81a664b,0xbc423001 7952a58b312SMartin Matuska.long 0xc24b8b70,0xd0f89791 7962a58b312SMartin Matuska.long 0xc24b8b70,0xd0f89791 7972a58b312SMartin Matuska.long 0xc76c51a3,0x0654be30 7982a58b312SMartin Matuska.long 0xc76c51a3,0x0654be30 7992a58b312SMartin Matuska.long 0xd192e819,0xd6ef5218 8002a58b312SMartin Matuska.long 0xd192e819,0xd6ef5218 8012a58b312SMartin Matuska.long 0xd6990624,0x5565a910 8022a58b312SMartin Matuska.long 0xd6990624,0x5565a910 8032a58b312SMartin Matuska.long 0xf40e3585,0x5771202a 8042a58b312SMartin Matuska.long 0xf40e3585,0x5771202a 8052a58b312SMartin Matuska.long 0x106aa070,0x32bbd1b8 8062a58b312SMartin Matuska.long 0x106aa070,0x32bbd1b8 8072a58b312SMartin Matuska.long 0x19a4c116,0xb8d2d0c8 8082a58b312SMartin Matuska.long 0x19a4c116,0xb8d2d0c8 8092a58b312SMartin Matuska.long 0x1e376c08,0x5141ab53 8102a58b312SMartin Matuska.long 0x1e376c08,0x5141ab53 8112a58b312SMartin Matuska.long 0x2748774c,0xdf8eeb99 8122a58b312SMartin Matuska.long 0x2748774c,0xdf8eeb99 8132a58b312SMartin Matuska.long 0x34b0bcb5,0xe19b48a8 8142a58b312SMartin Matuska.long 0x34b0bcb5,0xe19b48a8 8152a58b312SMartin Matuska.long 0x391c0cb3,0xc5c95a63 8162a58b312SMartin Matuska.long 0x391c0cb3,0xc5c95a63 8172a58b312SMartin Matuska.long 0x4ed8aa4a,0xe3418acb 8182a58b312SMartin Matuska.long 0x4ed8aa4a,0xe3418acb 8192a58b312SMartin Matuska.long 0x5b9cca4f,0x7763e373 8202a58b312SMartin Matuska.long 0x5b9cca4f,0x7763e373 8212a58b312SMartin Matuska.long 0x682e6ff3,0xd6b2b8a3 8222a58b312SMartin Matuska.long 0x682e6ff3,0xd6b2b8a3 8232a58b312SMartin Matuska.long 0x748f82ee,0x5defb2fc 8242a58b312SMartin Matuska.long 0x748f82ee,0x5defb2fc 8252a58b312SMartin Matuska.long 0x78a5636f,0x43172f60 8262a58b312SMartin Matuska.long 0x78a5636f,0x43172f60 8272a58b312SMartin Matuska.long 0x84c87814,0xa1f0ab72 8282a58b312SMartin Matuska.long 0x84c87814,0xa1f0ab72 8292a58b312SMartin Matuska.long 0x8cc70208,0x1a6439ec 8302a58b312SMartin Matuska.long 0x8cc70208,0x1a6439ec 8312a58b312SMartin Matuska.long 0x90befffa,0x23631e28 8322a58b312SMartin Matuska.long 0x90befffa,0x23631e28 8332a58b312SMartin Matuska.long 0xa4506ceb,0xde82bde9 8342a58b312SMartin Matuska.long 0xa4506ceb,0xde82bde9 8352a58b312SMartin Matuska.long 0xbef9a3f7,0xb2c67915 8362a58b312SMartin Matuska.long 0xbef9a3f7,0xb2c67915 8372a58b312SMartin Matuska.long 0xc67178f2,0xe372532b 8382a58b312SMartin Matuska.long 0xc67178f2,0xe372532b 8392a58b312SMartin Matuska.long 0xca273ece,0xea26619c 8402a58b312SMartin Matuska.long 0xca273ece,0xea26619c 8412a58b312SMartin Matuska.long 0xd186b8c7,0x21c0c207 8422a58b312SMartin Matuska.long 0xd186b8c7,0x21c0c207 8432a58b312SMartin Matuska.long 0xeada7dd6,0xcde0eb1e 8442a58b312SMartin Matuska.long 0xeada7dd6,0xcde0eb1e 8452a58b312SMartin Matuska.long 0xf57d4f7f,0xee6ed178 8462a58b312SMartin Matuska.long 0xf57d4f7f,0xee6ed178 8472a58b312SMartin Matuska.long 0x06f067aa,0x72176fba 8482a58b312SMartin Matuska.long 0x06f067aa,0x72176fba 8492a58b312SMartin Matuska.long 0x0a637dc5,0xa2c898a6 8502a58b312SMartin Matuska.long 0x0a637dc5,0xa2c898a6 8512a58b312SMartin Matuska.long 0x113f9804,0xbef90dae 8522a58b312SMartin Matuska.long 0x113f9804,0xbef90dae 8532a58b312SMartin Matuska.long 0x1b710b35,0x131c471b 8542a58b312SMartin Matuska.long 0x1b710b35,0x131c471b 8552a58b312SMartin Matuska.long 0x28db77f5,0x23047d84 8562a58b312SMartin Matuska.long 0x28db77f5,0x23047d84 8572a58b312SMartin Matuska.long 0x32caab7b,0x40c72493 8582a58b312SMartin Matuska.long 0x32caab7b,0x40c72493 8592a58b312SMartin Matuska.long 0x3c9ebe0a,0x15c9bebc 8602a58b312SMartin Matuska.long 0x3c9ebe0a,0x15c9bebc 8612a58b312SMartin Matuska.long 0x431d67c4,0x9c100d4c 8622a58b312SMartin Matuska.long 0x431d67c4,0x9c100d4c 8632a58b312SMartin Matuska.long 0x4cc5d4be,0xcb3e42b6 8642a58b312SMartin Matuska.long 0x4cc5d4be,0xcb3e42b6 8652a58b312SMartin Matuska.long 0x597f299c,0xfc657e2a 8662a58b312SMartin Matuska.long 0x597f299c,0xfc657e2a 8672a58b312SMartin Matuska.long 0x5fcb6fab,0x3ad6faec 8682a58b312SMartin Matuska.long 0x5fcb6fab,0x3ad6faec 8692a58b312SMartin Matuska.long 0x6c44198c,0x4a475817 8702a58b312SMartin Matuska.long 0x6c44198c,0x4a475817 8712a58b312SMartin Matuska.long 0,0 8722a58b312SMartin Matuska.long 0,0 8732a58b312SMartin Matuska.long 0x00010203,0x04050607 8742a58b312SMartin Matuska.long 0x10111213,0x14151617 8752a58b312SMartin Matuska 8762a58b312SMartin Matuska#elif (defined(__PPC64__) && defined(__LITTLE_ENDIAN__)) 8772a58b312SMartin Matuska 8782a58b312SMartin Matuska.abiversion 2 8792a58b312SMartin Matuska.text 8802a58b312SMartin Matuska 8812a58b312SMartin Matuska.globl zfs_sha512_power8 8822a58b312SMartin Matuska.type zfs_sha512_power8,@function 8832a58b312SMartin Matuska.align 6 8842a58b312SMartin Matuskazfs_sha512_power8: 8852a58b312SMartin Matuska.localentry zfs_sha512_power8,0 8862a58b312SMartin Matuska 8872a58b312SMartin Matuska stdu 1,-384(1) 8882a58b312SMartin Matuska mflr 8 8892a58b312SMartin Matuska li 10,207 8902a58b312SMartin Matuska li 11,223 8912a58b312SMartin Matuska stvx 24,10,1 8922a58b312SMartin Matuska addi 10,10,32 8932a58b312SMartin Matuska li 12,-1 8942a58b312SMartin Matuska stvx 25,11,1 8952a58b312SMartin Matuska addi 11,11,32 8962a58b312SMartin Matuska stvx 26,10,1 8972a58b312SMartin Matuska addi 10,10,32 8982a58b312SMartin Matuska stvx 27,11,1 8992a58b312SMartin Matuska addi 11,11,32 9002a58b312SMartin Matuska stvx 28,10,1 9012a58b312SMartin Matuska addi 10,10,32 9022a58b312SMartin Matuska stvx 29,11,1 9032a58b312SMartin Matuska addi 11,11,32 9042a58b312SMartin Matuska stvx 30,10,1 9052a58b312SMartin Matuska stvx 31,11,1 9062a58b312SMartin Matuska li 11,-4096+255 9072a58b312SMartin Matuska stw 12,332(1) 9082a58b312SMartin Matuska li 10,0x10 9092a58b312SMartin Matuska std 26,336(1) 9102a58b312SMartin Matuska li 26,0x20 9112a58b312SMartin Matuska std 27,344(1) 9122a58b312SMartin Matuska li 27,0x30 9132a58b312SMartin Matuska std 28,352(1) 9142a58b312SMartin Matuska li 28,0x40 9152a58b312SMartin Matuska std 29,360(1) 9162a58b312SMartin Matuska li 29,0x50 9172a58b312SMartin Matuska std 30,368(1) 9182a58b312SMartin Matuska li 30,0x60 9192a58b312SMartin Matuska std 31,376(1) 9202a58b312SMartin Matuska li 31,0x70 9212a58b312SMartin Matuska std 8,400(1) 9222a58b312SMartin Matuska or 11,11,11 9232a58b312SMartin Matuska 9242a58b312SMartin Matuska bl .LPICmeup 9252a58b312SMartin Matuska addi 11,1,79 9262a58b312SMartin Matuska li 7,8 9272a58b312SMartin Matuska lvsl 31,0,7 9282a58b312SMartin Matuska vspltisb 28,0x0f 9292a58b312SMartin Matuska vxor 31,31,28 9302a58b312SMartin Matuska .long 0x7C001E99 9312a58b312SMartin Matuska .long 0x7C4A1E99 9322a58b312SMartin Matuska .long 0x7C9A1E99 9332a58b312SMartin Matuska vsldoi 1,0,0,8 9342a58b312SMartin Matuska .long 0x7CDB1E99 9352a58b312SMartin Matuska vsldoi 3,2,2,8 9362a58b312SMartin Matuska vsldoi 5,4,4,8 9372a58b312SMartin Matuska vsldoi 7,6,6,8 9382a58b312SMartin Matuska li 0,4 9392a58b312SMartin Matuska b .Loop 9402a58b312SMartin Matuska.align 5 9412a58b312SMartin Matuska.Loop: 9422a58b312SMartin Matuska lvx 28,0,6 9432a58b312SMartin Matuska .long 0x7D002699 9442a58b312SMartin Matuska addi 4,4,16 9452a58b312SMartin Matuska mr 7,6 9462a58b312SMartin Matuska stvx 0,0,11 9472a58b312SMartin Matuska stvx 1,10,11 9482a58b312SMartin Matuska stvx 2,26,11 9492a58b312SMartin Matuska stvx 3,27,11 9502a58b312SMartin Matuska stvx 4,28,11 9512a58b312SMartin Matuska stvx 5,29,11 9522a58b312SMartin Matuska stvx 6,30,11 9532a58b312SMartin Matuska stvx 7,31,11 9542a58b312SMartin Matuska .long 0x10E7E0C0 9552a58b312SMartin Matuska lvx 28,10,6 9562a58b312SMartin Matuska vperm 8,8,8,31 9572a58b312SMartin Matuska .long 0x10E740C0 9582a58b312SMartin Matuska vsel 29,6,5,4 9592a58b312SMartin Matuska .long 0x10C6E0C0 9602a58b312SMartin Matuska .long 0x10E7E8C0 9612a58b312SMartin Matuska .long 0x13C4FEC2 9622a58b312SMartin Matuska .long 0x10E7F0C0 9632a58b312SMartin Matuska vxor 29,0,1 9642a58b312SMartin Matuska vsel 29,1,2,29 9652a58b312SMartin Matuska .long 0x106338C0 9662a58b312SMartin Matuska .long 0x13C086C2 9672a58b312SMartin Matuska .long 0x13DEE8C0 9682a58b312SMartin Matuska .long 0x10E7F0C0 9692a58b312SMartin Matuska lvx 28,26,7 9702a58b312SMartin Matuska .long 0x7D402699 9712a58b312SMartin Matuska addi 4,4,16 9722a58b312SMartin Matuska vsldoi 9,8,8,8 9732a58b312SMartin Matuska .long 0x10C648C0 9742a58b312SMartin Matuska vsel 29,5,4,3 9752a58b312SMartin Matuska .long 0x10A5E0C0 9762a58b312SMartin Matuska .long 0x10C6E8C0 9772a58b312SMartin Matuska .long 0x13C3FEC2 9782a58b312SMartin Matuska .long 0x10C6F0C0 9792a58b312SMartin Matuska vxor 29,7,0 9802a58b312SMartin Matuska vsel 29,0,1,29 9812a58b312SMartin Matuska .long 0x104230C0 9822a58b312SMartin Matuska .long 0x13C786C2 9832a58b312SMartin Matuska .long 0x13DEE8C0 9842a58b312SMartin Matuska .long 0x10C6F0C0 9852a58b312SMartin Matuska lvx 28,27,7 9862a58b312SMartin Matuska vperm 10,10,10,31 9872a58b312SMartin Matuska .long 0x10A550C0 9882a58b312SMartin Matuska vsel 29,4,3,2 9892a58b312SMartin Matuska .long 0x1084E0C0 9902a58b312SMartin Matuska .long 0x10A5E8C0 9912a58b312SMartin Matuska .long 0x13C2FEC2 9922a58b312SMartin Matuska .long 0x10A5F0C0 9932a58b312SMartin Matuska vxor 29,6,7 9942a58b312SMartin Matuska vsel 29,7,0,29 9952a58b312SMartin Matuska .long 0x102128C0 9962a58b312SMartin Matuska .long 0x13C686C2 9972a58b312SMartin Matuska .long 0x13DEE8C0 9982a58b312SMartin Matuska .long 0x10A5F0C0 9992a58b312SMartin Matuska lvx 28,28,7 10002a58b312SMartin Matuska .long 0x7D802699 10012a58b312SMartin Matuska addi 4,4,16 10022a58b312SMartin Matuska vsldoi 11,10,10,8 10032a58b312SMartin Matuska .long 0x108458C0 10042a58b312SMartin Matuska vsel 29,3,2,1 10052a58b312SMartin Matuska .long 0x1063E0C0 10062a58b312SMartin Matuska .long 0x1084E8C0 10072a58b312SMartin Matuska .long 0x13C1FEC2 10082a58b312SMartin Matuska .long 0x1084F0C0 10092a58b312SMartin Matuska vxor 29,5,6 10102a58b312SMartin Matuska vsel 29,6,7,29 10112a58b312SMartin Matuska .long 0x100020C0 10122a58b312SMartin Matuska .long 0x13C586C2 10132a58b312SMartin Matuska .long 0x13DEE8C0 10142a58b312SMartin Matuska .long 0x1084F0C0 10152a58b312SMartin Matuska lvx 28,29,7 10162a58b312SMartin Matuska vperm 12,12,12,31 10172a58b312SMartin Matuska .long 0x106360C0 10182a58b312SMartin Matuska vsel 29,2,1,0 10192a58b312SMartin Matuska .long 0x1042E0C0 10202a58b312SMartin Matuska .long 0x1063E8C0 10212a58b312SMartin Matuska .long 0x13C0FEC2 10222a58b312SMartin Matuska .long 0x1063F0C0 10232a58b312SMartin Matuska vxor 29,4,5 10242a58b312SMartin Matuska vsel 29,5,6,29 10252a58b312SMartin Matuska .long 0x10E718C0 10262a58b312SMartin Matuska .long 0x13C486C2 10272a58b312SMartin Matuska .long 0x13DEE8C0 10282a58b312SMartin Matuska .long 0x1063F0C0 10292a58b312SMartin Matuska lvx 28,30,7 10302a58b312SMartin Matuska .long 0x7DC02699 10312a58b312SMartin Matuska addi 4,4,16 10322a58b312SMartin Matuska vsldoi 13,12,12,8 10332a58b312SMartin Matuska .long 0x104268C0 10342a58b312SMartin Matuska vsel 29,1,0,7 10352a58b312SMartin Matuska .long 0x1021E0C0 10362a58b312SMartin Matuska .long 0x1042E8C0 10372a58b312SMartin Matuska .long 0x13C7FEC2 10382a58b312SMartin Matuska .long 0x1042F0C0 10392a58b312SMartin Matuska vxor 29,3,4 10402a58b312SMartin Matuska vsel 29,4,5,29 10412a58b312SMartin Matuska .long 0x10C610C0 10422a58b312SMartin Matuska .long 0x13C386C2 10432a58b312SMartin Matuska .long 0x13DEE8C0 10442a58b312SMartin Matuska .long 0x1042F0C0 10452a58b312SMartin Matuska lvx 28,31,7 10462a58b312SMartin Matuska addi 7,7,0x80 10472a58b312SMartin Matuska vperm 14,14,14,31 10482a58b312SMartin Matuska .long 0x102170C0 10492a58b312SMartin Matuska vsel 29,0,7,6 10502a58b312SMartin Matuska .long 0x1000E0C0 10512a58b312SMartin Matuska .long 0x1021E8C0 10522a58b312SMartin Matuska .long 0x13C6FEC2 10532a58b312SMartin Matuska .long 0x1021F0C0 10542a58b312SMartin Matuska vxor 29,2,3 10552a58b312SMartin Matuska vsel 29,3,4,29 10562a58b312SMartin Matuska .long 0x10A508C0 10572a58b312SMartin Matuska .long 0x13C286C2 10582a58b312SMartin Matuska .long 0x13DEE8C0 10592a58b312SMartin Matuska .long 0x1021F0C0 10602a58b312SMartin Matuska lvx 28,0,7 10612a58b312SMartin Matuska .long 0x7E002699 10622a58b312SMartin Matuska addi 4,4,16 10632a58b312SMartin Matuska vsldoi 15,14,14,8 10642a58b312SMartin Matuska .long 0x100078C0 10652a58b312SMartin Matuska vsel 29,7,6,5 10662a58b312SMartin Matuska .long 0x10E7E0C0 10672a58b312SMartin Matuska .long 0x1000E8C0 10682a58b312SMartin Matuska .long 0x13C5FEC2 10692a58b312SMartin Matuska .long 0x1000F0C0 10702a58b312SMartin Matuska vxor 29,1,2 10712a58b312SMartin Matuska vsel 29,2,3,29 10722a58b312SMartin Matuska .long 0x108400C0 10732a58b312SMartin Matuska .long 0x13C186C2 10742a58b312SMartin Matuska .long 0x13DEE8C0 10752a58b312SMartin Matuska .long 0x1000F0C0 10762a58b312SMartin Matuska lvx 28,10,7 10772a58b312SMartin Matuska vperm 16,16,16,31 10782a58b312SMartin Matuska .long 0x10E780C0 10792a58b312SMartin Matuska vsel 29,6,5,4 10802a58b312SMartin Matuska .long 0x10C6E0C0 10812a58b312SMartin Matuska .long 0x10E7E8C0 10822a58b312SMartin Matuska .long 0x13C4FEC2 10832a58b312SMartin Matuska .long 0x10E7F0C0 10842a58b312SMartin Matuska vxor 29,0,1 10852a58b312SMartin Matuska vsel 29,1,2,29 10862a58b312SMartin Matuska .long 0x106338C0 10872a58b312SMartin Matuska .long 0x13C086C2 10882a58b312SMartin Matuska .long 0x13DEE8C0 10892a58b312SMartin Matuska .long 0x10E7F0C0 10902a58b312SMartin Matuska lvx 28,26,7 10912a58b312SMartin Matuska .long 0x7E402699 10922a58b312SMartin Matuska addi 4,4,16 10932a58b312SMartin Matuska vsldoi 17,16,16,8 10942a58b312SMartin Matuska .long 0x10C688C0 10952a58b312SMartin Matuska vsel 29,5,4,3 10962a58b312SMartin Matuska .long 0x10A5E0C0 10972a58b312SMartin Matuska .long 0x10C6E8C0 10982a58b312SMartin Matuska .long 0x13C3FEC2 10992a58b312SMartin Matuska .long 0x10C6F0C0 11002a58b312SMartin Matuska vxor 29,7,0 11012a58b312SMartin Matuska vsel 29,0,1,29 11022a58b312SMartin Matuska .long 0x104230C0 11032a58b312SMartin Matuska .long 0x13C786C2 11042a58b312SMartin Matuska .long 0x13DEE8C0 11052a58b312SMartin Matuska .long 0x10C6F0C0 11062a58b312SMartin Matuska lvx 28,27,7 11072a58b312SMartin Matuska vperm 18,18,18,31 11082a58b312SMartin Matuska .long 0x10A590C0 11092a58b312SMartin Matuska vsel 29,4,3,2 11102a58b312SMartin Matuska .long 0x1084E0C0 11112a58b312SMartin Matuska .long 0x10A5E8C0 11122a58b312SMartin Matuska .long 0x13C2FEC2 11132a58b312SMartin Matuska .long 0x10A5F0C0 11142a58b312SMartin Matuska vxor 29,6,7 11152a58b312SMartin Matuska vsel 29,7,0,29 11162a58b312SMartin Matuska .long 0x102128C0 11172a58b312SMartin Matuska .long 0x13C686C2 11182a58b312SMartin Matuska .long 0x13DEE8C0 11192a58b312SMartin Matuska .long 0x10A5F0C0 11202a58b312SMartin Matuska lvx 28,28,7 11212a58b312SMartin Matuska .long 0x7F002699 11222a58b312SMartin Matuska addi 4,4,16 11232a58b312SMartin Matuska vsldoi 19,18,18,8 11242a58b312SMartin Matuska .long 0x108498C0 11252a58b312SMartin Matuska vsel 29,3,2,1 11262a58b312SMartin Matuska .long 0x1063E0C0 11272a58b312SMartin Matuska .long 0x1084E8C0 11282a58b312SMartin Matuska .long 0x13C1FEC2 11292a58b312SMartin Matuska .long 0x1084F0C0 11302a58b312SMartin Matuska vxor 29,5,6 11312a58b312SMartin Matuska vsel 29,6,7,29 11322a58b312SMartin Matuska .long 0x100020C0 11332a58b312SMartin Matuska .long 0x13C586C2 11342a58b312SMartin Matuska .long 0x13DEE8C0 11352a58b312SMartin Matuska .long 0x1084F0C0 11362a58b312SMartin Matuska lvx 28,29,7 11372a58b312SMartin Matuska vperm 24,24,24,31 11382a58b312SMartin Matuska .long 0x1063C0C0 11392a58b312SMartin Matuska vsel 29,2,1,0 11402a58b312SMartin Matuska .long 0x1042E0C0 11412a58b312SMartin Matuska .long 0x1063E8C0 11422a58b312SMartin Matuska .long 0x13C0FEC2 11432a58b312SMartin Matuska .long 0x1063F0C0 11442a58b312SMartin Matuska vxor 29,4,5 11452a58b312SMartin Matuska vsel 29,5,6,29 11462a58b312SMartin Matuska .long 0x10E718C0 11472a58b312SMartin Matuska .long 0x13C486C2 11482a58b312SMartin Matuska .long 0x13DEE8C0 11492a58b312SMartin Matuska .long 0x1063F0C0 11502a58b312SMartin Matuska lvx 28,30,7 11512a58b312SMartin Matuska .long 0x7F402699 11522a58b312SMartin Matuska addi 4,4,16 11532a58b312SMartin Matuska vsldoi 25,24,24,8 11542a58b312SMartin Matuska .long 0x1042C8C0 11552a58b312SMartin Matuska vsel 29,1,0,7 11562a58b312SMartin Matuska .long 0x1021E0C0 11572a58b312SMartin Matuska .long 0x1042E8C0 11582a58b312SMartin Matuska .long 0x13C7FEC2 11592a58b312SMartin Matuska .long 0x1042F0C0 11602a58b312SMartin Matuska vxor 29,3,4 11612a58b312SMartin Matuska vsel 29,4,5,29 11622a58b312SMartin Matuska .long 0x10C610C0 11632a58b312SMartin Matuska .long 0x13C386C2 11642a58b312SMartin Matuska .long 0x13DEE8C0 11652a58b312SMartin Matuska .long 0x1042F0C0 11662a58b312SMartin Matuska lvx 28,31,7 11672a58b312SMartin Matuska addi 7,7,0x80 11682a58b312SMartin Matuska vperm 26,26,26,31 11692a58b312SMartin Matuska .long 0x1021D0C0 11702a58b312SMartin Matuska vsel 29,0,7,6 11712a58b312SMartin Matuska .long 0x1000E0C0 11722a58b312SMartin Matuska .long 0x1021E8C0 11732a58b312SMartin Matuska .long 0x13C6FEC2 11742a58b312SMartin Matuska .long 0x1021F0C0 11752a58b312SMartin Matuska vxor 29,2,3 11762a58b312SMartin Matuska vsel 29,3,4,29 11772a58b312SMartin Matuska .long 0x10A508C0 11782a58b312SMartin Matuska .long 0x13C286C2 11792a58b312SMartin Matuska .long 0x13DEE8C0 11802a58b312SMartin Matuska .long 0x1021F0C0 11812a58b312SMartin Matuska lvx 28,0,7 11822a58b312SMartin Matuska vsldoi 27,26,26,8 11832a58b312SMartin Matuska .long 0x13C906C2 11842a58b312SMartin Matuska .long 0x1108F0C0 11852a58b312SMartin Matuska .long 0x13DA7EC2 11862a58b312SMartin Matuska .long 0x1108F0C0 11872a58b312SMartin Matuska .long 0x110888C0 11882a58b312SMartin Matuska .long 0x1000D8C0 11892a58b312SMartin Matuska vsel 29,7,6,5 11902a58b312SMartin Matuska .long 0x10E7E0C0 11912a58b312SMartin Matuska .long 0x1000E8C0 11922a58b312SMartin Matuska .long 0x13C5FEC2 11932a58b312SMartin Matuska .long 0x1000F0C0 11942a58b312SMartin Matuska vxor 29,1,2 11952a58b312SMartin Matuska vsel 29,2,3,29 11962a58b312SMartin Matuska .long 0x108400C0 11972a58b312SMartin Matuska .long 0x13C186C2 11982a58b312SMartin Matuska .long 0x13DEE8C0 11992a58b312SMartin Matuska .long 0x1000F0C0 12002a58b312SMartin Matuska lvx 28,10,7 12012a58b312SMartin Matuska mtctr 0 12022a58b312SMartin Matuska b .L16_xx 12032a58b312SMartin Matuska.align 5 12042a58b312SMartin Matuska.L16_xx: 12052a58b312SMartin Matuska .long 0x13CA06C2 12062a58b312SMartin Matuska .long 0x1129F0C0 12072a58b312SMartin Matuska .long 0x13DB7EC2 12082a58b312SMartin Matuska .long 0x1129F0C0 12092a58b312SMartin Matuska .long 0x112990C0 12102a58b312SMartin Matuska .long 0x10E740C0 12112a58b312SMartin Matuska vsel 29,6,5,4 12122a58b312SMartin Matuska .long 0x10C6E0C0 12132a58b312SMartin Matuska .long 0x10E7E8C0 12142a58b312SMartin Matuska .long 0x13C4FEC2 12152a58b312SMartin Matuska .long 0x10E7F0C0 12162a58b312SMartin Matuska vxor 29,0,1 12172a58b312SMartin Matuska vsel 29,1,2,29 12182a58b312SMartin Matuska .long 0x106338C0 12192a58b312SMartin Matuska .long 0x13C086C2 12202a58b312SMartin Matuska .long 0x13DEE8C0 12212a58b312SMartin Matuska .long 0x10E7F0C0 12222a58b312SMartin Matuska lvx 28,26,7 12232a58b312SMartin Matuska .long 0x13CB06C2 12242a58b312SMartin Matuska .long 0x114AF0C0 12252a58b312SMartin Matuska .long 0x13C87EC2 12262a58b312SMartin Matuska .long 0x114AF0C0 12272a58b312SMartin Matuska .long 0x114A98C0 12282a58b312SMartin Matuska .long 0x10C648C0 12292a58b312SMartin Matuska vsel 29,5,4,3 12302a58b312SMartin Matuska .long 0x10A5E0C0 12312a58b312SMartin Matuska .long 0x10C6E8C0 12322a58b312SMartin Matuska .long 0x13C3FEC2 12332a58b312SMartin Matuska .long 0x10C6F0C0 12342a58b312SMartin Matuska vxor 29,7,0 12352a58b312SMartin Matuska vsel 29,0,1,29 12362a58b312SMartin Matuska .long 0x104230C0 12372a58b312SMartin Matuska .long 0x13C786C2 12382a58b312SMartin Matuska .long 0x13DEE8C0 12392a58b312SMartin Matuska .long 0x10C6F0C0 12402a58b312SMartin Matuska lvx 28,27,7 12412a58b312SMartin Matuska .long 0x13CC06C2 12422a58b312SMartin Matuska .long 0x116BF0C0 12432a58b312SMartin Matuska .long 0x13C97EC2 12442a58b312SMartin Matuska .long 0x116BF0C0 12452a58b312SMartin Matuska .long 0x116BC0C0 12462a58b312SMartin Matuska .long 0x10A550C0 12472a58b312SMartin Matuska vsel 29,4,3,2 12482a58b312SMartin Matuska .long 0x1084E0C0 12492a58b312SMartin Matuska .long 0x10A5E8C0 12502a58b312SMartin Matuska .long 0x13C2FEC2 12512a58b312SMartin Matuska .long 0x10A5F0C0 12522a58b312SMartin Matuska vxor 29,6,7 12532a58b312SMartin Matuska vsel 29,7,0,29 12542a58b312SMartin Matuska .long 0x102128C0 12552a58b312SMartin Matuska .long 0x13C686C2 12562a58b312SMartin Matuska .long 0x13DEE8C0 12572a58b312SMartin Matuska .long 0x10A5F0C0 12582a58b312SMartin Matuska lvx 28,28,7 12592a58b312SMartin Matuska .long 0x13CD06C2 12602a58b312SMartin Matuska .long 0x118CF0C0 12612a58b312SMartin Matuska .long 0x13CA7EC2 12622a58b312SMartin Matuska .long 0x118CF0C0 12632a58b312SMartin Matuska .long 0x118CC8C0 12642a58b312SMartin Matuska .long 0x108458C0 12652a58b312SMartin Matuska vsel 29,3,2,1 12662a58b312SMartin Matuska .long 0x1063E0C0 12672a58b312SMartin Matuska .long 0x1084E8C0 12682a58b312SMartin Matuska .long 0x13C1FEC2 12692a58b312SMartin Matuska .long 0x1084F0C0 12702a58b312SMartin Matuska vxor 29,5,6 12712a58b312SMartin Matuska vsel 29,6,7,29 12722a58b312SMartin Matuska .long 0x100020C0 12732a58b312SMartin Matuska .long 0x13C586C2 12742a58b312SMartin Matuska .long 0x13DEE8C0 12752a58b312SMartin Matuska .long 0x1084F0C0 12762a58b312SMartin Matuska lvx 28,29,7 12772a58b312SMartin Matuska .long 0x13CE06C2 12782a58b312SMartin Matuska .long 0x11ADF0C0 12792a58b312SMartin Matuska .long 0x13CB7EC2 12802a58b312SMartin Matuska .long 0x11ADF0C0 12812a58b312SMartin Matuska .long 0x11ADD0C0 12822a58b312SMartin Matuska .long 0x106360C0 12832a58b312SMartin Matuska vsel 29,2,1,0 12842a58b312SMartin Matuska .long 0x1042E0C0 12852a58b312SMartin Matuska .long 0x1063E8C0 12862a58b312SMartin Matuska .long 0x13C0FEC2 12872a58b312SMartin Matuska .long 0x1063F0C0 12882a58b312SMartin Matuska vxor 29,4,5 12892a58b312SMartin Matuska vsel 29,5,6,29 12902a58b312SMartin Matuska .long 0x10E718C0 12912a58b312SMartin Matuska .long 0x13C486C2 12922a58b312SMartin Matuska .long 0x13DEE8C0 12932a58b312SMartin Matuska .long 0x1063F0C0 12942a58b312SMartin Matuska lvx 28,30,7 12952a58b312SMartin Matuska .long 0x13CF06C2 12962a58b312SMartin Matuska .long 0x11CEF0C0 12972a58b312SMartin Matuska .long 0x13CC7EC2 12982a58b312SMartin Matuska .long 0x11CEF0C0 12992a58b312SMartin Matuska .long 0x11CED8C0 13002a58b312SMartin Matuska .long 0x104268C0 13012a58b312SMartin Matuska vsel 29,1,0,7 13022a58b312SMartin Matuska .long 0x1021E0C0 13032a58b312SMartin Matuska .long 0x1042E8C0 13042a58b312SMartin Matuska .long 0x13C7FEC2 13052a58b312SMartin Matuska .long 0x1042F0C0 13062a58b312SMartin Matuska vxor 29,3,4 13072a58b312SMartin Matuska vsel 29,4,5,29 13082a58b312SMartin Matuska .long 0x10C610C0 13092a58b312SMartin Matuska .long 0x13C386C2 13102a58b312SMartin Matuska .long 0x13DEE8C0 13112a58b312SMartin Matuska .long 0x1042F0C0 13122a58b312SMartin Matuska lvx 28,31,7 13132a58b312SMartin Matuska addi 7,7,0x80 13142a58b312SMartin Matuska .long 0x13D006C2 13152a58b312SMartin Matuska .long 0x11EFF0C0 13162a58b312SMartin Matuska .long 0x13CD7EC2 13172a58b312SMartin Matuska .long 0x11EFF0C0 13182a58b312SMartin Matuska .long 0x11EF40C0 13192a58b312SMartin Matuska .long 0x102170C0 13202a58b312SMartin Matuska vsel 29,0,7,6 13212a58b312SMartin Matuska .long 0x1000E0C0 13222a58b312SMartin Matuska .long 0x1021E8C0 13232a58b312SMartin Matuska .long 0x13C6FEC2 13242a58b312SMartin Matuska .long 0x1021F0C0 13252a58b312SMartin Matuska vxor 29,2,3 13262a58b312SMartin Matuska vsel 29,3,4,29 13272a58b312SMartin Matuska .long 0x10A508C0 13282a58b312SMartin Matuska .long 0x13C286C2 13292a58b312SMartin Matuska .long 0x13DEE8C0 13302a58b312SMartin Matuska .long 0x1021F0C0 13312a58b312SMartin Matuska lvx 28,0,7 13322a58b312SMartin Matuska .long 0x13D106C2 13332a58b312SMartin Matuska .long 0x1210F0C0 13342a58b312SMartin Matuska .long 0x13CE7EC2 13352a58b312SMartin Matuska .long 0x1210F0C0 13362a58b312SMartin Matuska .long 0x121048C0 13372a58b312SMartin Matuska .long 0x100078C0 13382a58b312SMartin Matuska vsel 29,7,6,5 13392a58b312SMartin Matuska .long 0x10E7E0C0 13402a58b312SMartin Matuska .long 0x1000E8C0 13412a58b312SMartin Matuska .long 0x13C5FEC2 13422a58b312SMartin Matuska .long 0x1000F0C0 13432a58b312SMartin Matuska vxor 29,1,2 13442a58b312SMartin Matuska vsel 29,2,3,29 13452a58b312SMartin Matuska .long 0x108400C0 13462a58b312SMartin Matuska .long 0x13C186C2 13472a58b312SMartin Matuska .long 0x13DEE8C0 13482a58b312SMartin Matuska .long 0x1000F0C0 13492a58b312SMartin Matuska lvx 28,10,7 13502a58b312SMartin Matuska .long 0x13D206C2 13512a58b312SMartin Matuska .long 0x1231F0C0 13522a58b312SMartin Matuska .long 0x13CF7EC2 13532a58b312SMartin Matuska .long 0x1231F0C0 13542a58b312SMartin Matuska .long 0x123150C0 13552a58b312SMartin Matuska .long 0x10E780C0 13562a58b312SMartin Matuska vsel 29,6,5,4 13572a58b312SMartin Matuska .long 0x10C6E0C0 13582a58b312SMartin Matuska .long 0x10E7E8C0 13592a58b312SMartin Matuska .long 0x13C4FEC2 13602a58b312SMartin Matuska .long 0x10E7F0C0 13612a58b312SMartin Matuska vxor 29,0,1 13622a58b312SMartin Matuska vsel 29,1,2,29 13632a58b312SMartin Matuska .long 0x106338C0 13642a58b312SMartin Matuska .long 0x13C086C2 13652a58b312SMartin Matuska .long 0x13DEE8C0 13662a58b312SMartin Matuska .long 0x10E7F0C0 13672a58b312SMartin Matuska lvx 28,26,7 13682a58b312SMartin Matuska .long 0x13D306C2 13692a58b312SMartin Matuska .long 0x1252F0C0 13702a58b312SMartin Matuska .long 0x13D07EC2 13712a58b312SMartin Matuska .long 0x1252F0C0 13722a58b312SMartin Matuska .long 0x125258C0 13732a58b312SMartin Matuska .long 0x10C688C0 13742a58b312SMartin Matuska vsel 29,5,4,3 13752a58b312SMartin Matuska .long 0x10A5E0C0 13762a58b312SMartin Matuska .long 0x10C6E8C0 13772a58b312SMartin Matuska .long 0x13C3FEC2 13782a58b312SMartin Matuska .long 0x10C6F0C0 13792a58b312SMartin Matuska vxor 29,7,0 13802a58b312SMartin Matuska vsel 29,0,1,29 13812a58b312SMartin Matuska .long 0x104230C0 13822a58b312SMartin Matuska .long 0x13C786C2 13832a58b312SMartin Matuska .long 0x13DEE8C0 13842a58b312SMartin Matuska .long 0x10C6F0C0 13852a58b312SMartin Matuska lvx 28,27,7 13862a58b312SMartin Matuska .long 0x13D806C2 13872a58b312SMartin Matuska .long 0x1273F0C0 13882a58b312SMartin Matuska .long 0x13D17EC2 13892a58b312SMartin Matuska .long 0x1273F0C0 13902a58b312SMartin Matuska .long 0x127360C0 13912a58b312SMartin Matuska .long 0x10A590C0 13922a58b312SMartin Matuska vsel 29,4,3,2 13932a58b312SMartin Matuska .long 0x1084E0C0 13942a58b312SMartin Matuska .long 0x10A5E8C0 13952a58b312SMartin Matuska .long 0x13C2FEC2 13962a58b312SMartin Matuska .long 0x10A5F0C0 13972a58b312SMartin Matuska vxor 29,6,7 13982a58b312SMartin Matuska vsel 29,7,0,29 13992a58b312SMartin Matuska .long 0x102128C0 14002a58b312SMartin Matuska .long 0x13C686C2 14012a58b312SMartin Matuska .long 0x13DEE8C0 14022a58b312SMartin Matuska .long 0x10A5F0C0 14032a58b312SMartin Matuska lvx 28,28,7 14042a58b312SMartin Matuska .long 0x13D906C2 14052a58b312SMartin Matuska .long 0x1318F0C0 14062a58b312SMartin Matuska .long 0x13D27EC2 14072a58b312SMartin Matuska .long 0x1318F0C0 14082a58b312SMartin Matuska .long 0x131868C0 14092a58b312SMartin Matuska .long 0x108498C0 14102a58b312SMartin Matuska vsel 29,3,2,1 14112a58b312SMartin Matuska .long 0x1063E0C0 14122a58b312SMartin Matuska .long 0x1084E8C0 14132a58b312SMartin Matuska .long 0x13C1FEC2 14142a58b312SMartin Matuska .long 0x1084F0C0 14152a58b312SMartin Matuska vxor 29,5,6 14162a58b312SMartin Matuska vsel 29,6,7,29 14172a58b312SMartin Matuska .long 0x100020C0 14182a58b312SMartin Matuska .long 0x13C586C2 14192a58b312SMartin Matuska .long 0x13DEE8C0 14202a58b312SMartin Matuska .long 0x1084F0C0 14212a58b312SMartin Matuska lvx 28,29,7 14222a58b312SMartin Matuska .long 0x13DA06C2 14232a58b312SMartin Matuska .long 0x1339F0C0 14242a58b312SMartin Matuska .long 0x13D37EC2 14252a58b312SMartin Matuska .long 0x1339F0C0 14262a58b312SMartin Matuska .long 0x133970C0 14272a58b312SMartin Matuska .long 0x1063C0C0 14282a58b312SMartin Matuska vsel 29,2,1,0 14292a58b312SMartin Matuska .long 0x1042E0C0 14302a58b312SMartin Matuska .long 0x1063E8C0 14312a58b312SMartin Matuska .long 0x13C0FEC2 14322a58b312SMartin Matuska .long 0x1063F0C0 14332a58b312SMartin Matuska vxor 29,4,5 14342a58b312SMartin Matuska vsel 29,5,6,29 14352a58b312SMartin Matuska .long 0x10E718C0 14362a58b312SMartin Matuska .long 0x13C486C2 14372a58b312SMartin Matuska .long 0x13DEE8C0 14382a58b312SMartin Matuska .long 0x1063F0C0 14392a58b312SMartin Matuska lvx 28,30,7 14402a58b312SMartin Matuska .long 0x13DB06C2 14412a58b312SMartin Matuska .long 0x135AF0C0 14422a58b312SMartin Matuska .long 0x13D87EC2 14432a58b312SMartin Matuska .long 0x135AF0C0 14442a58b312SMartin Matuska .long 0x135A78C0 14452a58b312SMartin Matuska .long 0x1042C8C0 14462a58b312SMartin Matuska vsel 29,1,0,7 14472a58b312SMartin Matuska .long 0x1021E0C0 14482a58b312SMartin Matuska .long 0x1042E8C0 14492a58b312SMartin Matuska .long 0x13C7FEC2 14502a58b312SMartin Matuska .long 0x1042F0C0 14512a58b312SMartin Matuska vxor 29,3,4 14522a58b312SMartin Matuska vsel 29,4,5,29 14532a58b312SMartin Matuska .long 0x10C610C0 14542a58b312SMartin Matuska .long 0x13C386C2 14552a58b312SMartin Matuska .long 0x13DEE8C0 14562a58b312SMartin Matuska .long 0x1042F0C0 14572a58b312SMartin Matuska lvx 28,31,7 14582a58b312SMartin Matuska addi 7,7,0x80 14592a58b312SMartin Matuska .long 0x13C806C2 14602a58b312SMartin Matuska .long 0x137BF0C0 14612a58b312SMartin Matuska .long 0x13D97EC2 14622a58b312SMartin Matuska .long 0x137BF0C0 14632a58b312SMartin Matuska .long 0x137B80C0 14642a58b312SMartin Matuska .long 0x1021D0C0 14652a58b312SMartin Matuska vsel 29,0,7,6 14662a58b312SMartin Matuska .long 0x1000E0C0 14672a58b312SMartin Matuska .long 0x1021E8C0 14682a58b312SMartin Matuska .long 0x13C6FEC2 14692a58b312SMartin Matuska .long 0x1021F0C0 14702a58b312SMartin Matuska vxor 29,2,3 14712a58b312SMartin Matuska vsel 29,3,4,29 14722a58b312SMartin Matuska .long 0x10A508C0 14732a58b312SMartin Matuska .long 0x13C286C2 14742a58b312SMartin Matuska .long 0x13DEE8C0 14752a58b312SMartin Matuska .long 0x1021F0C0 14762a58b312SMartin Matuska lvx 28,0,7 14772a58b312SMartin Matuska .long 0x13C906C2 14782a58b312SMartin Matuska .long 0x1108F0C0 14792a58b312SMartin Matuska .long 0x13DA7EC2 14802a58b312SMartin Matuska .long 0x1108F0C0 14812a58b312SMartin Matuska .long 0x110888C0 14822a58b312SMartin Matuska .long 0x1000D8C0 14832a58b312SMartin Matuska vsel 29,7,6,5 14842a58b312SMartin Matuska .long 0x10E7E0C0 14852a58b312SMartin Matuska .long 0x1000E8C0 14862a58b312SMartin Matuska .long 0x13C5FEC2 14872a58b312SMartin Matuska .long 0x1000F0C0 14882a58b312SMartin Matuska vxor 29,1,2 14892a58b312SMartin Matuska vsel 29,2,3,29 14902a58b312SMartin Matuska .long 0x108400C0 14912a58b312SMartin Matuska .long 0x13C186C2 14922a58b312SMartin Matuska .long 0x13DEE8C0 14932a58b312SMartin Matuska .long 0x1000F0C0 14942a58b312SMartin Matuska lvx 28,10,7 14952a58b312SMartin Matuska bdnz .L16_xx 14962a58b312SMartin Matuska 14972a58b312SMartin Matuska lvx 10,0,11 14982a58b312SMartin Matuska subic. 5,5,1 14992a58b312SMartin Matuska lvx 11,10,11 15002a58b312SMartin Matuska .long 0x100050C0 15012a58b312SMartin Matuska lvx 12,26,11 15022a58b312SMartin Matuska .long 0x102158C0 15032a58b312SMartin Matuska lvx 13,27,11 15042a58b312SMartin Matuska .long 0x104260C0 15052a58b312SMartin Matuska lvx 14,28,11 15062a58b312SMartin Matuska .long 0x106368C0 15072a58b312SMartin Matuska lvx 15,29,11 15082a58b312SMartin Matuska .long 0x108470C0 15092a58b312SMartin Matuska lvx 16,30,11 15102a58b312SMartin Matuska .long 0x10A578C0 15112a58b312SMartin Matuska lvx 17,31,11 15122a58b312SMartin Matuska .long 0x10C680C0 15132a58b312SMartin Matuska .long 0x10E788C0 15142a58b312SMartin Matuska bne .Loop 15152a58b312SMartin Matuska vperm 0,0,1,28 15162a58b312SMartin Matuska vperm 2,2,3,28 15172a58b312SMartin Matuska vperm 4,4,5,28 15182a58b312SMartin Matuska vperm 6,6,7,28 15192a58b312SMartin Matuska .long 0x7C001F99 15202a58b312SMartin Matuska .long 0x7C4A1F99 15212a58b312SMartin Matuska .long 0x7C9A1F99 15222a58b312SMartin Matuska .long 0x7CDB1F99 15232a58b312SMartin Matuska addi 11,1,207 15242a58b312SMartin Matuska mtlr 8 15252a58b312SMartin Matuska or 12,12,12 15262a58b312SMartin Matuska lvx 24,0,11 15272a58b312SMartin Matuska lvx 25,10,11 15282a58b312SMartin Matuska lvx 26,26,11 15292a58b312SMartin Matuska lvx 27,27,11 15302a58b312SMartin Matuska lvx 28,28,11 15312a58b312SMartin Matuska lvx 29,29,11 15322a58b312SMartin Matuska lvx 30,30,11 15332a58b312SMartin Matuska lvx 31,31,11 15342a58b312SMartin Matuska ld 26,336(1) 15352a58b312SMartin Matuska ld 27,344(1) 15362a58b312SMartin Matuska ld 28,352(1) 15372a58b312SMartin Matuska ld 29,360(1) 15382a58b312SMartin Matuska ld 30,368(1) 15392a58b312SMartin Matuska ld 31,376(1) 15402a58b312SMartin Matuska addi 1,1,384 15412a58b312SMartin Matuska blr 15422a58b312SMartin Matuska.long 0 15432a58b312SMartin Matuska.byte 0,12,4,1,0x80,6,3,0 15442a58b312SMartin Matuska.long 0 15452a58b312SMartin Matuska.size zfs_sha512_power8,.-zfs_sha512_power8 15462a58b312SMartin Matuska.align 6 15472a58b312SMartin Matuska.LPICmeup: 15482a58b312SMartin Matuska mflr 0 15492a58b312SMartin Matuska bcl 20,31,$+4 15502a58b312SMartin Matuska mflr 6 15512a58b312SMartin Matuska addi 6,6,56 15522a58b312SMartin Matuska mtlr 0 15532a58b312SMartin Matuska blr 15542a58b312SMartin Matuska.long 0 15552a58b312SMartin Matuska.byte 0,12,0x14,0,0,0,0,0 15562a58b312SMartin Matuska.space 28 15572a58b312SMartin Matuska.long 0xd728ae22,0x428a2f98 15582a58b312SMartin Matuska.long 0xd728ae22,0x428a2f98 15592a58b312SMartin Matuska.long 0x23ef65cd,0x71374491 15602a58b312SMartin Matuska.long 0x23ef65cd,0x71374491 15612a58b312SMartin Matuska.long 0xec4d3b2f,0xb5c0fbcf 15622a58b312SMartin Matuska.long 0xec4d3b2f,0xb5c0fbcf 15632a58b312SMartin Matuska.long 0x8189dbbc,0xe9b5dba5 15642a58b312SMartin Matuska.long 0x8189dbbc,0xe9b5dba5 15652a58b312SMartin Matuska.long 0xf348b538,0x3956c25b 15662a58b312SMartin Matuska.long 0xf348b538,0x3956c25b 15672a58b312SMartin Matuska.long 0xb605d019,0x59f111f1 15682a58b312SMartin Matuska.long 0xb605d019,0x59f111f1 15692a58b312SMartin Matuska.long 0xaf194f9b,0x923f82a4 15702a58b312SMartin Matuska.long 0xaf194f9b,0x923f82a4 15712a58b312SMartin Matuska.long 0xda6d8118,0xab1c5ed5 15722a58b312SMartin Matuska.long 0xda6d8118,0xab1c5ed5 15732a58b312SMartin Matuska.long 0xa3030242,0xd807aa98 15742a58b312SMartin Matuska.long 0xa3030242,0xd807aa98 15752a58b312SMartin Matuska.long 0x45706fbe,0x12835b01 15762a58b312SMartin Matuska.long 0x45706fbe,0x12835b01 15772a58b312SMartin Matuska.long 0x4ee4b28c,0x243185be 15782a58b312SMartin Matuska.long 0x4ee4b28c,0x243185be 15792a58b312SMartin Matuska.long 0xd5ffb4e2,0x550c7dc3 15802a58b312SMartin Matuska.long 0xd5ffb4e2,0x550c7dc3 15812a58b312SMartin Matuska.long 0xf27b896f,0x72be5d74 15822a58b312SMartin Matuska.long 0xf27b896f,0x72be5d74 15832a58b312SMartin Matuska.long 0x3b1696b1,0x80deb1fe 15842a58b312SMartin Matuska.long 0x3b1696b1,0x80deb1fe 15852a58b312SMartin Matuska.long 0x25c71235,0x9bdc06a7 15862a58b312SMartin Matuska.long 0x25c71235,0x9bdc06a7 15872a58b312SMartin Matuska.long 0xcf692694,0xc19bf174 15882a58b312SMartin Matuska.long 0xcf692694,0xc19bf174 15892a58b312SMartin Matuska.long 0x9ef14ad2,0xe49b69c1 15902a58b312SMartin Matuska.long 0x9ef14ad2,0xe49b69c1 15912a58b312SMartin Matuska.long 0x384f25e3,0xefbe4786 15922a58b312SMartin Matuska.long 0x384f25e3,0xefbe4786 15932a58b312SMartin Matuska.long 0x8b8cd5b5,0x0fc19dc6 15942a58b312SMartin Matuska.long 0x8b8cd5b5,0x0fc19dc6 15952a58b312SMartin Matuska.long 0x77ac9c65,0x240ca1cc 15962a58b312SMartin Matuska.long 0x77ac9c65,0x240ca1cc 15972a58b312SMartin Matuska.long 0x592b0275,0x2de92c6f 15982a58b312SMartin Matuska.long 0x592b0275,0x2de92c6f 15992a58b312SMartin Matuska.long 0x6ea6e483,0x4a7484aa 16002a58b312SMartin Matuska.long 0x6ea6e483,0x4a7484aa 16012a58b312SMartin Matuska.long 0xbd41fbd4,0x5cb0a9dc 16022a58b312SMartin Matuska.long 0xbd41fbd4,0x5cb0a9dc 16032a58b312SMartin Matuska.long 0x831153b5,0x76f988da 16042a58b312SMartin Matuska.long 0x831153b5,0x76f988da 16052a58b312SMartin Matuska.long 0xee66dfab,0x983e5152 16062a58b312SMartin Matuska.long 0xee66dfab,0x983e5152 16072a58b312SMartin Matuska.long 0x2db43210,0xa831c66d 16082a58b312SMartin Matuska.long 0x2db43210,0xa831c66d 16092a58b312SMartin Matuska.long 0x98fb213f,0xb00327c8 16102a58b312SMartin Matuska.long 0x98fb213f,0xb00327c8 16112a58b312SMartin Matuska.long 0xbeef0ee4,0xbf597fc7 16122a58b312SMartin Matuska.long 0xbeef0ee4,0xbf597fc7 16132a58b312SMartin Matuska.long 0x3da88fc2,0xc6e00bf3 16142a58b312SMartin Matuska.long 0x3da88fc2,0xc6e00bf3 16152a58b312SMartin Matuska.long 0x930aa725,0xd5a79147 16162a58b312SMartin Matuska.long 0x930aa725,0xd5a79147 16172a58b312SMartin Matuska.long 0xe003826f,0x06ca6351 16182a58b312SMartin Matuska.long 0xe003826f,0x06ca6351 16192a58b312SMartin Matuska.long 0x0a0e6e70,0x14292967 16202a58b312SMartin Matuska.long 0x0a0e6e70,0x14292967 16212a58b312SMartin Matuska.long 0x46d22ffc,0x27b70a85 16222a58b312SMartin Matuska.long 0x46d22ffc,0x27b70a85 16232a58b312SMartin Matuska.long 0x5c26c926,0x2e1b2138 16242a58b312SMartin Matuska.long 0x5c26c926,0x2e1b2138 16252a58b312SMartin Matuska.long 0x5ac42aed,0x4d2c6dfc 16262a58b312SMartin Matuska.long 0x5ac42aed,0x4d2c6dfc 16272a58b312SMartin Matuska.long 0x9d95b3df,0x53380d13 16282a58b312SMartin Matuska.long 0x9d95b3df,0x53380d13 16292a58b312SMartin Matuska.long 0x8baf63de,0x650a7354 16302a58b312SMartin Matuska.long 0x8baf63de,0x650a7354 16312a58b312SMartin Matuska.long 0x3c77b2a8,0x766a0abb 16322a58b312SMartin Matuska.long 0x3c77b2a8,0x766a0abb 16332a58b312SMartin Matuska.long 0x47edaee6,0x81c2c92e 16342a58b312SMartin Matuska.long 0x47edaee6,0x81c2c92e 16352a58b312SMartin Matuska.long 0x1482353b,0x92722c85 16362a58b312SMartin Matuska.long 0x1482353b,0x92722c85 16372a58b312SMartin Matuska.long 0x4cf10364,0xa2bfe8a1 16382a58b312SMartin Matuska.long 0x4cf10364,0xa2bfe8a1 16392a58b312SMartin Matuska.long 0xbc423001,0xa81a664b 16402a58b312SMartin Matuska.long 0xbc423001,0xa81a664b 16412a58b312SMartin Matuska.long 0xd0f89791,0xc24b8b70 16422a58b312SMartin Matuska.long 0xd0f89791,0xc24b8b70 16432a58b312SMartin Matuska.long 0x0654be30,0xc76c51a3 16442a58b312SMartin Matuska.long 0x0654be30,0xc76c51a3 16452a58b312SMartin Matuska.long 0xd6ef5218,0xd192e819 16462a58b312SMartin Matuska.long 0xd6ef5218,0xd192e819 16472a58b312SMartin Matuska.long 0x5565a910,0xd6990624 16482a58b312SMartin Matuska.long 0x5565a910,0xd6990624 16492a58b312SMartin Matuska.long 0x5771202a,0xf40e3585 16502a58b312SMartin Matuska.long 0x5771202a,0xf40e3585 16512a58b312SMartin Matuska.long 0x32bbd1b8,0x106aa070 16522a58b312SMartin Matuska.long 0x32bbd1b8,0x106aa070 16532a58b312SMartin Matuska.long 0xb8d2d0c8,0x19a4c116 16542a58b312SMartin Matuska.long 0xb8d2d0c8,0x19a4c116 16552a58b312SMartin Matuska.long 0x5141ab53,0x1e376c08 16562a58b312SMartin Matuska.long 0x5141ab53,0x1e376c08 16572a58b312SMartin Matuska.long 0xdf8eeb99,0x2748774c 16582a58b312SMartin Matuska.long 0xdf8eeb99,0x2748774c 16592a58b312SMartin Matuska.long 0xe19b48a8,0x34b0bcb5 16602a58b312SMartin Matuska.long 0xe19b48a8,0x34b0bcb5 16612a58b312SMartin Matuska.long 0xc5c95a63,0x391c0cb3 16622a58b312SMartin Matuska.long 0xc5c95a63,0x391c0cb3 16632a58b312SMartin Matuska.long 0xe3418acb,0x4ed8aa4a 16642a58b312SMartin Matuska.long 0xe3418acb,0x4ed8aa4a 16652a58b312SMartin Matuska.long 0x7763e373,0x5b9cca4f 16662a58b312SMartin Matuska.long 0x7763e373,0x5b9cca4f 16672a58b312SMartin Matuska.long 0xd6b2b8a3,0x682e6ff3 16682a58b312SMartin Matuska.long 0xd6b2b8a3,0x682e6ff3 16692a58b312SMartin Matuska.long 0x5defb2fc,0x748f82ee 16702a58b312SMartin Matuska.long 0x5defb2fc,0x748f82ee 16712a58b312SMartin Matuska.long 0x43172f60,0x78a5636f 16722a58b312SMartin Matuska.long 0x43172f60,0x78a5636f 16732a58b312SMartin Matuska.long 0xa1f0ab72,0x84c87814 16742a58b312SMartin Matuska.long 0xa1f0ab72,0x84c87814 16752a58b312SMartin Matuska.long 0x1a6439ec,0x8cc70208 16762a58b312SMartin Matuska.long 0x1a6439ec,0x8cc70208 16772a58b312SMartin Matuska.long 0x23631e28,0x90befffa 16782a58b312SMartin Matuska.long 0x23631e28,0x90befffa 16792a58b312SMartin Matuska.long 0xde82bde9,0xa4506ceb 16802a58b312SMartin Matuska.long 0xde82bde9,0xa4506ceb 16812a58b312SMartin Matuska.long 0xb2c67915,0xbef9a3f7 16822a58b312SMartin Matuska.long 0xb2c67915,0xbef9a3f7 16832a58b312SMartin Matuska.long 0xe372532b,0xc67178f2 16842a58b312SMartin Matuska.long 0xe372532b,0xc67178f2 16852a58b312SMartin Matuska.long 0xea26619c,0xca273ece 16862a58b312SMartin Matuska.long 0xea26619c,0xca273ece 16872a58b312SMartin Matuska.long 0x21c0c207,0xd186b8c7 16882a58b312SMartin Matuska.long 0x21c0c207,0xd186b8c7 16892a58b312SMartin Matuska.long 0xcde0eb1e,0xeada7dd6 16902a58b312SMartin Matuska.long 0xcde0eb1e,0xeada7dd6 16912a58b312SMartin Matuska.long 0xee6ed178,0xf57d4f7f 16922a58b312SMartin Matuska.long 0xee6ed178,0xf57d4f7f 16932a58b312SMartin Matuska.long 0x72176fba,0x06f067aa 16942a58b312SMartin Matuska.long 0x72176fba,0x06f067aa 16952a58b312SMartin Matuska.long 0xa2c898a6,0x0a637dc5 16962a58b312SMartin Matuska.long 0xa2c898a6,0x0a637dc5 16972a58b312SMartin Matuska.long 0xbef90dae,0x113f9804 16982a58b312SMartin Matuska.long 0xbef90dae,0x113f9804 16992a58b312SMartin Matuska.long 0x131c471b,0x1b710b35 17002a58b312SMartin Matuska.long 0x131c471b,0x1b710b35 17012a58b312SMartin Matuska.long 0x23047d84,0x28db77f5 17022a58b312SMartin Matuska.long 0x23047d84,0x28db77f5 17032a58b312SMartin Matuska.long 0x40c72493,0x32caab7b 17042a58b312SMartin Matuska.long 0x40c72493,0x32caab7b 17052a58b312SMartin Matuska.long 0x15c9bebc,0x3c9ebe0a 17062a58b312SMartin Matuska.long 0x15c9bebc,0x3c9ebe0a 17072a58b312SMartin Matuska.long 0x9c100d4c,0x431d67c4 17082a58b312SMartin Matuska.long 0x9c100d4c,0x431d67c4 17092a58b312SMartin Matuska.long 0xcb3e42b6,0x4cc5d4be 17102a58b312SMartin Matuska.long 0xcb3e42b6,0x4cc5d4be 17112a58b312SMartin Matuska.long 0xfc657e2a,0x597f299c 17122a58b312SMartin Matuska.long 0xfc657e2a,0x597f299c 17132a58b312SMartin Matuska.long 0x3ad6faec,0x5fcb6fab 17142a58b312SMartin Matuska.long 0x3ad6faec,0x5fcb6fab 17152a58b312SMartin Matuska.long 0x4a475817,0x6c44198c 17162a58b312SMartin Matuska.long 0x4a475817,0x6c44198c 17172a58b312SMartin Matuska.long 0,0 17182a58b312SMartin Matuska.long 0,0 17192a58b312SMartin Matuska.long 0x14151617,0x10111213 17202a58b312SMartin Matuska.long 0x04050607,0x00010203 17212a58b312SMartin Matuska 17222a58b312SMartin Matuska#endif 1723