4/4, new C compiler
authorceriel <none@none>
Tue, 24 Feb 1987 10:15:46 +0000 (10:15 +0000)
committerceriel <none@none>
Tue, 24 Feb 1987 10:15:46 +0000 (10:15 +0000)
13 files changed:
lang/cem/ctest/ctdivers/ops.cem.g
lang/cem/ctest/ctgen/bf.cem.g
lang/cem/ctest/ctgen/clu.cem.g
lang/cem/ctest/ctgen/ec.cem.g
lang/cem/ctest/ctgen/ei.cem.g
lang/cem/ctest/ctgen/eu.cem.g
lang/cem/ctest/ctgen/id.cem.g [new file with mode: 0644]
lang/cem/ctest/ctgen/lc.cem.g
lang/cem/ctest/ctgen/li.cem.g
lang/cem/ctest/ctgen/lu.cem.g
lang/cem/ctest/ctinit/init.cem.g
lang/cem/ctest/ctmargt/margt.cem.g
lang/cem/ctest/ctsys/tfork.cem.g

index 1c4eb2c..9c8a0e6 100644 (file)
@@ -4,112 +4,112 @@ a 0, b -32, c 0, d -32
 Unsigned shifts by constants
  u = 150715
  u>>0  150715
- u>>1  064346
- u>>2  032163
- u>>3  015071
- u>>4  006434
- u>>5  003216
- u>>6  001507
- u>>7  000643
- u>>8  000321
- u>>9  000150
- u>>10 000064
- u>>11 000032
- u>>12 000015
- u>>13 000006
- u>>14 000003
- u>>15 000001
- u>>16 000000
+ u>>1   64346
+ u>>2   32163
+ u>>3   15071
+ u>>4    6434
+ u>>5    3216
+ u>>6    1507
+ u>>7     643
+ u>>8     321
+ u>>9     150
+ u>>10     64
+ u>>11     32
+ u>>12     15
+ u>>13      6
+ u>>14      3
+ u>>15      1
+ u>>16      0
  u<<0  150715
- u<<1  121632
- u<<2  043464
- u<<3  107150
- u<<4  016320
- u<<5  034640
- u<<6  071500
- u<<7  163200
- u<<8  146400
- u<<9  115000
- u<<10 032000
- u<<11 064000
- u<<12 150000
- u<<13 120000
- u<<14 040000
- u<<15 100000
- u<<16 000000
+ u<<1  321632
+ u<<2  643464
+ u<<3  1507150
+ u<<4  3216320
+ u<<5  6434640
+ u<<6  15071500
+ u<<7  32163200
+ u<<8  64346400
+ u<<9  150715000
+ u<<10 321632000
+ u<<11 643464000
+ u<<12 1507150000
+ u<<13 3216320000
+ u<<14 6434640000
+ u<<15 15071500000
+ u<<16 32163200000
 Long shifts by constants
- ll = 00001414446
- ll>>0  00001414446
- ll>>1  00000606223
- ll>>2  00000303111
- ll>>3  00000141444
- ll>>4  00000060622
- ll>>5  00000030311
- ll>>6  00000014144
- ll>>7  00000006062
- ll>>8  00000003031
- ll>>9  00000001414
- ll>>10 00000000606
- ll>>11 00000000303
- ll>>12 00000000141
- ll>>13 00000000060
- ll>>14 00000000030
- ll>>15 00000000014
- ll>>16 00000000006
- ll>>17 00000000003
- ll>>18 00000000001
- ll>>19 00000000000
- ll>>20 00000000000
- ll>>21 00000000000
- ll>>22 00000000000
- ll>>23 00000000000
- ll>>24 00000000000
- ll>>25 00000000000
- ll>>26 00000000000
- ll>>27 00000000000
- ll>>28 00000000000
- ll>>29 00000000000
- ll>>30 00000000000
- ll>>31 00000000000
- ll<<0  00000000001
- ll<<1  00000000002
- ll<<2  00000000004
- ll<<3  00000000010
- ll<<4  00000000020
- ll<<5  00000000040
- ll<<6  00000000100
- ll<<7  00000000200
- ll<<8  00000000400
- ll<<9  00000001000
- ll<<10 00000002000
- ll<<11 00000004000
- ll<<12 00000010000
- ll<<13 00000020000
- ll<<14 00000040000
- ll<<15 00000100000
- ll<<16 00000200000
- ll<<17 00000400000
- ll<<18 00001000000
- ll<<19 00002000000
- ll<<20 00004000000
- ll<<21 00010000000
- ll<<22 00020000000
- ll<<23 00040000000
- ll<<24 00100000000
- ll<<25 00200000000
- ll<<26 00400000000
- ll<<27 01000000000
- ll<<28 02000000000
- ll<<29 04000000000
+ ll =     1414446
+ ll>>0      1414446
+ ll>>1       606223
+ ll>>2       303111
+ ll>>3       141444
+ ll>>4        60622
+ ll>>5        30311
+ ll>>6        14144
+ ll>>7         6062
+ ll>>8         3031
+ ll>>9         1414
+ ll>>10         606
+ ll>>11         303
+ ll>>12         141
+ ll>>13          60
+ ll>>14          30
+ ll>>15          14
+ ll>>16           6
+ ll>>17           3
+ ll>>18           1
+ ll>>19           0
+ ll>>20           0
+ ll>>21           0
+ ll>>22           0
+ ll>>23           0
+ ll>>24           0
+ ll>>25           0
+ ll>>26           0
+ ll>>27           0
+ ll>>28           0
+ ll>>29           0
+ ll>>30           0
+ ll>>31           0
+ ll<<0            1
+ ll<<1            2
+ ll<<2            4
+ ll<<3           10
+ ll<<4           20
+ ll<<5           40
+ ll<<6          100
+ ll<<7          200
+ ll<<8          400
+ ll<<9         1000
+ ll<<10        2000
+ ll<<11        4000
+ ll<<12       10000
+ ll<<13       20000
+ ll<<14       40000
+ ll<<15      100000
+ ll<<16      200000
+ ll<<17      400000
+ ll<<18     1000000
+ ll<<19     2000000
+ ll<<20     4000000
+ ll<<21    10000000
+ ll<<22    20000000
+ ll<<23    40000000
+ ll<<24   100000000
+ ll<<25   200000000
+ ll<<26   400000000
+ ll<<27  1000000000
+ ll<<28  2000000000
+ ll<<29  4000000000
  ll<<30 10000000000
