Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 1 | /* Helper file for declaring TCG helper functions. |
| 2 | This one defines data structures private to tcg.c. */ |
| 3 | |
| 4 | #ifndef HELPER_TCG_H |
| 5 | #define HELPER_TCG_H 1 |
| 6 | |
| 7 | #include <exec/helper-head.h> |
| 8 | |
Richard Henderson | afb4989 | 2014-04-07 15:10:05 -0700 | [diff] [blame] | 9 | #define DEF_HELPER_FLAGS_0(NAME, FLAGS, ret) \ |
| 10 | { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \ |
| 11 | .sizemask = dh_sizemask(ret, 0) }, |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 12 | |
Richard Henderson | afb4989 | 2014-04-07 15:10:05 -0700 | [diff] [blame] | 13 | #define DEF_HELPER_FLAGS_1(NAME, FLAGS, ret, t1) \ |
| 14 | { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \ |
| 15 | .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) }, |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 16 | |
Richard Henderson | afb4989 | 2014-04-07 15:10:05 -0700 | [diff] [blame] | 17 | #define DEF_HELPER_FLAGS_2(NAME, FLAGS, ret, t1, t2) \ |
| 18 | { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \ |
| 19 | .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ |
| 20 | | dh_sizemask(t2, 2) }, |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 21 | |
Richard Henderson | afb4989 | 2014-04-07 15:10:05 -0700 | [diff] [blame] | 22 | #define DEF_HELPER_FLAGS_3(NAME, FLAGS, ret, t1, t2, t3) \ |
| 23 | { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \ |
| 24 | .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ |
| 25 | | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) }, |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 26 | |
Richard Henderson | afb4989 | 2014-04-07 15:10:05 -0700 | [diff] [blame] | 27 | #define DEF_HELPER_FLAGS_4(NAME, FLAGS, ret, t1, t2, t3, t4) \ |
| 28 | { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \ |
| 29 | .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ |
| 30 | | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) }, |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 31 | |
Richard Henderson | afb4989 | 2014-04-07 15:10:05 -0700 | [diff] [blame] | 32 | #define DEF_HELPER_FLAGS_5(NAME, FLAGS, ret, t1, t2, t3, t4, t5) \ |
| 33 | { .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \ |
| 34 | .sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \ |
| 35 | | dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) \ |
| 36 | | dh_sizemask(t5, 5) }, |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 37 | |
| 38 | #include "helper.h" |
LluĂs Vilanova | 76b53aa | 2014-05-30 14:12:07 +0200 | [diff] [blame] | 39 | #include "trace/generated-helpers.h" |
Richard Henderson | 944eea9 | 2014-04-07 23:08:47 -0700 | [diff] [blame] | 40 | #include "tcg-runtime.h" |
Richard Henderson | 2ef6175 | 2014-04-07 22:31:41 -0700 | [diff] [blame] | 41 | |
| 42 | #undef DEF_HELPER_FLAGS_0 |
| 43 | #undef DEF_HELPER_FLAGS_1 |
| 44 | #undef DEF_HELPER_FLAGS_2 |
| 45 | #undef DEF_HELPER_FLAGS_3 |
| 46 | #undef DEF_HELPER_FLAGS_4 |
| 47 | #undef DEF_HELPER_FLAGS_5 |
| 48 | |
| 49 | #endif /* HELPER_TCG_H */ |