Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
In the context of the change, t0 and IN are the same after ``` veor $IN,$t0,$t2 @ inp^=Xi veor $t1,$t0,$t2 @ $t1 is rotated inp^Xi ``` Moreover, after all of ``` vpmull2.p64 $Xl,$H,$IN @ H.lo·Xi.lo vext.8 $IN, $IN, $IN, aws#8 veor $t1,$t1,$IN @ Karatsuba pre-processing vpmull.p64 $Xm,$Hhl,$t1 @ (H.lo+H.hi)·(Xi.lo+Xi.hi) vext.8 $IN, $IN, $IN, aws#8 ``` `IN` is unchanged because it was swapped twice, and t1 only feeds into the computation of Xm and is not used further afterwards. Hence, the above is equivalent to ``` vpmull2.p64 $Xl,$H,$IN @ H.lo·Xi.lo vext.8 $t1, $IN, $IN, aws#8 veor $t1,$t1,$IN @ Karatsuba pre-processing vpmull.p64 $Xm,$Hhl,$t1 @ (H.lo+H.hi)·(Xi.lo+Xi.hi) ``` removing one `vext`.
- Loading branch information