aboutsummaryrefslogtreecommitdiffstats
path: root/ref_vldX_lane.c
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@st.com>2013-01-17 17:23:11 +0100
committerChristophe Lyon <christophe.lyon@st.com>2013-01-17 17:51:15 +0100
commit01af0a532c91523692d7b32ed08e0aace8123cba (patch)
tree199360c2ab91c91a7c1382c676982a09ea251ef2 /ref_vldX_lane.c
parent302cedf48e55284564aae5256adfdebb1a7a6a0c (diff)
downloadplatform_external_arm-neon-tests-01af0a532c91523692d7b32ed08e0aace8123cba.tar.gz
platform_external_arm-neon-tests-01af0a532c91523692d7b32ed08e0aace8123cba.tar.bz2
platform_external_arm-neon-tests-01af0a532c91523692d7b32ed08e0aace8123cba.zip
Reorganize input data buffer to try to detect some out of bounds accesses.
Add dedicated input for vdup, vld1_dup, vldX, vldX_dup, vldX_lane, vstX_lane.
Diffstat (limited to 'ref_vldX_lane.c')
-rw-r--r--ref_vldX_lane.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ref_vldX_lane.c b/ref_vldX_lane.c
index 0b86971..7ad3d31 100644
--- a/ref_vldX_lane.c
+++ b/ref_vldX_lane.c
@@ -53,7 +53,8 @@ void exec_vldX_lane (void)
vld##X##Q##_##T2##W(VECT_VAR(buffer_src, T1, W, N)); \
\
VECT_ARRAY_VAR(vector, T1, W, N, X) = \
- vld##X##Q##_lane_##T2##W(VECT_VAR(buffer, T1, W, N), \
+ /* Use dedicated init buffer, of size X */ \
+ vld##X##Q##_lane_##T2##W(VECT_VAR(buffer_vld##X##_lane, T1, W, X), \
VECT_ARRAY_VAR(vector_src, T1, W, N, X), \
L); \
vst##X##Q##_##T2##W(VECT_VAR(result_bis_##X, T1, W, N), \
@@ -85,7 +86,13 @@ void exec_vldX_lane (void)
DECL_VLDX_LANE(float, 32, 2, X); \
DECL_VLDX_LANE(float, 32, 4, X)
-#define DUMMY_ARRAY(V, T, W, N, L) VECT_VAR_DECL(V,T,W,N)[N*L]
+ /* Add some padding to try to catch out of bound accesses. */
+ /* Use an array instead of a plain char to comply with rvct
+ constraints. */
+#define ARRAY1(V, T, W, N) VECT_VAR_DECL(V,T,W,N)[1]={42}
+#define DUMMY_ARRAY(V, T, W, N, L) \
+ VECT_VAR_DECL(V,T,W,N)[N*L]={0}; \
+ ARRAY1(V##_pad,T,W,N)
/* Use the same lanes regardless of the size of the array (X), for
simplicity */