- 0 077770
- 1 077771
- 2 077772
- 3 077773
- 4 077774
- 5 077775
- 6 077776
- 7 077777
+ 0  77770
+ 1  77771
+ 2  77772
+ 3  77773
+ 4  77774
+ 5  77775
+ 6  77776
+ 7  77777
  8 100000
  9 100001
 10 100002
index 122205a..34995b2 100644 (file)
@@ -20,92 +20,92 @@ bfs.bf1 >= bfs.bf2
 bfs.bf1 < bfs.bf2
 bfs.bf1 > bfs.bf2
 bfs.bf1 ? bfs.bf1 : bfs.bf2
-bfs.bf3 = bfs.bf1  1
-bfs.bf3 += bfs.bf1  0
-bfs.bf3 -= bfs.bf1  254
-bfs.bf3 /= bfs.bf1  255
+bfs.bf3 = bfs.bf1  -1
+bfs.bf3 += bfs.bf1  -2
+bfs.bf3 -= bfs.bf1  0
+bfs.bf3 /= bfs.bf1  1
 bfs.bf3 %= bfs.bf1  0
-bfs.bf3 *= bfs.bf1  255
-bfs.bf3 &= bfs.bf1  1
-bfs.bf3 |= bfs.bf1  255
-bfs.bf3 ^= bfs.bf1  254
-bfs.bf3 <<= 1 254
-bfs.bf3 >>= 1 127
+bfs.bf3 *= bfs.bf1  1
+bfs.bf3 &= bfs.bf1  -1
+bfs.bf3 |= bfs.bf1  -1
+bfs.bf3 ^= bfs.bf1  0
+bfs.bf3 <<= 1 -2
+bfs.bf3 >>= 1 -1
 bfs.bf3 ++ 0
-bfs.bf3 -- 254
--- bfs.bf3 254
+bfs.bf3 -- -2
+-- bfs.bf3 -2
 ++ bfs.bf3 0
-bfs.bf4 = ( bfs.bf1 + bfs.bf2 ) 9
-bfs.bf4 = ( bfs.bf1 - bfs.bf2 ) -7
+bfs.bf4 = ( bfs.bf1 + bfs.bf2 ) -9
+bfs.bf4 = ( bfs.bf1 - bfs.bf2 ) 7
 bfs.bf4 = ( bfs.bf1 / bfs.bf2 ) 0
-bfs.bf4 = ( bfs.bf1 % bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 % bfs.bf2 ) -1
 bfs.bf4 = ( bfs.bf1 * bfs.bf2 ) 8
-bfs.bf4 = ( bfs.bf1 & bfs.bf2 ) 0
-bfs.bf4 = ( bfs.bf1 | bfs.bf2 ) 9
-bfs.bf4 = ( bfs.bf1 ^ bfs.bf2 ) 9
+bfs.bf4 = ( bfs.bf1 & bfs.bf2 ) -8
+bfs.bf4 = ( bfs.bf1 | bfs.bf2 ) -1
+bfs.bf4 = ( bfs.bf1 ^ bfs.bf2 ) 7
 bfs.bf4 = ( bfs.bf1 || bfs.bf2 ) 1
 bfs.bf4 = ( bfs.bf1 && bfs.bf2 ) 1
-bfs.bf4 = ( bfs.bf1 << 1 ) 2
-bfs.bf4 = ( bfs.bf1 >> 1 ) 0
-bfs.bf4 = ( -bfs.bf1  ) -1
+bfs.bf4 = ( bfs.bf1 << 1 ) -2
+bfs.bf4 = ( bfs.bf1 >> 1 ) -1
+bfs.bf4 = ( -bfs.bf1  ) 1
 bfs.bf4 = ( !bfs.bf1  ) 0
-bfs.bf4 = ( ~bfs.bf1  ) -2
+bfs.bf4 = ( ~bfs.bf1  ) 0
 bfs.bf4 = ( bfs.bf1 == bfs.bf2 ) 0
 bfs.bf4 = ( bfs.bf1 != bfs.bf2 ) 1
-bfs.bf4 = ( bfs.bf1 <= bfs.bf2 ) 1
-bfs.bf4 = ( bfs.bf1 >= bfs.bf2 ) 0
-bfs.bf4 = ( bfs.bf1 < bfs.bf2 ) 1
-bfs.bf4 = ( bfs.bf1 > bfs.bf2 ) 0
-bfs.bf4 = ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) 1
-bfs.bf4 = ( bfs.bf3 = bfs.bf1  ) 1
-bfs.bf4 = ( bfs.bf3 += bfs.bf1  ) 0 0
-bfs.bf4 = ( bfs.bf3 -= bfs.bf1  ) 254 254
-bfs.bf4 = ( bfs.bf3 /= bfs.bf1  ) 255 255
+bfs.bf4 = ( bfs.bf1 <= bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 >= bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 < bfs.bf2 ) 0
+bfs.bf4 = ( bfs.bf1 > bfs.bf2 ) 1
+bfs.bf4 = ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) -1
+bfs.bf4 = ( bfs.bf3 = bfs.bf1  ) -1 -1
+bfs.bf4 = ( bfs.bf3 += bfs.bf1  ) -2 -2
+bfs.bf4 = ( bfs.bf3 -= bfs.bf1  ) 0 0
+bfs.bf4 = ( bfs.bf3 /= bfs.bf1  ) 1 1
 bfs.bf4 = ( bfs.bf3 %= bfs.bf1  ) 0 0
