Loading media/module/codecs/amrnb/common/include/basic_op_c_equivalent.h +22 −46 Original line number Diff line number Diff line Loading @@ -120,16 +120,12 @@ extern "C" { Word32 L_sum; L_sum = L_var1 + L_var2; if ((L_var1 ^ L_var2) >= 0) { if ((L_sum ^ L_var1) < 0) if (__builtin_add_overflow(L_var1, L_var2, &L_sum)) { // saturating... L_sum = (L_var1 < 0) ? MIN_32 : MAX_32; *pOverflow = 1; } } return (L_sum); } Loading Loading @@ -160,16 +156,12 @@ extern "C" { Word32 L_diff; L_diff = L_var1 - L_var2; if ((L_var1 ^ L_var2) < 0) { if ((L_diff ^ L_var1) & MIN_32) if (__builtin_sub_overflow(L_var1, L_var2, &L_diff)) { // saturating... L_diff = (L_var1 < 0L) ? MIN_32 : MAX_32; *pOverflow = 1; } } return (L_diff); } Loading Loading @@ -204,18 +196,14 @@ extern "C" result = (Word32) var1 * var2; if (result != (Word32) 0x40000000L) { L_sum = (result << 1) + L_var3; /* Check if L_sum and L_var_3 share the same sign */ if ((L_var3 ^ result) > 0) { if ((L_sum ^ L_var3) < 0) if (__builtin_add_overflow((result << 1), L_var3, &L_sum)) { // saturating... L_sum = (L_var3 < 0) ? MIN_32 : MAX_32; *pOverflow = 1; } } } else { *pOverflow = 1; Loading Loading @@ -345,15 +333,11 @@ extern "C" product32 = ((Word32) L_var1_hi * L_var2_lo) >> 15; /* L_product = L_mac (L_product, result, 1, pOverflow); */ L_sum = L_product + (product32 << 1); if ((L_product ^ product32) > 0) { if ((L_sum ^ L_product) < 0) if (__builtin_add_overflow(L_product, (product32 << 1), &L_sum)) { // saturating... L_sum = (L_product < 0) ? MIN_32 : MAX_32; } } L_product = L_sum; Loading @@ -361,15 +345,11 @@ extern "C" product32 = ((Word32) L_var1_lo * L_var2_hi) >> 15; /* L_product = L_mac (L_product, result, 1, pOverflow); */ L_sum = L_product + (product32 << 1); if ((L_product ^ product32) > 0) { if ((L_sum ^ L_product) < 0) if (__builtin_add_overflow(L_product, (product32 << 1), &L_sum)) { // saturating... L_sum = (L_product < 0) ? MIN_32 : MAX_32; } } return (L_sum); } Loading Loading @@ -416,16 +396,12 @@ extern "C" result = ((Word32)L_var1_lo * var2) >> 15; L_sum = L_product + (result << 1); if ((L_product ^ result) > 0) { if ((L_sum ^ L_product) < 0) if (__builtin_add_overflow(L_product, (result << 1), &L_sum)) { // saturating... L_sum = (L_product < 0) ? MIN_32 : MAX_32; *pOverflow = 1; } } return (L_sum); } Loading media/module/codecs/amrnb/enc/src/g_pitch.cpp +3 −7 Original line number Diff line number Diff line Loading @@ -376,17 +376,13 @@ Word16 G_pitch( /* o : Gain of pitch lag saturated to 1.2 */ { L_temp = ((Word32) * (p_xn++) * *(p_y1++)); s1 = s; s = s1 + L_temp; if ((s1 ^ L_temp) > 0) { if ((s1 ^ s) < 0) if (__builtin_add_overflow(s1, L_temp, &s)) { *pOverflow = 1; break; } } } if (!(*pOverflow)) { Loading media/module/codecs/amrwb/enc/inc/basic_op.h +6 −12 Original line number Diff line number Diff line Loading @@ -569,14 +569,11 @@ __attribute__((no_sanitize("integer"))) static_vo Word32 L_add (Word32 L_var1, Word32 L_var2) { Word32 L_var_out; L_var_out = L_var1 + L_var2; if (((L_var1 ^ L_var2) & MIN_32) == 0) { if ((L_var_out ^ L_var1) & MIN_32) if (__builtin_add_overflow(L_var1, L_var2, &L_var_out)) { // saturating... L_var_out = (L_var1 < 0) ? MIN_32 : MAX_32; } } return (L_var_out); } Loading Loading @@ -616,14 +613,11 @@ __attribute__((no_sanitize("integer"))) static_vo Word32 L_sub (Word32 L_var1, Word32 L_var2) { Word32 L_var_out; L_var_out = L_var1 - L_var2; if (((L_var1 ^ L_var2) & MIN_32) != 0) { if ((L_var_out ^ L_var1) & MIN_32) if (__builtin_sub_overflow(L_var1, L_var2, &L_var_out)) { // saturating... L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32; } } return (L_var_out); } Loading Loading
media/module/codecs/amrnb/common/include/basic_op_c_equivalent.h +22 −46 Original line number Diff line number Diff line Loading @@ -120,16 +120,12 @@ extern "C" { Word32 L_sum; L_sum = L_var1 + L_var2; if ((L_var1 ^ L_var2) >= 0) { if ((L_sum ^ L_var1) < 0) if (__builtin_add_overflow(L_var1, L_var2, &L_sum)) { // saturating... L_sum = (L_var1 < 0) ? MIN_32 : MAX_32; *pOverflow = 1; } } return (L_sum); } Loading Loading @@ -160,16 +156,12 @@ extern "C" { Word32 L_diff; L_diff = L_var1 - L_var2; if ((L_var1 ^ L_var2) < 0) { if ((L_diff ^ L_var1) & MIN_32) if (__builtin_sub_overflow(L_var1, L_var2, &L_diff)) { // saturating... L_diff = (L_var1 < 0L) ? MIN_32 : MAX_32; *pOverflow = 1; } } return (L_diff); } Loading Loading @@ -204,18 +196,14 @@ extern "C" result = (Word32) var1 * var2; if (result != (Word32) 0x40000000L) { L_sum = (result << 1) + L_var3; /* Check if L_sum and L_var_3 share the same sign */ if ((L_var3 ^ result) > 0) { if ((L_sum ^ L_var3) < 0) if (__builtin_add_overflow((result << 1), L_var3, &L_sum)) { // saturating... L_sum = (L_var3 < 0) ? MIN_32 : MAX_32; *pOverflow = 1; } } } else { *pOverflow = 1; Loading Loading @@ -345,15 +333,11 @@ extern "C" product32 = ((Word32) L_var1_hi * L_var2_lo) >> 15; /* L_product = L_mac (L_product, result, 1, pOverflow); */ L_sum = L_product + (product32 << 1); if ((L_product ^ product32) > 0) { if ((L_sum ^ L_product) < 0) if (__builtin_add_overflow(L_product, (product32 << 1), &L_sum)) { // saturating... L_sum = (L_product < 0) ? MIN_32 : MAX_32; } } L_product = L_sum; Loading @@ -361,15 +345,11 @@ extern "C" product32 = ((Word32) L_var1_lo * L_var2_hi) >> 15; /* L_product = L_mac (L_product, result, 1, pOverflow); */ L_sum = L_product + (product32 << 1); if ((L_product ^ product32) > 0) { if ((L_sum ^ L_product) < 0) if (__builtin_add_overflow(L_product, (product32 << 1), &L_sum)) { // saturating... L_sum = (L_product < 0) ? MIN_32 : MAX_32; } } return (L_sum); } Loading Loading @@ -416,16 +396,12 @@ extern "C" result = ((Word32)L_var1_lo * var2) >> 15; L_sum = L_product + (result << 1); if ((L_product ^ result) > 0) { if ((L_sum ^ L_product) < 0) if (__builtin_add_overflow(L_product, (result << 1), &L_sum)) { // saturating... L_sum = (L_product < 0) ? MIN_32 : MAX_32; *pOverflow = 1; } } return (L_sum); } Loading
media/module/codecs/amrnb/enc/src/g_pitch.cpp +3 −7 Original line number Diff line number Diff line Loading @@ -376,17 +376,13 @@ Word16 G_pitch( /* o : Gain of pitch lag saturated to 1.2 */ { L_temp = ((Word32) * (p_xn++) * *(p_y1++)); s1 = s; s = s1 + L_temp; if ((s1 ^ L_temp) > 0) { if ((s1 ^ s) < 0) if (__builtin_add_overflow(s1, L_temp, &s)) { *pOverflow = 1; break; } } } if (!(*pOverflow)) { Loading
media/module/codecs/amrwb/enc/inc/basic_op.h +6 −12 Original line number Diff line number Diff line Loading @@ -569,14 +569,11 @@ __attribute__((no_sanitize("integer"))) static_vo Word32 L_add (Word32 L_var1, Word32 L_var2) { Word32 L_var_out; L_var_out = L_var1 + L_var2; if (((L_var1 ^ L_var2) & MIN_32) == 0) { if ((L_var_out ^ L_var1) & MIN_32) if (__builtin_add_overflow(L_var1, L_var2, &L_var_out)) { // saturating... L_var_out = (L_var1 < 0) ? MIN_32 : MAX_32; } } return (L_var_out); } Loading Loading @@ -616,14 +613,11 @@ __attribute__((no_sanitize("integer"))) static_vo Word32 L_sub (Word32 L_var1, Word32 L_var2) { Word32 L_var_out; L_var_out = L_var1 - L_var2; if (((L_var1 ^ L_var2) & MIN_32) != 0) { if ((L_var_out ^ L_var1) & MIN_32) if (__builtin_sub_overflow(L_var1, L_var2, &L_var_out)) { // saturating... L_var_out = (L_var1 < 0L) ? MIN_32 : MAX_32; } } return (L_var_out); } Loading