changeset 93:a32bdc16491e

l1_ctl.c reconstruction complete, matches 20070608 object
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Thu, 07 Apr 2016 15:08:07 +0000
parents 3ef2a5f83a8e
children 9348cbd02cab
files chipsetsw/layer1/cfile/l1_ctl.c
diffstat 1 files changed, 85 insertions(+), 97 deletions(-) [+]
line wrap: on
line diff
--- a/chipsetsw/layer1/cfile/l1_ctl.c	Thu Apr 07 14:53:25 2016 +0000
+++ b/chipsetsw/layer1/cfile/l1_ctl.c	Thu Apr 07 15:08:07 2016 +0000
@@ -147,29 +147,96 @@
 /* Automatic frequency compensation */
 /************************************/
 
+/*
+ * FreeCalypso TCS211 reconstruction: the following 3 functions
+ * have been added in the LoCosto version of this module.
+ * We have conditioned them out in order to match the original
+ * TCS211 object; their uses have been conditioned out as well.
+ *
+ * These functions will need to re-enabled when their uses are
+ * re-enabled.
+ */
+
+#if 0
+
 #define L1_WORD16_POS_MAX (32767)
 #define L1_WORD16_NEG_MAX (-32768)
 #define L1_WORD32_POS_MAX ((unsigned long)(1<<31)-1)
 #define L1_WORD32_NEG_MAX (-(unsigned long)(1<<31))
 
-/*
- * FreeCalypso TCS211 reconstruction: the following 3 functions
- * are new with the LoCosto version of this module.  Their bodies
- * used to be here (prefixed with INLINE for conditional inlining
- * like Add_40b() and friends), but we have made the following
- * changes:
- *
- * moved the function bodies to the end
- * made the functions static
- * added forward declarations below
- *
- * These changes have been made in order to aid the diffing
- * of compiled objects.
- */
-
-static WORD16 Add_Sat_sign_16b(WORD16 val1, WORD16 val2);
-static WORD32 Add_Sat_sign_32b(WORD32 val1, WORD32 val2);
-static WORD32 Sat_Mult_20sign_16unsign(WORD32 val1, UWORD32 val2);
+INLINE WORD16 Add_Sat_sign_16b(WORD16 val1, WORD16 val2)
+{
+  WORD32 temp;
+  WORD16 result;
+
+  temp = (WORD32)((WORD32)val1 + (WORD32)val2);
+  if(temp > L1_WORD16_POS_MAX)
+  {
+    temp = L1_WORD16_POS_MAX;
+  }
+  if(temp < L1_WORD16_NEG_MAX)
+  {
+    temp = L1_WORD16_NEG_MAX;
+  }
+  result = (WORD16)((temp)&(0x0000FFFF));
+  return(result);
+}
+
+INLINE WORD32 Add_Sat_sign_32b(WORD32 val1, WORD32 val2)
+{
+  WORD32 temp_high_high;
+  UWORD32 temp_low_low;
+  UWORD16 carry;
+  WORD32 result;
+  WORD16  high_val1, high_val2;
+  UWORD16 low_val1, low_val2;
+
+  high_val1 = (WORD16)(val1>>16);
+  high_val2 = (WORD16)(val2>>16);
+  low_val1  = (UWORD16)(val1&0x0000FFFF);
+  low_val2  = (UWORD16)(val2&0x0000FFFF);
+
+  temp_high_high = (WORD32)high_val1 + (WORD32)high_val2;
+  temp_low_low   = (UWORD32)low_val1 + (UWORD32)low_val2;
+  carry = (UWORD16)(temp_low_low >> 16);
+  temp_high_high = temp_high_high + (UWORD32)(carry);
+
+
+  result = val1 + val2;
+  if(temp_high_high >  L1_WORD16_POS_MAX)
+  {
+    result = L1_WORD32_POS_MAX;
+  }
+  if(temp_high_high < L1_WORD16_NEG_MAX)
+  {
+    result = L1_WORD32_NEG_MAX;
+  }
+
+  return(result);
+}
+
+INLINE WORD32 Sat_Mult_20sign_16unsign(WORD32 val1, UWORD32 val2)
+{
+  WORD32 result;
+
+  result = val1 * val2;
+  if(val1>0) /*  val2 is > 0*/
+  {
+    if(result < 0) /* overflow */
+    {
+      result = L1_WORD32_POS_MAX;
+    }
+  }
+  if(val1<0) /*  val2 is > 0*/
+  {
+    if(result > 0) /* overflow */
+    {
+      result = L1_WORD32_NEG_MAX;
+    }
+  }
+  return(result);
+}
+#endif
 
 INLINE WORD32 Add_40b( WORD32 guard1guard2, WORD32 lvar1, WORD32 lvar2, WORD16 *guardout )
 {
@@ -3197,82 +3264,3 @@
   }
 }
 #endif /* #if (FF_L1_FAST_DECODING == 1)  */
-
-/*
- * FreeCalypso TCS211 reconstruction: these functions used to be
- * at the beginning of the module; we have moved them here in order
- * to aid the diffing of compiled objects.
- */
-
-static WORD16 Add_Sat_sign_16b(WORD16 val1, WORD16 val2)
-{
-  WORD32 temp;
-  WORD16 result;
-
-  temp = (WORD32)((WORD32)val1 + (WORD32)val2);
-  if(temp > L1_WORD16_POS_MAX)
-  {
-    temp = L1_WORD16_POS_MAX;
-  }
-  if(temp < L1_WORD16_NEG_MAX)
-  {
-    temp = L1_WORD16_NEG_MAX;
-  }
-  result = (WORD16)((temp)&(0x0000FFFF));
-  return(result);
-}
-
-static WORD32 Add_Sat_sign_32b(WORD32 val1, WORD32 val2)
-{
-  WORD32 temp_high_high;
-  UWORD32 temp_low_low;
-  UWORD16 carry;
-  WORD32 result;
-  WORD16  high_val1, high_val2;
-  UWORD16 low_val1, low_val2;
-
-  high_val1 = (WORD16)(val1>>16);
-  high_val2 = (WORD16)(val2>>16);
-  low_val1  = (UWORD16)(val1&0x0000FFFF);
-  low_val2  = (UWORD16)(val2&0x0000FFFF);
-
-  temp_high_high = (WORD32)high_val1 + (WORD32)high_val2;
-  temp_low_low   = (UWORD32)low_val1 + (UWORD32)low_val2;
-  carry = (UWORD16)(temp_low_low >> 16);
-  temp_high_high = temp_high_high + (UWORD32)(carry);
-
-
-  result = val1 + val2;
-  if(temp_high_high >  L1_WORD16_POS_MAX)
-  {
-    result = L1_WORD32_POS_MAX;
-  }
-  if(temp_high_high < L1_WORD16_NEG_MAX)
-  {
-    result = L1_WORD32_NEG_MAX;
-  }
-
-  return(result);
-}
-
-static WORD32 Sat_Mult_20sign_16unsign(WORD32 val1, UWORD32 val2)
-{
-  WORD32 result;
-
-  result = val1 * val2;
-  if(val1>0) /*  val2 is > 0*/
-  {
-    if(result < 0) /* overflow */
-    {
-      result = L1_WORD32_POS_MAX;
-    }
-  }
-  if(val1<0) /*  val2 is > 0*/
-  {
-    if(result > 0) /* overflow */
-    {
-      result = L1_WORD32_NEG_MAX;
-    }
-  }
-  return(result);
-}