-bfs.bf4 = ( bfs.bf3 *= bfs.bf1  ) 255 255
-bfs.bf4 = ( bfs.bf3 &= bfs.bf1  ) 1
-bfs.bf4 = ( bfs.bf3 |= bfs.bf1  ) 255 255
-bfs.bf4 = ( bfs.bf3 ^= bfs.bf1  ) 254 254
-bfs.bf4 = ( bfs.bf3 <<= 1 ) 254 254
-bfs.bf4 = ( bfs.bf3 >>= 1 ) 127 127
-bfs.bf4 = ( bfs.bf3 ++ ) 0 255
-bfs.bf4 = ( bfs.bf3 -- ) 254 255
-bfs.bf4 = ( -- bfs.bf3 ) 254 254
+bfs.bf4 = ( bfs.bf3 *= bfs.bf1  ) 1 1
+bfs.bf4 = ( bfs.bf3 &= bfs.bf1  ) -1 -1
+bfs.bf4 = ( bfs.bf3 |= bfs.bf1  ) -1 -1
+bfs.bf4 = ( bfs.bf3 ^= bfs.bf1  ) 0 0
+bfs.bf4 = ( bfs.bf3 <<= 1 ) -2 -2
+bfs.bf4 = ( bfs.bf3 >>= 1 ) -1 -1
+bfs.bf4 = ( bfs.bf3 ++ ) 0 -1
+bfs.bf4 = ( bfs.bf3 -- ) -2 -1
+bfs.bf4 = ( -- bfs.bf3 ) -2 -2
 bfs.bf4 = ( ++ bfs.bf3 ) 0 0
 yes if ( bfs.bf1 + bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 - bfs.bf2 ) yes() ; else no()
 no if ( bfs.bf1 / bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 % bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 * bfs.bf2 ) yes() ; else no()
-no if ( bfs.bf1 & bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 & bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 | bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 ^ bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 || bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 && bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 << 1 ) yes() ; else no()
-no if ( bfs.bf1 >> 1 ) yes() ; else no()
+yes if ( bfs.bf1 >> 1 ) yes() ; else no()
 yes if ( -bfs.bf1  ) yes() ; else no()
 no if ( !bfs.bf1  ) yes() ; else no()
-yes if ( ~bfs.bf1  ) yes() ; else no()
+no if ( ~bfs.bf1  ) yes() ; else no()
 no if ( bfs.bf1 == bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 != bfs.bf2 ) yes() ; else no()
-yes if ( bfs.bf1 <= bfs.bf2 ) yes() ; else no()
-no if ( bfs.bf1 >= bfs.bf2 ) yes() ; else no()
-yes if ( bfs.bf1 < bfs.bf2 ) yes() ; else no()
-no if ( bfs.bf1 > bfs.bf2 ) yes() ; else no()
+no if ( bfs.bf1 <= bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 >= bfs.bf2 ) yes() ; else no()
+no if ( bfs.bf1 < bfs.bf2 ) yes() ; else no()
+yes if ( bfs.bf1 > bfs.bf2 ) yes() ; else no()
 yes if ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) yes() ; else no()
-yes if ( bfs.bf3 = bfs.bf1  ) yes() ; else no() 1
-no if ( bfs.bf3 += bfs.bf1  ) yes() ; else no() 0
-yes if ( bfs.bf3 -= bfs.bf1  ) yes() ; else no() 254
-yes if ( bfs.bf3 /= bfs.bf1  ) yes() ; else no() 255
+yes if ( bfs.bf3 = bfs.bf1  ) yes() ; else no() -1
+yes if ( bfs.bf3 += bfs.bf1  ) yes() ; else no() -2
+no if ( bfs.bf3 -= bfs.bf1  ) yes() ; else no() 0
+yes if ( bfs.bf3 /= bfs.bf1  ) yes() ; else no() 1
 no if ( bfs.bf3 %= bfs.bf1  ) yes() ; else no() 0
-yes if ( bfs.bf3 *= bfs.bf1  ) yes() ; else no() 255
-yes if ( bfs.bf3 &= bfs.bf1  ) yes() ; else no() 1
-yes if ( bfs.bf3 |= bfs.bf1  ) yes() ; else no() 255
-yes if ( bfs.bf3 ^= bfs.bf1  ) yes() ; else no() 254
-yes if ( bfs.bf3 <<= 1 ) yes() ; else no() 254
-yes if ( bfs.bf3 >>= 1 ) yes() ; else no() 127
+yes if ( bfs.bf3 *= bfs.bf1  ) yes() ; else no() 1
+yes if ( bfs.bf3 &= bfs.bf1  ) yes() ; else no() -1
+yes if ( bfs.bf3 |= bfs.bf1  ) yes() ; else no() -1
+no if ( bfs.bf3 ^= bfs.bf1  ) yes() ; else no() 0
+yes if ( bfs.bf3 <<= 1 ) yes() ; else no() -2
+yes if ( bfs.bf3 >>= 1 ) yes() ; else no() -1
 yes if ( bfs.bf3 ++ ) yes() ; else no() 0
-yes if ( bfs.bf3 -- ) yes() ; else no() 254
-yes if ( -- bfs.bf3 ) yes() ; else no() 254
+yes if ( bfs.bf3 -- ) yes() ; else no() -2
+yes if ( -- bfs.bf3 ) yes() ; else no() -2
 no if ( ++ bfs.bf3 ) yes() ; else no() 0
index ed4e098..b1797f6 100644 (file)
 40000 < 8012
 40000 > 8012
 40000 ? 40000 : 8012
-x = 40000  -25536
-x += 40000  -25526
-x -= 40000  25546
+x = 40000  40000
+x += 40000  40010
+x -= 40000  -39990
 x /= 40000  0
 x %= 40000  10
-x *= 40000  6784
+x *= 40000  400000
 x &= 40000  0
