Cut out a few instructions by reusing subexpressions in registers.

This commit is contained in:
Stephen Heumann 2017-06-26 20:53:17 -05:00
parent 3df0080371
commit 301021e75e

View File

@ -31,45 +31,39 @@
macro macro
MixColumn &i,&A,&B,&C,&D,&state,&out MixColumn &i,&A,&B,&C,&D,&state,&out
ldy &state+&A ldx &state+&A
lda Xtime2Sbox,Y lda Xtime2Sbox,X
ldy &state+&B ldy &state+&B
eor Xtime3Sbox,Y eor Xtime3Sbox,Y
ldy &state+&C
eor Sbox,Y
ldy &state+&D ldy &state+&D
eor Sbox,Y eor Sbox,Y
ldy &state+&C
eor Sbox,Y
eor rk+&round*16+&i eor rk+&round*16+&i
sta &out+&i sta &out+&i
ldy &state+&A lda Xtime3Sbox,Y
lda Sbox,Y eor Sbox,X
ldy &state+&B ldy &state+&B
eor Xtime2Sbox,Y eor Xtime2Sbox,Y
ldy &state+&C
eor Xtime3Sbox,Y
ldy &state+&D ldy &state+&D
eor Sbox,Y eor Sbox,Y
eor rk+&round*16+&i+1 eor rk+&round*16+&i+1
sta &out+&i+1 sta &out+&i+1
ldy &state+&A lda Xtime3Sbox,Y
lda Sbox,Y eor Sbox,X
ldy &state+&B ldy &state+&B
eor Sbox,Y eor Sbox,Y
ldy &state+&C ldy &state+&C
eor Xtime2Sbox,Y eor Xtime2Sbox,Y
ldy &state+&D
eor Xtime3Sbox,Y
eor rk+&round*16+&i+2 eor rk+&round*16+&i+2
sta &out+&i+2 sta &out+&i+2
ldy &state+&A lda Sbox,Y
lda Xtime3Sbox,Y eor Xtime3Sbox,X
ldy &state+&B ldy &state+&B
eor Sbox,Y eor Sbox,Y
ldy &state+&C
eor Sbox,Y
ldy &state+&D ldy &state+&D
eor Xtime2Sbox,Y eor Xtime2Sbox,Y
eor rk+&round*16+&i+3 eor rk+&round*16+&i+3