diff options
-rw-r--r-- | modules/mp_ia32_msvc/mp_asmi.h | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/modules/mp_ia32_msvc/mp_asmi.h b/modules/mp_ia32_msvc/mp_asmi.h index ad1451010..d0f7d7bb6 100644 --- a/modules/mp_ia32_msvc/mp_asmi.h +++ b/modules/mp_ia32_msvc/mp_asmi.h @@ -467,16 +467,17 @@ __forceinline word word8_linmul3(word z[4], const word x[4], word y, word carry) /************************************************* * Eight Word Block Multiply-Add * *************************************************/ -inline void word8_madd3(word z[], word x, const word y[], word* carry) +inline word word8_madd3(word z[8], const word x[8], word y, word carry) { - word_madd(x, y[0], z[0], *carry, z + 0, carry); - word_madd(x, y[1], z[1], *carry, z + 1, carry); - word_madd(x, y[2], z[2], *carry, z + 2, carry); - word_madd(x, y[3], z[3], *carry, z + 3, carry); - word_madd(x, y[4], z[4], *carry, z + 4, carry); - word_madd(x, y[5], z[5], *carry, z + 5, carry); - word_madd(x, y[6], z[6], *carry, z + 6, carry); - word_madd(x, y[7], z[7], *carry, z + 7, carry); + z[0] = word_madd3(x[0], y, z[0], carry, &carry); + z[1] = word_madd3(x[1], y, z[1], carry, &carry); + z[2] = word_madd3(x[2], y, z[2], carry, &carry); + z[3] = word_madd3(x[3], y, z[3], carry, &carry); + z[4] = word_madd3(x[4], y, z[4], carry, &carry); + z[5] = word_madd3(x[5], y, z[5], carry, &carry); + z[6] = word_madd3(x[6], y, z[6], carry, &carry); + z[7] = word_madd3(x[7], y, z[7], carry, &carry); + return carry; } } |