-x |= 40000  -25526
-x ^= 40000  -25526
+x |= 40000  40010
+x ^= 40000  40010
 x <<= 9 5120
 x >>= 9 0
 x ++ 11
 x -- 9
 -- x 9
 ++ x 11
-y = ( 40000 + 8012 ) -17524
+y = ( 40000 + 8012 ) 48012
 y = ( 40000 - 8012 ) 31988
 y = ( 40000 / 8012 ) 4
 y = ( 40000 % 8012 ) 7952
-y = ( 40000 * 8012 ) 8960
+y = ( 40000 * 8012 ) 320480000
 y = ( 40000 & 8012 ) 7232
-y = ( 40000 | 8012 ) -24756
-y = ( 40000 ^ 8012 ) -31988
+y = ( 40000 | 8012 ) 40780
+y = ( 40000 ^ 8012 ) 33548
 y = ( 40000 || 8012 ) 1
 y = ( 40000 && 8012 ) 1
-y = ( 40000 << 9 ) -32768
+y = ( 40000 << 9 ) 20480000
 y = ( 40000 >> 9 ) 78
-y = ( -40000  ) 25536
+y = ( -40000  ) -40000
 y = ( !40000  ) 0
-y = ( ~40000  ) 25535
+y = ( ~40000  ) -40001
 y = ( 40000 == 8012 ) 0
 y = ( 40000 != 8012 ) 1
 y = ( 40000 <= 8012 ) 0
 y = ( 40000 >= 8012 ) 1
 y = ( 40000 < 8012 ) 0
 y = ( 40000 > 8012 ) 1
-y = ( 40000 ? 40000 : 8012 ) -25536
-y = ( x = 40000  ) -25536 -25536
-y = ( x += 40000  ) -25526 -25526
-y = ( x -= 40000  ) 25546 25546
+y = ( 40000 ? 40000 : 8012 ) 40000
+y = ( x = 40000  ) 40000 40000
+y = ( x += 40000  ) 40010 40010
+y = ( x -= 40000  ) -39990 -39990
 y = ( x /= 40000  ) 0 0
 y = ( x %= 40000  ) 10 10
-y = ( x *= 40000  ) 6784 6784
+y = ( x *= 40000  ) 400000 400000
 y = ( x &= 40000  ) 0 0
-y = ( x |= 40000  ) -25526 -25526
-y = ( x ^= 40000  ) -25526 -25526
+y = ( x |= 40000  ) 40010 40010
+y = ( x ^= 40000  ) 40010 40010
 y = ( x <<= 9 ) 5120 5120
 y = ( x >>= 9 ) 0 0
 y = ( x ++ ) 11 10
@@ -94,15 +94,15 @@ yes if ( 40000 >= 8012 ) yes() ; else no()
 no if ( 40000 < 8012 ) yes() ; else no()
 yes if ( 40000 > 8012 ) yes() ; else no()
 yes if ( 40000 ? 40000 : 8012 ) yes() ; else no()
-yes if ( x = 40000  ) yes() ; else no() -25536
-yes if ( x += 40000  ) yes() ; else no() -25526
-yes if ( x -= 40000  ) yes() ; else no() 25546
+yes if ( x = 40000  ) yes() ; else no() 40000
+yes if ( x += 40000  ) yes() ; else no() 40010
+yes if ( x -= 40000  ) yes() ; else no() -39990
 no if ( x /= 40000  ) yes() ; else no() 0
 yes if ( x %= 40000  ) yes() ; else no() 10
-yes if ( x *= 40000  ) yes() ; else no() 6784
+yes if ( x *= 40000  ) yes() ; else no() 400000
 no if ( x &= 40000  ) yes() ; else no() 0
-yes if ( x |= 40000  ) yes() ; else no() -25526
-yes if ( x ^= 40000  ) yes() ; else no() -25526
+yes if ( x |= 40000  ) yes() ; else no() 40010
+yes if ( x ^= 40000  ) yes() ; else no() 40010
 yes if ( x <<= 9 ) yes() ; else no() 5120
 no if ( x >>= 9 ) yes() ; else no() 0
 yes if ( x ++ ) yes() ; else no() 11
index 8972fad..6688113 100644 (file)
 '0' ? '0' : '1'
 x = '0'  48
 x += '0'  58
-x -= '0'  218
+x -= '0'  -38
 x /= '0'  0
 x %= '0'  10
-x *= '0'  224
+x *= '0'  -32
 x &= '0'  0
 x |= '0'  58
 x ^= '0'  58
-x <<= 4 160
+x <<= 4 -96
 x >>= 4 0
 x ++ 11
 x -- 9
 -- x 9
 ++ x 11
 y = ( '0' + '1' ) 97
-y = ( '0' - '1' ) 255
+y = ( '0' - '1' ) -1
 y = ( '0' / '1' ) 0
 y = ( '0' % '1' ) 48
 y = ( '0' * '1' ) 48
@@ -47,9 +47,9 @@ y = ( '0' || '1' ) 1
 y = ( '0' && '1' ) 1
 y = ( '0' << 4 ) 0
 y = ( '0' >> 4 ) 3
-y = ( -'0'  ) 208
+y = ( -'0'  ) -48
 y = ( !'0'  ) 0
-y = ( ~'0'  ) 207
+y = ( ~'0'  ) -49
 y = ( '0' == '1' ) 0
 y = ( '0' != '1' ) 1
 y = ( '0' <= '1' ) 1
@@ -59,14 +59,14 @@ y = ( '0' > '1' ) 0
 y = ( '0' ? '0' : '1' ) 48
 y = ( x = '0'  ) 48 48
 y = ( x += '0'  ) 58 58
-y = ( x -= '0'  ) 218 218
+y = ( x -= '0'  ) -38 -38
 y = ( x /= '0'  ) 0 0
 y = ( x %= '0'  ) 10 10
