# salsa20_word_aix version 20050410 # D. J. Bernstein # Public domain. register int32 y0 register int32 y1 register int32 y2 register int32 y3 register int32 y4 register int32 y5 register int32 y6 register int32 y7 register int32 y8 register int32 y9 register int32 y10 register int32 y11 register int32 y12 register int32 y13 register int32 y14 register int32 y15 register int32 i register int32 x0 register int32 x1 register int32 x2 register int32 x3 register int32 x4 register int32 x5 register int32 x6 register int32 x7 register int32 x8 register int32 x9 register int32 x10 register int32 x11 register int32 x12 register int32 x13 register int32 x14 register int32 x15 register int32 in register int32 out enter salsa20_word_aix input out input in store callerint 31 store callerint 30 store callerint 29 store callerint 28 store callerint 27 store callerint 26 store callerint 25 store callerint 24 store callerint 23 store callerint 22 store callerint 21 store callerint 20 store callerint 19 x0 = *(uint32 *) (in + 0) x1 = *(uint32 *) (in + 4) x2 = *(uint32 *) (in + 8) x3 = *(uint32 *) (in + 12) x4 = *(uint32 *) (in + 16) x5 = *(uint32 *) (in + 20) x6 = *(uint32 *) (in + 24) x7 = *(uint32 *) (in + 28) x8 = *(uint32 *) (in + 32) x9 = *(uint32 *) (in + 36) x10 = *(uint32 *) (in + 40) x11 = *(uint32 *) (in + 44) x12 = *(uint32 *) (in + 48) x13 = *(uint32 *) (in + 52) x14 = *(uint32 *) (in + 56) x15 = *(uint32 *) (in + 60) i = 20 mainloop: y4 = x0 + x12 y4 <<<= 7 y9 = x5 + x1 y9 <<<= 7 y14 = x10 + x6 y14 <<<= 7 y3 = x15 + x11 y3 <<<= 7 x4 ^= y4 x9 ^= y9 x14 ^= y14 x3 ^= y3 y8 = x4 + x0 y8 <<<= 9 y13 = x9 + x5 y13 <<<= 9 y2 = x14 + x10 y2 <<<= 9 y7 = x3 + x15 y7 <<<= 9 x8 ^= y8 x13 ^= y13 x2 ^= y2 x7 ^= y7 y12 = x8 + x4 y12 <<<= 13 y1 = x13 + x9 y1 <<<= 13 y6 = x2 + x14 y6 <<<= 13 y11 = x7 + x3 y11 <<<= 13 x12 ^= y12 x1 ^= y1 x6 ^= y6 x11 ^= y11 y0 = x12 + x8 y0 <<<= 18 y5 = x1 + x13 y5 <<<= 18 y10 = x6 + x2 y10 <<<= 18 y15 = x11 + x7 y15 <<<= 18 x0 ^= y0 x5 ^= y5 x10 ^= y10 x15 ^= y15 y1 = x0 + x3 y1 <<<= 7 y6 = x5 + x4 y6 <<<= 7 y11 = x10 + x9 y11 <<<= 7 y12 = x15 + x14 y12 <<<= 7 x1 ^= y1 x6 ^= y6 x11 ^= y11 x12 ^= y12 y2 = x1 + x0 y2 <<<= 9 lgeflags signed i = i - 2 y7 = x6 + x5 y7 <<<= 9 y8 = x11 + x10 y8 <<<= 9 y13 = x12 + x15 y13 <<<= 9 x2 ^= y2 x7 ^= y7 x8 ^= y8 x13 ^= y13 y3 = x2 + x1 y3 <<<= 13 y4 = x7 + x6 y4 <<<= 13 y9 = x8 + x11 y9 <<<= 13 y14 = x13 + x12 y14 <<<= 13 x3 ^= y3 x4 ^= y4 x9 ^= y9 x14 ^= y14 y0 = x3 + x2 y0 <<<= 18 y5 = x4 + x7 y5 <<<= 18 y10 = x9 + x8 y10 <<<= 18 y15 = x14 + x13 y15 <<<= 18 x0 ^= y0 x5 ^= y5 x10 ^= y10 x15 ^= y15 goto mainloop if > y0 = *(uint32 *) (in + 0) x0 += y0 y1 = *(uint32 *) (in + 4) x1 += y1 y2 = *(uint32 *) (in + 8) x2 += y2 y3 = *(uint32 *) (in + 12) x3 += y3 y4 = *(uint32 *) (in + 16) x4 += y4 y5 = *(uint32 *) (in + 20) x5 += y5 y6 = *(uint32 *) (in + 24) x6 += y6 y7 = *(uint32 *) (in + 28) x7 += y7 y8 = *(uint32 *) (in + 32) x8 += y8 y9 = *(uint32 *) (in + 36) x9 += y9 y10 = *(uint32 *) (in + 40) x10 += y10 y11 = *(uint32 *) (in + 44) x11 += y11 y12 = *(uint32 *) (in + 48) x12 += y12 y13 = *(uint32 *) (in + 52) x13 += y13 y14 = *(uint32 *) (in + 56) x14 += y14 y15 = *(uint32 *) (in + 60) x15 += y15 *(uint32 *) (out + 0) = x0 *(uint32 *) (out + 4) = x1 *(uint32 *) (out + 8) = x2 *(uint32 *) (out + 12) = x3 *(uint32 *) (out + 16) = x4 *(uint32 *) (out + 20) = x5 *(uint32 *) (out + 24) = x6 *(uint32 *) (out + 28) = x7 *(uint32 *) (out + 32) = x8 *(uint32 *) (out + 36) = x9 *(uint32 *) (out + 40) = x10 *(uint32 *) (out + 44) = x11 *(uint32 *) (out + 48) = x12 *(uint32 *) (out + 52) = x13 *(uint32 *) (out + 56) = x14 *(uint32 *) (out + 60) = x15 load callerint 31 load callerint 30 load callerint 29 load callerint 28 load callerint 27 load callerint 26 load callerint 25 load callerint 24 load callerint 23 load callerint 22 load callerint 21 load callerint 20 load callerint 19 leave