Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #ifndef TEST_ARITH_DEF | |
| 2 #define TEST_ARITH_DEF | |
| 3 | |
| 4 #define XSTR(s) STR(s) | |
| 5 #define STR(s) #s | |
| 6 | |
| 7 #define UINTOP_TABLE \ | |
| 8 /* inst, operator, div */ \ | |
| 9 X(Add, +, 0 ) \ | |
| 10 X(Sub, -, 0 ) \ | |
| 11 X(Mul, *, 0 ) \ | |
| 12 X(Udiv, /, 1 ) \ | |
| 13 X(Urem, %, 1 ) \ | |
| 14 X(Shl, <<, 0) \ | |
| 15 X(Lshr, >>, 0) \ | |
| 16 X(And, &, 0 ) \ | |
| 17 X(Or, |, 0 ) \ | |
| 18 X(Xor, ^, 0 ) \ | |
| 19 //#define X(inst, op, isdiv) | |
| 20 | |
| 21 #define SINTOP_TABLE \ | |
| 22 /* inst, operator, div */ \ | |
| 23 X(Sdiv, /, 1) \ | |
| 24 X(Srem, %, 1) \ | |
| 25 X(Ashr, >>, 0) \ | |
| 26 //#define X(inst, op, isdiv) | |
| 27 | |
| 28 #define COMMA , | |
| 29 #define FPOP_TABLE \ | |
| 30 /* inst, infix_op, func */ \ | |
| 31 X(Fadd, +, ) \ | |
| 32 X(Fsub, -, ) \ | |
| 33 X(Fmul, *, ) \ | |
| 34 X(Fdiv, /, ) \ | |
| 35 X(Frem, COMMA, myFrem) \ | |
| 36 //#define X(inst, op, func) | |
| 37 | |
| 38 // Note: The above definition of COMMA, plus the "func" argument to | |
| 39 // the X macro, are because C++ does not allow the % operator on | |
| 40 // floating-point primitive types. To work around this, the expansion | |
| 41 // is "func(a infix_op b)", which becomes "myFrem(a , b)" for the Frem | |
| 42 // instruction and "(a + b)" for the Fadd instruction. The two | |
| 43 // 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.
| |
| 44 | |
| 45 #endif // TEST_ARITH_DEF | |
| OLD | NEW |