-y = ( x *= '0'  ) 224 224
+y = ( x *= '0'  ) -32 -32
 y = ( x &= '0'  ) 0 0
 y = ( x |= '0'  ) 58 58
 y = ( x ^= '0'  ) 58 58
-y = ( x <<= 4 ) 160 160
+y = ( x <<= 4 ) -96 -96
 y = ( x >>= 4 ) 0 0
 y = ( x ++ ) 11 10
 y = ( x -- ) 9 10
@@ -96,14 +96,14 @@ no if ( '0' > '1' ) yes() ; else no()
 yes if ( '0' ? '0' : '1' ) yes() ; else no()
 yes if ( x = '0'  ) yes() ; else no() 48
 yes if ( x += '0'  ) yes() ; else no() 58
-yes if ( x -= '0'  ) yes() ; else no() 218
+yes if ( x -= '0'  ) yes() ; else no() -38
 no if ( x /= '0'  ) yes() ; else no() 0
 yes if ( x %= '0'  ) yes() ; else no() 10
-yes if ( x *= '0'  ) yes() ; else no() 224
+yes if ( x *= '0'  ) yes() ; else no() -32
 no if ( x &= '0'  ) yes() ; else no() 0
 yes if ( x |= '0'  ) yes() ; else no() 58
 yes if ( x ^= '0'  ) yes() ; else no() 58
-yes if ( x <<= 4 ) yes() ; else no() 160
+yes if ( x <<= 4 ) yes() ; else no() -96
 no if ( x >>= 4 ) yes() ; else no() 0
 yes if ( x ++ ) yes() ; else no() 11
 yes if ( x -- ) yes() ; else no() 9
index fa2e613..a3c3aef 100644 (file)
@@ -29,7 +29,7 @@ x *= 4  1020
 x &= 4  4
 x |= 4  255
 x ^= 4  251
-x <<= 15 -32768
+x <<= 15 8355840
 x >>= 15 0
 x ++ 256
 x -- 254
@@ -45,7 +45,7 @@ y = ( 4 | 5 ) 5
 y = ( 4 ^ 5 ) 1
 y = ( 4 || 5 ) 1
 y = ( 4 && 5 ) 1
-y = ( 4 << 15 ) 0
+y = ( 4 << 15 ) 131072
 y = ( 4 >> 15 ) 0
 y = ( -4  ) -4
 y = ( !4  ) 0
@@ -66,7 +66,7 @@ y = ( x *= 4  ) 1020 1020
 y = ( x &= 4  ) 4 4
 y = ( x |= 4  ) 255 255
 y = ( x ^= 4  ) 251 251
-y = ( x <<= 15 ) -32768 -32768
+y = ( x <<= 15 ) 8355840 8355840
 y = ( x >>= 15 ) 0 0
 y = ( x ++ ) 256 255
 y = ( x -- ) 254 255
@@ -82,7 +82,7 @@ yes if ( 4 | 5 ) yes() ; else no()
 yes if ( 4 ^ 5 ) yes() ; else no()
 yes if ( 4 || 5 ) yes() ; else no()
 yes if ( 4 && 5 ) yes() ; else no()
-no if ( 4 << 15 ) yes() ; else no()
+yes if ( 4 << 15 ) yes() ; else no()
 no if ( 4 >> 15 ) yes() ; else no()
 yes if ( -4  ) yes() ; else no()
 no if ( !4  ) yes() ; else no()
@@ -103,7 +103,7 @@ yes if ( x *= 4  ) yes() ; else no() 1020
 yes if ( x &= 4  ) yes() ; else no() 4
 yes if ( x |= 4  ) yes() ; else no() 255
 yes if ( x ^= 4  ) yes() ; else no() 251
-yes if ( x <<= 15 ) yes() ; else no() -32768
+yes if ( x <<= 15 ) yes() ; else no() 8355840
 no if ( x >>= 15 ) yes() ; else no() 0
 yes if ( x ++ ) yes() ; else no() 256
 yes if ( x -- ) yes() ; else no() 254
index ed4e098..b1797f6 100644 (file)
 40000 < 8012
 40000 > 8012
 40000 ? 40000 : 8012
-x = 40000  -25536
-x += 40000  -25526
-x -= 40000  25546
+x = 40000  40000
+x += 40000  40010
+x -= 40000  -39990
 x /= 40000  0
 x %= 40000  10
-x *= 40000  6784
+x *= 40000  400000
 x &= 40000  0
-x |= 40000  -25526
-x ^= 40000  -25526
+x |= 40000  40010
+x ^= 40000  40010
 x <<= 9 5120
 x >>= 9 0
 x ++ 11
 x -- 9
 -- x 9
 ++ x 11
-y = ( 40000 + 8012 ) -17524
+y = ( 40000 + 8012 ) 48012
 y = ( 40000 - 8012 ) 31988
 y = ( 40000 / 8012 ) 4
 y = ( 40000 % 8012 ) 7952
-y = ( 40000 * 8012 ) 8960
+y = ( 40000 * 8012 ) 320480000
 y = ( 40000 & 8012 ) 7232
-y = ( 40000 | 8012 ) -24756
-y = ( 40000 ^ 8012 ) -31988
+y = ( 40000 | 8012 ) 40780
+y = ( 40000 ^ 8012 ) 33548
 y = ( 40000 || 8012 ) 1
 y = ( 40000 && 8012 ) 1
-y = ( 40000 << 9 ) -32768
+y = ( 40000 << 9 ) 20480000
 y = ( 40000 >> 9 ) 78
-y = ( -40000  ) 25536
+y = ( -40000  ) -40000
 y = ( !40000  ) 0
-y = ( ~40000  ) 25535
+y = ( ~40000  ) -40001
 y = ( 40000 == 8012 ) 0
 y = ( 40000 != 8012 ) 1
 y = ( 40000 <= 8012 ) 0
 y = ( 40000 >= 8012 ) 1
 y = ( 40000 < 8012 ) 0
 y = ( 40000 > 8012 ) 1
