Chromium Code Reviews| Index: crosstest/test_arith.def |
| diff --git a/crosstest/test_arith.def b/crosstest/test_arith.def |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4acc9989c9d9c581d1018f33cae1c683d97d68ca |
| --- /dev/null |
| +++ b/crosstest/test_arith.def |
| @@ -0,0 +1,45 @@ |
| +#ifndef TEST_ARITH_DEF |
| +#define TEST_ARITH_DEF |
| + |
| +#define XSTR(s) STR(s) |
| +#define STR(s) #s |
| + |
| +#define UINTOP_TABLE \ |
| + /* inst, operator, div */ \ |
| + X(Add, +, 0 ) \ |
| + X(Sub, -, 0 ) \ |
| + X(Mul, *, 0 ) \ |
| + X(Udiv, /, 1 ) \ |
| + X(Urem, %, 1 ) \ |
| + X(Shl, <<, 0) \ |
| + X(Lshr, >>, 0) \ |
| + X(And, &, 0 ) \ |
| + X(Or, |, 0 ) \ |
| + X(Xor, ^, 0 ) \ |
| +//#define X(inst, op, isdiv) |
| + |
| +#define SINTOP_TABLE \ |
| + /* inst, operator, div */ \ |
| + X(Sdiv, /, 1) \ |
| + X(Srem, %, 1) \ |
| + X(Ashr, >>, 0) \ |
| +//#define X(inst, op, isdiv) |
| + |
| +#define COMMA , |
| +#define FPOP_TABLE \ |
| + /* inst, infix_op, func */ \ |
| + X(Fadd, +, ) \ |
| + X(Fsub, -, ) \ |
| + X(Fmul, *, ) \ |
| + X(Fdiv, /, ) \ |
| + X(Frem, COMMA, myFrem) \ |
| +//#define X(inst, op, func) |
| + |
| +// Note: The above definition of COMMA, plus the "func" argument to |
| +// the X macro, are because C++ does not allow the % operator on |
| +// floating-point primitive types. To work around this, the expansion |
| +// is "func(a infix_op b)", which becomes "myFrem(a , b)" for the Frem |
| +// instruction and "(a + b)" for the Fadd instruction. The two |
| +// versions of myFrem() are defined in a seprate bitcode file. |
|
jvoung (off chromium)
2014/05/15 23:47:34
seprate -> separate
Jim Stichnoth
2014/05/17 14:14:32
Done.
|
| + |
| +#endif // TEST_ARITH_DEF |