Loading basic_op/basop32.c +92 −0 Original line number Diff line number Diff line Loading @@ -352,6 +352,10 @@ Word16 add (Word16 var1, Word16 var2) { Word16 add (Word16 var1, Word16 var2) { return add_o (var1, var2, NULL); } Word16 add_sat(Word16 var1, Word16 var2) { Flag Overflow; return add_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -413,6 +417,10 @@ Word16 sub (Word16 var1, Word16 var2) { Word16 sub (Word16 var1, Word16 var2) { return sub_o (var1, var2, NULL); } Word16 sub_sat(Word16 var1, Word16 var2) { Flag Overflow; return sub_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -543,6 +551,10 @@ Word16 shl (Word16 var1, Word16 var2) { Word16 shl (Word16 var1, Word16 var2) { return shl_o (var1, var2, NULL); } Word16 shl_sat(Word16 var1, Word16 var2) { Flag Overflow; return shl_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -623,6 +635,10 @@ Word16 shr (Word16 var1, Word16 var2) { Word16 shr (Word16 var1, Word16 var2) { return shr_o (var1, var2, NULL); } Word16 shr_sat(Word16 var1, Word16 var2) { Flag Overflow; return shr_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ /*___________________________________________________________________________ Loading Loading @@ -690,6 +706,10 @@ Word16 mult (Word16 var1, Word16 var2) { Word16 mult (Word16 var1, Word16 var2) { return mult_o (var1, var2, NULL); } Word16 mult_sat(Word16 var1, Word16 var2) { Flag Overflow; return mult_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -757,6 +777,10 @@ Word32 L_mult (Word16 var1, Word16 var2) { Word32 L_mult (Word16 var1, Word16 var2) { return L_mult_o (var1, var2, NULL); } Word32 L_mult_sat(Word16 var1, Word16 var2) { Flag Overflow; return L_mult_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -935,6 +959,10 @@ Word16 round_fx (Word32 L_var1) { Word16 round_fx (Word32 L_var1) { return round_fx_o (L_var1, NULL); } Word16 round_fx_sat(Word32 L_var1) { Flag Overflow; return round_fx_o(L_var1, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1002,6 +1030,10 @@ Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2) { return L_mac_o (L_var3, var1, var2, NULL); } Word32 L_mac_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_mac_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1069,6 +1101,10 @@ Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2) { return L_msu_o (L_var3, var1, var2, NULL); } Word32 L_msu_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_msu_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1144,6 +1180,10 @@ Word32 L_macNs (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_macNs (Word32 L_var3, Word16 var1, Word16 var2) { return L_macNs_co (L_var3, var1, var2, NULL, NULL); } Word32 L_macNs_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Carry, Overflow; return L_macNs_co(L_var3, var1, var2, &Carry, &Overflow); } #endif /* BASOP_NOGLOB */ /*___________________________________________________________________________ Loading Loading @@ -1219,6 +1259,10 @@ Word32 L_msuNs (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_msuNs (Word32 L_var3, Word16 var1, Word16 var2) { return L_msuNs_co (L_var3, var1, var2, NULL, NULL); } Word32 L_msuNs_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Carry, Overflow; return L_msuNs_co(L_var3, var1, var2, &Carry, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1282,6 +1326,10 @@ Word32 L_add (Word32 L_var1, Word32 L_var2) { Word32 L_add (Word32 L_var1, Word32 L_var2) { return L_add_o (L_var1, L_var2, NULL); } Word32 L_add_sat(Word32 L_var1, Word32 L_var2) { Flag Overflow; return L_add_o(L_var1, L_var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1345,6 +1393,10 @@ Word32 L_sub (Word32 L_var1, Word32 L_var2) { Word32 L_sub (Word32 L_var1, Word32 L_var2) { return L_sub_o (L_var1, L_var2, NULL); } Word32 L_sub_sat(Word32 L_var1, Word32 L_var2) { Flag Overflow; return L_sub_o(L_var1, L_var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1736,6 +1788,10 @@ Word16 mult_r (Word16 var1, Word16 var2) { Word16 mult_r (Word16 var1, Word16 var2) { return mult_ro (var1, var2, NULL); } Word16 mult_r_sat(Word16 var1, Word16 var2) { Flag Overflow; return mult_ro(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1823,6 +1879,10 @@ Word32 L_shl (Word32 L_var1, Word16 var2) { Word32 L_shl (Word32 L_var1, Word16 var2) { return L_shl_o (L_var1, var2, NULL); } Word32 L_shl_sat(Word32 L_var1, Word16 var2) { Flag Overflow; return L_shl_o(L_var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1899,6 +1959,10 @@ Word32 L_shr (Word32 L_var1, Word16 var2) { Word32 L_shr (Word32 L_var1, Word16 var2) { return L_shr_o (L_var1, var2, NULL); } Word32 L_shr_sat(Word32 L_var1, Word16 var2) { Flag Overflow; return L_shr_o(L_var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1980,6 +2044,10 @@ Word16 shr_r (Word16 var1, Word16 var2) { Word16 shr_r(Word16 var1, Word16 var2) { return shr_ro(var1, var2, NULL); } Word16 shr_r_sat(Word16 var1, Word16 var2) { Flag Overflow; return shr_ro(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ /*___________________________________________________________________________ Loading Loading @@ -2049,6 +2117,10 @@ Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2) { Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2) { return mac_ro (L_var3, var1, var2, NULL); } Word16 mac_r_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return mac_ro(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2119,6 +2191,10 @@ Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2) { Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2) { return msu_ro (L_var3, var1, var2, NULL); } Word16 msu_r_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return msu_ro(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2657,6 +2733,10 @@ Word32 L_mls (Word32 Lv, Word16 v) { Word32 L_mls (Word32 Lv, Word16 v) { return L_mls_o (Lv, v, NULL); } Word32 L_mls_sat(Word32 Lv, Word16 v) { Flag Overflow; return L_mls_o(Lv, v, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2805,6 +2885,10 @@ Word16 i_mult (Word16 a, Word16 b) { Word16 i_mult(Word16 a, Word16 b) { return i_mult_o(a, b, NULL); } Word16 i_mult_sat(Word16 a, Word16 b) { Flag Overflow; return i_mult_o(a, b, &Overflow); } #endif Loading Loading @@ -2912,6 +2996,10 @@ Word32 L_mac0 (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_mac0 (Word32 L_var3, Word16 var1, Word16 var2) { return L_mac0_o (L_var3, var1, var2, NULL); } Word32 L_mac0_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_mac0_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2973,6 +3061,10 @@ Word32 L_msu0 (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_msu0 (Word32 L_var3, Word16 var1, Word16 var2) { return L_msu0_o (L_var3, var1, var2, NULL); } Word32 L_msu0_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_msu0_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading basic_op/basop32.h +27 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,33 @@ Word16 mult_ro (Word16 var1, Word16 var2, Flag * Overflow); Word16 mac_ro (Word32 L_var3, Word16 var1, Word16 var2, Flag * Overflow); Word16 msu_ro (Word32 L_var3, Word16 var1, Word16 var2, Flag * Overflow); Word32 L_sat_co (Word32 L_var1, Flag Carry, Flag Overflow); /* * Saturating operators */ Word16 i_mult_sat(Word16 a, Word16 b); Word16 add_sat(Word16 var1, Word16 var2); Word16 sub_sat(Word16 var1, Word16 var2); Word16 shl_sat(Word16 var1, Word16 var2); Word16 shr_sat(Word16 var1, Word16 var2); Word16 shr_r_sat(Word16 var1, Word16 var2); Word16 mult_sat(Word16 var1, Word16 var2); Word32 L_mult_sat(Word16 var1, Word16 var2); Word16 round_fx_sat(Word32 L_var1); Word32 L_mac_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_msu_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_macNs_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_msuNs_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_add_sat(Word32 L_var1, Word32 L_var2); Word32 L_sub_sat(Word32 L_var1, Word32 L_var2); Word32 L_shr_sat(Word32 L_var1, Word16 var2); Word32 L_shl_sat(Word32 L_var1, Word16 var2); Word32 L_mls_sat(Word32 Lv, Word16 v); Word32 L_mac0_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_msu0_sat(Word32 L_var3, Word16 var1, Word16 var2); Word16 mult_r_sat(Word16 var1, Word16 var2); Word16 mac_r_sat(Word32 L_var3, Word16 var1, Word16 var2); Word16 msu_r_sat(Word32 L_var3, Word16 var1, Word16 var2); #endif /* BASOP_NOGLOB */ #endif /* ifndef _BASIC_OP_H */ Loading Loading
basic_op/basop32.c +92 −0 Original line number Diff line number Diff line Loading @@ -352,6 +352,10 @@ Word16 add (Word16 var1, Word16 var2) { Word16 add (Word16 var1, Word16 var2) { return add_o (var1, var2, NULL); } Word16 add_sat(Word16 var1, Word16 var2) { Flag Overflow; return add_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -413,6 +417,10 @@ Word16 sub (Word16 var1, Word16 var2) { Word16 sub (Word16 var1, Word16 var2) { return sub_o (var1, var2, NULL); } Word16 sub_sat(Word16 var1, Word16 var2) { Flag Overflow; return sub_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -543,6 +551,10 @@ Word16 shl (Word16 var1, Word16 var2) { Word16 shl (Word16 var1, Word16 var2) { return shl_o (var1, var2, NULL); } Word16 shl_sat(Word16 var1, Word16 var2) { Flag Overflow; return shl_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -623,6 +635,10 @@ Word16 shr (Word16 var1, Word16 var2) { Word16 shr (Word16 var1, Word16 var2) { return shr_o (var1, var2, NULL); } Word16 shr_sat(Word16 var1, Word16 var2) { Flag Overflow; return shr_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ /*___________________________________________________________________________ Loading Loading @@ -690,6 +706,10 @@ Word16 mult (Word16 var1, Word16 var2) { Word16 mult (Word16 var1, Word16 var2) { return mult_o (var1, var2, NULL); } Word16 mult_sat(Word16 var1, Word16 var2) { Flag Overflow; return mult_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -757,6 +777,10 @@ Word32 L_mult (Word16 var1, Word16 var2) { Word32 L_mult (Word16 var1, Word16 var2) { return L_mult_o (var1, var2, NULL); } Word32 L_mult_sat(Word16 var1, Word16 var2) { Flag Overflow; return L_mult_o(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -935,6 +959,10 @@ Word16 round_fx (Word32 L_var1) { Word16 round_fx (Word32 L_var1) { return round_fx_o (L_var1, NULL); } Word16 round_fx_sat(Word32 L_var1) { Flag Overflow; return round_fx_o(L_var1, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1002,6 +1030,10 @@ Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2) { return L_mac_o (L_var3, var1, var2, NULL); } Word32 L_mac_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_mac_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1069,6 +1101,10 @@ Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2) { return L_msu_o (L_var3, var1, var2, NULL); } Word32 L_msu_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_msu_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1144,6 +1180,10 @@ Word32 L_macNs (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_macNs (Word32 L_var3, Word16 var1, Word16 var2) { return L_macNs_co (L_var3, var1, var2, NULL, NULL); } Word32 L_macNs_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Carry, Overflow; return L_macNs_co(L_var3, var1, var2, &Carry, &Overflow); } #endif /* BASOP_NOGLOB */ /*___________________________________________________________________________ Loading Loading @@ -1219,6 +1259,10 @@ Word32 L_msuNs (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_msuNs (Word32 L_var3, Word16 var1, Word16 var2) { return L_msuNs_co (L_var3, var1, var2, NULL, NULL); } Word32 L_msuNs_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Carry, Overflow; return L_msuNs_co(L_var3, var1, var2, &Carry, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1282,6 +1326,10 @@ Word32 L_add (Word32 L_var1, Word32 L_var2) { Word32 L_add (Word32 L_var1, Word32 L_var2) { return L_add_o (L_var1, L_var2, NULL); } Word32 L_add_sat(Word32 L_var1, Word32 L_var2) { Flag Overflow; return L_add_o(L_var1, L_var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1345,6 +1393,10 @@ Word32 L_sub (Word32 L_var1, Word32 L_var2) { Word32 L_sub (Word32 L_var1, Word32 L_var2) { return L_sub_o (L_var1, L_var2, NULL); } Word32 L_sub_sat(Word32 L_var1, Word32 L_var2) { Flag Overflow; return L_sub_o(L_var1, L_var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1736,6 +1788,10 @@ Word16 mult_r (Word16 var1, Word16 var2) { Word16 mult_r (Word16 var1, Word16 var2) { return mult_ro (var1, var2, NULL); } Word16 mult_r_sat(Word16 var1, Word16 var2) { Flag Overflow; return mult_ro(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1823,6 +1879,10 @@ Word32 L_shl (Word32 L_var1, Word16 var2) { Word32 L_shl (Word32 L_var1, Word16 var2) { return L_shl_o (L_var1, var2, NULL); } Word32 L_shl_sat(Word32 L_var1, Word16 var2) { Flag Overflow; return L_shl_o(L_var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1899,6 +1959,10 @@ Word32 L_shr (Word32 L_var1, Word16 var2) { Word32 L_shr (Word32 L_var1, Word16 var2) { return L_shr_o (L_var1, var2, NULL); } Word32 L_shr_sat(Word32 L_var1, Word16 var2) { Flag Overflow; return L_shr_o(L_var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -1980,6 +2044,10 @@ Word16 shr_r (Word16 var1, Word16 var2) { Word16 shr_r(Word16 var1, Word16 var2) { return shr_ro(var1, var2, NULL); } Word16 shr_r_sat(Word16 var1, Word16 var2) { Flag Overflow; return shr_ro(var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ /*___________________________________________________________________________ Loading Loading @@ -2049,6 +2117,10 @@ Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2) { Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2) { return mac_ro (L_var3, var1, var2, NULL); } Word16 mac_r_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return mac_ro(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2119,6 +2191,10 @@ Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2) { Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2) { return msu_ro (L_var3, var1, var2, NULL); } Word16 msu_r_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return msu_ro(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2657,6 +2733,10 @@ Word32 L_mls (Word32 Lv, Word16 v) { Word32 L_mls (Word32 Lv, Word16 v) { return L_mls_o (Lv, v, NULL); } Word32 L_mls_sat(Word32 Lv, Word16 v) { Flag Overflow; return L_mls_o(Lv, v, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2805,6 +2885,10 @@ Word16 i_mult (Word16 a, Word16 b) { Word16 i_mult(Word16 a, Word16 b) { return i_mult_o(a, b, NULL); } Word16 i_mult_sat(Word16 a, Word16 b) { Flag Overflow; return i_mult_o(a, b, &Overflow); } #endif Loading Loading @@ -2912,6 +2996,10 @@ Word32 L_mac0 (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_mac0 (Word32 L_var3, Word16 var1, Word16 var2) { return L_mac0_o (L_var3, var1, var2, NULL); } Word32 L_mac0_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_mac0_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading Loading @@ -2973,6 +3061,10 @@ Word32 L_msu0 (Word32 L_var3, Word16 var1, Word16 var2) { Word32 L_msu0 (Word32 L_var3, Word16 var1, Word16 var2) { return L_msu0_o (L_var3, var1, var2, NULL); } Word32 L_msu0_sat(Word32 L_var3, Word16 var1, Word16 var2) { Flag Overflow; return L_msu0_o(L_var3, var1, var2, &Overflow); } #endif /* BASOP_NOGLOB */ Loading
basic_op/basop32.h +27 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,33 @@ Word16 mult_ro (Word16 var1, Word16 var2, Flag * Overflow); Word16 mac_ro (Word32 L_var3, Word16 var1, Word16 var2, Flag * Overflow); Word16 msu_ro (Word32 L_var3, Word16 var1, Word16 var2, Flag * Overflow); Word32 L_sat_co (Word32 L_var1, Flag Carry, Flag Overflow); /* * Saturating operators */ Word16 i_mult_sat(Word16 a, Word16 b); Word16 add_sat(Word16 var1, Word16 var2); Word16 sub_sat(Word16 var1, Word16 var2); Word16 shl_sat(Word16 var1, Word16 var2); Word16 shr_sat(Word16 var1, Word16 var2); Word16 shr_r_sat(Word16 var1, Word16 var2); Word16 mult_sat(Word16 var1, Word16 var2); Word32 L_mult_sat(Word16 var1, Word16 var2); Word16 round_fx_sat(Word32 L_var1); Word32 L_mac_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_msu_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_macNs_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_msuNs_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_add_sat(Word32 L_var1, Word32 L_var2); Word32 L_sub_sat(Word32 L_var1, Word32 L_var2); Word32 L_shr_sat(Word32 L_var1, Word16 var2); Word32 L_shl_sat(Word32 L_var1, Word16 var2); Word32 L_mls_sat(Word32 Lv, Word16 v); Word32 L_mac0_sat(Word32 L_var3, Word16 var1, Word16 var2); Word32 L_msu0_sat(Word32 L_var3, Word16 var1, Word16 var2); Word16 mult_r_sat(Word16 var1, Word16 var2); Word16 mac_r_sat(Word32 L_var3, Word16 var1, Word16 var2); Word16 msu_r_sat(Word32 L_var3, Word16 var1, Word16 var2); #endif /* BASOP_NOGLOB */ #endif /* ifndef _BASIC_OP_H */ Loading