-y = ( 40000 ? 40000 : 8012 ) -25536
-y = ( x = 40000  ) -25536 -25536
-y = ( x += 40000  ) -25526 -25526
-y = ( x -= 40000  ) 25546 25546
+y = ( 40000 ? 40000 : 8012 ) 40000
+y = ( x = 40000  ) 40000 40000
+y = ( x += 40000  ) 40010 40010
+y = ( x -= 40000  ) -39990 -39990
 y = ( x /= 40000  ) 0 0
 y = ( x %= 40000  ) 10 10
-y = ( x *= 40000  ) 6784 6784
+y = ( x *= 40000  ) 400000 400000
 y = ( x &= 40000  ) 0 0
-y = ( x |= 40000  ) -25526 -25526
-y = ( x ^= 40000  ) -25526 -25526
+y = ( x |= 40000  ) 40010 40010
+y = ( x ^= 40000  ) 40010 40010
 y = ( x <<= 9 ) 5120 5120
 y = ( x >>= 9 ) 0 0
 y = ( x ++ ) 11 10
@@ -94,15 +94,15 @@ yes if ( 40000 >= 8012 ) yes() ; else no()
 no if ( 40000 < 8012 ) yes() ; else no()
 yes if ( 40000 > 8012 ) yes() ; else no()
 yes if ( 40000 ? 40000 : 8012 ) yes() ; else no()
-yes if ( x = 40000  ) yes() ; else no() -25536
-yes if ( x += 40000  ) yes() ; else no() -25526
-yes if ( x -= 40000  ) yes() ; else no() 25546
+yes if ( x = 40000  ) yes() ; else no() 40000
+yes if ( x += 40000  ) yes() ; else no() 40010
+yes if ( x -= 40000  ) yes() ; else no() -39990
 no if ( x /= 40000  ) yes() ; else no() 0
 yes if ( x %= 40000  ) yes() ; else no() 10
-yes if ( x *= 40000  ) yes() ; else no() 6784
+yes if ( x *= 40000  ) yes() ; else no() 400000
 no if ( x &= 40000  ) yes() ; else no() 0
-yes if ( x |= 40000  ) yes() ; else no() -25526
-yes if ( x ^= 40000  ) yes() ; else no() -25526
+yes if ( x |= 40000  ) yes() ; else no() 40010
+yes if ( x ^= 40000  ) yes() ; else no() 40010
 yes if ( x <<= 9 ) yes() ; else no() 5120
 no if ( x >>= 9 ) yes() ; else no() 0
 yes if ( x ++ ) yes() ; else no() 11
diff --git a/lang/cem/ctest/ctgen/id.cem.g b/lang/cem/ctest/ctgen/id.cem.g
new file mode 100644 (file)
index 0000000..d7b3324
--- /dev/null
@@ -0,0 +1,72 @@
+(-40) + 300
+(-40) - 300
+(-40) / 300
+(-40) * 300
+(-40) || 300
+(-40) && 300
+-(-40) 
+!(-40) 
+(-40) == 300
+(-40) != 300
+(-40) <= 300
+(-40) >= 300
+(-40) < 300
+(-40) > 300
+(-40) ? (-40) : 300
+x = (-40)  -4.000000e+01
+x += (-40)  -3.685850e+01
+x -= (-40)  4.314150e+01
+x /= (-40)  -7.853750e-02
+x *= (-40)  -1.256600e+02
+x ++ 4.141500e+00
+x -- 2.141500e+00
+-- x 2.141500e+00
+++ x 4.141500e+00
+y = ( (-40) + 300 ) 17538
+y = ( (-40) - 300 ) 50346
+y = ( (-40) / 300 ) 0
+y = ( (-40) * 300 ) -2147432645
+y = ( (-40) || 300 ) 16512
+y = ( (-40) && 300 ) 16512
+y = ( -(-40)  ) 17184
+y = ( !(-40)  ) 0
+y = ( (-40) == 300 ) 0
+y = ( (-40) != 300 ) 16512
+y = ( (-40) <= 300 ) 16512
+y = ( (-40) >= 300 ) 0
+y = ( (-40) < 300 ) 16512
+y = ( (-40) > 300 ) 0
+y = ( (-40) ? (-40) : 300 ) 49952
+y = ( x = (-40)  ) -4.000000e+01 49952
+y = ( x += (-40)  ) -3.685850e+01 1864024851
+y = ( x -= (-40)  ) 4.314150e+01 -1864023252
+y = ( x /= (-40)  ) -7.853750e-02 -666583392
+y = ( x *= (-40)  ) -1.256600e+02 1374405627
+y = ( x ++ ) 4.141500e+00 240533833
+y = ( x -- ) 2.141500e+00 240533833
+y = ( -- x ) 2.141500e+00 240533769
+y = ( ++ x ) 4.141500e+00 -2027208316
+yes if ( (-40) + 300 ) yes() ; else no()
+yes if ( (-40) - 300 ) yes() ; else no()
+no if ( (-40) / 300 ) yes() ; else no()
+yes if ( (-40) * 300 ) yes() ; else no()
+yes if ( (-40) || 300 ) yes() ; else no()
+yes if ( (-40) && 300 ) yes() ; else no()
+yes if ( -(-40)  ) yes() ; else no()
+no if ( !(-40)  ) yes() ; else no()
+no if ( (-40) == 300 ) yes() ; else no()
+yes if ( (-40) != 300 ) yes() ; else no()
+yes if ( (-40) <= 300 ) yes() ; else no()
+no if ( (-40) >= 300 ) yes() ; else no()
+yes if ( (-40) < 300 ) yes() ; else no()
+no if ( (-40) > 300 ) yes() ; else no()
+yes if ( (-40) ? (-40) : 300 ) yes() ; else no()
+yes if ( x = (-40)  ) yes() ; else no() -4.000000e+01
+yes if ( x += (-40)  ) yes() ; else no() -3.685850e+01
+yes if ( x -= (-40)  ) yes() ; else no() 4.314150e+01
+yes if ( x /= (-40)  ) yes() ; else no() -7.853750e-02
+yes if ( x *= (-40)  ) yes() ; else no() -1.256600e+02
+yes if ( x ++ ) yes() ; else no() 4.141500e+00
+yes if ( x -- ) yes() ; else no() 2.141500e+00
+yes if ( -- x ) yes() ; else no() 2.141500e+00
+yes if ( ++ x ) yes() ; else no() 4.141500e+00
index 8972fad..6688113 100644 (file)
 '0' ? '0' : '1'
 x = '0'  48
 x += '0'  58
