1cff8db61Sspz.machine "any" 2cff8db61Sspz 3cff8db61Sspz.text 4cff8db61Sspz 5cff8db61Sspz.align 7 6cff8db61Sspzrcon: 7cff8db61Sspz.byte 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00 8cff8db61Sspz.byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00 9cff8db61Sspz.byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c 10cff8db61Sspz.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 11*7d9ffdb3Schristos.long 0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe 12cff8db61Sspz.Lconsts: 13cff8db61Sspz mflr 0 14cff8db61Sspz bcl 20,31,$+4 15cff8db61Sspz mflr 6 16*7d9ffdb3Schristos addi 6,6,-0x58 17cff8db61Sspz mtlr 0 18cff8db61Sspz blr 19cff8db61Sspz.long 0 20cff8db61Sspz.byte 0,12,0x14,0,0,0,0,0 21e0ea3921Schristos.byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,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 22cff8db61Sspz.align 2 23cff8db61Sspz 24cff8db61Sspz.globl aes_p8_set_encrypt_key 25cff8db61Sspz.type aes_p8_set_encrypt_key,@function 26cff8db61Sspz.align 5 27cff8db61Sspzaes_p8_set_encrypt_key: 28cff8db61Sspz.Lset_encrypt_key: 29cff8db61Sspz mflr 11 30cff8db61Sspz stw 11,4(1) 31cff8db61Sspz 32cff8db61Sspz li 6,-1 33cff8db61Sspz cmplwi 3,0 34cff8db61Sspz beq- .Lenc_key_abort 35cff8db61Sspz cmplwi 5,0 36cff8db61Sspz beq- .Lenc_key_abort 37cff8db61Sspz li 6,-2 38cff8db61Sspz cmpwi 4,128 39cff8db61Sspz blt- .Lenc_key_abort 40cff8db61Sspz cmpwi 4,256 41cff8db61Sspz bgt- .Lenc_key_abort 42cff8db61Sspz andi. 0,4,0x3f 43cff8db61Sspz bne- .Lenc_key_abort 44cff8db61Sspz 45cff8db61Sspz lis 0,0xfff0 46cff8db61Sspz mfspr 12,256 47cff8db61Sspz mtspr 256,0 48cff8db61Sspz 49cff8db61Sspz bl .Lconsts 50cff8db61Sspz mtlr 11 51cff8db61Sspz 52cff8db61Sspz neg 9,3 53cff8db61Sspz lvx 1,0,3 54cff8db61Sspz addi 3,3,15 55cff8db61Sspz lvsr 3,0,9 56cff8db61Sspz li 8,0x20 57cff8db61Sspz cmpwi 4,192 58cff8db61Sspz lvx 2,0,3 59cff8db61Sspz 60cff8db61Sspz lvx 4,0,6 61cff8db61Sspz 62cff8db61Sspz lvx 5,8,6 63cff8db61Sspz addi 6,6,0x10 64cff8db61Sspz vperm 1,1,2,3 65cff8db61Sspz li 7,8 66cff8db61Sspz vxor 0,0,0 67cff8db61Sspz mtctr 7 68cff8db61Sspz 69cff8db61Sspz lvsr 8,0,5 70cff8db61Sspz vspltisb 9,-1 71cff8db61Sspz lvx 10,0,5 72cff8db61Sspz vperm 9,0,9,8 73cff8db61Sspz 74cff8db61Sspz blt .Loop128 75cff8db61Sspz addi 3,3,8 76cff8db61Sspz beq .L192 77cff8db61Sspz addi 3,3,8 78cff8db61Sspz b .L256 79cff8db61Sspz 80cff8db61Sspz.align 4 81cff8db61Sspz.Loop128: 82cff8db61Sspz vperm 3,1,1,5 83cff8db61Sspz vsldoi 6,0,1,12 84cff8db61Sspz vperm 11,1,1,8 85cff8db61Sspz vsel 7,10,11,9 86cff8db61Sspz vor 10,11,11 87cff8db61Sspz.long 0x10632509 88cff8db61Sspz stvx 7,0,5 89cff8db61Sspz addi 5,5,16 90cff8db61Sspz 91cff8db61Sspz vxor 1,1,6 92cff8db61Sspz vsldoi 6,0,6,12 93cff8db61Sspz vxor 1,1,6 94cff8db61Sspz vsldoi 6,0,6,12 95cff8db61Sspz vxor 1,1,6 96cff8db61Sspz vadduwm 4,4,4 97cff8db61Sspz vxor 1,1,3 98cff8db61Sspz bc 16,0,.Loop128 99cff8db61Sspz 100cff8db61Sspz lvx 4,0,6 101cff8db61Sspz 102cff8db61Sspz vperm 3,1,1,5 103cff8db61Sspz vsldoi 6,0,1,12 104cff8db61Sspz vperm 11,1,1,8 105cff8db61Sspz vsel 7,10,11,9 106cff8db61Sspz vor 10,11,11 107cff8db61Sspz.long 0x10632509 108cff8db61Sspz stvx 7,0,5 109cff8db61Sspz addi 5,5,16 110cff8db61Sspz 111cff8db61Sspz vxor 1,1,6 112cff8db61Sspz vsldoi 6,0,6,12 113cff8db61Sspz vxor 1,1,6 114cff8db61Sspz vsldoi 6,0,6,12 115cff8db61Sspz vxor 1,1,6 116cff8db61Sspz vadduwm 4,4,4 117cff8db61Sspz vxor 1,1,3 118cff8db61Sspz 119cff8db61Sspz vperm 3,1,1,5 120cff8db61Sspz vsldoi 6,0,1,12 121cff8db61Sspz vperm 11,1,1,8 122cff8db61Sspz vsel 7,10,11,9 123cff8db61Sspz vor 10,11,11 124cff8db61Sspz.long 0x10632509 125cff8db61Sspz stvx 7,0,5 126cff8db61Sspz addi 5,5,16 127cff8db61Sspz 128cff8db61Sspz vxor 1,1,6 129cff8db61Sspz vsldoi 6,0,6,12 130cff8db61Sspz vxor 1,1,6 131cff8db61Sspz vsldoi 6,0,6,12 132cff8db61Sspz vxor 1,1,6 133cff8db61Sspz vxor 1,1,3 134cff8db61Sspz vperm 11,1,1,8 135cff8db61Sspz vsel 7,10,11,9 136cff8db61Sspz vor 10,11,11 137cff8db61Sspz stvx 7,0,5 138cff8db61Sspz 139cff8db61Sspz addi 3,5,15 140cff8db61Sspz addi 5,5,0x50 141cff8db61Sspz 142cff8db61Sspz li 8,10 143cff8db61Sspz b .Ldone 144cff8db61Sspz 145cff8db61Sspz.align 4 146cff8db61Sspz.L192: 147cff8db61Sspz lvx 6,0,3 148cff8db61Sspz li 7,4 149cff8db61Sspz vperm 11,1,1,8 150cff8db61Sspz vsel 7,10,11,9 151cff8db61Sspz vor 10,11,11 152cff8db61Sspz stvx 7,0,5 153cff8db61Sspz addi 5,5,16 154cff8db61Sspz vperm 2,2,6,3 155cff8db61Sspz vspltisb 3,8 156cff8db61Sspz mtctr 7 157cff8db61Sspz vsububm 5,5,3 158cff8db61Sspz 159cff8db61Sspz.Loop192: 160cff8db61Sspz vperm 3,2,2,5 161cff8db61Sspz vsldoi 6,0,1,12 162cff8db61Sspz.long 0x10632509 163cff8db61Sspz 164cff8db61Sspz vxor 1,1,6 165cff8db61Sspz vsldoi 6,0,6,12 166cff8db61Sspz vxor 1,1,6 167cff8db61Sspz vsldoi 6,0,6,12 168cff8db61Sspz vxor 1,1,6 169cff8db61Sspz 170cff8db61Sspz vsldoi 7,0,2,8 171cff8db61Sspz vspltw 6,1,3 172cff8db61Sspz vxor 6,6,2 173cff8db61Sspz vsldoi 2,0,2,12 174cff8db61Sspz vadduwm 4,4,4 175cff8db61Sspz vxor 2,2,6 176cff8db61Sspz vxor 1,1,3 177cff8db61Sspz vxor 2,2,3 178cff8db61Sspz vsldoi 7,7,1,8 179cff8db61Sspz 180cff8db61Sspz vperm 3,2,2,5 181cff8db61Sspz vsldoi 6,0,1,12 182cff8db61Sspz vperm 11,7,7,8 183cff8db61Sspz vsel 7,10,11,9 184cff8db61Sspz vor 10,11,11 185cff8db61Sspz.long 0x10632509 186cff8db61Sspz stvx 7,0,5 187cff8db61Sspz addi 5,5,16 188cff8db61Sspz 189cff8db61Sspz vsldoi 7,1,2,8 190cff8db61Sspz vxor 1,1,6 191cff8db61Sspz vsldoi 6,0,6,12 192cff8db61Sspz vperm 11,7,7,8 193cff8db61Sspz vsel 7,10,11,9 194cff8db61Sspz vor 10,11,11 195cff8db61Sspz vxor 1,1,6 196cff8db61Sspz vsldoi 6,0,6,12 197cff8db61Sspz vxor 1,1,6 198cff8db61Sspz stvx 7,0,5 199cff8db61Sspz addi 5,5,16 200cff8db61Sspz 201cff8db61Sspz vspltw 6,1,3 202cff8db61Sspz vxor 6,6,2 203cff8db61Sspz vsldoi 2,0,2,12 204cff8db61Sspz vadduwm 4,4,4 205cff8db61Sspz vxor 2,2,6 206cff8db61Sspz vxor 1,1,3 207cff8db61Sspz vxor 2,2,3 208cff8db61Sspz vperm 11,1,1,8 209cff8db61Sspz vsel 7,10,11,9 210cff8db61Sspz vor 10,11,11 211cff8db61Sspz stvx 7,0,5 212cff8db61Sspz addi 3,5,15 213cff8db61Sspz addi 5,5,16 214cff8db61Sspz bc 16,0,.Loop192 215cff8db61Sspz 216cff8db61Sspz li 8,12 217cff8db61Sspz addi 5,5,0x20 218cff8db61Sspz b .Ldone 219cff8db61Sspz 220cff8db61Sspz.align 4 221cff8db61Sspz.L256: 222cff8db61Sspz lvx 6,0,3 223cff8db61Sspz li 7,7 224cff8db61Sspz li 8,14 225cff8db61Sspz vperm 11,1,1,8 226cff8db61Sspz vsel 7,10,11,9 227cff8db61Sspz vor 10,11,11 228cff8db61Sspz stvx 7,0,5 229cff8db61Sspz addi 5,5,16 230cff8db61Sspz vperm 2,2,6,3 231cff8db61Sspz mtctr 7 232cff8db61Sspz 233cff8db61Sspz.Loop256: 234cff8db61Sspz vperm 3,2,2,5 235cff8db61Sspz vsldoi 6,0,1,12 236cff8db61Sspz vperm 11,2,2,8 237cff8db61Sspz vsel 7,10,11,9 238cff8db61Sspz vor 10,11,11 239cff8db61Sspz.long 0x10632509 240cff8db61Sspz stvx 7,0,5 241cff8db61Sspz addi 5,5,16 242cff8db61Sspz 243cff8db61Sspz vxor 1,1,6 244cff8db61Sspz vsldoi 6,0,6,12 245cff8db61Sspz vxor 1,1,6 246cff8db61Sspz vsldoi 6,0,6,12 247cff8db61Sspz vxor 1,1,6 248cff8db61Sspz vadduwm 4,4,4 249cff8db61Sspz vxor 1,1,3 250cff8db61Sspz vperm 11,1,1,8 251cff8db61Sspz vsel 7,10,11,9 252cff8db61Sspz vor 10,11,11 253cff8db61Sspz stvx 7,0,5 254cff8db61Sspz addi 3,5,15 255cff8db61Sspz addi 5,5,16 256cff8db61Sspz bdz .Ldone 257cff8db61Sspz 258cff8db61Sspz vspltw 3,1,3 259cff8db61Sspz vsldoi 6,0,2,12 260cff8db61Sspz.long 0x106305C8 261cff8db61Sspz 262cff8db61Sspz vxor 2,2,6 263cff8db61Sspz vsldoi 6,0,6,12 264cff8db61Sspz vxor 2,2,6 265cff8db61Sspz vsldoi 6,0,6,12 266cff8db61Sspz vxor 2,2,6 267cff8db61Sspz 268cff8db61Sspz vxor 2,2,3 269cff8db61Sspz b .Loop256 270cff8db61Sspz 271cff8db61Sspz.align 4 272cff8db61Sspz.Ldone: 273cff8db61Sspz lvx 2,0,3 274cff8db61Sspz vsel 2,10,2,9 275cff8db61Sspz stvx 2,0,3 276cff8db61Sspz li 6,0 277cff8db61Sspz mtspr 256,12 278cff8db61Sspz stw 8,0(5) 279cff8db61Sspz 280cff8db61Sspz.Lenc_key_abort: 281cff8db61Sspz mr 3,6 282cff8db61Sspz blr 283cff8db61Sspz.long 0 284cff8db61Sspz.byte 0,12,0x14,1,0,0,3,0 285cff8db61Sspz.long 0 286cff8db61Sspz 287cff8db61Sspz 288cff8db61Sspz.globl aes_p8_set_decrypt_key 289cff8db61Sspz.type aes_p8_set_decrypt_key,@function 290cff8db61Sspz.align 5 291cff8db61Sspzaes_p8_set_decrypt_key: 292cff8db61Sspz stwu 1,-32(1) 293cff8db61Sspz mflr 10 294cff8db61Sspz stw 10,32+4(1) 295cff8db61Sspz bl .Lset_encrypt_key 296cff8db61Sspz mtlr 10 297cff8db61Sspz 298cff8db61Sspz cmpwi 3,0 299cff8db61Sspz bne- .Ldec_key_abort 300cff8db61Sspz 301cff8db61Sspz slwi 7,8,4 302cff8db61Sspz subi 3,5,240 303cff8db61Sspz srwi 8,8,1 304cff8db61Sspz add 5,3,7 305cff8db61Sspz mtctr 8 306cff8db61Sspz 307cff8db61Sspz.Ldeckey: 308cff8db61Sspz lwz 0, 0(3) 309cff8db61Sspz lwz 6, 4(3) 310cff8db61Sspz lwz 7, 8(3) 311cff8db61Sspz lwz 8, 12(3) 312cff8db61Sspz addi 3,3,16 313cff8db61Sspz lwz 9, 0(5) 314cff8db61Sspz lwz 10,4(5) 315cff8db61Sspz lwz 11,8(5) 316cff8db61Sspz lwz 12,12(5) 317cff8db61Sspz stw 0, 0(5) 318cff8db61Sspz stw 6, 4(5) 319cff8db61Sspz stw 7, 8(5) 320cff8db61Sspz stw 8, 12(5) 321cff8db61Sspz subi 5,5,16 322cff8db61Sspz stw 9, -16(3) 323cff8db61Sspz stw 10,-12(3) 324cff8db61Sspz stw 11,-8(3) 325cff8db61Sspz stw 12,-4(3) 326cff8db61Sspz bc 16,0,.Ldeckey 327cff8db61Sspz 328cff8db61Sspz xor 3,3,3 329cff8db61Sspz.Ldec_key_abort: 330cff8db61Sspz addi 1,1,32 331cff8db61Sspz blr 332cff8db61Sspz.long 0 333cff8db61Sspz.byte 0,12,4,1,0x80,0,3,0 334cff8db61Sspz.long 0 335cff8db61Sspz 336cff8db61Sspz.globl aes_p8_encrypt 337cff8db61Sspz.type aes_p8_encrypt,@function 338cff8db61Sspz.align 5 339cff8db61Sspzaes_p8_encrypt: 340cff8db61Sspz lwz 6,240(5) 341cff8db61Sspz lis 0,0xfc00 342cff8db61Sspz mfspr 12,256 343cff8db61Sspz li 7,15 344cff8db61Sspz mtspr 256,0 345cff8db61Sspz 346cff8db61Sspz lvx 0,0,3 347cff8db61Sspz neg 11,4 348cff8db61Sspz lvx 1,7,3 349cff8db61Sspz lvsl 2,0,3 350cff8db61Sspz 351cff8db61Sspz lvsl 3,0,11 352cff8db61Sspz 353cff8db61Sspz li 7,16 354cff8db61Sspz vperm 0,0,1,2 355cff8db61Sspz lvx 1,0,5 356cff8db61Sspz lvsl 5,0,5 357cff8db61Sspz srwi 6,6,1 358cff8db61Sspz lvx 2,7,5 359cff8db61Sspz addi 7,7,16 360cff8db61Sspz subi 6,6,1 361cff8db61Sspz vperm 1,1,2,5 362cff8db61Sspz 363cff8db61Sspz vxor 0,0,1 364cff8db61Sspz lvx 1,7,5 365cff8db61Sspz addi 7,7,16 366cff8db61Sspz mtctr 6 367cff8db61Sspz 368cff8db61Sspz.Loop_enc: 369cff8db61Sspz vperm 2,2,1,5 370cff8db61Sspz.long 0x10001508 371cff8db61Sspz lvx 2,7,5 372cff8db61Sspz addi 7,7,16 373cff8db61Sspz vperm 1,1,2,5 374cff8db61Sspz.long 0x10000D08 375cff8db61Sspz lvx 1,7,5 376cff8db61Sspz addi 7,7,16 377cff8db61Sspz bc 16,0,.Loop_enc 378cff8db61Sspz 379cff8db61Sspz vperm 2,2,1,5 380cff8db61Sspz.long 0x10001508 381cff8db61Sspz lvx 2,7,5 382cff8db61Sspz vperm 1,1,2,5 383cff8db61Sspz.long 0x10000D09 384cff8db61Sspz 385cff8db61Sspz vspltisb 2,-1 386cff8db61Sspz vxor 1,1,1 387cff8db61Sspz li 7,15 388cff8db61Sspz vperm 2,1,2,3 389cff8db61Sspz 390cff8db61Sspz lvx 1,0,4 391cff8db61Sspz vperm 0,0,0,3 392cff8db61Sspz vsel 1,1,0,2 393cff8db61Sspz lvx 4,7,4 394cff8db61Sspz stvx 1,0,4 395cff8db61Sspz vsel 0,0,4,2 396cff8db61Sspz stvx 0,7,4 397cff8db61Sspz 398cff8db61Sspz mtspr 256,12 399cff8db61Sspz blr 400cff8db61Sspz.long 0 401cff8db61Sspz.byte 0,12,0x14,0,0,0,3,0 402cff8db61Sspz.long 0 403cff8db61Sspz 404cff8db61Sspz.globl aes_p8_decrypt 405cff8db61Sspz.type aes_p8_decrypt,@function 406cff8db61Sspz.align 5 407cff8db61Sspzaes_p8_decrypt: 408cff8db61Sspz lwz 6,240(5) 409cff8db61Sspz lis 0,0xfc00 410cff8db61Sspz mfspr 12,256 411cff8db61Sspz li 7,15 412cff8db61Sspz mtspr 256,0 413cff8db61Sspz 414cff8db61Sspz lvx 0,0,3 415cff8db61Sspz neg 11,4 416cff8db61Sspz lvx 1,7,3 417cff8db61Sspz lvsl 2,0,3 418cff8db61Sspz 419cff8db61Sspz lvsl 3,0,11 420cff8db61Sspz 421cff8db61Sspz li 7,16 422cff8db61Sspz vperm 0,0,1,2 423cff8db61Sspz lvx 1,0,5 424cff8db61Sspz lvsl 5,0,5 425cff8db61Sspz srwi 6,6,1 426cff8db61Sspz lvx 2,7,5 427cff8db61Sspz addi 7,7,16 428cff8db61Sspz subi 6,6,1 429cff8db61Sspz vperm 1,1,2,5 430cff8db61Sspz 431cff8db61Sspz vxor 0,0,1 432cff8db61Sspz lvx 1,7,5 433cff8db61Sspz addi 7,7,16 434cff8db61Sspz mtctr 6 435cff8db61Sspz 436cff8db61Sspz.Loop_dec: 437cff8db61Sspz vperm 2,2,1,5 438cff8db61Sspz.long 0x10001548 439cff8db61Sspz lvx 2,7,5 440cff8db61Sspz addi 7,7,16 441cff8db61Sspz vperm 1,1,2,5 442cff8db61Sspz.long 0x10000D48 443cff8db61Sspz lvx 1,7,5 444cff8db61Sspz addi 7,7,16 445cff8db61Sspz bc 16,0,.Loop_dec 446cff8db61Sspz 447cff8db61Sspz vperm 2,2,1,5 448cff8db61Sspz.long 0x10001548 449cff8db61Sspz lvx 2,7,5 450cff8db61Sspz vperm 1,1,2,5 451cff8db61Sspz.long 0x10000D49 452cff8db61Sspz 453cff8db61Sspz vspltisb 2,-1 454cff8db61Sspz vxor 1,1,1 455cff8db61Sspz li 7,15 456cff8db61Sspz vperm 2,1,2,3 457cff8db61Sspz 458cff8db61Sspz lvx 1,0,4 459cff8db61Sspz vperm 0,0,0,3 460cff8db61Sspz vsel 1,1,0,2 461cff8db61Sspz lvx 4,7,4 462cff8db61Sspz stvx 1,0,4 463cff8db61Sspz vsel 0,0,4,2 464cff8db61Sspz stvx 0,7,4 465cff8db61Sspz 466cff8db61Sspz mtspr 256,12 467cff8db61Sspz blr 468cff8db61Sspz.long 0 469cff8db61Sspz.byte 0,12,0x14,0,0,0,3,0 470cff8db61Sspz.long 0 471cff8db61Sspz 472cff8db61Sspz.globl aes_p8_cbc_encrypt 473cff8db61Sspz.type aes_p8_cbc_encrypt,@function 474cff8db61Sspz.align 5 475cff8db61Sspzaes_p8_cbc_encrypt: 476cff8db61Sspz cmplwi 5,16 477cff8db61Sspz bltlr 478cff8db61Sspz 479cff8db61Sspz cmpwi 8,0 480cff8db61Sspz lis 0,0xffe0 481cff8db61Sspz mfspr 12,256 482cff8db61Sspz mtspr 256,0 483cff8db61Sspz 484cff8db61Sspz li 10,15 485cff8db61Sspz vxor 0,0,0 486cff8db61Sspz 487cff8db61Sspz 488cff8db61Sspz lvx 4,0,7 489cff8db61Sspz lvsl 6,0,7 490cff8db61Sspz lvx 5,10,7 491cff8db61Sspz 492cff8db61Sspz vperm 4,4,5,6 493cff8db61Sspz 494cff8db61Sspz neg 11,3 495cff8db61Sspz lvsl 10,0,6 496cff8db61Sspz lwz 9,240(6) 497cff8db61Sspz 498cff8db61Sspz lvsr 6,0,11 499cff8db61Sspz lvx 5,0,3 500cff8db61Sspz addi 3,3,15 501cff8db61Sspz 502cff8db61Sspz 503cff8db61Sspz lvsr 8,0,4 504cff8db61Sspz vspltisb 9,-1 505cff8db61Sspz lvx 7,0,4 506cff8db61Sspz vperm 9,0,9,8 507cff8db61Sspz 508cff8db61Sspz 509cff8db61Sspz srwi 9,9,1 510cff8db61Sspz li 10,16 511cff8db61Sspz subi 9,9,1 512cff8db61Sspz beq .Lcbc_dec 513cff8db61Sspz 514cff8db61Sspz.Lcbc_enc: 515cff8db61Sspz vor 2,5,5 516cff8db61Sspz lvx 5,0,3 517cff8db61Sspz addi 3,3,16 518cff8db61Sspz mtctr 9 519cff8db61Sspz subi 5,5,16 520cff8db61Sspz 521cff8db61Sspz lvx 0,0,6 522cff8db61Sspz vperm 2,2,5,6 523cff8db61Sspz lvx 1,10,6 524cff8db61Sspz addi 10,10,16 525cff8db61Sspz vperm 0,0,1,10 526cff8db61Sspz vxor 2,2,0 527cff8db61Sspz lvx 0,10,6 528cff8db61Sspz addi 10,10,16 529cff8db61Sspz vxor 2,2,4 530cff8db61Sspz 531cff8db61Sspz.Loop_cbc_enc: 532cff8db61Sspz vperm 1,1,0,10 533cff8db61Sspz.long 0x10420D08 534cff8db61Sspz lvx 1,10,6 535cff8db61Sspz addi 10,10,16 536cff8db61Sspz vperm 0,0,1,10 537cff8db61Sspz.long 0x10420508 538cff8db61Sspz lvx 0,10,6 539cff8db61Sspz addi 10,10,16 540cff8db61Sspz bc 16,0,.Loop_cbc_enc 541cff8db61Sspz 542cff8db61Sspz vperm 1,1,0,10 543cff8db61Sspz.long 0x10420D08 544cff8db61Sspz lvx 1,10,6 545cff8db61Sspz li 10,16 546cff8db61Sspz vperm 0,0,1,10 547cff8db61Sspz.long 0x10820509 548cff8db61Sspz cmplwi 5,16 549cff8db61Sspz 550cff8db61Sspz vperm 3,4,4,8 551cff8db61Sspz vsel 2,7,3,9 552cff8db61Sspz vor 7,3,3 553cff8db61Sspz stvx 2,0,4 554cff8db61Sspz addi 4,4,16 555cff8db61Sspz bge .Lcbc_enc 556cff8db61Sspz 557cff8db61Sspz b .Lcbc_done 558cff8db61Sspz 559cff8db61Sspz.align 4 560cff8db61Sspz.Lcbc_dec: 561cff8db61Sspz cmplwi 5,128 562cff8db61Sspz bge _aesp8_cbc_decrypt8x 563cff8db61Sspz vor 3,5,5 564cff8db61Sspz lvx 5,0,3 565cff8db61Sspz addi 3,3,16 566cff8db61Sspz mtctr 9 567cff8db61Sspz subi 5,5,16 568cff8db61Sspz 569cff8db61Sspz lvx 0,0,6 570cff8db61Sspz vperm 3,3,5,6 571cff8db61Sspz lvx 1,10,6 572cff8db61Sspz addi 10,10,16 573cff8db61Sspz vperm 0,0,1,10 574cff8db61Sspz vxor 2,3,0 575cff8db61Sspz lvx 0,10,6 576cff8db61Sspz addi 10,10,16 577cff8db61Sspz 578cff8db61Sspz.Loop_cbc_dec: 579cff8db61Sspz vperm 1,1,0,10 580cff8db61Sspz.long 0x10420D48 581cff8db61Sspz lvx 1,10,6 582cff8db61Sspz addi 10,10,16 583cff8db61Sspz vperm 0,0,1,10 584cff8db61Sspz.long 0x10420548 585cff8db61Sspz lvx 0,10,6 586cff8db61Sspz addi 10,10,16 587cff8db61Sspz bc 16,0,.Loop_cbc_dec 588cff8db61Sspz 589cff8db61Sspz vperm 1,1,0,10 590cff8db61Sspz.long 0x10420D48 591cff8db61Sspz lvx 1,10,6 592cff8db61Sspz li 10,16 593cff8db61Sspz vperm 0,0,1,10 594cff8db61Sspz.long 0x10420549 595cff8db61Sspz cmplwi 5,16 596cff8db61Sspz 597cff8db61Sspz vxor 2,2,4 598cff8db61Sspz vor 4,3,3 599cff8db61Sspz vperm 3,2,2,8 600cff8db61Sspz vsel 2,7,3,9 601cff8db61Sspz vor 7,3,3 602cff8db61Sspz stvx 2,0,4 603cff8db61Sspz addi 4,4,16 604cff8db61Sspz bge .Lcbc_dec 605cff8db61Sspz 606cff8db61Sspz.Lcbc_done: 607cff8db61Sspz addi 4,4,-1 608cff8db61Sspz lvx 2,0,4 609cff8db61Sspz vsel 2,7,2,9 610cff8db61Sspz stvx 2,0,4 611cff8db61Sspz 612cff8db61Sspz neg 8,7 613cff8db61Sspz li 10,15 614cff8db61Sspz vxor 0,0,0 615cff8db61Sspz vspltisb 9,-1 616cff8db61Sspz 617cff8db61Sspz lvsl 8,0,8 618cff8db61Sspz vperm 9,0,9,8 619cff8db61Sspz 620cff8db61Sspz lvx 7,0,7 621cff8db61Sspz vperm 4,4,4,8 622cff8db61Sspz vsel 2,7,4,9 623cff8db61Sspz lvx 5,10,7 624cff8db61Sspz stvx 2,0,7 625cff8db61Sspz vsel 2,4,5,9 626cff8db61Sspz stvx 2,10,7 627cff8db61Sspz 628cff8db61Sspz mtspr 256,12 629cff8db61Sspz blr 630cff8db61Sspz.long 0 631cff8db61Sspz.byte 0,12,0x14,0,0,0,6,0 632cff8db61Sspz.long 0 633cff8db61Sspz.align 5 634cff8db61Sspz_aesp8_cbc_decrypt8x: 635cff8db61Sspz stwu 1,-392(1) 636cff8db61Sspz li 10,175 637cff8db61Sspz li 11,191 638cff8db61Sspz stvx 20,10,1 639cff8db61Sspz addi 10,10,32 640cff8db61Sspz stvx 21,11,1 641cff8db61Sspz addi 11,11,32 642cff8db61Sspz stvx 22,10,1 643cff8db61Sspz addi 10,10,32 644cff8db61Sspz stvx 23,11,1 645cff8db61Sspz addi 11,11,32 646cff8db61Sspz stvx 24,10,1 647cff8db61Sspz addi 10,10,32 648cff8db61Sspz stvx 25,11,1 649cff8db61Sspz addi 11,11,32 650cff8db61Sspz stvx 26,10,1 651cff8db61Sspz addi 10,10,32 652cff8db61Sspz stvx 27,11,1 653cff8db61Sspz addi 11,11,32 654cff8db61Sspz stvx 28,10,1 655cff8db61Sspz addi 10,10,32 656cff8db61Sspz stvx 29,11,1 657cff8db61Sspz addi 11,11,32 658cff8db61Sspz stvx 30,10,1 659cff8db61Sspz stvx 31,11,1 660cff8db61Sspz li 0,-1 661cff8db61Sspz stw 12,364(1) 662cff8db61Sspz li 8,0x10 663cff8db61Sspz stw 26,368(1) 664cff8db61Sspz li 26,0x20 665cff8db61Sspz stw 27,372(1) 666cff8db61Sspz li 27,0x30 667cff8db61Sspz stw 28,376(1) 668cff8db61Sspz li 28,0x40 669cff8db61Sspz stw 29,380(1) 670cff8db61Sspz li 29,0x50 671cff8db61Sspz stw 30,384(1) 672cff8db61Sspz li 30,0x60 673cff8db61Sspz stw 31,388(1) 674cff8db61Sspz li 31,0x70 675cff8db61Sspz mtspr 256,0 676cff8db61Sspz 677cff8db61Sspz subi 9,9,3 678cff8db61Sspz subi 5,5,128 679cff8db61Sspz 680cff8db61Sspz lvx 23,0,6 681cff8db61Sspz lvx 30,8,6 682cff8db61Sspz addi 6,6,0x20 683cff8db61Sspz lvx 31,0,6 684cff8db61Sspz vperm 23,23,30,10 685cff8db61Sspz addi 11,1,32+15 686cff8db61Sspz mtctr 9 687cff8db61Sspz 688cff8db61Sspz.Load_cbc_dec_key: 689cff8db61Sspz vperm 24,30,31,10 690cff8db61Sspz lvx 30,8,6 691cff8db61Sspz addi 6,6,0x20 692cff8db61Sspz stvx 24,0,11 693cff8db61Sspz vperm 25,31,30,10 694cff8db61Sspz lvx 31,0,6 695cff8db61Sspz stvx 25,8,11 696cff8db61Sspz addi 11,11,0x20 697cff8db61Sspz bc 16,0,.Load_cbc_dec_key 698cff8db61Sspz 699cff8db61Sspz lvx 26,8,6 700cff8db61Sspz vperm 24,30,31,10 701cff8db61Sspz lvx 27,26,6 702cff8db61Sspz stvx 24,0,11 703cff8db61Sspz vperm 25,31,26,10 704cff8db61Sspz lvx 28,27,6 705cff8db61Sspz stvx 25,8,11 706cff8db61Sspz addi 11,1,32+15 707cff8db61Sspz vperm 26,26,27,10 708cff8db61Sspz lvx 29,28,6 709cff8db61Sspz vperm 27,27,28,10 710cff8db61Sspz lvx 30,29,6 711cff8db61Sspz vperm 28,28,29,10 712cff8db61Sspz lvx 31,30,6 713cff8db61Sspz vperm 29,29,30,10 714cff8db61Sspz lvx 14,31,6 715cff8db61Sspz vperm 30,30,31,10 716cff8db61Sspz lvx 24,0,11 717cff8db61Sspz vperm 31,31,14,10 718cff8db61Sspz lvx 25,8,11 719cff8db61Sspz 720cff8db61Sspz 721cff8db61Sspz 722cff8db61Sspz subi 3,3,15 723cff8db61Sspz 724cff8db61Sspz 725cff8db61Sspz.long 0x7C001E99 726cff8db61Sspz 727cff8db61Sspz 728cff8db61Sspz.long 0x7C281E99 729cff8db61Sspz 730cff8db61Sspz.long 0x7C5A1E99 731cff8db61Sspz 732cff8db61Sspz.long 0x7C7B1E99 733cff8db61Sspz 734cff8db61Sspz.long 0x7D5C1E99 735cff8db61Sspz 736cff8db61Sspz vxor 14,0,23 737cff8db61Sspz.long 0x7D7D1E99 738cff8db61Sspz 739cff8db61Sspz vxor 15,1,23 740cff8db61Sspz.long 0x7D9E1E99 741cff8db61Sspz 742cff8db61Sspz vxor 16,2,23 743cff8db61Sspz.long 0x7DBF1E99 744cff8db61Sspz addi 3,3,0x80 745cff8db61Sspz 746cff8db61Sspz vxor 17,3,23 747cff8db61Sspz 748cff8db61Sspz vxor 18,10,23 749cff8db61Sspz 750cff8db61Sspz vxor 19,11,23 751cff8db61Sspz vxor 20,12,23 752cff8db61Sspz vxor 21,13,23 753cff8db61Sspz 754cff8db61Sspz mtctr 9 755cff8db61Sspz b .Loop_cbc_dec8x 756cff8db61Sspz.align 5 757cff8db61Sspz.Loop_cbc_dec8x: 758cff8db61Sspz.long 0x11CEC548 759cff8db61Sspz.long 0x11EFC548 760cff8db61Sspz.long 0x1210C548 761cff8db61Sspz.long 0x1231C548 762cff8db61Sspz.long 0x1252C548 763cff8db61Sspz.long 0x1273C548 764cff8db61Sspz.long 0x1294C548 765cff8db61Sspz.long 0x12B5C548 766cff8db61Sspz lvx 24,26,11 767cff8db61Sspz addi 11,11,0x20 768cff8db61Sspz 769cff8db61Sspz.long 0x11CECD48 770cff8db61Sspz.long 0x11EFCD48 771cff8db61Sspz.long 0x1210CD48 772cff8db61Sspz.long 0x1231CD48 773cff8db61Sspz.long 0x1252CD48 774cff8db61Sspz.long 0x1273CD48 775cff8db61Sspz.long 0x1294CD48 776cff8db61Sspz.long 0x12B5CD48 777cff8db61Sspz lvx 25,8,11 778cff8db61Sspz bc 16,0,.Loop_cbc_dec8x 779cff8db61Sspz 780cff8db61Sspz subic 5,5,128 781cff8db61Sspz.long 0x11CEC548 782cff8db61Sspz.long 0x11EFC548 783cff8db61Sspz.long 0x1210C548 784cff8db61Sspz.long 0x1231C548 785cff8db61Sspz.long 0x1252C548 786cff8db61Sspz.long 0x1273C548 787cff8db61Sspz.long 0x1294C548 788cff8db61Sspz.long 0x12B5C548 789cff8db61Sspz 790cff8db61Sspz subfe. 0,0,0 791cff8db61Sspz.long 0x11CECD48 792cff8db61Sspz.long 0x11EFCD48 793cff8db61Sspz.long 0x1210CD48 794cff8db61Sspz.long 0x1231CD48 795cff8db61Sspz.long 0x1252CD48 796cff8db61Sspz.long 0x1273CD48 797cff8db61Sspz.long 0x1294CD48 798cff8db61Sspz.long 0x12B5CD48 799cff8db61Sspz 800cff8db61Sspz and 0,0,5 801cff8db61Sspz.long 0x11CED548 802cff8db61Sspz.long 0x11EFD548 803cff8db61Sspz.long 0x1210D548 804cff8db61Sspz.long 0x1231D548 805cff8db61Sspz.long 0x1252D548 806cff8db61Sspz.long 0x1273D548 807cff8db61Sspz.long 0x1294D548 808cff8db61Sspz.long 0x12B5D548 809cff8db61Sspz 810cff8db61Sspz add 3,3,0 811cff8db61Sspz 812cff8db61Sspz 813cff8db61Sspz 814cff8db61Sspz.long 0x11CEDD48 815cff8db61Sspz.long 0x11EFDD48 816cff8db61Sspz.long 0x1210DD48 817cff8db61Sspz.long 0x1231DD48 818cff8db61Sspz.long 0x1252DD48 819cff8db61Sspz.long 0x1273DD48 820cff8db61Sspz.long 0x1294DD48 821cff8db61Sspz.long 0x12B5DD48 822cff8db61Sspz 823cff8db61Sspz addi 11,1,32+15 824cff8db61Sspz.long 0x11CEE548 825cff8db61Sspz.long 0x11EFE548 826cff8db61Sspz.long 0x1210E548 827cff8db61Sspz.long 0x1231E548 828cff8db61Sspz.long 0x1252E548 829cff8db61Sspz.long 0x1273E548 830cff8db61Sspz.long 0x1294E548 831cff8db61Sspz.long 0x12B5E548 832cff8db61Sspz lvx 24,0,11 833cff8db61Sspz 834cff8db61Sspz.long 0x11CEED48 835cff8db61Sspz.long 0x11EFED48 836cff8db61Sspz.long 0x1210ED48 837cff8db61Sspz.long 0x1231ED48 838cff8db61Sspz.long 0x1252ED48 839cff8db61Sspz.long 0x1273ED48 840cff8db61Sspz.long 0x1294ED48 841cff8db61Sspz.long 0x12B5ED48 842cff8db61Sspz lvx 25,8,11 843cff8db61Sspz 844cff8db61Sspz.long 0x11CEF548 845cff8db61Sspz vxor 4,4,31 846cff8db61Sspz.long 0x11EFF548 847cff8db61Sspz vxor 0,0,31 848cff8db61Sspz.long 0x1210F548 849cff8db61Sspz vxor 1,1,31 850cff8db61Sspz.long 0x1231F548 851cff8db61Sspz vxor 2,2,31 852cff8db61Sspz.long 0x1252F548 853cff8db61Sspz vxor 3,3,31 854cff8db61Sspz.long 0x1273F548 855cff8db61Sspz vxor 10,10,31 856cff8db61Sspz.long 0x1294F548 857cff8db61Sspz vxor 11,11,31 858cff8db61Sspz.long 0x12B5F548 859cff8db61Sspz vxor 12,12,31 860cff8db61Sspz 861cff8db61Sspz.long 0x11CE2549 862cff8db61Sspz.long 0x11EF0549 863cff8db61Sspz.long 0x7C001E99 864cff8db61Sspz.long 0x12100D49 865cff8db61Sspz.long 0x7C281E99 866cff8db61Sspz.long 0x12311549 867cff8db61Sspz 868cff8db61Sspz.long 0x7C5A1E99 869cff8db61Sspz.long 0x12521D49 870cff8db61Sspz 871cff8db61Sspz.long 0x7C7B1E99 872cff8db61Sspz.long 0x12735549 873cff8db61Sspz 874cff8db61Sspz.long 0x7D5C1E99 875cff8db61Sspz.long 0x12945D49 876cff8db61Sspz 877cff8db61Sspz.long 0x7D7D1E99 878cff8db61Sspz.long 0x12B56549 879cff8db61Sspz 880cff8db61Sspz.long 0x7D9E1E99 881cff8db61Sspz vor 4,13,13 882cff8db61Sspz 883cff8db61Sspz.long 0x7DBF1E99 884cff8db61Sspz addi 3,3,0x80 885cff8db61Sspz 886cff8db61Sspz 887cff8db61Sspz 888cff8db61Sspz.long 0x7DC02799 889cff8db61Sspz 890cff8db61Sspz vxor 14,0,23 891cff8db61Sspz 892cff8db61Sspz.long 0x7DE82799 893cff8db61Sspz 894cff8db61Sspz vxor 15,1,23 895cff8db61Sspz 896cff8db61Sspz.long 0x7E1A2799 897cff8db61Sspz vxor 16,2,23 898cff8db61Sspz 899cff8db61Sspz.long 0x7E3B2799 900cff8db61Sspz vxor 17,3,23 901cff8db61Sspz 902cff8db61Sspz.long 0x7E5C2799 903cff8db61Sspz vxor 18,10,23 904cff8db61Sspz 905cff8db61Sspz.long 0x7E7D2799 906cff8db61Sspz vxor 19,11,23 907cff8db61Sspz 908cff8db61Sspz.long 0x7E9E2799 909cff8db61Sspz vxor 20,12,23 910cff8db61Sspz.long 0x7EBF2799 911cff8db61Sspz addi 4,4,0x80 912cff8db61Sspz vxor 21,13,23 913cff8db61Sspz 914cff8db61Sspz mtctr 9 915cff8db61Sspz beq .Loop_cbc_dec8x 916cff8db61Sspz 917cff8db61Sspz addic. 5,5,128 918cff8db61Sspz beq .Lcbc_dec8x_done 919cff8db61Sspz nop 920cff8db61Sspz nop 921cff8db61Sspz 922cff8db61Sspz.Loop_cbc_dec8x_tail: 923cff8db61Sspz.long 0x11EFC548 924cff8db61Sspz.long 0x1210C548 925cff8db61Sspz.long 0x1231C548 926cff8db61Sspz.long 0x1252C548 927cff8db61Sspz.long 0x1273C548 928cff8db61Sspz.long 0x1294C548 929cff8db61Sspz.long 0x12B5C548 930cff8db61Sspz lvx 24,26,11 931cff8db61Sspz addi 11,11,0x20 932cff8db61Sspz 933cff8db61Sspz.long 0x11EFCD48 934cff8db61Sspz.long 0x1210CD48 935cff8db61Sspz.long 0x1231CD48 936cff8db61Sspz.long 0x1252CD48 937cff8db61Sspz.long 0x1273CD48 938cff8db61Sspz.long 0x1294CD48 939cff8db61Sspz.long 0x12B5CD48 940cff8db61Sspz lvx 25,8,11 941cff8db61Sspz bc 16,0,.Loop_cbc_dec8x_tail 942cff8db61Sspz 943cff8db61Sspz.long 0x11EFC548 944cff8db61Sspz.long 0x1210C548 945cff8db61Sspz.long 0x1231C548 946cff8db61Sspz.long 0x1252C548 947cff8db61Sspz.long 0x1273C548 948cff8db61Sspz.long 0x1294C548 949cff8db61Sspz.long 0x12B5C548 950cff8db61Sspz 951cff8db61Sspz.long 0x11EFCD48 952cff8db61Sspz.long 0x1210CD48 953cff8db61Sspz.long 0x1231CD48 954cff8db61Sspz.long 0x1252CD48 955cff8db61Sspz.long 0x1273CD48 956cff8db61Sspz.long 0x1294CD48 957cff8db61Sspz.long 0x12B5CD48 958cff8db61Sspz 959cff8db61Sspz.long 0x11EFD548 960cff8db61Sspz.long 0x1210D548 961cff8db61Sspz.long 0x1231D548 962cff8db61Sspz.long 0x1252D548 963cff8db61Sspz.long 0x1273D548 964cff8db61Sspz.long 0x1294D548 965cff8db61Sspz.long 0x12B5D548 966cff8db61Sspz 967cff8db61Sspz.long 0x11EFDD48 968cff8db61Sspz.long 0x1210DD48 969cff8db61Sspz.long 0x1231DD48 970cff8db61Sspz.long 0x1252DD48 971cff8db61Sspz.long 0x1273DD48 972cff8db61Sspz.long 0x1294DD48 973cff8db61Sspz.long 0x12B5DD48 974cff8db61Sspz 975cff8db61Sspz.long 0x11EFE548 976cff8db61Sspz.long 0x1210E548 977cff8db61Sspz.long 0x1231E548 978cff8db61Sspz.long 0x1252E548 979cff8db61Sspz.long 0x1273E548 980cff8db61Sspz.long 0x1294E548 981cff8db61Sspz.long 0x12B5E548 982cff8db61Sspz 983cff8db61Sspz.long 0x11EFED48 984cff8db61Sspz.long 0x1210ED48 985cff8db61Sspz.long 0x1231ED48 986cff8db61Sspz.long 0x1252ED48 987cff8db61Sspz.long 0x1273ED48 988cff8db61Sspz.long 0x1294ED48 989cff8db61Sspz.long 0x12B5ED48 990cff8db61Sspz 991cff8db61Sspz.long 0x11EFF548 992cff8db61Sspz vxor 4,4,31 993cff8db61Sspz.long 0x1210F548 994cff8db61Sspz vxor 1,1,31 995cff8db61Sspz.long 0x1231F548 996cff8db61Sspz vxor 2,2,31 997cff8db61Sspz.long 0x1252F548 998cff8db61Sspz vxor 3,3,31 999cff8db61Sspz.long 0x1273F548 1000cff8db61Sspz vxor 10,10,31 1001cff8db61Sspz.long 0x1294F548 1002cff8db61Sspz vxor 11,11,31 1003cff8db61Sspz.long 0x12B5F548 1004cff8db61Sspz vxor 12,12,31 1005cff8db61Sspz 1006cff8db61Sspz cmplwi 5,32 1007cff8db61Sspz blt .Lcbc_dec8x_one 1008cff8db61Sspz nop 1009cff8db61Sspz beq .Lcbc_dec8x_two 1010cff8db61Sspz cmplwi 5,64 1011cff8db61Sspz blt .Lcbc_dec8x_three 1012cff8db61Sspz nop 1013cff8db61Sspz beq .Lcbc_dec8x_four 1014cff8db61Sspz cmplwi 5,96 1015cff8db61Sspz blt .Lcbc_dec8x_five 1016cff8db61Sspz nop 1017cff8db61Sspz beq .Lcbc_dec8x_six 1018cff8db61Sspz 1019cff8db61Sspz.Lcbc_dec8x_seven: 1020cff8db61Sspz.long 0x11EF2549 1021cff8db61Sspz.long 0x12100D49 1022cff8db61Sspz.long 0x12311549 1023cff8db61Sspz.long 0x12521D49 1024cff8db61Sspz.long 0x12735549 1025cff8db61Sspz.long 0x12945D49 1026cff8db61Sspz.long 0x12B56549 1027cff8db61Sspz vor 4,13,13 1028cff8db61Sspz 1029cff8db61Sspz 1030cff8db61Sspz 1031cff8db61Sspz.long 0x7DE02799 1032cff8db61Sspz 1033cff8db61Sspz.long 0x7E082799 1034cff8db61Sspz 1035cff8db61Sspz.long 0x7E3A2799 1036cff8db61Sspz 1037cff8db61Sspz.long 0x7E5B2799 1038cff8db61Sspz 1039cff8db61Sspz.long 0x7E7C2799 1040cff8db61Sspz 1041cff8db61Sspz.long 0x7E9D2799 1042cff8db61Sspz.long 0x7EBE2799 1043cff8db61Sspz addi 4,4,0x70 1044cff8db61Sspz b .Lcbc_dec8x_done 1045cff8db61Sspz 1046cff8db61Sspz.align 5 1047cff8db61Sspz.Lcbc_dec8x_six: 1048cff8db61Sspz.long 0x12102549 1049cff8db61Sspz.long 0x12311549 1050cff8db61Sspz.long 0x12521D49 1051cff8db61Sspz.long 0x12735549 1052cff8db61Sspz.long 0x12945D49 1053cff8db61Sspz.long 0x12B56549 1054cff8db61Sspz vor 4,13,13 1055cff8db61Sspz 1056cff8db61Sspz 1057cff8db61Sspz 1058cff8db61Sspz.long 0x7E002799 1059cff8db61Sspz 1060cff8db61Sspz.long 0x7E282799 1061cff8db61Sspz 1062cff8db61Sspz.long 0x7E5A2799 1063cff8db61Sspz 1064cff8db61Sspz.long 0x7E7B2799 1065cff8db61Sspz 1066cff8db61Sspz.long 0x7E9C2799 1067cff8db61Sspz.long 0x7EBD2799 1068cff8db61Sspz addi 4,4,0x60 1069cff8db61Sspz b .Lcbc_dec8x_done 1070cff8db61Sspz 1071cff8db61Sspz.align 5 1072cff8db61Sspz.Lcbc_dec8x_five: 1073cff8db61Sspz.long 0x12312549 1074cff8db61Sspz.long 0x12521D49 1075cff8db61Sspz.long 0x12735549 1076cff8db61Sspz.long 0x12945D49 1077cff8db61Sspz.long 0x12B56549 1078cff8db61Sspz vor 4,13,13 1079cff8db61Sspz 1080cff8db61Sspz 1081cff8db61Sspz 1082cff8db61Sspz.long 0x7E202799 1083cff8db61Sspz 1084cff8db61Sspz.long 0x7E482799 1085cff8db61Sspz 1086cff8db61Sspz.long 0x7E7A2799 1087cff8db61Sspz 1088cff8db61Sspz.long 0x7E9B2799 1089cff8db61Sspz.long 0x7EBC2799 1090cff8db61Sspz addi 4,4,0x50 1091cff8db61Sspz b .Lcbc_dec8x_done 1092cff8db61Sspz 1093cff8db61Sspz.align 5 1094cff8db61Sspz.Lcbc_dec8x_four: 1095cff8db61Sspz.long 0x12522549 1096cff8db61Sspz.long 0x12735549 1097cff8db61Sspz.long 0x12945D49 1098cff8db61Sspz.long 0x12B56549 1099cff8db61Sspz vor 4,13,13 1100cff8db61Sspz 1101cff8db61Sspz 1102cff8db61Sspz 1103cff8db61Sspz.long 0x7E402799 1104cff8db61Sspz 1105cff8db61Sspz.long 0x7E682799 1106cff8db61Sspz 1107cff8db61Sspz.long 0x7E9A2799 1108cff8db61Sspz.long 0x7EBB2799 1109cff8db61Sspz addi 4,4,0x40 1110cff8db61Sspz b .Lcbc_dec8x_done 1111cff8db61Sspz 1112cff8db61Sspz.align 5 1113cff8db61Sspz.Lcbc_dec8x_three: 1114cff8db61Sspz.long 0x12732549 1115cff8db61Sspz.long 0x12945D49 1116cff8db61Sspz.long 0x12B56549 1117cff8db61Sspz vor 4,13,13 1118cff8db61Sspz 1119cff8db61Sspz 1120cff8db61Sspz 1121cff8db61Sspz.long 0x7E602799 1122cff8db61Sspz 1123cff8db61Sspz.long 0x7E882799 1124cff8db61Sspz.long 0x7EBA2799 1125cff8db61Sspz addi 4,4,0x30 1126cff8db61Sspz b .Lcbc_dec8x_done 1127cff8db61Sspz 1128cff8db61Sspz.align 5 1129cff8db61Sspz.Lcbc_dec8x_two: 1130cff8db61Sspz.long 0x12942549 1131cff8db61Sspz.long 0x12B56549 1132cff8db61Sspz vor 4,13,13 1133cff8db61Sspz 1134cff8db61Sspz 1135cff8db61Sspz 1136cff8db61Sspz.long 0x7E802799 1137cff8db61Sspz.long 0x7EA82799 1138cff8db61Sspz addi 4,4,0x20 1139cff8db61Sspz b .Lcbc_dec8x_done 1140cff8db61Sspz 1141cff8db61Sspz.align 5 1142cff8db61Sspz.Lcbc_dec8x_one: 1143cff8db61Sspz.long 0x12B52549 1144cff8db61Sspz vor 4,13,13 1145cff8db61Sspz 1146cff8db61Sspz 1147cff8db61Sspz.long 0x7EA02799 1148cff8db61Sspz addi 4,4,0x10 1149cff8db61Sspz 1150cff8db61Sspz.Lcbc_dec8x_done: 1151cff8db61Sspz 1152cff8db61Sspz.long 0x7C803F99 1153cff8db61Sspz 1154cff8db61Sspz li 10,47 1155cff8db61Sspz li 11,63 1156cff8db61Sspz stvx 6,10,1 1157cff8db61Sspz addi 10,10,32 1158cff8db61Sspz stvx 6,11,1 1159cff8db61Sspz addi 11,11,32 1160cff8db61Sspz stvx 6,10,1 1161cff8db61Sspz addi 10,10,32 1162cff8db61Sspz stvx 6,11,1 1163cff8db61Sspz addi 11,11,32 1164cff8db61Sspz stvx 6,10,1 1165cff8db61Sspz addi 10,10,32 1166cff8db61Sspz stvx 6,11,1 1167cff8db61Sspz addi 11,11,32 1168cff8db61Sspz stvx 6,10,1 1169cff8db61Sspz addi 10,10,32 1170cff8db61Sspz stvx 6,11,1 1171cff8db61Sspz addi 11,11,32 1172cff8db61Sspz 1173cff8db61Sspz mtspr 256,12 1174cff8db61Sspz lvx 20,10,1 1175cff8db61Sspz addi 10,10,32 1176cff8db61Sspz lvx 21,11,1 1177cff8db61Sspz addi 11,11,32 1178cff8db61Sspz lvx 22,10,1 1179cff8db61Sspz addi 10,10,32 1180cff8db61Sspz lvx 23,11,1 1181cff8db61Sspz addi 11,11,32 1182cff8db61Sspz lvx 24,10,1 1183cff8db61Sspz addi 10,10,32 1184cff8db61Sspz lvx 25,11,1 1185cff8db61Sspz addi 11,11,32 1186cff8db61Sspz lvx 26,10,1 1187cff8db61Sspz addi 10,10,32 1188cff8db61Sspz lvx 27,11,1 1189cff8db61Sspz addi 11,11,32 1190cff8db61Sspz lvx 28,10,1 1191cff8db61Sspz addi 10,10,32 1192cff8db61Sspz lvx 29,11,1 1193cff8db61Sspz addi 11,11,32 1194cff8db61Sspz lvx 30,10,1 1195cff8db61Sspz lvx 31,11,1 1196cff8db61Sspz lwz 26,368(1) 1197cff8db61Sspz lwz 27,372(1) 1198cff8db61Sspz lwz 28,376(1) 1199cff8db61Sspz lwz 29,380(1) 1200cff8db61Sspz lwz 30,384(1) 1201cff8db61Sspz lwz 31,388(1) 1202cff8db61Sspz addi 1,1,392 1203cff8db61Sspz blr 1204cff8db61Sspz.long 0 1205cff8db61Sspz.byte 0,12,0x04,0,0x80,6,6,0 1206cff8db61Sspz.long 0 1207cff8db61Sspz 1208cff8db61Sspz.globl aes_p8_ctr32_encrypt_blocks 1209cff8db61Sspz.type aes_p8_ctr32_encrypt_blocks,@function 1210cff8db61Sspz.align 5 1211cff8db61Sspzaes_p8_ctr32_encrypt_blocks: 1212cff8db61Sspz cmplwi 5,1 1213cff8db61Sspz bltlr 1214cff8db61Sspz 1215cff8db61Sspz lis 0,0xfff0 1216cff8db61Sspz mfspr 12,256 1217cff8db61Sspz mtspr 256,0 1218cff8db61Sspz 1219cff8db61Sspz li 10,15 1220cff8db61Sspz vxor 0,0,0 1221cff8db61Sspz 1222cff8db61Sspz 1223cff8db61Sspz lvx 4,0,7 1224cff8db61Sspz lvsl 6,0,7 1225cff8db61Sspz lvx 5,10,7 1226cff8db61Sspz vspltisb 11,1 1227cff8db61Sspz 1228cff8db61Sspz vperm 4,4,5,6 1229cff8db61Sspz vsldoi 11,0,11,1 1230cff8db61Sspz 1231cff8db61Sspz neg 11,3 1232cff8db61Sspz lvsl 10,0,6 1233cff8db61Sspz lwz 9,240(6) 1234cff8db61Sspz 1235cff8db61Sspz lvsr 6,0,11 1236cff8db61Sspz lvx 5,0,3 1237cff8db61Sspz addi 3,3,15 1238cff8db61Sspz 1239cff8db61Sspz 1240cff8db61Sspz srwi 9,9,1 1241cff8db61Sspz li 10,16 1242cff8db61Sspz subi 9,9,1 1243cff8db61Sspz 1244cff8db61Sspz cmplwi 5,8 1245cff8db61Sspz bge _aesp8_ctr32_encrypt8x 1246cff8db61Sspz 1247cff8db61Sspz lvsr 8,0,4 1248cff8db61Sspz vspltisb 9,-1 1249cff8db61Sspz lvx 7,0,4 1250cff8db61Sspz vperm 9,0,9,8 1251cff8db61Sspz 1252cff8db61Sspz 1253cff8db61Sspz lvx 0,0,6 1254cff8db61Sspz mtctr 9 1255cff8db61Sspz lvx 1,10,6 1256cff8db61Sspz addi 10,10,16 1257cff8db61Sspz vperm 0,0,1,10 1258cff8db61Sspz vxor 2,4,0 1259cff8db61Sspz lvx 0,10,6 1260cff8db61Sspz addi 10,10,16 1261cff8db61Sspz b .Loop_ctr32_enc 1262cff8db61Sspz 1263cff8db61Sspz.align 5 1264cff8db61Sspz.Loop_ctr32_enc: 1265cff8db61Sspz vperm 1,1,0,10 1266cff8db61Sspz.long 0x10420D08 1267cff8db61Sspz lvx 1,10,6 1268cff8db61Sspz addi 10,10,16 1269cff8db61Sspz vperm 0,0,1,10 1270cff8db61Sspz.long 0x10420508 1271cff8db61Sspz lvx 0,10,6 1272cff8db61Sspz addi 10,10,16 1273cff8db61Sspz bc 16,0,.Loop_ctr32_enc 1274cff8db61Sspz 1275cff8db61Sspz vadduwm 4,4,11 1276cff8db61Sspz vor 3,5,5 1277cff8db61Sspz lvx 5,0,3 1278cff8db61Sspz addi 3,3,16 1279cff8db61Sspz subic. 5,5,1 1280cff8db61Sspz 1281cff8db61Sspz vperm 1,1,0,10 1282cff8db61Sspz.long 0x10420D08 1283cff8db61Sspz lvx 1,10,6 1284cff8db61Sspz vperm 3,3,5,6 1285cff8db61Sspz li 10,16 1286cff8db61Sspz vperm 1,0,1,10 1287cff8db61Sspz lvx 0,0,6 1288cff8db61Sspz vxor 3,3,1 1289cff8db61Sspz.long 0x10421D09 1290cff8db61Sspz 1291cff8db61Sspz lvx 1,10,6 1292cff8db61Sspz addi 10,10,16 1293cff8db61Sspz vperm 2,2,2,8 1294cff8db61Sspz vsel 3,7,2,9 1295cff8db61Sspz mtctr 9 1296cff8db61Sspz vperm 0,0,1,10 1297cff8db61Sspz vor 7,2,2 1298cff8db61Sspz vxor 2,4,0 1299cff8db61Sspz lvx 0,10,6 1300cff8db61Sspz addi 10,10,16 1301cff8db61Sspz stvx 3,0,4 1302cff8db61Sspz addi 4,4,16 1303cff8db61Sspz bne .Loop_ctr32_enc 1304cff8db61Sspz 1305cff8db61Sspz addi 4,4,-1 1306cff8db61Sspz lvx 2,0,4 1307cff8db61Sspz vsel 2,7,2,9 1308cff8db61Sspz stvx 2,0,4 1309cff8db61Sspz 1310cff8db61Sspz mtspr 256,12 1311cff8db61Sspz blr 1312cff8db61Sspz.long 0 1313cff8db61Sspz.byte 0,12,0x14,0,0,0,6,0 1314cff8db61Sspz.long 0 1315cff8db61Sspz.align 5 1316cff8db61Sspz_aesp8_ctr32_encrypt8x: 1317cff8db61Sspz stwu 1,-392(1) 1318cff8db61Sspz li 10,175 1319cff8db61Sspz li 11,191 1320cff8db61Sspz stvx 20,10,1 1321cff8db61Sspz addi 10,10,32 1322cff8db61Sspz stvx 21,11,1 1323cff8db61Sspz addi 11,11,32 1324cff8db61Sspz stvx 22,10,1 1325cff8db61Sspz addi 10,10,32 1326cff8db61Sspz stvx 23,11,1 1327cff8db61Sspz addi 11,11,32 1328cff8db61Sspz stvx 24,10,1 1329cff8db61Sspz addi 10,10,32 1330cff8db61Sspz stvx 25,11,1 1331cff8db61Sspz addi 11,11,32 1332cff8db61Sspz stvx 26,10,1 1333cff8db61Sspz addi 10,10,32 1334cff8db61Sspz stvx 27,11,1 1335cff8db61Sspz addi 11,11,32 1336cff8db61Sspz stvx 28,10,1 1337cff8db61Sspz addi 10,10,32 1338cff8db61Sspz stvx 29,11,1 1339cff8db61Sspz addi 11,11,32 1340cff8db61Sspz stvx 30,10,1 1341cff8db61Sspz stvx 31,11,1 1342cff8db61Sspz li 0,-1 1343cff8db61Sspz stw 12,364(1) 1344cff8db61Sspz li 8,0x10 1345cff8db61Sspz stw 26,368(1) 1346cff8db61Sspz li 26,0x20 1347cff8db61Sspz stw 27,372(1) 1348cff8db61Sspz li 27,0x30 1349cff8db61Sspz stw 28,376(1) 1350cff8db61Sspz li 28,0x40 1351cff8db61Sspz stw 29,380(1) 1352cff8db61Sspz li 29,0x50 1353cff8db61Sspz stw 30,384(1) 1354cff8db61Sspz li 30,0x60 1355cff8db61Sspz stw 31,388(1) 1356cff8db61Sspz li 31,0x70 1357cff8db61Sspz mtspr 256,0 1358cff8db61Sspz 1359cff8db61Sspz subi 9,9,3 1360cff8db61Sspz 1361cff8db61Sspz lvx 23,0,6 1362cff8db61Sspz lvx 30,8,6 1363cff8db61Sspz addi 6,6,0x20 1364cff8db61Sspz lvx 31,0,6 1365cff8db61Sspz vperm 23,23,30,10 1366cff8db61Sspz addi 11,1,32+15 1367cff8db61Sspz mtctr 9 1368cff8db61Sspz 1369cff8db61Sspz.Load_ctr32_enc_key: 1370cff8db61Sspz vperm 24,30,31,10 1371cff8db61Sspz lvx 30,8,6 1372cff8db61Sspz addi 6,6,0x20 1373cff8db61Sspz stvx 24,0,11 1374cff8db61Sspz vperm 25,31,30,10 1375cff8db61Sspz lvx 31,0,6 1376cff8db61Sspz stvx 25,8,11 1377cff8db61Sspz addi 11,11,0x20 1378cff8db61Sspz bc 16,0,.Load_ctr32_enc_key 1379cff8db61Sspz 1380cff8db61Sspz lvx 26,8,6 1381cff8db61Sspz vperm 24,30,31,10 1382cff8db61Sspz lvx 27,26,6 1383cff8db61Sspz stvx 24,0,11 1384cff8db61Sspz vperm 25,31,26,10 1385cff8db61Sspz lvx 28,27,6 1386cff8db61Sspz stvx 25,8,11 1387cff8db61Sspz addi 11,1,32+15 1388cff8db61Sspz vperm 26,26,27,10 1389cff8db61Sspz lvx 29,28,6 1390cff8db61Sspz vperm 27,27,28,10 1391cff8db61Sspz lvx 30,29,6 1392cff8db61Sspz vperm 28,28,29,10 1393cff8db61Sspz lvx 31,30,6 1394cff8db61Sspz vperm 29,29,30,10 1395cff8db61Sspz lvx 15,31,6 1396cff8db61Sspz vperm 30,30,31,10 1397cff8db61Sspz lvx 24,0,11 1398cff8db61Sspz vperm 31,31,15,10 1399cff8db61Sspz lvx 25,8,11 1400cff8db61Sspz 1401cff8db61Sspz vadduwm 7,11,11 1402cff8db61Sspz subi 3,3,15 1403cff8db61Sspz slwi 5,5,4 1404cff8db61Sspz 1405cff8db61Sspz vadduwm 16,4,11 1406cff8db61Sspz vadduwm 17,4,7 1407cff8db61Sspz vxor 15,4,23 1408cff8db61Sspz 1409cff8db61Sspz vadduwm 18,16,7 1410cff8db61Sspz vxor 16,16,23 1411cff8db61Sspz 1412cff8db61Sspz vadduwm 19,17,7 1413cff8db61Sspz vxor 17,17,23 1414cff8db61Sspz 1415cff8db61Sspz vadduwm 20,18,7 1416cff8db61Sspz vxor 18,18,23 1417cff8db61Sspz 1418cff8db61Sspz vadduwm 21,19,7 1419cff8db61Sspz vxor 19,19,23 1420cff8db61Sspz vadduwm 22,20,7 1421cff8db61Sspz vxor 20,20,23 1422cff8db61Sspz vadduwm 4,21,7 1423cff8db61Sspz vxor 21,21,23 1424cff8db61Sspz vxor 22,22,23 1425cff8db61Sspz 1426cff8db61Sspz mtctr 9 1427cff8db61Sspz b .Loop_ctr32_enc8x 1428cff8db61Sspz.align 5 1429cff8db61Sspz.Loop_ctr32_enc8x: 1430cff8db61Sspz.long 0x11EFC508 1431cff8db61Sspz.long 0x1210C508 1432cff8db61Sspz.long 0x1231C508 1433cff8db61Sspz.long 0x1252C508 1434cff8db61Sspz.long 0x1273C508 1435cff8db61Sspz.long 0x1294C508 1436cff8db61Sspz.long 0x12B5C508 1437cff8db61Sspz.long 0x12D6C508 1438cff8db61Sspz.Loop_ctr32_enc8x_middle: 1439cff8db61Sspz lvx 24,26,11 1440cff8db61Sspz addi 11,11,0x20 1441cff8db61Sspz 1442cff8db61Sspz.long 0x11EFCD08 1443cff8db61Sspz.long 0x1210CD08 1444cff8db61Sspz.long 0x1231CD08 1445cff8db61Sspz.long 0x1252CD08 1446cff8db61Sspz.long 0x1273CD08 1447cff8db61Sspz.long 0x1294CD08 1448cff8db61Sspz.long 0x12B5CD08 1449cff8db61Sspz.long 0x12D6CD08 1450cff8db61Sspz lvx 25,8,11 1451cff8db61Sspz bc 16,0,.Loop_ctr32_enc8x 1452cff8db61Sspz 1453cff8db61Sspz subic 11,5,256 1454cff8db61Sspz.long 0x11EFC508 1455cff8db61Sspz.long 0x1210C508 1456cff8db61Sspz.long 0x1231C508 1457cff8db61Sspz.long 0x1252C508 1458cff8db61Sspz.long 0x1273C508 1459cff8db61Sspz.long 0x1294C508 1460cff8db61Sspz.long 0x12B5C508 1461cff8db61Sspz.long 0x12D6C508 1462cff8db61Sspz 1463cff8db61Sspz subfe 0,0,0 1464cff8db61Sspz.long 0x11EFCD08 1465cff8db61Sspz.long 0x1210CD08 1466cff8db61Sspz.long 0x1231CD08 1467cff8db61Sspz.long 0x1252CD08 1468cff8db61Sspz.long 0x1273CD08 1469cff8db61Sspz.long 0x1294CD08 1470cff8db61Sspz.long 0x12B5CD08 1471cff8db61Sspz.long 0x12D6CD08 1472cff8db61Sspz 1473cff8db61Sspz and 0,0,11 1474cff8db61Sspz addi 11,1,32+15 1475cff8db61Sspz.long 0x11EFD508 1476cff8db61Sspz.long 0x1210D508 1477cff8db61Sspz.long 0x1231D508 1478cff8db61Sspz.long 0x1252D508 1479cff8db61Sspz.long 0x1273D508 1480cff8db61Sspz.long 0x1294D508 1481cff8db61Sspz.long 0x12B5D508 1482cff8db61Sspz.long 0x12D6D508 1483cff8db61Sspz lvx 24,0,11 1484cff8db61Sspz 1485cff8db61Sspz subic 5,5,129 1486cff8db61Sspz.long 0x11EFDD08 1487cff8db61Sspz addi 5,5,1 1488cff8db61Sspz.long 0x1210DD08 1489cff8db61Sspz.long 0x1231DD08 1490cff8db61Sspz.long 0x1252DD08 1491cff8db61Sspz.long 0x1273DD08 1492cff8db61Sspz.long 0x1294DD08 1493cff8db61Sspz.long 0x12B5DD08 1494cff8db61Sspz.long 0x12D6DD08 1495cff8db61Sspz lvx 25,8,11 1496cff8db61Sspz 1497cff8db61Sspz.long 0x11EFE508 1498cff8db61Sspz.long 0x7C001E99 1499cff8db61Sspz.long 0x1210E508 1500cff8db61Sspz.long 0x7C281E99 1501cff8db61Sspz.long 0x1231E508 1502cff8db61Sspz.long 0x7C5A1E99 1503cff8db61Sspz.long 0x1252E508 1504cff8db61Sspz.long 0x7C7B1E99 1505cff8db61Sspz.long 0x1273E508 1506cff8db61Sspz.long 0x7D5C1E99 1507cff8db61Sspz.long 0x1294E508 1508cff8db61Sspz.long 0x7D9D1E99 1509cff8db61Sspz.long 0x12B5E508 1510cff8db61Sspz.long 0x7DBE1E99 1511cff8db61Sspz.long 0x12D6E508 1512cff8db61Sspz.long 0x7DDF1E99 1513cff8db61Sspz addi 3,3,0x80 1514cff8db61Sspz 1515cff8db61Sspz.long 0x11EFED08 1516cff8db61Sspz 1517cff8db61Sspz.long 0x1210ED08 1518cff8db61Sspz 1519cff8db61Sspz.long 0x1231ED08 1520cff8db61Sspz 1521cff8db61Sspz.long 0x1252ED08 1522cff8db61Sspz 1523cff8db61Sspz.long 0x1273ED08 1524cff8db61Sspz 1525cff8db61Sspz.long 0x1294ED08 1526cff8db61Sspz 1527cff8db61Sspz.long 0x12B5ED08 1528cff8db61Sspz 1529cff8db61Sspz.long 0x12D6ED08 1530cff8db61Sspz 1531cff8db61Sspz 1532cff8db61Sspz add 3,3,0 1533cff8db61Sspz 1534cff8db61Sspz 1535cff8db61Sspz 1536cff8db61Sspz subfe. 0,0,0 1537cff8db61Sspz.long 0x11EFF508 1538cff8db61Sspz vxor 0,0,31 1539cff8db61Sspz.long 0x1210F508 1540cff8db61Sspz vxor 1,1,31 1541cff8db61Sspz.long 0x1231F508 1542cff8db61Sspz vxor 2,2,31 1543cff8db61Sspz.long 0x1252F508 1544cff8db61Sspz vxor 3,3,31 1545cff8db61Sspz.long 0x1273F508 1546cff8db61Sspz vxor 10,10,31 1547cff8db61Sspz.long 0x1294F508 1548cff8db61Sspz vxor 12,12,31 1549cff8db61Sspz.long 0x12B5F508 1550cff8db61Sspz vxor 13,13,31 1551cff8db61Sspz.long 0x12D6F508 1552cff8db61Sspz vxor 14,14,31 1553cff8db61Sspz 1554cff8db61Sspz bne .Lctr32_enc8x_break 1555cff8db61Sspz 1556cff8db61Sspz.long 0x100F0509 1557cff8db61Sspz.long 0x10300D09 1558cff8db61Sspz vadduwm 16,4,11 1559cff8db61Sspz.long 0x10511509 1560cff8db61Sspz vadduwm 17,4,7 1561cff8db61Sspz vxor 15,4,23 1562cff8db61Sspz.long 0x10721D09 1563cff8db61Sspz vadduwm 18,16,7 1564cff8db61Sspz vxor 16,16,23 1565cff8db61Sspz.long 0x11535509 1566cff8db61Sspz vadduwm 19,17,7 1567cff8db61Sspz vxor 17,17,23 1568cff8db61Sspz.long 0x11946509 1569cff8db61Sspz vadduwm 20,18,7 1570cff8db61Sspz vxor 18,18,23 1571cff8db61Sspz.long 0x11B56D09 1572cff8db61Sspz vadduwm 21,19,7 1573cff8db61Sspz vxor 19,19,23 1574cff8db61Sspz.long 0x11D67509 1575cff8db61Sspz vadduwm 22,20,7 1576cff8db61Sspz vxor 20,20,23 1577cff8db61Sspz 1578cff8db61Sspz vadduwm 4,21,7 1579cff8db61Sspz vxor 21,21,23 1580cff8db61Sspz 1581cff8db61Sspz vxor 22,22,23 1582cff8db61Sspz mtctr 9 1583cff8db61Sspz 1584cff8db61Sspz.long 0x11EFC508 1585cff8db61Sspz.long 0x7C002799 1586cff8db61Sspz 1587cff8db61Sspz.long 0x1210C508 1588cff8db61Sspz.long 0x7C282799 1589cff8db61Sspz 1590cff8db61Sspz.long 0x1231C508 1591cff8db61Sspz.long 0x7C5A2799 1592cff8db61Sspz 1593cff8db61Sspz.long 0x1252C508 1594cff8db61Sspz.long 0x7C7B2799 1595cff8db61Sspz 1596cff8db61Sspz.long 0x1273C508 1597cff8db61Sspz.long 0x7D5C2799 1598cff8db61Sspz 1599cff8db61Sspz.long 0x1294C508 1600cff8db61Sspz.long 0x7D9D2799 1601cff8db61Sspz 1602cff8db61Sspz.long 0x12B5C508 1603cff8db61Sspz.long 0x7DBE2799 1604cff8db61Sspz.long 0x12D6C508 1605cff8db61Sspz.long 0x7DDF2799 1606cff8db61Sspz addi 4,4,0x80 1607cff8db61Sspz 1608cff8db61Sspz b .Loop_ctr32_enc8x_middle 1609cff8db61Sspz 1610cff8db61Sspz.align 5 1611cff8db61Sspz.Lctr32_enc8x_break: 1612cff8db61Sspz cmpwi 5,-0x60 1613cff8db61Sspz blt .Lctr32_enc8x_one 1614cff8db61Sspz nop 1615cff8db61Sspz beq .Lctr32_enc8x_two 1616cff8db61Sspz cmpwi 5,-0x40 1617cff8db61Sspz blt .Lctr32_enc8x_three 1618cff8db61Sspz nop 1619cff8db61Sspz beq .Lctr32_enc8x_four 1620cff8db61Sspz cmpwi 5,-0x20 1621cff8db61Sspz blt .Lctr32_enc8x_five 1622cff8db61Sspz nop 1623cff8db61Sspz beq .Lctr32_enc8x_six 1624cff8db61Sspz cmpwi 5,0x00 1625cff8db61Sspz blt .Lctr32_enc8x_seven 1626cff8db61Sspz 1627cff8db61Sspz.Lctr32_enc8x_eight: 1628cff8db61Sspz.long 0x11EF0509 1629cff8db61Sspz.long 0x12100D09 1630cff8db61Sspz.long 0x12311509 1631cff8db61Sspz.long 0x12521D09 1632cff8db61Sspz.long 0x12735509 1633cff8db61Sspz.long 0x12946509 1634cff8db61Sspz.long 0x12B56D09 1635cff8db61Sspz.long 0x12D67509 1636cff8db61Sspz 1637cff8db61Sspz 1638cff8db61Sspz 1639cff8db61Sspz.long 0x7DE02799 1640cff8db61Sspz 1641cff8db61Sspz.long 0x7E082799 1642cff8db61Sspz 1643cff8db61Sspz.long 0x7E3A2799 1644cff8db61Sspz 1645cff8db61Sspz.long 0x7E5B2799 1646cff8db61Sspz 1647cff8db61Sspz.long 0x7E7C2799 1648cff8db61Sspz 1649cff8db61Sspz.long 0x7E9D2799 1650cff8db61Sspz 1651cff8db61Sspz.long 0x7EBE2799 1652cff8db61Sspz.long 0x7EDF2799 1653cff8db61Sspz addi 4,4,0x80 1654cff8db61Sspz b .Lctr32_enc8x_done 1655cff8db61Sspz 1656cff8db61Sspz.align 5 1657cff8db61Sspz.Lctr32_enc8x_seven: 1658cff8db61Sspz.long 0x11EF0D09 1659cff8db61Sspz.long 0x12101509 1660cff8db61Sspz.long 0x12311D09 1661cff8db61Sspz.long 0x12525509 1662cff8db61Sspz.long 0x12736509 1663cff8db61Sspz.long 0x12946D09 1664cff8db61Sspz.long 0x12B57509 1665cff8db61Sspz 1666cff8db61Sspz 1667cff8db61Sspz 1668cff8db61Sspz.long 0x7DE02799 1669cff8db61Sspz 1670cff8db61Sspz.long 0x7E082799 1671cff8db61Sspz 1672cff8db61Sspz.long 0x7E3A2799 1673cff8db61Sspz 1674cff8db61Sspz.long 0x7E5B2799 1675cff8db61Sspz 1676cff8db61Sspz.long 0x7E7C2799 1677cff8db61Sspz 1678cff8db61Sspz.long 0x7E9D2799 1679cff8db61Sspz.long 0x7EBE2799 1680cff8db61Sspz addi 4,4,0x70 1681cff8db61Sspz b .Lctr32_enc8x_done 1682cff8db61Sspz 1683cff8db61Sspz.align 5 1684cff8db61Sspz.Lctr32_enc8x_six: 1685cff8db61Sspz.long 0x11EF1509 1686cff8db61Sspz.long 0x12101D09 1687cff8db61Sspz.long 0x12315509 1688cff8db61Sspz.long 0x12526509 1689cff8db61Sspz.long 0x12736D09 1690cff8db61Sspz.long 0x12947509 1691cff8db61Sspz 1692cff8db61Sspz 1693cff8db61Sspz 1694cff8db61Sspz.long 0x7DE02799 1695cff8db61Sspz 1696cff8db61Sspz.long 0x7E082799 1697cff8db61Sspz 1698cff8db61Sspz.long 0x7E3A2799 1699cff8db61Sspz 1700cff8db61Sspz.long 0x7E5B2799 1701cff8db61Sspz 1702cff8db61Sspz.long 0x7E7C2799 1703cff8db61Sspz.long 0x7E9D2799 1704cff8db61Sspz addi 4,4,0x60 1705cff8db61Sspz b .Lctr32_enc8x_done 1706cff8db61Sspz 1707cff8db61Sspz.align 5 1708cff8db61Sspz.Lctr32_enc8x_five: 1709cff8db61Sspz.long 0x11EF1D09 1710cff8db61Sspz.long 0x12105509 1711cff8db61Sspz.long 0x12316509 1712cff8db61Sspz.long 0x12526D09 1713cff8db61Sspz.long 0x12737509 1714cff8db61Sspz 1715cff8db61Sspz 1716cff8db61Sspz 1717cff8db61Sspz.long 0x7DE02799 1718cff8db61Sspz 1719cff8db61Sspz.long 0x7E082799 1720cff8db61Sspz 1721cff8db61Sspz.long 0x7E3A2799 1722cff8db61Sspz 1723cff8db61Sspz.long 0x7E5B2799 1724cff8db61Sspz.long 0x7E7C2799 1725cff8db61Sspz addi 4,4,0x50 1726cff8db61Sspz b .Lctr32_enc8x_done 1727cff8db61Sspz 1728cff8db61Sspz.align 5 1729cff8db61Sspz.Lctr32_enc8x_four: 1730cff8db61Sspz.long 0x11EF5509 1731cff8db61Sspz.long 0x12106509 1732cff8db61Sspz.long 0x12316D09 1733cff8db61Sspz.long 0x12527509 1734cff8db61Sspz 1735cff8db61Sspz 1736cff8db61Sspz 1737cff8db61Sspz.long 0x7DE02799 1738cff8db61Sspz 1739cff8db61Sspz.long 0x7E082799 1740cff8db61Sspz 1741cff8db61Sspz.long 0x7E3A2799 1742cff8db61Sspz.long 0x7E5B2799 1743cff8db61Sspz addi 4,4,0x40 1744cff8db61Sspz b .Lctr32_enc8x_done 1745cff8db61Sspz 1746cff8db61Sspz.align 5 1747cff8db61Sspz.Lctr32_enc8x_three: 1748cff8db61Sspz.long 0x11EF6509 1749cff8db61Sspz.long 0x12106D09 1750cff8db61Sspz.long 0x12317509 1751cff8db61Sspz 1752cff8db61Sspz 1753cff8db61Sspz 1754cff8db61Sspz.long 0x7DE02799 1755cff8db61Sspz 1756cff8db61Sspz.long 0x7E082799 1757cff8db61Sspz.long 0x7E3A2799 1758cff8db61Sspz addi 4,4,0x30 175952629741Schristos b .Lctr32_enc8x_done 1760cff8db61Sspz 1761cff8db61Sspz.align 5 1762cff8db61Sspz.Lctr32_enc8x_two: 1763cff8db61Sspz.long 0x11EF6D09 1764cff8db61Sspz.long 0x12107509 1765cff8db61Sspz 1766cff8db61Sspz 1767cff8db61Sspz 1768cff8db61Sspz.long 0x7DE02799 1769cff8db61Sspz.long 0x7E082799 1770cff8db61Sspz addi 4,4,0x20 177152629741Schristos b .Lctr32_enc8x_done 1772cff8db61Sspz 1773cff8db61Sspz.align 5 1774cff8db61Sspz.Lctr32_enc8x_one: 1775cff8db61Sspz.long 0x11EF7509 1776cff8db61Sspz 1777cff8db61Sspz 1778cff8db61Sspz.long 0x7DE02799 1779cff8db61Sspz addi 4,4,0x10 1780cff8db61Sspz 1781cff8db61Sspz.Lctr32_enc8x_done: 1782cff8db61Sspz li 10,47 1783cff8db61Sspz li 11,63 1784cff8db61Sspz stvx 6,10,1 1785cff8db61Sspz addi 10,10,32 1786cff8db61Sspz stvx 6,11,1 1787cff8db61Sspz addi 11,11,32 1788cff8db61Sspz stvx 6,10,1 1789cff8db61Sspz addi 10,10,32 1790cff8db61Sspz stvx 6,11,1 1791cff8db61Sspz addi 11,11,32 1792cff8db61Sspz stvx 6,10,1 1793cff8db61Sspz addi 10,10,32 1794cff8db61Sspz stvx 6,11,1 1795cff8db61Sspz addi 11,11,32 1796cff8db61Sspz stvx 6,10,1 1797cff8db61Sspz addi 10,10,32 1798cff8db61Sspz stvx 6,11,1 1799cff8db61Sspz addi 11,11,32 1800cff8db61Sspz 1801cff8db61Sspz mtspr 256,12 1802cff8db61Sspz lvx 20,10,1 1803cff8db61Sspz addi 10,10,32 1804cff8db61Sspz lvx 21,11,1 1805cff8db61Sspz addi 11,11,32 1806cff8db61Sspz lvx 22,10,1 1807cff8db61Sspz addi 10,10,32 1808cff8db61Sspz lvx 23,11,1 1809cff8db61Sspz addi 11,11,32 1810cff8db61Sspz lvx 24,10,1 1811cff8db61Sspz addi 10,10,32 1812cff8db61Sspz lvx 25,11,1 1813cff8db61Sspz addi 11,11,32 1814cff8db61Sspz lvx 26,10,1 1815cff8db61Sspz addi 10,10,32 1816cff8db61Sspz lvx 27,11,1 1817cff8db61Sspz addi 11,11,32 1818cff8db61Sspz lvx 28,10,1 1819cff8db61Sspz addi 10,10,32 1820cff8db61Sspz lvx 29,11,1 1821cff8db61Sspz addi 11,11,32 1822cff8db61Sspz lvx 30,10,1 1823cff8db61Sspz lvx 31,11,1 1824cff8db61Sspz lwz 26,368(1) 1825cff8db61Sspz lwz 27,372(1) 1826cff8db61Sspz lwz 28,376(1) 1827cff8db61Sspz lwz 29,380(1) 1828cff8db61Sspz lwz 30,384(1) 1829cff8db61Sspz lwz 31,388(1) 1830cff8db61Sspz addi 1,1,392 1831cff8db61Sspz blr 1832cff8db61Sspz.long 0 1833cff8db61Sspz.byte 0,12,0x04,0,0x80,6,6,0 1834cff8db61Sspz.long 0 1835cff8db61Sspz 1836e7039be7Schristos.globl aes_p8_xts_encrypt 1837e7039be7Schristos.type aes_p8_xts_encrypt,@function 1838e7039be7Schristos.align 5 1839e7039be7Schristosaes_p8_xts_encrypt: 1840e7039be7Schristos mr 10,3 1841e7039be7Schristos li 3,-1 1842e7039be7Schristos cmplwi 5,16 1843e7039be7Schristos bltlr 1844e7039be7Schristos 1845e7039be7Schristos lis 0,0xfff0 1846e7039be7Schristos mfspr 12,256 1847e7039be7Schristos li 11,0 1848e7039be7Schristos mtspr 256,0 1849e7039be7Schristos 1850e7039be7Schristos vspltisb 9,0x07 1851e7039be7Schristos 1852e7039be7Schristos 1853e7039be7Schristos 1854e7039be7Schristos 1855e7039be7Schristos li 3,15 1856e7039be7Schristos lvx 8,0,8 1857e7039be7Schristos lvsl 5,0,8 1858e7039be7Schristos lvx 4,3,8 1859e7039be7Schristos 1860e7039be7Schristos vperm 8,8,4,5 1861e7039be7Schristos 1862e7039be7Schristos neg 11,10 1863e7039be7Schristos lvsr 5,0,11 1864e7039be7Schristos lvx 2,0,10 1865e7039be7Schristos addi 10,10,15 1866e7039be7Schristos 1867e7039be7Schristos 1868e7039be7Schristos cmplwi 7,0 1869e7039be7Schristos beq .Lxts_enc_no_key2 1870e7039be7Schristos 1871e7039be7Schristos lvsl 7,0,7 1872e7039be7Schristos lwz 9,240(7) 1873e7039be7Schristos srwi 9,9,1 1874e7039be7Schristos subi 9,9,1 1875e7039be7Schristos li 3,16 1876e7039be7Schristos 1877e7039be7Schristos lvx 0,0,7 1878e7039be7Schristos lvx 1,3,7 1879e7039be7Schristos addi 3,3,16 1880e7039be7Schristos vperm 0,0,1,7 1881e7039be7Schristos vxor 8,8,0 1882e7039be7Schristos lvx 0,3,7 1883e7039be7Schristos addi 3,3,16 1884e7039be7Schristos mtctr 9 1885e7039be7Schristos 1886e7039be7Schristos.Ltweak_xts_enc: 1887e7039be7Schristos vperm 1,1,0,7 1888e7039be7Schristos.long 0x11080D08 1889e7039be7Schristos lvx 1,3,7 1890e7039be7Schristos addi 3,3,16 1891e7039be7Schristos vperm 0,0,1,7 1892e7039be7Schristos.long 0x11080508 1893e7039be7Schristos lvx 0,3,7 1894e7039be7Schristos addi 3,3,16 1895e7039be7Schristos bc 16,0,.Ltweak_xts_enc 1896e7039be7Schristos 1897e7039be7Schristos vperm 1,1,0,7 1898e7039be7Schristos.long 0x11080D08 1899e7039be7Schristos lvx 1,3,7 1900e7039be7Schristos vperm 0,0,1,7 1901e7039be7Schristos.long 0x11080509 1902e7039be7Schristos 1903e7039be7Schristos li 8,0 1904e7039be7Schristos b .Lxts_enc 1905e7039be7Schristos 1906e7039be7Schristos.Lxts_enc_no_key2: 1907e7039be7Schristos li 3,-16 1908e7039be7Schristos and 5,5,3 1909e7039be7Schristos 1910e7039be7Schristos 1911e7039be7Schristos.Lxts_enc: 1912e7039be7Schristos lvx 4,0,10 1913e7039be7Schristos addi 10,10,16 1914e7039be7Schristos 1915e7039be7Schristos lvsl 7,0,6 1916e7039be7Schristos lwz 9,240(6) 1917e7039be7Schristos srwi 9,9,1 1918e7039be7Schristos subi 9,9,1 1919e7039be7Schristos li 3,16 1920e7039be7Schristos 1921e7039be7Schristos vslb 10,9,9 1922e7039be7Schristos vor 10,10,9 1923e7039be7Schristos vspltisb 11,1 1924e7039be7Schristos vsldoi 10,10,11,15 1925e7039be7Schristos 1926e7039be7Schristos cmplwi 5,96 1927e7039be7Schristos bge _aesp8_xts_encrypt6x 1928e7039be7Schristos 1929e7039be7Schristos andi. 7,5,15 1930e7039be7Schristos subic 0,5,32 1931e7039be7Schristos subi 7,7,16 1932e7039be7Schristos subfe 0,0,0 1933e7039be7Schristos and 0,0,7 1934e7039be7Schristos add 10,10,0 1935e7039be7Schristos 1936e7039be7Schristos lvx 0,0,6 1937e7039be7Schristos lvx 1,3,6 1938e7039be7Schristos addi 3,3,16 1939e7039be7Schristos vperm 2,2,4,5 1940e7039be7Schristos vperm 0,0,1,7 1941e7039be7Schristos vxor 2,2,8 1942e7039be7Schristos vxor 2,2,0 1943e7039be7Schristos lvx 0,3,6 1944e7039be7Schristos addi 3,3,16 1945e7039be7Schristos mtctr 9 1946e7039be7Schristos b .Loop_xts_enc 1947e7039be7Schristos 1948e7039be7Schristos.align 5 1949e7039be7Schristos.Loop_xts_enc: 1950e7039be7Schristos vperm 1,1,0,7 1951e7039be7Schristos.long 0x10420D08 1952e7039be7Schristos lvx 1,3,6 1953e7039be7Schristos addi 3,3,16 1954e7039be7Schristos vperm 0,0,1,7 1955e7039be7Schristos.long 0x10420508 1956e7039be7Schristos lvx 0,3,6 1957e7039be7Schristos addi 3,3,16 1958e7039be7Schristos bc 16,0,.Loop_xts_enc 1959e7039be7Schristos 1960e7039be7Schristos vperm 1,1,0,7 1961e7039be7Schristos.long 0x10420D08 1962e7039be7Schristos lvx 1,3,6 1963e7039be7Schristos li 3,16 1964e7039be7Schristos vperm 0,0,1,7 1965e7039be7Schristos vxor 0,0,8 1966e7039be7Schristos.long 0x10620509 1967e7039be7Schristos 1968e7039be7Schristos 1969e7039be7Schristos nop 1970e7039be7Schristos 1971e7039be7Schristos.long 0x7C602799 1972e7039be7Schristos addi 4,4,16 1973e7039be7Schristos 1974e7039be7Schristos subic. 5,5,16 1975e7039be7Schristos beq .Lxts_enc_done 1976e7039be7Schristos 1977e7039be7Schristos vor 2,4,4 1978e7039be7Schristos lvx 4,0,10 1979e7039be7Schristos addi 10,10,16 1980e7039be7Schristos lvx 0,0,6 1981e7039be7Schristos lvx 1,3,6 1982e7039be7Schristos addi 3,3,16 1983e7039be7Schristos 1984e7039be7Schristos subic 0,5,32 1985e7039be7Schristos subfe 0,0,0 1986e7039be7Schristos and 0,0,7 1987e7039be7Schristos add 10,10,0 1988e7039be7Schristos 1989e7039be7Schristos vsrab 11,8,9 1990e7039be7Schristos vaddubm 8,8,8 1991e7039be7Schristos vsldoi 11,11,11,15 1992e7039be7Schristos vand 11,11,10 1993e7039be7Schristos vxor 8,8,11 1994e7039be7Schristos 1995e7039be7Schristos vperm 2,2,4,5 1996e7039be7Schristos vperm 0,0,1,7 1997e7039be7Schristos vxor 2,2,8 1998e7039be7Schristos vxor 3,3,0 1999e7039be7Schristos vxor 2,2,0 2000e7039be7Schristos lvx 0,3,6 2001e7039be7Schristos addi 3,3,16 2002e7039be7Schristos 2003e7039be7Schristos mtctr 9 2004e7039be7Schristos cmplwi 5,16 2005e7039be7Schristos bge .Loop_xts_enc 2006e7039be7Schristos 2007e7039be7Schristos vxor 3,3,8 2008e7039be7Schristos lvsr 5,0,5 2009e7039be7Schristos vxor 4,4,4 2010e7039be7Schristos vspltisb 11,-1 2011e7039be7Schristos vperm 4,4,11,5 2012e7039be7Schristos vsel 2,2,3,4 2013e7039be7Schristos 2014e7039be7Schristos subi 11,4,17 2015e7039be7Schristos subi 4,4,16 2016e7039be7Schristos mtctr 5 2017e7039be7Schristos li 5,16 2018e7039be7Schristos.Loop_xts_enc_steal: 2019e7039be7Schristos lbzu 0,1(11) 2020e7039be7Schristos stb 0,16(11) 2021e7039be7Schristos bc 16,0,.Loop_xts_enc_steal 2022e7039be7Schristos 2023e7039be7Schristos mtctr 9 2024e7039be7Schristos b .Loop_xts_enc 2025e7039be7Schristos 2026e7039be7Schristos.Lxts_enc_done: 2027e7039be7Schristos cmplwi 8,0 2028e7039be7Schristos beq .Lxts_enc_ret 2029e7039be7Schristos 2030e7039be7Schristos vsrab 11,8,9 2031e7039be7Schristos vaddubm 8,8,8 2032e7039be7Schristos vsldoi 11,11,11,15 2033e7039be7Schristos vand 11,11,10 2034e7039be7Schristos vxor 8,8,11 2035e7039be7Schristos 2036e7039be7Schristos 2037e7039be7Schristos.long 0x7D004799 2038e7039be7Schristos 2039e7039be7Schristos.Lxts_enc_ret: 2040e7039be7Schristos mtspr 256,12 2041e7039be7Schristos li 3,0 2042e7039be7Schristos blr 2043e7039be7Schristos.long 0 2044e7039be7Schristos.byte 0,12,0x04,0,0x80,6,6,0 2045e7039be7Schristos.long 0 2046e7039be7Schristos 2047e7039be7Schristos 2048e7039be7Schristos.globl aes_p8_xts_decrypt 2049e7039be7Schristos.type aes_p8_xts_decrypt,@function 2050e7039be7Schristos.align 5 2051e7039be7Schristosaes_p8_xts_decrypt: 2052e7039be7Schristos mr 10,3 2053e7039be7Schristos li 3,-1 2054e7039be7Schristos cmplwi 5,16 2055e7039be7Schristos bltlr 2056e7039be7Schristos 2057e7039be7Schristos lis 0,0xfff8 2058e7039be7Schristos mfspr 12,256 2059e7039be7Schristos li 11,0 2060e7039be7Schristos mtspr 256,0 2061e7039be7Schristos 2062e7039be7Schristos andi. 0,5,15 2063e7039be7Schristos neg 0,0 2064e7039be7Schristos andi. 0,0,16 2065e7039be7Schristos sub 5,5,0 2066e7039be7Schristos 2067e7039be7Schristos vspltisb 9,0x07 2068e7039be7Schristos 2069e7039be7Schristos 2070e7039be7Schristos 2071e7039be7Schristos 2072e7039be7Schristos li 3,15 2073e7039be7Schristos lvx 8,0,8 2074e7039be7Schristos lvsl 5,0,8 2075e7039be7Schristos lvx 4,3,8 2076e7039be7Schristos 2077e7039be7Schristos vperm 8,8,4,5 2078e7039be7Schristos 2079e7039be7Schristos neg 11,10 2080e7039be7Schristos lvsr 5,0,11 2081e7039be7Schristos lvx 2,0,10 2082e7039be7Schristos addi 10,10,15 2083e7039be7Schristos 2084e7039be7Schristos 2085e7039be7Schristos cmplwi 7,0 2086e7039be7Schristos beq .Lxts_dec_no_key2 2087e7039be7Schristos 2088e7039be7Schristos lvsl 7,0,7 2089e7039be7Schristos lwz 9,240(7) 2090e7039be7Schristos srwi 9,9,1 2091e7039be7Schristos subi 9,9,1 2092e7039be7Schristos li 3,16 2093e7039be7Schristos 2094e7039be7Schristos lvx 0,0,7 2095e7039be7Schristos lvx 1,3,7 2096e7039be7Schristos addi 3,3,16 2097e7039be7Schristos vperm 0,0,1,7 2098e7039be7Schristos vxor 8,8,0 2099e7039be7Schristos lvx 0,3,7 2100e7039be7Schristos addi 3,3,16 2101e7039be7Schristos mtctr 9 2102e7039be7Schristos 2103e7039be7Schristos.Ltweak_xts_dec: 2104e7039be7Schristos vperm 1,1,0,7 2105e7039be7Schristos.long 0x11080D08 2106e7039be7Schristos lvx 1,3,7 2107e7039be7Schristos addi 3,3,16 2108e7039be7Schristos vperm 0,0,1,7 2109e7039be7Schristos.long 0x11080508 2110e7039be7Schristos lvx 0,3,7 2111e7039be7Schristos addi 3,3,16 2112e7039be7Schristos bc 16,0,.Ltweak_xts_dec 2113e7039be7Schristos 2114e7039be7Schristos vperm 1,1,0,7 2115e7039be7Schristos.long 0x11080D08 2116e7039be7Schristos lvx 1,3,7 2117e7039be7Schristos vperm 0,0,1,7 2118e7039be7Schristos.long 0x11080509 2119e7039be7Schristos 2120e7039be7Schristos li 8,0 2121e7039be7Schristos b .Lxts_dec 2122e7039be7Schristos 2123e7039be7Schristos.Lxts_dec_no_key2: 2124e7039be7Schristos neg 3,5 2125e7039be7Schristos andi. 3,3,15 2126e7039be7Schristos add 5,5,3 2127e7039be7Schristos 2128e7039be7Schristos 2129e7039be7Schristos.Lxts_dec: 2130e7039be7Schristos lvx 4,0,10 2131e7039be7Schristos addi 10,10,16 2132e7039be7Schristos 2133e7039be7Schristos lvsl 7,0,6 2134e7039be7Schristos lwz 9,240(6) 2135e7039be7Schristos srwi 9,9,1 2136e7039be7Schristos subi 9,9,1 2137e7039be7Schristos li 3,16 2138e7039be7Schristos 2139e7039be7Schristos vslb 10,9,9 2140e7039be7Schristos vor 10,10,9 2141e7039be7Schristos vspltisb 11,1 2142e7039be7Schristos vsldoi 10,10,11,15 2143e7039be7Schristos 2144e7039be7Schristos cmplwi 5,96 2145e7039be7Schristos bge _aesp8_xts_decrypt6x 2146e7039be7Schristos 2147e7039be7Schristos lvx 0,0,6 2148e7039be7Schristos lvx 1,3,6 2149e7039be7Schristos addi 3,3,16 2150e7039be7Schristos vperm 2,2,4,5 2151e7039be7Schristos vperm 0,0,1,7 2152e7039be7Schristos vxor 2,2,8 2153e7039be7Schristos vxor 2,2,0 2154e7039be7Schristos lvx 0,3,6 2155e7039be7Schristos addi 3,3,16 2156e7039be7Schristos mtctr 9 2157e7039be7Schristos 2158e7039be7Schristos cmplwi 5,16 2159e7039be7Schristos blt .Ltail_xts_dec 2160e7039be7Schristos b .Loop_xts_dec 2161e7039be7Schristos 2162e7039be7Schristos.align 5 2163e7039be7Schristos.Loop_xts_dec: 2164e7039be7Schristos vperm 1,1,0,7 2165e7039be7Schristos.long 0x10420D48 2166e7039be7Schristos lvx 1,3,6 2167e7039be7Schristos addi 3,3,16 2168e7039be7Schristos vperm 0,0,1,7 2169e7039be7Schristos.long 0x10420548 2170e7039be7Schristos lvx 0,3,6 2171e7039be7Schristos addi 3,3,16 2172e7039be7Schristos bc 16,0,.Loop_xts_dec 2173e7039be7Schristos 2174e7039be7Schristos vperm 1,1,0,7 2175e7039be7Schristos.long 0x10420D48 2176e7039be7Schristos lvx 1,3,6 2177e7039be7Schristos li 3,16 2178e7039be7Schristos vperm 0,0,1,7 2179e7039be7Schristos vxor 0,0,8 2180e7039be7Schristos.long 0x10620549 2181e7039be7Schristos 2182e7039be7Schristos 2183e7039be7Schristos nop 2184e7039be7Schristos 2185e7039be7Schristos.long 0x7C602799 2186e7039be7Schristos addi 4,4,16 2187e7039be7Schristos 2188e7039be7Schristos subic. 5,5,16 2189e7039be7Schristos beq .Lxts_dec_done 2190e7039be7Schristos 2191e7039be7Schristos vor 2,4,4 2192e7039be7Schristos lvx 4,0,10 2193e7039be7Schristos addi 10,10,16 2194e7039be7Schristos lvx 0,0,6 2195e7039be7Schristos lvx 1,3,6 2196e7039be7Schristos addi 3,3,16 2197e7039be7Schristos 2198e7039be7Schristos vsrab 11,8,9 2199e7039be7Schristos vaddubm 8,8,8 2200e7039be7Schristos vsldoi 11,11,11,15 2201e7039be7Schristos vand 11,11,10 2202e7039be7Schristos vxor 8,8,11 2203e7039be7Schristos 2204e7039be7Schristos vperm 2,2,4,5 2205e7039be7Schristos vperm 0,0,1,7 2206e7039be7Schristos vxor 2,2,8 2207e7039be7Schristos vxor 2,2,0 2208e7039be7Schristos lvx 0,3,6 2209e7039be7Schristos addi 3,3,16 2210e7039be7Schristos 2211e7039be7Schristos mtctr 9 2212e7039be7Schristos cmplwi 5,16 2213e7039be7Schristos bge .Loop_xts_dec 2214e7039be7Schristos 2215e7039be7Schristos.Ltail_xts_dec: 2216e7039be7Schristos vsrab 11,8,9 2217e7039be7Schristos vaddubm 12,8,8 2218e7039be7Schristos vsldoi 11,11,11,15 2219e7039be7Schristos vand 11,11,10 2220e7039be7Schristos vxor 12,12,11 2221e7039be7Schristos 2222e7039be7Schristos subi 10,10,16 2223e7039be7Schristos add 10,10,5 2224e7039be7Schristos 2225e7039be7Schristos vxor 2,2,8 2226e7039be7Schristos vxor 2,2,12 2227e7039be7Schristos 2228e7039be7Schristos.Loop_xts_dec_short: 2229e7039be7Schristos vperm 1,1,0,7 2230e7039be7Schristos.long 0x10420D48 2231e7039be7Schristos lvx 1,3,6 2232e7039be7Schristos addi 3,3,16 2233e7039be7Schristos vperm 0,0,1,7 2234e7039be7Schristos.long 0x10420548 2235e7039be7Schristos lvx 0,3,6 2236e7039be7Schristos addi 3,3,16 2237e7039be7Schristos bc 16,0,.Loop_xts_dec_short 2238e7039be7Schristos 2239e7039be7Schristos vperm 1,1,0,7 2240e7039be7Schristos.long 0x10420D48 2241e7039be7Schristos lvx 1,3,6 2242e7039be7Schristos li 3,16 2243e7039be7Schristos vperm 0,0,1,7 2244e7039be7Schristos vxor 0,0,12 2245e7039be7Schristos.long 0x10620549 2246e7039be7Schristos 2247e7039be7Schristos 2248e7039be7Schristos nop 2249e7039be7Schristos 2250e7039be7Schristos.long 0x7C602799 2251e7039be7Schristos 2252e7039be7Schristos vor 2,4,4 2253e7039be7Schristos lvx 4,0,10 2254e7039be7Schristos 2255e7039be7Schristos lvx 0,0,6 2256e7039be7Schristos lvx 1,3,6 2257e7039be7Schristos addi 3,3,16 2258e7039be7Schristos vperm 2,2,4,5 2259e7039be7Schristos vperm 0,0,1,7 2260e7039be7Schristos 2261e7039be7Schristos lvsr 5,0,5 2262e7039be7Schristos vxor 4,4,4 2263e7039be7Schristos vspltisb 11,-1 2264e7039be7Schristos vperm 4,4,11,5 2265e7039be7Schristos vsel 2,2,3,4 2266e7039be7Schristos 2267e7039be7Schristos vxor 0,0,8 2268e7039be7Schristos vxor 2,2,0 2269e7039be7Schristos lvx 0,3,6 2270e7039be7Schristos addi 3,3,16 2271e7039be7Schristos 2272e7039be7Schristos subi 11,4,1 2273e7039be7Schristos mtctr 5 2274e7039be7Schristos li 5,16 2275e7039be7Schristos.Loop_xts_dec_steal: 2276e7039be7Schristos lbzu 0,1(11) 2277e7039be7Schristos stb 0,16(11) 2278e7039be7Schristos bc 16,0,.Loop_xts_dec_steal 2279e7039be7Schristos 2280e7039be7Schristos mtctr 9 2281e7039be7Schristos b .Loop_xts_dec 2282e7039be7Schristos 2283e7039be7Schristos.Lxts_dec_done: 2284e7039be7Schristos cmplwi 8,0 2285e7039be7Schristos beq .Lxts_dec_ret 2286e7039be7Schristos 2287e7039be7Schristos vsrab 11,8,9 2288e7039be7Schristos vaddubm 8,8,8 2289e7039be7Schristos vsldoi 11,11,11,15 2290e7039be7Schristos vand 11,11,10 2291e7039be7Schristos vxor 8,8,11 2292e7039be7Schristos 2293e7039be7Schristos 2294e7039be7Schristos.long 0x7D004799 2295e7039be7Schristos 2296e7039be7Schristos.Lxts_dec_ret: 2297e7039be7Schristos mtspr 256,12 2298e7039be7Schristos li 3,0 2299e7039be7Schristos blr 2300e7039be7Schristos.long 0 2301e7039be7Schristos.byte 0,12,0x04,0,0x80,6,6,0 2302e7039be7Schristos.long 0 2303e7039be7Schristos 2304e7039be7Schristos.align 5 2305e7039be7Schristos_aesp8_xts_encrypt6x: 2306e7039be7Schristos stwu 1,-392(1) 2307e7039be7Schristos mflr 11 2308e7039be7Schristos li 7,175 2309e7039be7Schristos li 3,191 2310e7039be7Schristos stw 11,396(1) 2311e7039be7Schristos stvx 20,7,1 2312e7039be7Schristos addi 7,7,32 2313e7039be7Schristos stvx 21,3,1 2314e7039be7Schristos addi 3,3,32 2315e7039be7Schristos stvx 22,7,1 2316e7039be7Schristos addi 7,7,32 2317e7039be7Schristos stvx 23,3,1 2318e7039be7Schristos addi 3,3,32 2319e7039be7Schristos stvx 24,7,1 2320e7039be7Schristos addi 7,7,32 2321e7039be7Schristos stvx 25,3,1 2322e7039be7Schristos addi 3,3,32 2323e7039be7Schristos stvx 26,7,1 2324e7039be7Schristos addi 7,7,32 2325e7039be7Schristos stvx 27,3,1 2326e7039be7Schristos addi 3,3,32 2327e7039be7Schristos stvx 28,7,1 2328e7039be7Schristos addi 7,7,32 2329e7039be7Schristos stvx 29,3,1 2330e7039be7Schristos addi 3,3,32 2331e7039be7Schristos stvx 30,7,1 2332e7039be7Schristos stvx 31,3,1 2333e7039be7Schristos li 0,-1 2334e7039be7Schristos stw 12,364(1) 2335e7039be7Schristos li 3,0x10 2336e7039be7Schristos stw 26,368(1) 2337e7039be7Schristos li 26,0x20 2338e7039be7Schristos stw 27,372(1) 2339e7039be7Schristos li 27,0x30 2340e7039be7Schristos stw 28,376(1) 2341e7039be7Schristos li 28,0x40 2342e7039be7Schristos stw 29,380(1) 2343e7039be7Schristos li 29,0x50 2344e7039be7Schristos stw 30,384(1) 2345e7039be7Schristos li 30,0x60 2346e7039be7Schristos stw 31,388(1) 2347e7039be7Schristos li 31,0x70 2348e7039be7Schristos mtspr 256,0 2349e7039be7Schristos 2350*7d9ffdb3Schristos 2351*7d9ffdb3Schristos xxlor 2, 32+10, 32+10 2352*7d9ffdb3Schristos vsldoi 10,11,10,1 2353*7d9ffdb3Schristos xxlor 1, 32+10, 32+10 2354*7d9ffdb3Schristos 2355*7d9ffdb3Schristos 2356*7d9ffdb3Schristos mr 31, 6 2357*7d9ffdb3Schristos bl .Lconsts 2358*7d9ffdb3Schristos lxvw4x 0, 28, 6 2359*7d9ffdb3Schristos mr 6, 31 2360*7d9ffdb3Schristos li 31,0x70 2361*7d9ffdb3Schristos 2362e7039be7Schristos subi 9,9,3 2363e7039be7Schristos 2364e7039be7Schristos lvx 23,0,6 2365e7039be7Schristos lvx 30,3,6 2366e7039be7Schristos addi 6,6,0x20 2367e7039be7Schristos lvx 31,0,6 2368e7039be7Schristos vperm 23,23,30,7 2369e7039be7Schristos addi 7,1,32+15 2370e7039be7Schristos mtctr 9 2371e7039be7Schristos 2372e7039be7Schristos.Load_xts_enc_key: 2373e7039be7Schristos vperm 24,30,31,7 2374e7039be7Schristos lvx 30,3,6 2375e7039be7Schristos addi 6,6,0x20 2376e7039be7Schristos stvx 24,0,7 2377e7039be7Schristos vperm 25,31,30,7 2378e7039be7Schristos lvx 31,0,6 2379e7039be7Schristos stvx 25,3,7 2380e7039be7Schristos addi 7,7,0x20 2381e7039be7Schristos bc 16,0,.Load_xts_enc_key 2382e7039be7Schristos 2383e7039be7Schristos lvx 26,3,6 2384e7039be7Schristos vperm 24,30,31,7 2385e7039be7Schristos lvx 27,26,6 2386e7039be7Schristos stvx 24,0,7 2387e7039be7Schristos vperm 25,31,26,7 2388e7039be7Schristos lvx 28,27,6 2389e7039be7Schristos stvx 25,3,7 2390e7039be7Schristos addi 7,1,32+15 2391e7039be7Schristos vperm 26,26,27,7 2392e7039be7Schristos lvx 29,28,6 2393e7039be7Schristos vperm 27,27,28,7 2394e7039be7Schristos lvx 30,29,6 2395e7039be7Schristos vperm 28,28,29,7 2396e7039be7Schristos lvx 31,30,6 2397e7039be7Schristos vperm 29,29,30,7 2398e7039be7Schristos lvx 22,31,6 2399e7039be7Schristos vperm 30,30,31,7 2400e7039be7Schristos lvx 24,0,7 2401e7039be7Schristos vperm 31,31,22,7 2402e7039be7Schristos lvx 25,3,7 2403e7039be7Schristos 2404*7d9ffdb3Schristos 2405*7d9ffdb3Schristos 2406*7d9ffdb3Schristos 2407*7d9ffdb3Schristos 2408*7d9ffdb3Schristos 2409*7d9ffdb3Schristos 2410*7d9ffdb3Schristos 2411*7d9ffdb3Schristos 2412e7039be7Schristos vperm 0,2,4,5 2413e7039be7Schristos subi 10,10,31 2414e7039be7Schristos vxor 17,8,23 2415e7039be7Schristos vsrab 11,8,9 2416e7039be7Schristos vaddubm 8,8,8 2417e7039be7Schristos vand 11,11,10 2418e7039be7Schristos vxor 7,0,17 2419*7d9ffdb3Schristos xxlor 32+1, 0, 0 2420*7d9ffdb3Schristos vpermxor 8, 8, 11, 1 2421e7039be7Schristos 2422e7039be7Schristos.long 0x7C235699 2423e7039be7Schristos vxor 18,8,23 2424e7039be7Schristos vsrab 11,8,9 2425e7039be7Schristos vaddubm 8,8,8 2426e7039be7Schristos 2427e7039be7Schristos vand 11,11,10 2428e7039be7Schristos vxor 12,1,18 2429*7d9ffdb3Schristos xxlor 32+2, 0, 0 2430*7d9ffdb3Schristos vpermxor 8, 8, 11, 2 2431e7039be7Schristos 2432e7039be7Schristos.long 0x7C5A5699 2433e7039be7Schristos andi. 31,5,15 2434e7039be7Schristos vxor 19,8,23 2435e7039be7Schristos vsrab 11,8,9 2436e7039be7Schristos vaddubm 8,8,8 2437e7039be7Schristos 2438e7039be7Schristos vand 11,11,10 2439e7039be7Schristos vxor 13,2,19 2440*7d9ffdb3Schristos xxlor 32+3, 0, 0 2441*7d9ffdb3Schristos vpermxor 8, 8, 11, 3 2442e7039be7Schristos 2443e7039be7Schristos.long 0x7C7B5699 2444e7039be7Schristos sub 5,5,31 2445e7039be7Schristos vxor 20,8,23 2446e7039be7Schristos vsrab 11,8,9 2447e7039be7Schristos vaddubm 8,8,8 2448e7039be7Schristos 2449e7039be7Schristos vand 11,11,10 2450e7039be7Schristos vxor 14,3,20 2451*7d9ffdb3Schristos xxlor 32+4, 0, 0 2452*7d9ffdb3Schristos vpermxor 8, 8, 11, 4 2453e7039be7Schristos 2454e7039be7Schristos.long 0x7C9C5699 2455e7039be7Schristos subi 5,5,0x60 2456e7039be7Schristos vxor 21,8,23 2457e7039be7Schristos vsrab 11,8,9 2458e7039be7Schristos vaddubm 8,8,8 2459e7039be7Schristos 2460e7039be7Schristos vand 11,11,10 2461e7039be7Schristos vxor 15,4,21 2462*7d9ffdb3Schristos xxlor 32+5, 0, 0 2463*7d9ffdb3Schristos vpermxor 8, 8, 11, 5 2464e7039be7Schristos 2465e7039be7Schristos.long 0x7CBD5699 2466e7039be7Schristos addi 10,10,0x60 2467e7039be7Schristos vxor 22,8,23 2468e7039be7Schristos vsrab 11,8,9 2469e7039be7Schristos vaddubm 8,8,8 2470e7039be7Schristos 2471e7039be7Schristos vand 11,11,10 2472e7039be7Schristos vxor 16,5,22 2473*7d9ffdb3Schristos xxlor 32+0, 0, 0 2474*7d9ffdb3Schristos vpermxor 8, 8, 11, 0 2475e7039be7Schristos 2476e7039be7Schristos vxor 31,31,23 2477e7039be7Schristos mtctr 9 2478e7039be7Schristos b .Loop_xts_enc6x 2479e7039be7Schristos 2480e7039be7Schristos.align 5 2481e7039be7Schristos.Loop_xts_enc6x: 2482e7039be7Schristos.long 0x10E7C508 2483e7039be7Schristos.long 0x118CC508 2484e7039be7Schristos.long 0x11ADC508 2485e7039be7Schristos.long 0x11CEC508 2486e7039be7Schristos.long 0x11EFC508 2487e7039be7Schristos.long 0x1210C508 2488e7039be7Schristos lvx 24,26,7 2489e7039be7Schristos addi 7,7,0x20 2490e7039be7Schristos 2491e7039be7Schristos.long 0x10E7CD08 2492e7039be7Schristos.long 0x118CCD08 2493e7039be7Schristos.long 0x11ADCD08 2494e7039be7Schristos.long 0x11CECD08 2495e7039be7Schristos.long 0x11EFCD08 2496e7039be7Schristos.long 0x1210CD08 2497e7039be7Schristos lvx 25,3,7 2498e7039be7Schristos bc 16,0,.Loop_xts_enc6x 2499e7039be7Schristos 2500*7d9ffdb3Schristos xxlor 32+10, 1, 1 2501*7d9ffdb3Schristos 2502e7039be7Schristos subic 5,5,96 2503e7039be7Schristos vxor 0,17,31 2504e7039be7Schristos.long 0x10E7C508 2505e7039be7Schristos.long 0x118CC508 2506e7039be7Schristos vsrab 11,8,9 2507e7039be7Schristos vxor 17,8,23 2508e7039be7Schristos vaddubm 8,8,8 2509e7039be7Schristos.long 0x11ADC508 2510e7039be7Schristos.long 0x11CEC508 2511e7039be7Schristos.long 0x11EFC508 2512e7039be7Schristos.long 0x1210C508 2513e7039be7Schristos 2514e7039be7Schristos subfe. 0,0,0 2515e7039be7Schristos vand 11,11,10 2516e7039be7Schristos.long 0x10E7CD08 2517e7039be7Schristos.long 0x118CCD08 2518*7d9ffdb3Schristos xxlor 32+1, 0, 0 2519*7d9ffdb3Schristos vpermxor 8, 8, 11, 1 2520e7039be7Schristos.long 0x11ADCD08 2521e7039be7Schristos.long 0x11CECD08 2522e7039be7Schristos vxor 1,18,31 2523e7039be7Schristos vsrab 11,8,9 2524e7039be7Schristos vxor 18,8,23 2525e7039be7Schristos.long 0x11EFCD08 2526e7039be7Schristos.long 0x1210CD08 2527e7039be7Schristos 2528e7039be7Schristos and 0,0,5 2529e7039be7Schristos vaddubm 8,8,8 2530e7039be7Schristos.long 0x10E7D508 2531e7039be7Schristos.long 0x118CD508 2532e7039be7Schristos vand 11,11,10 2533e7039be7Schristos.long 0x11ADD508 2534e7039be7Schristos.long 0x11CED508 2535*7d9ffdb3Schristos xxlor 32+2, 0, 0 2536*7d9ffdb3Schristos vpermxor 8, 8, 11, 2 2537e7039be7Schristos.long 0x11EFD508 2538e7039be7Schristos.long 0x1210D508 2539e7039be7Schristos 2540e7039be7Schristos add 10,10,0 2541e7039be7Schristos 2542e7039be7Schristos 2543e7039be7Schristos 2544e7039be7Schristos vxor 2,19,31 2545e7039be7Schristos vsrab 11,8,9 2546e7039be7Schristos vxor 19,8,23 2547e7039be7Schristos vaddubm 8,8,8 2548e7039be7Schristos.long 0x10E7DD08 2549e7039be7Schristos.long 0x118CDD08 2550e7039be7Schristos.long 0x11ADDD08 2551e7039be7Schristos.long 0x11CEDD08 2552e7039be7Schristos vand 11,11,10 2553e7039be7Schristos.long 0x11EFDD08 2554e7039be7Schristos.long 0x1210DD08 2555e7039be7Schristos 2556e7039be7Schristos addi 7,1,32+15 2557*7d9ffdb3Schristos xxlor 32+3, 0, 0 2558*7d9ffdb3Schristos vpermxor 8, 8, 11, 3 2559e7039be7Schristos.long 0x10E7E508 2560e7039be7Schristos.long 0x118CE508 2561e7039be7Schristos vxor 3,20,31 2562e7039be7Schristos vsrab 11,8,9 2563e7039be7Schristos vxor 20,8,23 2564e7039be7Schristos.long 0x11ADE508 2565e7039be7Schristos.long 0x11CEE508 2566e7039be7Schristos vaddubm 8,8,8 2567e7039be7Schristos.long 0x11EFE508 2568e7039be7Schristos.long 0x1210E508 2569e7039be7Schristos lvx 24,0,7 2570e7039be7Schristos vand 11,11,10 2571e7039be7Schristos 2572e7039be7Schristos.long 0x10E7ED08 2573e7039be7Schristos.long 0x118CED08 2574*7d9ffdb3Schristos xxlor 32+4, 0, 0 2575*7d9ffdb3Schristos vpermxor 8, 8, 11, 4 2576e7039be7Schristos.long 0x11ADED08 2577e7039be7Schristos.long 0x11CEED08 2578e7039be7Schristos vxor 4,21,31 2579e7039be7Schristos vsrab 11,8,9 2580e7039be7Schristos vxor 21,8,23 2581e7039be7Schristos.long 0x11EFED08 2582e7039be7Schristos.long 0x1210ED08 2583e7039be7Schristos lvx 25,3,7 2584e7039be7Schristos vaddubm 8,8,8 2585e7039be7Schristos 2586e7039be7Schristos.long 0x10E7F508 2587e7039be7Schristos.long 0x118CF508 2588e7039be7Schristos vand 11,11,10 2589e7039be7Schristos.long 0x11ADF508 2590e7039be7Schristos.long 0x11CEF508 2591*7d9ffdb3Schristos xxlor 32+5, 0, 0 2592*7d9ffdb3Schristos vpermxor 8, 8, 11, 5 2593e7039be7Schristos.long 0x11EFF508 2594e7039be7Schristos.long 0x1210F508 2595e7039be7Schristos vxor 5,22,31 2596e7039be7Schristos vsrab 11,8,9 2597e7039be7Schristos vxor 22,8,23 2598e7039be7Schristos 2599e7039be7Schristos.long 0x10E70509 2600e7039be7Schristos.long 0x7C005699 2601e7039be7Schristos vaddubm 8,8,8 2602e7039be7Schristos.long 0x118C0D09 2603e7039be7Schristos.long 0x7C235699 2604e7039be7Schristos.long 0x11AD1509 2605e7039be7Schristos 2606e7039be7Schristos.long 0x7C5A5699 2607e7039be7Schristos vand 11,11,10 2608e7039be7Schristos.long 0x11CE1D09 2609e7039be7Schristos 2610e7039be7Schristos.long 0x7C7B5699 2611e7039be7Schristos.long 0x11EF2509 2612e7039be7Schristos 2613e7039be7Schristos.long 0x7C9C5699 2614*7d9ffdb3Schristos xxlor 10, 32+0, 32+0 2615*7d9ffdb3Schristos xxlor 32+0, 0, 0 2616*7d9ffdb3Schristos vpermxor 8, 8, 11, 0 2617*7d9ffdb3Schristos xxlor 32+0, 10, 10 2618e7039be7Schristos.long 0x11702D09 2619e7039be7Schristos 2620e7039be7Schristos 2621e7039be7Schristos.long 0x7CBD5699 2622e7039be7Schristos addi 10,10,0x60 2623e7039be7Schristos 2624e7039be7Schristos 2625e7039be7Schristos 2626e7039be7Schristos 2627e7039be7Schristos 2628e7039be7Schristos.long 0x7CE02799 2629e7039be7Schristos vxor 7,0,17 2630e7039be7Schristos 2631e7039be7Schristos.long 0x7D832799 2632e7039be7Schristos vxor 12,1,18 2633e7039be7Schristos 2634e7039be7Schristos.long 0x7DBA2799 2635e7039be7Schristos vxor 13,2,19 2636e7039be7Schristos 2637e7039be7Schristos.long 0x7DDB2799 2638e7039be7Schristos vxor 14,3,20 2639e7039be7Schristos 2640e7039be7Schristos.long 0x7DFC2799 2641e7039be7Schristos vxor 15,4,21 2642e7039be7Schristos 2643e7039be7Schristos.long 0x7D7D2799 2644e7039be7Schristos vxor 16,5,22 2645e7039be7Schristos addi 4,4,0x60 2646e7039be7Schristos 2647e7039be7Schristos mtctr 9 2648e7039be7Schristos beq .Loop_xts_enc6x 2649e7039be7Schristos 2650*7d9ffdb3Schristos xxlor 32+10, 2, 2 2651*7d9ffdb3Schristos 2652e7039be7Schristos addic. 5,5,0x60 2653e7039be7Schristos beq .Lxts_enc6x_zero 2654e7039be7Schristos cmpwi 5,0x20 2655e7039be7Schristos blt .Lxts_enc6x_one 2656e7039be7Schristos nop 2657e7039be7Schristos beq .Lxts_enc6x_two 2658e7039be7Schristos cmpwi 5,0x40 2659e7039be7Schristos blt .Lxts_enc6x_three 2660e7039be7Schristos nop 2661e7039be7Schristos beq .Lxts_enc6x_four 2662e7039be7Schristos 2663e7039be7Schristos.Lxts_enc6x_five: 2664e7039be7Schristos vxor 7,1,17 2665e7039be7Schristos vxor 12,2,18 2666e7039be7Schristos vxor 13,3,19 2667e7039be7Schristos vxor 14,4,20 2668e7039be7Schristos vxor 15,5,21 2669e7039be7Schristos 2670e7039be7Schristos bl _aesp8_xts_enc5x 2671e7039be7Schristos 2672e7039be7Schristos 2673e7039be7Schristos vor 17,22,22 2674e7039be7Schristos 2675e7039be7Schristos.long 0x7CE02799 2676e7039be7Schristos 2677e7039be7Schristos.long 0x7D832799 2678e7039be7Schristos 2679e7039be7Schristos.long 0x7DBA2799 2680e7039be7Schristos vxor 11,15,22 2681e7039be7Schristos 2682e7039be7Schristos.long 0x7DDB2799 2683e7039be7Schristos.long 0x7DFC2799 2684e7039be7Schristos addi 4,4,0x50 2685e7039be7Schristos bne .Lxts_enc6x_steal 2686e7039be7Schristos b .Lxts_enc6x_done 2687e7039be7Schristos 2688e7039be7Schristos.align 4 2689e7039be7Schristos.Lxts_enc6x_four: 2690e7039be7Schristos vxor 7,2,17 2691e7039be7Schristos vxor 12,3,18 2692e7039be7Schristos vxor 13,4,19 2693e7039be7Schristos vxor 14,5,20 2694e7039be7Schristos vxor 15,15,15 2695e7039be7Schristos 2696e7039be7Schristos bl _aesp8_xts_enc5x 2697e7039be7Schristos 2698e7039be7Schristos 2699e7039be7Schristos vor 17,21,21 2700e7039be7Schristos 2701e7039be7Schristos.long 0x7CE02799 2702e7039be7Schristos 2703e7039be7Schristos.long 0x7D832799 2704e7039be7Schristos vxor 11,14,21 2705e7039be7Schristos 2706e7039be7Schristos.long 0x7DBA2799 2707e7039be7Schristos.long 0x7DDB2799 2708e7039be7Schristos addi 4,4,0x40 2709e7039be7Schristos bne .Lxts_enc6x_steal 2710e7039be7Schristos b .Lxts_enc6x_done 2711e7039be7Schristos 2712e7039be7Schristos.align 4 2713e7039be7Schristos.Lxts_enc6x_three: 2714e7039be7Schristos vxor 7,3,17 2715e7039be7Schristos vxor 12,4,18 2716e7039be7Schristos vxor 13,5,19 2717e7039be7Schristos vxor 14,14,14 2718e7039be7Schristos vxor 15,15,15 2719e7039be7Schristos 2720e7039be7Schristos bl _aesp8_xts_enc5x 2721e7039be7Schristos 2722e7039be7Schristos 2723e7039be7Schristos vor 17,20,20 2724e7039be7Schristos 2725e7039be7Schristos.long 0x7CE02799 2726e7039be7Schristos vxor 11,13,20 2727e7039be7Schristos 2728e7039be7Schristos.long 0x7D832799 2729e7039be7Schristos.long 0x7DBA2799 2730e7039be7Schristos addi 4,4,0x30 2731e7039be7Schristos bne .Lxts_enc6x_steal 2732e7039be7Schristos b .Lxts_enc6x_done 2733e7039be7Schristos 2734e7039be7Schristos.align 4 2735e7039be7Schristos.Lxts_enc6x_two: 2736e7039be7Schristos vxor 7,4,17 2737e7039be7Schristos vxor 12,5,18 2738e7039be7Schristos vxor 13,13,13 2739e7039be7Schristos vxor 14,14,14 2740e7039be7Schristos vxor 15,15,15 2741e7039be7Schristos 2742e7039be7Schristos bl _aesp8_xts_enc5x 2743e7039be7Schristos 2744e7039be7Schristos 2745e7039be7Schristos vor 17,19,19 2746e7039be7Schristos vxor 11,12,19 2747e7039be7Schristos 2748e7039be7Schristos.long 0x7CE02799 2749e7039be7Schristos.long 0x7D832799 2750e7039be7Schristos addi 4,4,0x20 2751e7039be7Schristos bne .Lxts_enc6x_steal 2752e7039be7Schristos b .Lxts_enc6x_done 2753e7039be7Schristos 2754e7039be7Schristos.align 4 2755e7039be7Schristos.Lxts_enc6x_one: 2756e7039be7Schristos vxor 7,5,17 2757e7039be7Schristos nop 2758e7039be7Schristos.Loop_xts_enc1x: 2759e7039be7Schristos.long 0x10E7C508 2760e7039be7Schristos lvx 24,26,7 2761e7039be7Schristos addi 7,7,0x20 2762e7039be7Schristos 2763e7039be7Schristos.long 0x10E7CD08 2764e7039be7Schristos lvx 25,3,7 2765e7039be7Schristos bc 16,0,.Loop_xts_enc1x 2766e7039be7Schristos 2767e7039be7Schristos add 10,10,31 2768e7039be7Schristos cmpwi 31,0 2769e7039be7Schristos.long 0x10E7C508 2770e7039be7Schristos 2771e7039be7Schristos subi 10,10,16 2772e7039be7Schristos.long 0x10E7CD08 2773e7039be7Schristos 2774e7039be7Schristos lvsr 5,0,31 2775e7039be7Schristos.long 0x10E7D508 2776e7039be7Schristos 2777e7039be7Schristos.long 0x7C005699 2778e7039be7Schristos.long 0x10E7DD08 2779e7039be7Schristos 2780e7039be7Schristos addi 7,1,32+15 2781e7039be7Schristos.long 0x10E7E508 2782e7039be7Schristos lvx 24,0,7 2783e7039be7Schristos 2784e7039be7Schristos.long 0x10E7ED08 2785e7039be7Schristos lvx 25,3,7 2786e7039be7Schristos vxor 17,17,31 2787e7039be7Schristos 2788e7039be7Schristos 2789e7039be7Schristos.long 0x10E7F508 2790e7039be7Schristos 2791e7039be7Schristos vperm 0,0,0,5 2792e7039be7Schristos.long 0x10E78D09 2793e7039be7Schristos 2794e7039be7Schristos vor 17,18,18 2795e7039be7Schristos vxor 11,7,18 2796e7039be7Schristos 2797e7039be7Schristos.long 0x7CE02799 2798e7039be7Schristos addi 4,4,0x10 2799e7039be7Schristos bne .Lxts_enc6x_steal 2800e7039be7Schristos b .Lxts_enc6x_done 2801e7039be7Schristos 2802e7039be7Schristos.align 4 2803e7039be7Schristos.Lxts_enc6x_zero: 2804e7039be7Schristos cmpwi 31,0 2805e7039be7Schristos beq .Lxts_enc6x_done 2806e7039be7Schristos 2807e7039be7Schristos add 10,10,31 2808e7039be7Schristos subi 10,10,16 2809e7039be7Schristos.long 0x7C005699 2810e7039be7Schristos lvsr 5,0,31 2811e7039be7Schristos 2812e7039be7Schristos vperm 0,0,0,5 2813e7039be7Schristos vxor 11,11,17 2814e7039be7Schristos.Lxts_enc6x_steal: 2815e7039be7Schristos vxor 0,0,17 2816e7039be7Schristos vxor 7,7,7 2817e7039be7Schristos vspltisb 12,-1 2818e7039be7Schristos vperm 7,7,12,5 2819e7039be7Schristos vsel 7,0,11,7 2820e7039be7Schristos 2821e7039be7Schristos subi 30,4,17 2822e7039be7Schristos subi 4,4,16 2823e7039be7Schristos mtctr 31 2824e7039be7Schristos.Loop_xts_enc6x_steal: 2825e7039be7Schristos lbzu 0,1(30) 2826e7039be7Schristos stb 0,16(30) 2827e7039be7Schristos bc 16,0,.Loop_xts_enc6x_steal 2828e7039be7Schristos 2829e7039be7Schristos li 31,0 2830e7039be7Schristos mtctr 9 2831e7039be7Schristos b .Loop_xts_enc1x 2832e7039be7Schristos 2833e7039be7Schristos.align 4 2834e7039be7Schristos.Lxts_enc6x_done: 2835e7039be7Schristos cmplwi 8,0 2836e7039be7Schristos beq .Lxts_enc6x_ret 2837e7039be7Schristos 2838e7039be7Schristos vxor 8,17,23 2839e7039be7Schristos 2840e7039be7Schristos.long 0x7D004799 2841e7039be7Schristos 2842e7039be7Schristos.Lxts_enc6x_ret: 2843e7039be7Schristos mtlr 11 2844e7039be7Schristos li 10,47 2845e7039be7Schristos li 11,63 2846e7039be7Schristos stvx 9,10,1 2847e7039be7Schristos addi 10,10,32 2848e7039be7Schristos stvx 9,11,1 2849e7039be7Schristos addi 11,11,32 2850e7039be7Schristos stvx 9,10,1 2851e7039be7Schristos addi 10,10,32 2852e7039be7Schristos stvx 9,11,1 2853e7039be7Schristos addi 11,11,32 2854e7039be7Schristos stvx 9,10,1 2855e7039be7Schristos addi 10,10,32 2856e7039be7Schristos stvx 9,11,1 2857e7039be7Schristos addi 11,11,32 2858e7039be7Schristos stvx 9,10,1 2859e7039be7Schristos addi 10,10,32 2860e7039be7Schristos stvx 9,11,1 2861e7039be7Schristos addi 11,11,32 2862e7039be7Schristos 2863e7039be7Schristos mtspr 256,12 2864e7039be7Schristos lvx 20,10,1 2865e7039be7Schristos addi 10,10,32 2866e7039be7Schristos lvx 21,11,1 2867e7039be7Schristos addi 11,11,32 2868e7039be7Schristos lvx 22,10,1 2869e7039be7Schristos addi 10,10,32 2870e7039be7Schristos lvx 23,11,1 2871e7039be7Schristos addi 11,11,32 2872e7039be7Schristos lvx 24,10,1 2873e7039be7Schristos addi 10,10,32 2874e7039be7Schristos lvx 25,11,1 2875e7039be7Schristos addi 11,11,32 2876e7039be7Schristos lvx 26,10,1 2877e7039be7Schristos addi 10,10,32 2878e7039be7Schristos lvx 27,11,1 2879e7039be7Schristos addi 11,11,32 2880e7039be7Schristos lvx 28,10,1 2881e7039be7Schristos addi 10,10,32 2882e7039be7Schristos lvx 29,11,1 2883e7039be7Schristos addi 11,11,32 2884e7039be7Schristos lvx 30,10,1 2885e7039be7Schristos lvx 31,11,1 2886e7039be7Schristos lwz 26,368(1) 2887e7039be7Schristos lwz 27,372(1) 2888e7039be7Schristos lwz 28,376(1) 2889e7039be7Schristos lwz 29,380(1) 2890e7039be7Schristos lwz 30,384(1) 2891e7039be7Schristos lwz 31,388(1) 2892e7039be7Schristos addi 1,1,392 2893e7039be7Schristos blr 2894e7039be7Schristos.long 0 2895e7039be7Schristos.byte 0,12,0x04,1,0x80,6,6,0 2896e7039be7Schristos.long 0 2897e7039be7Schristos 2898e7039be7Schristos.align 5 2899e7039be7Schristos_aesp8_xts_enc5x: 2900e7039be7Schristos.long 0x10E7C508 2901e7039be7Schristos.long 0x118CC508 2902e7039be7Schristos.long 0x11ADC508 2903e7039be7Schristos.long 0x11CEC508 2904e7039be7Schristos.long 0x11EFC508 2905e7039be7Schristos lvx 24,26,7 2906e7039be7Schristos addi 7,7,0x20 2907e7039be7Schristos 2908e7039be7Schristos.long 0x10E7CD08 2909e7039be7Schristos.long 0x118CCD08 2910e7039be7Schristos.long 0x11ADCD08 2911e7039be7Schristos.long 0x11CECD08 2912e7039be7Schristos.long 0x11EFCD08 2913e7039be7Schristos lvx 25,3,7 2914e7039be7Schristos bc 16,0,_aesp8_xts_enc5x 2915e7039be7Schristos 2916e7039be7Schristos add 10,10,31 2917e7039be7Schristos cmpwi 31,0 2918e7039be7Schristos.long 0x10E7C508 2919e7039be7Schristos.long 0x118CC508 2920e7039be7Schristos.long 0x11ADC508 2921e7039be7Schristos.long 0x11CEC508 2922e7039be7Schristos.long 0x11EFC508 2923e7039be7Schristos 2924e7039be7Schristos subi 10,10,16 2925e7039be7Schristos.long 0x10E7CD08 2926e7039be7Schristos.long 0x118CCD08 2927e7039be7Schristos.long 0x11ADCD08 2928e7039be7Schristos.long 0x11CECD08 2929e7039be7Schristos.long 0x11EFCD08 2930e7039be7Schristos vxor 17,17,31 2931e7039be7Schristos 2932e7039be7Schristos.long 0x10E7D508 2933e7039be7Schristos lvsr 5,0,31 2934e7039be7Schristos.long 0x118CD508 2935e7039be7Schristos.long 0x11ADD508 2936e7039be7Schristos.long 0x11CED508 2937e7039be7Schristos.long 0x11EFD508 2938e7039be7Schristos vxor 1,18,31 2939e7039be7Schristos 2940e7039be7Schristos.long 0x10E7DD08 2941e7039be7Schristos.long 0x7C005699 2942e7039be7Schristos.long 0x118CDD08 2943e7039be7Schristos.long 0x11ADDD08 2944e7039be7Schristos.long 0x11CEDD08 2945e7039be7Schristos.long 0x11EFDD08 2946e7039be7Schristos vxor 2,19,31 2947e7039be7Schristos 2948e7039be7Schristos addi 7,1,32+15 2949e7039be7Schristos.long 0x10E7E508 2950e7039be7Schristos.long 0x118CE508 2951e7039be7Schristos.long 0x11ADE508 2952e7039be7Schristos.long 0x11CEE508 2953e7039be7Schristos.long 0x11EFE508 2954e7039be7Schristos lvx 24,0,7 2955e7039be7Schristos vxor 3,20,31 2956e7039be7Schristos 2957e7039be7Schristos.long 0x10E7ED08 2958e7039be7Schristos 2959e7039be7Schristos.long 0x118CED08 2960e7039be7Schristos.long 0x11ADED08 2961e7039be7Schristos.long 0x11CEED08 2962e7039be7Schristos.long 0x11EFED08 2963e7039be7Schristos lvx 25,3,7 2964e7039be7Schristos vxor 4,21,31 2965e7039be7Schristos 2966e7039be7Schristos.long 0x10E7F508 2967e7039be7Schristos vperm 0,0,0,5 2968e7039be7Schristos.long 0x118CF508 2969e7039be7Schristos.long 0x11ADF508 2970e7039be7Schristos.long 0x11CEF508 2971e7039be7Schristos.long 0x11EFF508 2972e7039be7Schristos 2973e7039be7Schristos.long 0x10E78D09 2974e7039be7Schristos.long 0x118C0D09 2975e7039be7Schristos.long 0x11AD1509 2976e7039be7Schristos.long 0x11CE1D09 2977e7039be7Schristos.long 0x11EF2509 2978e7039be7Schristos blr 2979e7039be7Schristos.long 0 2980e7039be7Schristos.byte 0,12,0x14,0,0,0,0,0 2981e7039be7Schristos 2982e7039be7Schristos.align 5 2983e7039be7Schristos_aesp8_xts_decrypt6x: 2984e7039be7Schristos stwu 1,-392(1) 2985e7039be7Schristos mflr 11 2986e7039be7Schristos li 7,175 2987e7039be7Schristos li 3,191 2988e7039be7Schristos stw 11,396(1) 2989e7039be7Schristos stvx 20,7,1 2990e7039be7Schristos addi 7,7,32 2991e7039be7Schristos stvx 21,3,1 2992e7039be7Schristos addi 3,3,32 2993e7039be7Schristos stvx 22,7,1 2994e7039be7Schristos addi 7,7,32 2995e7039be7Schristos stvx 23,3,1 2996e7039be7Schristos addi 3,3,32 2997e7039be7Schristos stvx 24,7,1 2998e7039be7Schristos addi 7,7,32 2999e7039be7Schristos stvx 25,3,1 3000e7039be7Schristos addi 3,3,32 3001e7039be7Schristos stvx 26,7,1 3002e7039be7Schristos addi 7,7,32 3003e7039be7Schristos stvx 27,3,1 3004e7039be7Schristos addi 3,3,32 3005e7039be7Schristos stvx 28,7,1 3006e7039be7Schristos addi 7,7,32 3007e7039be7Schristos stvx 29,3,1 3008e7039be7Schristos addi 3,3,32 3009e7039be7Schristos stvx 30,7,1 3010e7039be7Schristos stvx 31,3,1 3011e7039be7Schristos li 0,-1 3012e7039be7Schristos stw 12,364(1) 3013e7039be7Schristos li 3,0x10 3014e7039be7Schristos stw 26,368(1) 3015e7039be7Schristos li 26,0x20 3016e7039be7Schristos stw 27,372(1) 3017e7039be7Schristos li 27,0x30 3018e7039be7Schristos stw 28,376(1) 3019e7039be7Schristos li 28,0x40 3020e7039be7Schristos stw 29,380(1) 3021e7039be7Schristos li 29,0x50 3022e7039be7Schristos stw 30,384(1) 3023e7039be7Schristos li 30,0x60 3024e7039be7Schristos stw 31,388(1) 3025e7039be7Schristos li 31,0x70 3026e7039be7Schristos mtspr 256,0 3027e7039be7Schristos 3028*7d9ffdb3Schristos 3029*7d9ffdb3Schristos xxlor 2, 32+10, 32+10 3030*7d9ffdb3Schristos vsldoi 10,11,10,1 3031*7d9ffdb3Schristos xxlor 1, 32+10, 32+10 3032*7d9ffdb3Schristos 3033*7d9ffdb3Schristos 3034*7d9ffdb3Schristos mr 31, 6 3035*7d9ffdb3Schristos bl .Lconsts 3036*7d9ffdb3Schristos lxvw4x 0, 28, 6 3037*7d9ffdb3Schristos mr 6, 31 3038*7d9ffdb3Schristos li 31,0x70 3039*7d9ffdb3Schristos 3040e7039be7Schristos subi 9,9,3 3041e7039be7Schristos 3042e7039be7Schristos lvx 23,0,6 3043e7039be7Schristos lvx 30,3,6 3044e7039be7Schristos addi 6,6,0x20 3045e7039be7Schristos lvx 31,0,6 3046e7039be7Schristos vperm 23,23,30,7 3047e7039be7Schristos addi 7,1,32+15 3048e7039be7Schristos mtctr 9 3049e7039be7Schristos 3050e7039be7Schristos.Load_xts_dec_key: 3051e7039be7Schristos vperm 24,30,31,7 3052e7039be7Schristos lvx 30,3,6 3053e7039be7Schristos addi 6,6,0x20 3054e7039be7Schristos stvx 24,0,7 3055e7039be7Schristos vperm 25,31,30,7 3056e7039be7Schristos lvx 31,0,6 3057e7039be7Schristos stvx 25,3,7 3058e7039be7Schristos addi 7,7,0x20 3059e7039be7Schristos bc 16,0,.Load_xts_dec_key 3060e7039be7Schristos 3061e7039be7Schristos lvx 26,3,6 3062e7039be7Schristos vperm 24,30,31,7 3063e7039be7Schristos lvx 27,26,6 3064e7039be7Schristos stvx 24,0,7 3065e7039be7Schristos vperm 25,31,26,7 3066e7039be7Schristos lvx 28,27,6 3067e7039be7Schristos stvx 25,3,7 3068e7039be7Schristos addi 7,1,32+15 3069e7039be7Schristos vperm 26,26,27,7 3070e7039be7Schristos lvx 29,28,6 3071e7039be7Schristos vperm 27,27,28,7 3072e7039be7Schristos lvx 30,29,6 3073e7039be7Schristos vperm 28,28,29,7 3074e7039be7Schristos lvx 31,30,6 3075e7039be7Schristos vperm 29,29,30,7 3076e7039be7Schristos lvx 22,31,6 3077e7039be7Schristos vperm 30,30,31,7 3078e7039be7Schristos lvx 24,0,7 3079e7039be7Schristos vperm 31,31,22,7 3080e7039be7Schristos lvx 25,3,7 3081e7039be7Schristos 3082e7039be7Schristos vperm 0,2,4,5 3083e7039be7Schristos subi 10,10,31 3084e7039be7Schristos vxor 17,8,23 3085e7039be7Schristos vsrab 11,8,9 3086e7039be7Schristos vaddubm 8,8,8 3087e7039be7Schristos vand 11,11,10 3088e7039be7Schristos vxor 7,0,17 3089*7d9ffdb3Schristos xxlor 32+1, 0, 0 3090*7d9ffdb3Schristos vpermxor 8, 8, 11, 1 3091e7039be7Schristos 3092e7039be7Schristos.long 0x7C235699 3093e7039be7Schristos vxor 18,8,23 3094e7039be7Schristos vsrab 11,8,9 3095e7039be7Schristos vaddubm 8,8,8 3096e7039be7Schristos 3097e7039be7Schristos vand 11,11,10 3098e7039be7Schristos vxor 12,1,18 3099*7d9ffdb3Schristos xxlor 32+2, 0, 0 3100*7d9ffdb3Schristos vpermxor 8, 8, 11, 2 3101e7039be7Schristos 3102e7039be7Schristos.long 0x7C5A5699 3103e7039be7Schristos andi. 31,5,15 3104e7039be7Schristos vxor 19,8,23 3105e7039be7Schristos vsrab 11,8,9 3106e7039be7Schristos vaddubm 8,8,8 3107e7039be7Schristos 3108e7039be7Schristos vand 11,11,10 3109e7039be7Schristos vxor 13,2,19 3110*7d9ffdb3Schristos xxlor 32+3, 0, 0 3111*7d9ffdb3Schristos vpermxor 8, 8, 11, 3 3112e7039be7Schristos 3113e7039be7Schristos.long 0x7C7B5699 3114e7039be7Schristos sub 5,5,31 3115e7039be7Schristos vxor 20,8,23 3116e7039be7Schristos vsrab 11,8,9 3117e7039be7Schristos vaddubm 8,8,8 3118e7039be7Schristos 3119e7039be7Schristos vand 11,11,10 3120e7039be7Schristos vxor 14,3,20 3121*7d9ffdb3Schristos xxlor 32+4, 0, 0 3122*7d9ffdb3Schristos vpermxor 8, 8, 11, 4 3123e7039be7Schristos 3124e7039be7Schristos.long 0x7C9C5699 3125e7039be7Schristos subi 5,5,0x60 3126e7039be7Schristos vxor 21,8,23 3127e7039be7Schristos vsrab 11,8,9 3128e7039be7Schristos vaddubm 8,8,8 3129e7039be7Schristos 3130e7039be7Schristos vand 11,11,10 3131e7039be7Schristos vxor 15,4,21 3132*7d9ffdb3Schristos xxlor 32+5, 0, 0 3133*7d9ffdb3Schristos vpermxor 8, 8, 11, 5 3134e7039be7Schristos 3135e7039be7Schristos.long 0x7CBD5699 3136e7039be7Schristos addi 10,10,0x60 3137e7039be7Schristos vxor 22,8,23 3138e7039be7Schristos vsrab 11,8,9 3139e7039be7Schristos vaddubm 8,8,8 3140e7039be7Schristos 3141e7039be7Schristos vand 11,11,10 3142e7039be7Schristos vxor 16,5,22 3143*7d9ffdb3Schristos xxlor 32+0, 0, 0 3144*7d9ffdb3Schristos vpermxor 8, 8, 11, 0 3145e7039be7Schristos 3146e7039be7Schristos vxor 31,31,23 3147e7039be7Schristos mtctr 9 3148e7039be7Schristos b .Loop_xts_dec6x 3149e7039be7Schristos 3150e7039be7Schristos.align 5 3151e7039be7Schristos.Loop_xts_dec6x: 3152e7039be7Schristos.long 0x10E7C548 3153e7039be7Schristos.long 0x118CC548 3154e7039be7Schristos.long 0x11ADC548 3155e7039be7Schristos.long 0x11CEC548 3156e7039be7Schristos.long 0x11EFC548 3157e7039be7Schristos.long 0x1210C548 3158e7039be7Schristos lvx 24,26,7 3159e7039be7Schristos addi 7,7,0x20 3160e7039be7Schristos 3161e7039be7Schristos.long 0x10E7CD48 3162e7039be7Schristos.long 0x118CCD48 3163e7039be7Schristos.long 0x11ADCD48 3164e7039be7Schristos.long 0x11CECD48 3165e7039be7Schristos.long 0x11EFCD48 3166e7039be7Schristos.long 0x1210CD48 3167e7039be7Schristos lvx 25,3,7 3168e7039be7Schristos bc 16,0,.Loop_xts_dec6x 3169e7039be7Schristos 3170*7d9ffdb3Schristos xxlor 32+10, 1, 1 3171*7d9ffdb3Schristos 3172e7039be7Schristos subic 5,5,96 3173e7039be7Schristos vxor 0,17,31 3174e7039be7Schristos.long 0x10E7C548 3175e7039be7Schristos.long 0x118CC548 3176e7039be7Schristos vsrab 11,8,9 3177e7039be7Schristos vxor 17,8,23 3178e7039be7Schristos vaddubm 8,8,8 3179e7039be7Schristos.long 0x11ADC548 3180e7039be7Schristos.long 0x11CEC548 3181e7039be7Schristos.long 0x11EFC548 3182e7039be7Schristos.long 0x1210C548 3183e7039be7Schristos 3184e7039be7Schristos subfe. 0,0,0 3185e7039be7Schristos vand 11,11,10 3186e7039be7Schristos.long 0x10E7CD48 3187e7039be7Schristos.long 0x118CCD48 3188*7d9ffdb3Schristos xxlor 32+1, 0, 0 3189*7d9ffdb3Schristos vpermxor 8, 8, 11, 1 3190e7039be7Schristos.long 0x11ADCD48 3191e7039be7Schristos.long 0x11CECD48 3192e7039be7Schristos vxor 1,18,31 3193e7039be7Schristos vsrab 11,8,9 3194e7039be7Schristos vxor 18,8,23 3195e7039be7Schristos.long 0x11EFCD48 3196e7039be7Schristos.long 0x1210CD48 3197e7039be7Schristos 3198e7039be7Schristos and 0,0,5 3199e7039be7Schristos vaddubm 8,8,8 3200e7039be7Schristos.long 0x10E7D548 3201e7039be7Schristos.long 0x118CD548 3202e7039be7Schristos vand 11,11,10 3203e7039be7Schristos.long 0x11ADD548 3204e7039be7Schristos.long 0x11CED548 3205*7d9ffdb3Schristos xxlor 32+2, 0, 0 3206*7d9ffdb3Schristos vpermxor 8, 8, 11, 2 3207e7039be7Schristos.long 0x11EFD548 3208e7039be7Schristos.long 0x1210D548 3209e7039be7Schristos 3210e7039be7Schristos add 10,10,0 3211e7039be7Schristos 3212e7039be7Schristos 3213e7039be7Schristos 3214e7039be7Schristos vxor 2,19,31 3215e7039be7Schristos vsrab 11,8,9 3216e7039be7Schristos vxor 19,8,23 3217e7039be7Schristos vaddubm 8,8,8 3218e7039be7Schristos.long 0x10E7DD48 3219e7039be7Schristos.long 0x118CDD48 3220e7039be7Schristos.long 0x11ADDD48 3221e7039be7Schristos.long 0x11CEDD48 3222e7039be7Schristos vand 11,11,10 3223e7039be7Schristos.long 0x11EFDD48 3224e7039be7Schristos.long 0x1210DD48 3225e7039be7Schristos 3226e7039be7Schristos addi 7,1,32+15 3227*7d9ffdb3Schristos xxlor 32+3, 0, 0 3228*7d9ffdb3Schristos vpermxor 8, 8, 11, 3 3229e7039be7Schristos.long 0x10E7E548 3230e7039be7Schristos.long 0x118CE548 3231e7039be7Schristos vxor 3,20,31 3232e7039be7Schristos vsrab 11,8,9 3233e7039be7Schristos vxor 20,8,23 3234e7039be7Schristos.long 0x11ADE548 3235e7039be7Schristos.long 0x11CEE548 3236e7039be7Schristos vaddubm 8,8,8 3237e7039be7Schristos.long 0x11EFE548 3238e7039be7Schristos.long 0x1210E548 3239e7039be7Schristos lvx 24,0,7 3240e7039be7Schristos vand 11,11,10 3241e7039be7Schristos 3242e7039be7Schristos.long 0x10E7ED48 3243e7039be7Schristos.long 0x118CED48 3244*7d9ffdb3Schristos xxlor 32+4, 0, 0 3245*7d9ffdb3Schristos vpermxor 8, 8, 11, 4 3246e7039be7Schristos.long 0x11ADED48 3247e7039be7Schristos.long 0x11CEED48 3248e7039be7Schristos vxor 4,21,31 3249e7039be7Schristos vsrab 11,8,9 3250e7039be7Schristos vxor 21,8,23 3251e7039be7Schristos.long 0x11EFED48 3252e7039be7Schristos.long 0x1210ED48 3253e7039be7Schristos lvx 25,3,7 3254e7039be7Schristos vaddubm 8,8,8 3255e7039be7Schristos 3256e7039be7Schristos.long 0x10E7F548 3257e7039be7Schristos.long 0x118CF548 3258e7039be7Schristos vand 11,11,10 3259e7039be7Schristos.long 0x11ADF548 3260e7039be7Schristos.long 0x11CEF548 3261*7d9ffdb3Schristos xxlor 32+5, 0, 0 3262*7d9ffdb3Schristos vpermxor 8, 8, 11, 5 3263e7039be7Schristos.long 0x11EFF548 3264e7039be7Schristos.long 0x1210F548 3265e7039be7Schristos vxor 5,22,31 3266e7039be7Schristos vsrab 11,8,9 3267e7039be7Schristos vxor 22,8,23 3268e7039be7Schristos 3269e7039be7Schristos.long 0x10E70549 3270e7039be7Schristos.long 0x7C005699 3271e7039be7Schristos vaddubm 8,8,8 3272e7039be7Schristos.long 0x118C0D49 3273e7039be7Schristos.long 0x7C235699 3274e7039be7Schristos.long 0x11AD1549 3275e7039be7Schristos 3276e7039be7Schristos.long 0x7C5A5699 3277e7039be7Schristos vand 11,11,10 3278e7039be7Schristos.long 0x11CE1D49 3279e7039be7Schristos 3280e7039be7Schristos.long 0x7C7B5699 3281e7039be7Schristos.long 0x11EF2549 3282e7039be7Schristos 3283e7039be7Schristos.long 0x7C9C5699 3284*7d9ffdb3Schristos xxlor 10, 32+0, 32+0 3285*7d9ffdb3Schristos xxlor 32+0, 0, 0 3286*7d9ffdb3Schristos vpermxor 8, 8, 11, 0 3287*7d9ffdb3Schristos xxlor 32+0, 10, 10 3288e7039be7Schristos.long 0x12102D49 3289e7039be7Schristos 3290e7039be7Schristos.long 0x7CBD5699 3291e7039be7Schristos addi 10,10,0x60 3292e7039be7Schristos 3293e7039be7Schristos 3294e7039be7Schristos 3295e7039be7Schristos 3296e7039be7Schristos 3297e7039be7Schristos.long 0x7CE02799 3298e7039be7Schristos vxor 7,0,17 3299e7039be7Schristos 3300e7039be7Schristos.long 0x7D832799 3301e7039be7Schristos vxor 12,1,18 3302e7039be7Schristos 3303e7039be7Schristos.long 0x7DBA2799 3304e7039be7Schristos vxor 13,2,19 3305e7039be7Schristos 3306e7039be7Schristos.long 0x7DDB2799 3307e7039be7Schristos vxor 14,3,20 3308e7039be7Schristos 3309e7039be7Schristos.long 0x7DFC2799 3310e7039be7Schristos vxor 15,4,21 3311e7039be7Schristos.long 0x7E1D2799 3312e7039be7Schristos vxor 16,5,22 3313e7039be7Schristos addi 4,4,0x60 3314e7039be7Schristos 3315e7039be7Schristos mtctr 9 3316e7039be7Schristos beq .Loop_xts_dec6x 3317e7039be7Schristos 3318*7d9ffdb3Schristos xxlor 32+10, 2, 2 3319*7d9ffdb3Schristos 3320e7039be7Schristos addic. 5,5,0x60 3321e7039be7Schristos beq .Lxts_dec6x_zero 3322e7039be7Schristos cmpwi 5,0x20 3323e7039be7Schristos blt .Lxts_dec6x_one 3324e7039be7Schristos nop 3325e7039be7Schristos beq .Lxts_dec6x_two 3326e7039be7Schristos cmpwi 5,0x40 3327e7039be7Schristos blt .Lxts_dec6x_three 3328e7039be7Schristos nop 3329e7039be7Schristos beq .Lxts_dec6x_four 3330e7039be7Schristos 3331e7039be7Schristos.Lxts_dec6x_five: 3332e7039be7Schristos vxor 7,1,17 3333e7039be7Schristos vxor 12,2,18 3334e7039be7Schristos vxor 13,3,19 3335e7039be7Schristos vxor 14,4,20 3336e7039be7Schristos vxor 15,5,21 3337e7039be7Schristos 3338e7039be7Schristos bl _aesp8_xts_dec5x 3339e7039be7Schristos 3340e7039be7Schristos 3341e7039be7Schristos vor 17,22,22 3342e7039be7Schristos vxor 18,8,23 3343e7039be7Schristos 3344e7039be7Schristos.long 0x7CE02799 3345e7039be7Schristos vxor 7,0,18 3346e7039be7Schristos 3347e7039be7Schristos.long 0x7D832799 3348e7039be7Schristos 3349e7039be7Schristos.long 0x7DBA2799 3350e7039be7Schristos 3351e7039be7Schristos.long 0x7DDB2799 3352e7039be7Schristos.long 0x7DFC2799 3353e7039be7Schristos addi 4,4,0x50 3354e7039be7Schristos bne .Lxts_dec6x_steal 3355e7039be7Schristos b .Lxts_dec6x_done 3356e7039be7Schristos 3357e7039be7Schristos.align 4 3358e7039be7Schristos.Lxts_dec6x_four: 3359e7039be7Schristos vxor 7,2,17 3360e7039be7Schristos vxor 12,3,18 3361e7039be7Schristos vxor 13,4,19 3362e7039be7Schristos vxor 14,5,20 3363e7039be7Schristos vxor 15,15,15 3364e7039be7Schristos 3365e7039be7Schristos bl _aesp8_xts_dec5x 3366e7039be7Schristos 3367e7039be7Schristos 3368e7039be7Schristos vor 17,21,21 3369e7039be7Schristos vor 18,22,22 3370e7039be7Schristos 3371e7039be7Schristos.long 0x7CE02799 3372e7039be7Schristos vxor 7,0,22 3373e7039be7Schristos 3374e7039be7Schristos.long 0x7D832799 3375e7039be7Schristos 3376e7039be7Schristos.long 0x7DBA2799 3377e7039be7Schristos.long 0x7DDB2799 3378e7039be7Schristos addi 4,4,0x40 3379e7039be7Schristos bne .Lxts_dec6x_steal 3380e7039be7Schristos b .Lxts_dec6x_done 3381e7039be7Schristos 3382e7039be7Schristos.align 4 3383e7039be7Schristos.Lxts_dec6x_three: 3384e7039be7Schristos vxor 7,3,17 3385e7039be7Schristos vxor 12,4,18 3386e7039be7Schristos vxor 13,5,19 3387e7039be7Schristos vxor 14,14,14 3388e7039be7Schristos vxor 15,15,15 3389e7039be7Schristos 3390e7039be7Schristos bl _aesp8_xts_dec5x 3391e7039be7Schristos 3392e7039be7Schristos 3393e7039be7Schristos vor 17,20,20 3394e7039be7Schristos vor 18,21,21 3395e7039be7Schristos 3396e7039be7Schristos.long 0x7CE02799 3397e7039be7Schristos vxor 7,0,21 3398e7039be7Schristos 3399e7039be7Schristos.long 0x7D832799 3400e7039be7Schristos.long 0x7DBA2799 3401e7039be7Schristos addi 4,4,0x30 3402e7039be7Schristos bne .Lxts_dec6x_steal 3403e7039be7Schristos b .Lxts_dec6x_done 3404e7039be7Schristos 3405e7039be7Schristos.align 4 3406e7039be7Schristos.Lxts_dec6x_two: 3407e7039be7Schristos vxor 7,4,17 3408e7039be7Schristos vxor 12,5,18 3409e7039be7Schristos vxor 13,13,13 3410e7039be7Schristos vxor 14,14,14 3411e7039be7Schristos vxor 15,15,15 3412e7039be7Schristos 3413e7039be7Schristos bl _aesp8_xts_dec5x 3414e7039be7Schristos 3415e7039be7Schristos 3416e7039be7Schristos vor 17,19,19 3417e7039be7Schristos vor 18,20,20 3418e7039be7Schristos 3419e7039be7Schristos.long 0x7CE02799 3420e7039be7Schristos vxor 7,0,20 3421e7039be7Schristos.long 0x7D832799 3422e7039be7Schristos addi 4,4,0x20 3423e7039be7Schristos bne .Lxts_dec6x_steal 3424e7039be7Schristos b .Lxts_dec6x_done 3425e7039be7Schristos 3426e7039be7Schristos.align 4 3427e7039be7Schristos.Lxts_dec6x_one: 3428e7039be7Schristos vxor 7,5,17 3429e7039be7Schristos nop 3430e7039be7Schristos.Loop_xts_dec1x: 3431e7039be7Schristos.long 0x10E7C548 3432e7039be7Schristos lvx 24,26,7 3433e7039be7Schristos addi 7,7,0x20 3434e7039be7Schristos 3435e7039be7Schristos.long 0x10E7CD48 3436e7039be7Schristos lvx 25,3,7 3437e7039be7Schristos bc 16,0,.Loop_xts_dec1x 3438e7039be7Schristos 3439e7039be7Schristos subi 0,31,1 3440e7039be7Schristos.long 0x10E7C548 3441e7039be7Schristos 3442e7039be7Schristos andi. 0,0,16 3443e7039be7Schristos cmpwi 31,0 3444e7039be7Schristos.long 0x10E7CD48 3445e7039be7Schristos 3446e7039be7Schristos sub 10,10,0 3447e7039be7Schristos.long 0x10E7D548 3448e7039be7Schristos 3449e7039be7Schristos.long 0x7C005699 3450e7039be7Schristos.long 0x10E7DD48 3451e7039be7Schristos 3452e7039be7Schristos addi 7,1,32+15 3453e7039be7Schristos.long 0x10E7E548 3454e7039be7Schristos lvx 24,0,7 3455e7039be7Schristos 3456e7039be7Schristos.long 0x10E7ED48 3457e7039be7Schristos lvx 25,3,7 3458e7039be7Schristos vxor 17,17,31 3459e7039be7Schristos 3460e7039be7Schristos 3461e7039be7Schristos.long 0x10E7F548 3462e7039be7Schristos 3463e7039be7Schristos mtctr 9 3464e7039be7Schristos.long 0x10E78D49 3465e7039be7Schristos 3466e7039be7Schristos vor 17,18,18 3467e7039be7Schristos vor 18,19,19 3468e7039be7Schristos 3469e7039be7Schristos.long 0x7CE02799 3470e7039be7Schristos addi 4,4,0x10 3471e7039be7Schristos vxor 7,0,19 3472e7039be7Schristos bne .Lxts_dec6x_steal 3473e7039be7Schristos b .Lxts_dec6x_done 3474e7039be7Schristos 3475e7039be7Schristos.align 4 3476e7039be7Schristos.Lxts_dec6x_zero: 3477e7039be7Schristos cmpwi 31,0 3478e7039be7Schristos beq .Lxts_dec6x_done 3479e7039be7Schristos 3480e7039be7Schristos.long 0x7C005699 3481e7039be7Schristos 3482e7039be7Schristos vxor 7,0,18 3483e7039be7Schristos.Lxts_dec6x_steal: 3484e7039be7Schristos.long 0x10E7C548 3485e7039be7Schristos lvx 24,26,7 3486e7039be7Schristos addi 7,7,0x20 3487e7039be7Schristos 3488e7039be7Schristos.long 0x10E7CD48 3489e7039be7Schristos lvx 25,3,7 3490e7039be7Schristos bc 16,0,.Lxts_dec6x_steal 3491e7039be7Schristos 3492e7039be7Schristos add 10,10,31 3493e7039be7Schristos.long 0x10E7C548 3494e7039be7Schristos 3495e7039be7Schristos cmpwi 31,0 3496e7039be7Schristos.long 0x10E7CD48 3497e7039be7Schristos 3498e7039be7Schristos.long 0x7C005699 3499e7039be7Schristos.long 0x10E7D548 3500e7039be7Schristos 3501e7039be7Schristos lvsr 5,0,31 3502e7039be7Schristos.long 0x10E7DD48 3503e7039be7Schristos 3504e7039be7Schristos addi 7,1,32+15 3505e7039be7Schristos.long 0x10E7E548 3506e7039be7Schristos lvx 24,0,7 3507e7039be7Schristos 3508e7039be7Schristos.long 0x10E7ED48 3509e7039be7Schristos lvx 25,3,7 3510e7039be7Schristos vxor 18,18,31 3511e7039be7Schristos 3512e7039be7Schristos 3513e7039be7Schristos.long 0x10E7F548 3514e7039be7Schristos 3515e7039be7Schristos vperm 0,0,0,5 3516e7039be7Schristos.long 0x11679549 3517e7039be7Schristos 3518e7039be7Schristos 3519e7039be7Schristos 3520e7039be7Schristos.long 0x7D602799 3521e7039be7Schristos 3522e7039be7Schristos vxor 7,7,7 3523e7039be7Schristos vspltisb 12,-1 3524e7039be7Schristos vperm 7,7,12,5 3525e7039be7Schristos vsel 7,0,11,7 3526e7039be7Schristos vxor 7,7,17 3527e7039be7Schristos 3528e7039be7Schristos subi 30,4,1 3529e7039be7Schristos mtctr 31 3530e7039be7Schristos.Loop_xts_dec6x_steal: 3531e7039be7Schristos lbzu 0,1(30) 3532e7039be7Schristos stb 0,16(30) 3533e7039be7Schristos bc 16,0,.Loop_xts_dec6x_steal 3534e7039be7Schristos 3535e7039be7Schristos li 31,0 3536e7039be7Schristos mtctr 9 3537e7039be7Schristos b .Loop_xts_dec1x 3538e7039be7Schristos 3539e7039be7Schristos.align 4 3540e7039be7Schristos.Lxts_dec6x_done: 3541e7039be7Schristos cmplwi 8,0 3542e7039be7Schristos beq .Lxts_dec6x_ret 3543e7039be7Schristos 3544e7039be7Schristos vxor 8,17,23 3545e7039be7Schristos 3546e7039be7Schristos.long 0x7D004799 3547e7039be7Schristos 3548e7039be7Schristos.Lxts_dec6x_ret: 3549e7039be7Schristos mtlr 11 3550e7039be7Schristos li 10,47 3551e7039be7Schristos li 11,63 3552e7039be7Schristos stvx 9,10,1 3553e7039be7Schristos addi 10,10,32 3554e7039be7Schristos stvx 9,11,1 3555e7039be7Schristos addi 11,11,32 3556e7039be7Schristos stvx 9,10,1 3557e7039be7Schristos addi 10,10,32 3558e7039be7Schristos stvx 9,11,1 3559e7039be7Schristos addi 11,11,32 3560e7039be7Schristos stvx 9,10,1 3561e7039be7Schristos addi 10,10,32 3562e7039be7Schristos stvx 9,11,1 3563e7039be7Schristos addi 11,11,32 3564e7039be7Schristos stvx 9,10,1 3565e7039be7Schristos addi 10,10,32 3566e7039be7Schristos stvx 9,11,1 3567e7039be7Schristos addi 11,11,32 3568e7039be7Schristos 3569e7039be7Schristos mtspr 256,12 3570e7039be7Schristos lvx 20,10,1 3571e7039be7Schristos addi 10,10,32 3572e7039be7Schristos lvx 21,11,1 3573e7039be7Schristos addi 11,11,32 3574e7039be7Schristos lvx 22,10,1 3575e7039be7Schristos addi 10,10,32 3576e7039be7Schristos lvx 23,11,1 3577e7039be7Schristos addi 11,11,32 3578e7039be7Schristos lvx 24,10,1 3579e7039be7Schristos addi 10,10,32 3580e7039be7Schristos lvx 25,11,1 3581e7039be7Schristos addi 11,11,32 3582e7039be7Schristos lvx 26,10,1 3583e7039be7Schristos addi 10,10,32 3584e7039be7Schristos lvx 27,11,1 3585e7039be7Schristos addi 11,11,32 3586e7039be7Schristos lvx 28,10,1 3587e7039be7Schristos addi 10,10,32 3588e7039be7Schristos lvx 29,11,1 3589e7039be7Schristos addi 11,11,32 3590e7039be7Schristos lvx 30,10,1 3591e7039be7Schristos lvx 31,11,1 3592e7039be7Schristos lwz 26,368(1) 3593e7039be7Schristos lwz 27,372(1) 3594e7039be7Schristos lwz 28,376(1) 3595e7039be7Schristos lwz 29,380(1) 3596e7039be7Schristos lwz 30,384(1) 3597e7039be7Schristos lwz 31,388(1) 3598e7039be7Schristos addi 1,1,392 3599e7039be7Schristos blr 3600e7039be7Schristos.long 0 3601e7039be7Schristos.byte 0,12,0x04,1,0x80,6,6,0 3602e7039be7Schristos.long 0 3603e7039be7Schristos 3604e7039be7Schristos.align 5 3605e7039be7Schristos_aesp8_xts_dec5x: 3606e7039be7Schristos.long 0x10E7C548 3607e7039be7Schristos.long 0x118CC548 3608e7039be7Schristos.long 0x11ADC548 3609e7039be7Schristos.long 0x11CEC548 3610e7039be7Schristos.long 0x11EFC548 3611e7039be7Schristos lvx 24,26,7 3612e7039be7Schristos addi 7,7,0x20 3613e7039be7Schristos 3614e7039be7Schristos.long 0x10E7CD48 3615e7039be7Schristos.long 0x118CCD48 3616e7039be7Schristos.long 0x11ADCD48 3617e7039be7Schristos.long 0x11CECD48 3618e7039be7Schristos.long 0x11EFCD48 3619e7039be7Schristos lvx 25,3,7 3620e7039be7Schristos bc 16,0,_aesp8_xts_dec5x 3621e7039be7Schristos 3622e7039be7Schristos subi 0,31,1 3623e7039be7Schristos.long 0x10E7C548 3624e7039be7Schristos.long 0x118CC548 3625e7039be7Schristos.long 0x11ADC548 3626e7039be7Schristos.long 0x11CEC548 3627e7039be7Schristos.long 0x11EFC548 3628e7039be7Schristos 3629e7039be7Schristos andi. 0,0,16 3630e7039be7Schristos cmpwi 31,0 3631e7039be7Schristos.long 0x10E7CD48 3632e7039be7Schristos.long 0x118CCD48 3633e7039be7Schristos.long 0x11ADCD48 3634e7039be7Schristos.long 0x11CECD48 3635e7039be7Schristos.long 0x11EFCD48 3636e7039be7Schristos vxor 17,17,31 3637e7039be7Schristos 3638e7039be7Schristos sub 10,10,0 3639e7039be7Schristos.long 0x10E7D548 3640e7039be7Schristos.long 0x118CD548 3641e7039be7Schristos.long 0x11ADD548 3642e7039be7Schristos.long 0x11CED548 3643e7039be7Schristos.long 0x11EFD548 3644e7039be7Schristos vxor 1,18,31 3645e7039be7Schristos 3646e7039be7Schristos.long 0x10E7DD48 3647e7039be7Schristos.long 0x7C005699 3648e7039be7Schristos.long 0x118CDD48 3649e7039be7Schristos.long 0x11ADDD48 3650e7039be7Schristos.long 0x11CEDD48 3651e7039be7Schristos.long 0x11EFDD48 3652e7039be7Schristos vxor 2,19,31 3653e7039be7Schristos 3654e7039be7Schristos addi 7,1,32+15 3655e7039be7Schristos.long 0x10E7E548 3656e7039be7Schristos.long 0x118CE548 3657e7039be7Schristos.long 0x11ADE548 3658e7039be7Schristos.long 0x11CEE548 3659e7039be7Schristos.long 0x11EFE548 3660e7039be7Schristos lvx 24,0,7 3661e7039be7Schristos vxor 3,20,31 3662e7039be7Schristos 3663e7039be7Schristos.long 0x10E7ED48 3664e7039be7Schristos 3665e7039be7Schristos.long 0x118CED48 3666e7039be7Schristos.long 0x11ADED48 3667e7039be7Schristos.long 0x11CEED48 3668e7039be7Schristos.long 0x11EFED48 3669e7039be7Schristos lvx 25,3,7 3670e7039be7Schristos vxor 4,21,31 3671e7039be7Schristos 3672e7039be7Schristos.long 0x10E7F548 3673e7039be7Schristos.long 0x118CF548 3674e7039be7Schristos.long 0x11ADF548 3675e7039be7Schristos.long 0x11CEF548 3676e7039be7Schristos.long 0x11EFF548 3677e7039be7Schristos 3678e7039be7Schristos.long 0x10E78D49 3679e7039be7Schristos.long 0x118C0D49 3680e7039be7Schristos.long 0x11AD1549 3681e7039be7Schristos.long 0x11CE1D49 3682e7039be7Schristos.long 0x11EF2549 3683e7039be7Schristos mtctr 9 3684e7039be7Schristos blr 3685e7039be7Schristos.long 0 3686e7039be7Schristos.byte 0,12,0x14,0,0,0,0,0 3687