tcgbios: Use assembly for 32 bit rotr in sha256

Use assembly for the 32 bit rotr in the sha256 implementation
similar to the assembly used in the sha1 and sha512 implementations.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
This commit is contained in:
Stefan Berger 2021-07-09 11:39:00 -04:00 committed by Alexey Kardashevskiy
parent cc4c4cb3c1
commit e1362035a2
1 changed files with 10 additions and 4 deletions

View File

@ -22,10 +22,16 @@ typedef struct _sha256_ctx {
uint32_t h[8];
} sha256_ctx;
static inline uint32_t rotr(uint32_t x, uint8_t n)
{
return (x >> n) | (x << (32 - n));
}
#define rotr(VAL, N) \
({ \
uint32_t res; \
__asm__ ( \
"rotrwi %0, %1, %2\n\t" \
: "=r" (res) \
: "r" (VAL), "i" (N) \
); \
res; \
})
static inline uint32_t Ch(uint32_t x, uint32_t y, uint32_t z)
{