-x -= '0'  218
+x -= '0'  -38
 x /= '0'  0
 x %= '0'  10
-x *= '0'  224
+x *= '0'  -32
 x &= '0'  0
 x |= '0'  58
 x ^= '0'  58
-x <<= 4 160
+x <<= 4 -96
 x >>= 4 0
 x ++ 11
 x -- 9
 -- x 9
 ++ x 11
 y = ( '0' + '1' ) 97
-y = ( '0' - '1' ) 255
+y = ( '0' - '1' ) -1
 y = ( '0' / '1' ) 0
 y = ( '0' % '1' ) 48
 y = ( '0' * '1' ) 48
@@ -47,9 +47,9 @@ y = ( '0' || '1' ) 1
 y = ( '0' && '1' ) 1
 y = ( '0' << 4 ) 0
 y = ( '0' >> 4 ) 3
-y = ( -'0'  ) 208
+y = ( -'0'  ) -48
 y = ( !'0'  ) 0
-y = ( ~'0'  ) 207
+y = ( ~'0'  ) -49
 y = ( '0' == '1' ) 0
 y = ( '0' != '1' ) 1
 y = ( '0' <= '1' ) 1
@@ -59,14 +59,14 @@ y = ( '0' > '1' ) 0
 y = ( '0' ? '0' : '1' ) 48
 y = ( x = '0'  ) 48 48
 y = ( x += '0'  ) 58 58
-y = ( x -= '0'  ) 218 218
+y = ( x -= '0'  ) -38 -38
 y = ( x /= '0'  ) 0 0
 y = ( x %= '0'  ) 10 10
-y = ( x *= '0'  ) 224 224
+y = ( x *= '0'  ) -32 -32
 y = ( x &= '0'  ) 0 0
 y = ( x |= '0'  ) 58 58
 y = ( x ^= '0'  ) 58 58
-y = ( x <<= 4 ) 160 160
+y = ( x <<= 4 ) -96 -96
 y = ( x >>= 4 ) 0 0
 y = ( x ++ ) 11 10
 y = ( x -- ) 9 10
@@ -96,14 +96,14 @@ no if ( '0' > '1' ) yes() ; else no()
 yes if ( '0' ? '0' : '1' ) yes() ; else no()
 yes if ( x = '0'  ) yes() ; else no() 48
 yes if ( x += '0'  ) yes() ; else no() 58
-yes if ( x -= '0'  ) yes() ; else no() 218
+yes if ( x -= '0'  ) yes() ; else no() -38
 no if ( x /= '0'  ) yes() ; else no() 0
 yes if ( x %= '0'  ) yes() ; else no() 10
-yes if ( x *= '0'  ) yes() ; else no() 224
+yes if ( x *= '0'  ) yes() ; else no() -32
 no if ( x &= '0'  ) yes() ; else no() 0
 yes if ( x |= '0'  ) yes() ; else no() 58
 yes if ( x ^= '0'  ) yes() ; else no() 58
-yes if ( x <<= 4 ) yes() ; else no() 160
+yes if ( x <<= 4 ) yes() ; else no() -96
 no if ( x >>= 4 ) yes() ; else no() 0
 yes if ( x ++ ) yes() ; else no() 11
 yes if ( x -- ) yes() ; else no() 9
index fa2e613..a3c3aef 100644 (file)
@@ -29,7 +29,7 @@ x *= 4  1020
 x &= 4  4
 x |= 4  255
 x ^= 4  251
-x <<= 15 -32768
+x <<= 15 8355840
 x >>= 15 0
 x ++ 256
 x -- 254
@@ -45,7 +45,7 @@ y = ( 4 | 5 ) 5
 y = ( 4 ^ 5 ) 1
 y = ( 4 || 5 ) 1
 y = ( 4 && 5 ) 1
-y = ( 4 << 15 ) 0
+y = ( 4 << 15 ) 131072
 y = ( 4 >> 15 ) 0
 y = ( -4  ) -4
 y = ( !4  ) 0
@@ -66,7 +66,7 @@ y = ( x *= 4  ) 1020 1020
 y = ( x &= 4  ) 4 4
 y = ( x |= 4  ) 255 255
 y = ( x ^= 4  ) 251 251
-y = ( x <<= 15 ) -32768 -32768
+y = ( x <<= 15 ) 8355840 8355840
 y = ( x >>= 15 ) 0 0
 y = ( x ++ ) 256 255
 y = ( x -- ) 254 255
@@ -82,7 +82,7 @@ yes if ( 4 | 5 ) yes() ; else no()
 yes if ( 4 ^ 5 ) yes() ; else no()
 yes if ( 4 || 5 ) yes() ; else no()
 yes if ( 4 && 5 ) yes() ; else no()
-no if ( 4 << 15 ) yes() ; else no()
+yes if ( 4 << 15 ) yes() ; else no()
 no if ( 4 >> 15 ) yes() ; else no()
 yes if ( -4  ) yes() ; else no()
 no if ( !4  ) yes() ; else no()
@@ -103,7 +103,7 @@ yes if ( x *= 4  ) yes() ; else no() 1020
 yes if ( x &= 4  ) yes() ; else no() 4
 yes if ( x |= 4  ) yes() ; else no() 255
 yes if ( x ^= 4  ) yes() ; else no() 251
