1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define exec_op glue(exec_, OP) 3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define exec_opq glue(glue(exec_, OP), q) 4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define exec_opl glue(glue(exec_, OP), l) 5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define exec_opw glue(glue(exec_, OP), w) 6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define exec_opb glue(glue(exec_, OP), b) 7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define EXECOP2(size, res, s1, flags) \ 9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov asm ("pushq %4\n\t"\ 10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "popfq\n\t"\ 11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) size " %" size "2, %" size "0\n\t" \ 12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "pushfq\n\t"\ 13b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "popq %1\n\t"\ 14b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "=q" (res), "=g" (flags)\ 15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "q" (s1), "0" (res), "1" (flags)); 16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define EXECOP1(size, res, flags) \ 18b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov asm ("pushq %3\n\t"\ 19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "popfq\n\t"\ 20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) size " %" size "0\n\t" \ 21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "pushfq\n\t"\ 22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "popq %1\n\t"\ 23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "=q" (res), "=g" (flags)\ 24b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov : "0" (res), "1" (flags)); 25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#ifdef OP1 27b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opq(int64 s0, int64 s1, int64 iflags) 28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 29b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 30b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 31b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 32b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP1("", res, flags); 33b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 34b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "q", s0, res, iflags, flags & CC_MASK); 35b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 36b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opl(int64 s0, int64 s1, int64 iflags) 37b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 38b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 39b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 40b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 41b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP1("", res, flags); 42b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 43b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "l", s0, res, iflags, flags & CC_MASK); 44b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 45b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opw(int64 s0, int64 s1, int64 iflags) 46b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 47b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 48b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 49b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 50b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP1("w", res, flags); 51b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 52b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "w", s0, res, iflags, flags & CC_MASK); 53b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 54b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opb(int64 s0, int64 s1, int64 iflags) 55b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 56b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 57b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 58b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 59b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP1("b", res, flags); 60b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 61b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "b", s0, res, iflags, flags & CC_MASK); 62b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 63b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#else 64b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opq(int64 s0, int64 s1, int64 iflags) 65b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 66b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 67b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 68b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 69b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP2("q", res, s1, flags); 70b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx B=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 71b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "q", s0, s1, res, iflags, flags & CC_MASK); 72b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 73b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 74b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opl(int64 s0, int64 s1, int64 iflags) 75b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 76b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 77b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 78b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 79b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP2("", res, s1, flags); 80b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx B=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 81b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "l", s0, s1, res, iflags, flags & CC_MASK); 82b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 83b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 84b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opw(int64 s0, int64 s1, int64 iflags) 85b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 86b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 87b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 88b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 89b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP2("w", res, s1, flags); 90b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx B=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 91b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "w", s0, s1, res, iflags, flags & CC_MASK); 92b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 93b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 94b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovinline void exec_opb(int64 s0, int64 s1, int64 iflags) 95b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 96b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 res, flags; 97b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov res = s0; 98b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags = iflags; 99b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov EXECOP2("b", res, s1, flags); 100b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%-6s A=%016llx B=%016llx R=%016llx CCIN=%04llx CC=%04llx\n", 101b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov stringify(OP) "b", s0, s1, res, iflags, flags & CC_MASK); 102b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 103b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif 104b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 105b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovvoid exec_op(int64 s0, int64 s1) 106b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 107b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#if 1 108b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 o,s,z,a,c,p,flags_in; 109b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (o = 0; o < 2; o++) { 110b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (s = 0; s < 2; s++) { 111b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (z = 0; z < 2; z++) { 112b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (a = 0; a < 2; a++) { 113b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (c = 0; c < 2; c++) { 114b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (p = 0; p < 2; p++) { 115b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 116b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov flags_in = (o ? CC_O : 0) 117b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov | (s ? CC_S : 0) 118b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov | (z ? CC_Z : 0) 119b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov | (a ? CC_A : 0) 120b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov | (c ? CC_C : 0) 121b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov | (p ? CC_P : 0); 122b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opq(s0, s1, flags_in); 123b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opl(s0, s1, flags_in); 124b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opw(s0, s1, flags_in); 125b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opb(s0, s1, flags_in); 126b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov }}}}}} 127b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#else 128b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opq(s0, s1, 0); 129b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opl(s0, s1, 0); 130b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opw(s0, s1, 0); 131b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opb(s0, s1, 0); 132b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opq(s0, s1, CC_C); 133b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opl(s0, s1, CC_C); 134b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opw(s0, s1, CC_C); 135b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_opb(s0, s1, CC_C); 136b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif 137b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 138b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 139b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovvoid glue(test_, OP)(void) 140b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 141b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define NVALS 57 142b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int64 i, j; 143b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov static unsigned int val[NVALS] 144b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov = { 0x00, 0x01, 0x02, 0x03, 145b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0x3F, 0x40, 0x41, 146b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0x7E, 0x7F, 0x80, 0x81, 0x82, 147b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xBF, 0xC0, 0xC1, 148b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFC, 0xFD, 0xFE, 0xFF, 149b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 150b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFF00, 0xFF01, 0xFF02, 0xFF03, 151b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFF3F, 0xFF40, 0xFF41, 152b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 153b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFBF, 0xFFC0, 0xFFC1, 154b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF, 155b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 156b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFFFFF00, 0xFFFFFF01, 0xFFFFFF02, 0xFFFFFF03, 157b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFFFFF3F, 0xFFFFFF40, 0xFFFFFF41, 158b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFFFFF7E, 0xFFFFFF7F, 0xFFFFFF80, 0xFFFFFF81, 0xFFFFFF82, 159b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFFFFFBF, 0xFFFFFFC0, 0xFFFFFFC1, 160b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 0xFFFFFFFC, 0xFFFFFFFD, 0xFFFFFFFE, 0xFFFFFFFF 161b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov }; 162b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 163b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xabcd12345678, 0x4321812FADA); 164b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12345678, 0x812FADA); 165b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xabcd00012341, 0xabcd00012341); 166b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12341, 0x12341); 167b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12341, -0x12341); 168b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xffffffff, 0); 169b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xffffffff, -1); 170b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xffffffff, 1); 171b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xffffffff, 2); 172b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x7fffffff, 0); 173b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x7fffffff, 1); 174b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x7fffffff, -1); 175b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x80000000, -1); 176b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x80000000, 1); 177b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x80000000, -2); 178b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12347fff, 0); 179b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12347fff, 1); 180b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12347fff, -1); 181b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12348000, -1); 182b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12348000, 1); 183b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12348000, -2); 184b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12347f7f, 0); 185b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12347f7f, 1); 186b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12347f7f, -1); 187b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12348080, -1); 188b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12348080, 1); 189b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x12348080, -2); 190b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 191b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xFFFFFFFFffffffff, 0); 192b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xFFFFFFFFffffffff, -1); 193b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xFFFFFFFFffffffff, 1); 194b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0xFFFFFFFFffffffff, 2); 195b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x7fffffffFFFFFFFF, 0); 196b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x7fffffffFFFFFFFF, 1); 197b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x7fffffffFFFFFFFF, -1); 198b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x8000000000000000, -1); 199b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x8000000000000000, 1); 200b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x8000000000000000, -2); 201b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x123443217FFFFFFF, 0); 202b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x123443217FFFFFFF, 1); 203b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x123443217FFFFFFF, -1); 204b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x1234432180000000, -1); 205b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x1234432180000000, 1); 206b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x1234432180000000, -2); 207b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x123443217F7F7f7f, 0); 208b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x123443217F7F7f7f, 1); 209b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x123443217F7F7f7f, -1); 210b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x1234432180808080, -1); 211b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x1234432180808080, 1); 212b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(0x1234432180808080, -2); 213b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 214b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#if TEST_INTEGER_VERBOSE 215b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov if (1) 216b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (i = 0; i < NVALS; i++) 217b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (j = 0; j < NVALS; j++) 218b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exec_op(val[i], val[j]); 219b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#endif 220b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 221b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#undef NVALS 222b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 223b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 224b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovvoid *glue(_test_, OP) __init_call = glue(test_, OP); 225b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 226b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#undef OP 227b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#undef OP_CC 228