From a7d538a82f38e2ea52daa17fa32a5b72b81b766d Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Tue, 30 Nov 2021 12:56:08 +1000 Subject: [PATCH] SP math all: MIPS asm fix Names $lo and $hi in register list are not supported with old GCC compiler. Newer compiler also supports %lo and %hi. --- wolfcrypt/src/sp_int.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/wolfcrypt/src/sp_int.c b/wolfcrypt/src/sp_int.c index 049759827..01ea8d1cf 100644 --- a/wolfcrypt/src/sp_int.c +++ b/wolfcrypt/src/sp_int.c @@ -1430,7 +1430,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "mfhi %[h] \n\t" \ : [h] "+r" (vh), [l] "+r" (vl) \ : [a] "r" (va), [b] "r" (vb) \ - : "memory", "$lo", "$hi" \ + : "memory", "%lo", "%hi" \ ) /* Multiply va by vb and store double size result in: vo | vh | vl */ #define SP_ASM_MUL_SET(vl, vh, vo, va, vb) \ @@ -1441,7 +1441,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "move %[o], $0 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh), [o] "=r" (vo) \ : [a] "r" (va), [b] "r" (vb) \ - : "$lo", "$hi" \ + : "%lo", "%hi" \ ) /* Multiply va by vb and add double size result into: vo | vh | vl */ #define SP_ASM_MUL_ADD(vl, vh, vo, va, vb) \ @@ -1459,7 +1459,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "addu %[o], %[o], $12 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh), [o] "+r" (vo) \ : [a] "r" (va), [b] "r" (vb) \ - : "$10", "$11", "$12", "$lo", "$hi" \ + : "$10", "$11", "$12", "%lo", "%hi" \ ) /* Multiply va by vb and add double size result into: vh | vl */ #define SP_ASM_MUL_ADD_NO(vl, vh, va, vb) \ @@ -1473,7 +1473,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "addu %[h], %[h], $12 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh) \ : [a] "r" (va), [b] "r" (vb) \ - : "$10", "$11", "$12", "$lo", "$hi" \ + : "$10", "$11", "$12", "%lo", "%hi" \ ) /* Multiply va by vb and add double size result twice into: vo | vh | vl */ #define SP_ASM_MUL_ADD2(vl, vh, vo, va, vb) \ @@ -1499,7 +1499,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "addu %[o], %[o], $12 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh), [o] "+r" (vo) \ : [a] "r" (va), [b] "r" (vb) \ - : "$10", "$11", "$12", "$lo", "$hi" \ + : "$10", "$11", "$12", "%lo", "%hi" \ ) /* Multiply va by vb and add double size result twice into: vo | vh | vl * Assumes first add will not overflow vh | vl @@ -1523,7 +1523,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "addu %[o], %[o], $12 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh), [o] "+r" (vo) \ : [a] "r" (va), [b] "r" (vb) \ - : "$10", "$11", "$12", "$lo", "$hi" \ + : "$10", "$11", "$12", "%lo", "%hi" \ ) /* Square va and store double size result in: vh | vl */ #define SP_ASM_SQR(vl, vh, va) \ @@ -1533,7 +1533,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "mfhi %[h] \n\t" \ : [h] "+r" (vh), [l] "+r" (vl) \ : [a] "r" (va) \ - : "memory", "$lo", "$hi" \ + : "memory", "%lo", "%hi" \ ) /* Square va and add double size result into: vo | vh | vl */ #define SP_ASM_SQR_ADD(vl, vh, vo, va) \ @@ -1551,7 +1551,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "addu %[o], %[o], $12 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh), [o] "+r" (vo) \ : [a] "r" (va) \ - : "$10", "$11", "$12", "$lo", "$hi" \ + : "$10", "$11", "$12", "%lo", "%hi" \ ) /* Square va and add double size result into: vh | vl */ #define SP_ASM_SQR_ADD_NO(vl, vh, va) \ @@ -1565,7 +1565,7 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo, "addu %[h], %[h], $12 \n\t" \ : [l] "+r" (vl), [h] "+r" (vh) \ : [a] "r" (va) \ - : "$10", "$11", "$12", "$lo", "$hi" \ + : "$10", "$11", "$12", "%lo", "%hi" \ ) /* Add va into: vh | vl */ #define SP_ASM_ADDC(vl, vh, va) \