diff --git a/sparc/machine.m4 b/sparc/machine.m4 index 615e4f49c9270a450d0bdb508d11ab09f1f2ad06..a6ce0e86e6d333a49f2e9792e6f3b733f1d60192 100644 --- a/sparc/machine.m4 +++ b/sparc/machine.m4 @@ -41,21 +41,25 @@ define(<AES_ROUND>, < and TMP1, 0x3fc, TMP1 add TMP1, AES_TABLE1, TMP1 ld [$2 + TMP1], TMP1 + nop xor $8, TMP1, $8 srl $5, 14, TMP1 and TMP1, 0x3fc, TMP1 add TMP1, AES_TABLE2, TMP1 ld [$2 + TMP1], TMP1 + nop xor $8, TMP1, $8 - srl $4, 22, TMP1 + srl $6, 22, TMP1 and TMP1, 0x3fc, TMP1 add TMP1, AES_TABLE3, TMP1 ld [$2 + TMP1], TMP1 + nop xor $8, TMP1, $8 ld [$7 + eval(4*$1)], TMP1 + nop xor $8, TMP1, $8>)dnl C AES_FINAL_ROUND(i, T, a, b, c, d, key, dst) @@ -67,26 +71,27 @@ define(<AES_FINAL_ROUND>, < and $3, 0xff, TMP2 ldub [T + TMP2], TMP2 + nop xor TMP1, TMP2, TMP2 - stb [$8 + eval(4*i)] + stb TMP2, [$8 + eval(4*$1)] srl $4, 8, TMP2 and TMP2, 0xff, TMP2 ldub [T + TMP2], TMP2 srl TMP1, 8, TMP1 xor TMP1, TMP2, TMP2 - stb [$8 + eval(4*i + 1)] + stb TMP2, [$8 + eval(4*$1 + 1)] srl $5, 16, TMP2 and TMP2, 0xff, TMP2 ldub [T + TMP2], TMP2 srl TMP1, 8, TMP1 xor TMP1, TMP2, TMP2 - stb [$8 + eval(4*i + 2)] + stb TMP2, [$8 + eval(4*$1 + 2)] srl $6, 24, TMP2 ldub [T + TMP2], TMP2 srl TMP1, 8, TMP1 xor TMP1, TMP2, TMP2 - stb [$8 + eval(4*i + 1)]>) + stb TMP2, [$8 + eval(4*$1 + 3)]>)