Added memory barrier calls
am: 27405a217f
Change-Id: Ib8065770abf0507e93a9c1ba73a9b4900f5c93a5
diff --git a/common/arm/ihevc_platform_macros.h b/common/arm/ihevc_platform_macros.h
index 6d48cd9..3d79d07 100644
--- a/common/arm/ihevc_platform_macros.h
+++ b/common/arm/ihevc_platform_macros.h
@@ -143,6 +143,7 @@
}
}
+#define DATA_SYNC() __sync_synchronize()
/**
******************************************************************************
diff --git a/common/mips/ihevc_platform_macros.h b/common/mips/ihevc_platform_macros.h
index b028624..f820cf2 100644
--- a/common/mips/ihevc_platform_macros.h
+++ b/common/mips/ihevc_platform_macros.h
@@ -93,4 +93,6 @@
#define MEM_ALIGN16 __attribute__ ((aligned (16)))
#define MEM_ALIGN32 __attribute__ ((aligned (32)))
+#define DATA_SYNC() __sync_synchronize()
+
#endif /* _IHEVC_PLATFORM_MACROS_H_ */
diff --git a/common/x86/ihevc_platform_macros.h b/common/x86/ihevc_platform_macros.h
index 1d5dc74..66ef542 100644
--- a/common/x86/ihevc_platform_macros.h
+++ b/common/x86/ihevc_platform_macros.h
@@ -96,6 +96,8 @@
}
}
+#define DATA_SYNC() __sync_synchronize()
+
/**
******************************************************************************
* @brief returns postion of msb bit for 32bit input
diff --git a/decoder/ihevcd_parse_slice.c b/decoder/ihevcd_parse_slice.c
index 3bb658e..853afee 100644
--- a/decoder/ihevcd_parse_slice.c
+++ b/decoder/ihevcd_parse_slice.c
@@ -3115,6 +3115,7 @@
}
+ DATA_SYNC();
/* Update the parse status map */
{
diff --git a/decoder/ihevcd_process_slice.c b/decoder/ihevcd_process_slice.c
index 09b596a..f57cc31 100644
--- a/decoder/ihevcd_process_slice.c
+++ b/decoder/ihevcd_process_slice.c
@@ -189,6 +189,7 @@
//NOP(128 * 16);
}
}
+ DATA_SYNC();
}
}
@@ -202,6 +203,7 @@
/* Update the current CTBs processing status */
if(ps_proc->i4_check_proc_status)
{
+ DATA_SYNC();
for(i = 0; i < nctb; i++)
{
sps_t *ps_sps = ps_proc->ps_sps;