OPN_XXY(vxor, K, S0, S1, S2, S3, S4, S5, S6, S7)
mtctr ROUNDS
- li r10,0x10
+ li r10,-0x10
.align 5
L8x_round_loop:
lxvd2x VSR(K),r10,KEYS
vperm K,K,K,SWAP_MASK
OPN_XXY(vncipher, ZERO, S0, S1, S2, S3, S4, S5, S6, S7)
OPN_XXY(vxor, K, S0, S1, S2, S3, S4, S5, S6, S7)
- addi r10,r10,0x10
+ subi r10,r10,0x10
bdnz L8x_round_loop
lxvd2x VSR(K),r10,KEYS
OPN_XXY(vxor, K, S0, S1, S2, S3)
mtctr ROUNDS
- li r10,0x10
+ li r10,-0x10
.align 5
L4x_round_loop:
lxvd2x VSR(K),r10,KEYS
vperm K,K,K,SWAP_MASK
OPN_XXY(vncipher, ZERO, S0, S1, S2, S3)
OPN_XXY(vxor, K, S0, S1, S2, S3)
- addi r10,r10,0x10
+ subi r10,r10,0x10
bdnz L4x_round_loop
lxvd2x VSR(K),r10,KEYS
vxor S1,S1,K
mtctr ROUNDS
- li r10,0x10
+ li r10,-0x10
.align 5
L2x_round_loop:
lxvd2x VSR(K),r10,KEYS
vncipher S1,S1,ZERO
vxor S0,S0,K
vxor S1,S1,K
- addi r10,r10,0x10
+ subi r10,r10,0x10
bdnz L2x_round_loop
lxvd2x VSR(K),r10,KEYS
vxor S0,S0,K
mtctr ROUNDS
- li r10,0x10
+ li r10,-0x10
.align 5
L1x_round_loop:
lxvd2x VSR(K),r10,KEYS
vperm K,K,K,SWAP_MASK
vncipher S0,S0,ZERO
vxor S0,S0,K
- addi r10,r10,0x10
+ subi r10,r10,0x10
bdnz L1x_round_loop
lxvd2x VSR(K),r10,KEYS