Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(399)

Side by Side Diff: crosstest/test_vector_ops.h

Issue 407543003: Factor out common vector crosstesting code. (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #ifndef TEST_VECTOR_OPS_H
jvoung (off chromium) 2014/07/18 22:50:40 Add a #define TEST_VECTOR_OPS_H ?
wala 2014/07/18 23:08:23 Woops!! Done.
2
3 #include "vectors.h"
4
5 // The VectorOps<> class acts like Vectors<> but also has insertelement,
6 // Subzero_insertelement, extractelement, and Subzero_extractelement
7 // fields.
8
9 template <typename T> struct VectorOps;
10 #define FIELD(TYNAME, FIELDNAME) VectorOps<TYNAME>::FIELDNAME
11 #define TY(TYNAME) FIELD(TYNAME, Ty)
12 #define CASTTY(TYNAME) FIELD(TYNAME, CastTy)
13 #define DECLARE_VECTOR_OPS(NAME) \
14 template <> struct VectorOps<NAME> : public Vectors<NAME> { \
15 static Ty (*insertelement)(Ty, CastTy, int32_t); \
16 static CastTy (*extractelement)(Ty, int32_t); \
17 static Ty (*Subzero_insertelement)(Ty, CastTy, int32_t); \
18 static CastTy (*Subzero_extractelement)(Ty, int32_t); \
19 }; \
20 extern "C" { \
21 TY(NAME) insertelement_##NAME(TY(NAME), CASTTY(NAME), int32_t); \
22 TY(NAME) Subzero_insertelement_##NAME(TY(NAME), CASTTY(NAME), int32_t); \
23 CASTTY(NAME) extractelement_##NAME(TY(NAME), int32_t); \
24 CASTTY(NAME) Subzero_extractelement_##NAME(TY(NAME), int32_t); \
25 } \
26 TY(NAME) (*FIELD(NAME, insertelement))(TY(NAME), CASTTY(NAME), int32_t) = \
27 &insertelement_##NAME; \
28 TY(NAME) (*FIELD(NAME, Subzero_insertelement))( \
29 TY(NAME), CASTTY(NAME), int32_t) = &Subzero_insertelement_##NAME; \
30 CASTTY(NAME) (*FIELD(NAME, extractelement))(TY(NAME), int32_t) = \
31 &extractelement_##NAME; \
32 CASTTY(NAME) (*FIELD(NAME, Subzero_extractelement))(TY(NAME), int32_t) = \
33 &Subzero_extractelement_##NAME;
34
35 #define X(ty, eltty, castty) DECLARE_VECTOR_OPS(ty)
36 VECTOR_TYPE_TABLE
37 #undef X
38
39 #define X(ty, eltty, numelements) DECLARE_VECTOR_OPS(ty)
40 I1_VECTOR_TYPE_TABLE
41 #undef X
42
43 #endif
Jim Stichnoth 2014/07/18 23:45:47 #endif // TEST_VECTOR_OPS_H
wala 2014/07/21 23:45:10 Done.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698