|
|
@ -66,7 +66,7 @@ namespace crypto
|
|
|
|
"movups %%xmm1, 224(%[sched]) \n"
|
|
|
|
"movups %%xmm1, 224(%[sched]) \n"
|
|
|
|
: // output
|
|
|
|
: // output
|
|
|
|
: [key]"r"((const uint8_t *)key), [sched]"r"(GetKeySchedule ()) // input
|
|
|
|
: [key]"r"((const uint8_t *)key), [sched]"r"(GetKeySchedule ()) // input
|
|
|
|
: "%xmm1", "%xmm2", "%xmm3", "%xmm4" // clogged
|
|
|
|
: "%xmm1", "%xmm2", "%xmm3", "%xmm4", "memory" // clogged
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -94,7 +94,7 @@ namespace crypto
|
|
|
|
"movups (%[in]), %%xmm0 \n"
|
|
|
|
"movups (%[in]), %%xmm0 \n"
|
|
|
|
EncryptAES256(sched)
|
|
|
|
EncryptAES256(sched)
|
|
|
|
"movups %%xmm0, (%[out]) \n"
|
|
|
|
"movups %%xmm0, (%[out]) \n"
|
|
|
|
: : [sched]"r"(GetKeySchedule ()), [in]"r"(in), [out]"r"(out) : "%xmm0"
|
|
|
|
: : [sched]"r"(GetKeySchedule ()), [in]"r"(in), [out]"r"(out) : "%xmm0", "memory"
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -122,7 +122,7 @@ namespace crypto
|
|
|
|
"movups (%[in]), %%xmm0 \n"
|
|
|
|
"movups (%[in]), %%xmm0 \n"
|
|
|
|
DecryptAES256(sched)
|
|
|
|
DecryptAES256(sched)
|
|
|
|
"movups %%xmm0, (%[out]) \n"
|
|
|
|
"movups %%xmm0, (%[out]) \n"
|
|
|
|
: : [sched]"r"(GetKeySchedule ()), [in]"r"(in), [out]"r"(out) : "%xmm0"
|
|
|
|
: : [sched]"r"(GetKeySchedule ()), [in]"r"(in), [out]"r"(out) : "%xmm0", "memory"
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -150,7 +150,7 @@ namespace crypto
|
|
|
|
CallAESIMC(176)
|
|
|
|
CallAESIMC(176)
|
|
|
|
CallAESIMC(192)
|
|
|
|
CallAESIMC(192)
|
|
|
|
CallAESIMC(208)
|
|
|
|
CallAESIMC(208)
|
|
|
|
: : [shed]"r"(GetKeySchedule ()) : "%xmm0"
|
|
|
|
: : [shed]"r"(GetKeySchedule ()) : "%xmm0", "memory"
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|