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.
This commit is contained in:
parent
7221e06ff7
commit
a7d538a82f
@ -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) \
|
||||
|
Loading…
x
Reference in New Issue
Block a user