-yes if ( x <<= 15 ) yes() ; else no() -32768
+yes if ( x <<= 15 ) yes() ; else no() 8355840
 no if ( x >>= 15 ) yes() ; else no() 0
 yes if ( x ++ ) yes() ; else no() 256
 yes if ( x -- ) yes() ; else no() 254
index 7dd221e..be2a6aa 100644 (file)
@@ -20,52 +20,52 @@ x >= 8012
 x < 8012
 x > 8012
 x ? x : 8012
-z = x  -25302
-z += x  -25292
-z -= x  25312
+z = x  40234
+z += x  40244
+z -= x  -40224
 z /= x  0
 z %= x  10
-z *= x  9124
+z *= x  402340
 z &= x  10
-z |= x  -25302
-z ^= x  -25312
+z |= x  40234
+z ^= x  40224
 z <<= 9 5120
 z >>= 9 0
 z ++ 11
 z -- 9
 -- z 9
 ++ z 11
-y = ( x + 8012 ) -17290
+y = ( x + 8012 ) 48246
 y = ( x - 8012 ) 32222
 y = ( x / 8012 ) 5
 y = ( x % 8012 ) 174
-y = ( x * 8012 ) -16776
+y = ( x * 8012 ) 322354808
 y = ( x & 8012 ) 7432
-y = ( x | 8012 ) -24722
-y = ( x ^ 8012 ) -32154
+y = ( x | 8012 ) 40814
+y = ( x ^ 8012 ) 33382
 y = ( x || 8012 ) 1
 y = ( x && 8012 ) 1
-y = ( x << 9 ) 21504
+y = ( x << 9 ) 20599808
 y = ( x >> 9 ) 78
-y = ( -x  ) 25302
+y = ( -x  ) -40234
 y = ( !x  ) 0
-y = ( ~x  ) 25301
+y = ( ~x  ) -40235
 y = ( x == 8012 ) 0
 y = ( x != 8012 ) 1
 y = ( x <= 8012 ) 0
 y = ( x >= 8012 ) 1
 y = ( x < 8012 ) 0
 y = ( x > 8012 ) 1
-y = ( x ? x : 8012 ) -25302
-y = ( z = x  ) -25302 -25302
-y = ( z += x  ) -25292 -25292
-y = ( z -= x  ) 25312 25312
+y = ( x ? x : 8012 ) 40234
+y = ( z = x  ) 40234 40234
+y = ( z += x  ) 40244 40244
+y = ( z -= x  ) -40224 -40224
 y = ( z /= x  ) 0 0
 y = ( z %= x  ) 10 10
-y = ( z *= x  ) 9124 9124
+y = ( z *= x  ) 402340 402340
 y = ( z &= x  ) 10 10
-y = ( z |= x  ) -25302 -25302
-y = ( z ^= x  ) -25312 -25312
+y = ( z |= x  ) 40234 40234
+y = ( z ^= x  ) 40224 40224
 y = ( z <<= 9 ) 5120 5120
 y = ( z >>= 9 ) 0 0
 y = ( z ++ ) 11 10
@@ -94,15 +94,15 @@ yes if ( x >= 8012 ) yes() ; else no()
 no if ( x < 8012 ) yes() ; else no()
 yes if ( x > 8012 ) yes() ; else no()
 yes if ( x ? x : 8012 ) yes() ; else no()
-yes if ( z = x  ) yes() ; else no() -25302
-yes if ( z += x  ) yes() ; else no() -25292
-yes if ( z -= x  ) yes() ; else no() 25312
+yes if ( z = x  ) yes() ; else no() 40234
+yes if ( z += x  ) yes() ; else no() 40244
+yes if ( z -= x  ) yes() ; else no() -40224
 no if ( z /= x  ) yes() ; else no() 0
 yes if ( z %= x  ) yes() ; else no() 10
-yes if ( z *= x  ) yes() ; else no() 9124
+yes if ( z *= x  ) yes() ; else no() 402340
 yes if ( z &= x  ) yes() ; else no() 10
-yes if ( z |= x  ) yes() ; else no() -25302
-yes if ( z ^= x  ) yes() ; else no() -25312
+yes if ( z |= x  ) yes() ; else no() 40234
+yes if ( z ^= x  ) yes() ; else no() 40224
 yes if ( z <<= 9 ) yes() ; else no() 5120
 no if ( z >>= 9 ) yes() ; else no() 0
 yes if ( z ++ ) yes() ; else no() 11
index 6f1803c..7c0e00c 100644 (file)
@@ -45,7 +45,7 @@ fl2   2.00000000000000000000e+00
 fl2    2.00000000000000000000e+00
 fl4    4.00000000000000000000e+00
 fl5    2.93873587705571892581e-39
-fl6    1.70141173319264427000e+38
+fl6    1.70141173319264428000e+38
 fl7    0.00000000000000000000e+00
     fla1                    fla2                    fla3
             1.000000e+00           -1.000000e+00            1.100000e+01
@@ -107,6 +107,6 @@ s_f    0.000000e+00  -1.000000e+01   0.000000e+00   0.000000e+00
 
 bit fields:
 
-sizeof stb 6
-stb    1 2 3 4 3 6 7
+sizeof stb 8
+stb    -1 -2 3 4 -1 6 7
 
index 15bf3f3..27fc0cc 100644 (file)
@@ -2,6 +2,8 @@ main called with argc = 1
 Arguments:
        margt.cem
 Environment:
-       HOME=/other/keie
-       PATH=:/other/keie/bin:/bin:/usr/bin
-       TERM=MiniBee
+       HOME=/usr/em
+       PATH=:/bin:/usr/ucb:/usr/local:/usr/bin:/usr/em/bin
+       SHELL=/usr/local/esh
+       TERM=dialup
+       USER=em
index 8021a81..96f239a 100644 (file)
@@ -1,3 +1,3 @@
-childno N
-Child N, status 0x800
+childno 16276
+Child 16276, status 0x800
 fork/wait ok