General cleanup (#525)

* Cleans up and trims the overly large builtins file by ~1600 lines
* Properly propagate inline assembler-like argument types
* Use https in examples
* Reformat README
This commit is contained in:
Daniel Wirtz
2019-03-08 14:24:48 +01:00
committed by GitHub
parent 5f547131ab
commit 252b843c4b
15 changed files with 2516 additions and 4170 deletions

View File

@ -426,14 +426,14 @@
i32.const 1
i32.store
i32.const 8
i32.const 1
i32.store8
i64.const 1
i64.store8
i32.const 8
i32.const 1
i32.store16
i64.const 1
i64.store16
i32.const 8
i32.const 1
i32.store
i64.const 1
i64.store32
i32.const 8
i64.const 1
i64.store

View File

@ -274,6 +274,12 @@ sizeof<isize>();
assert(sizeof<f32>() == 4);
assert(sizeof<f64>() == 8);
assert(alignof<u8>() == 0);
assert(alignof<u16>() == 1);
assert(alignof<u32>() == 2);
assert(alignof<u64>() == 3);
assert(alignof<bool>() == 0);
class Foo<T> { a: T; b: T; }
assert(offsetof<Foo<i32>>("a") == 0);
assert(offsetof<Foo<i32>>("b") == 4);

View File

@ -1513,6 +1513,18 @@
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 277
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 1
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
@ -1521,8 +1533,8 @@
call $~lib/env/abort
unreachable
end
i32.const 4
i32.const 4
i32.const 2
i32.const 2
i32.eq
i32.eqz
if
@ -1533,8 +1545,8 @@
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
i32.const 3
i32.const 3
i32.eq
i32.eqz
if
@ -1545,8 +1557,8 @@
call $~lib/env/abort
unreachable
end
i32.const 2
i32.const 2
i32.const 0
i32.const 0
i32.eq
i32.eqz
if
@ -1564,7 +1576,55 @@
if
i32.const 0
i32.const 8
i32.const 283
i32.const 284
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 285
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 286
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 2
i32.const 2
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 287
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 289
i32.const 0
call $~lib/env/abort
unreachable
@ -1576,7 +1636,7 @@
if
i32.const 0
i32.const 8
i32.const 284
i32.const 290
i32.const 0
call $~lib/env/abort
unreachable
@ -1588,7 +1648,7 @@
if
i32.const 0
i32.const 8
i32.const 286
i32.const 292
i32.const 0
call $~lib/env/abort
unreachable
@ -1606,7 +1666,7 @@
if
i32.const 0
i32.const 8
i32.const 287
i32.const 293
i32.const 0
call $~lib/env/abort
unreachable
@ -1624,7 +1684,7 @@
if
i32.const 0
i32.const 8
i32.const 288
i32.const 294
i32.const 0
call $~lib/env/abort
unreachable
@ -1645,7 +1705,7 @@
if
i32.const 0
i32.const 8
i32.const 289
i32.const 295
i32.const 0
call $~lib/env/abort
unreachable
@ -1666,7 +1726,7 @@
if
i32.const 0
i32.const 8
i32.const 290
i32.const 296
i32.const 0
call $~lib/env/abort
unreachable
@ -1687,7 +1747,7 @@
if
i32.const 0
i32.const 8
i32.const 291
i32.const 297
i32.const 0
call $~lib/env/abort
unreachable
@ -1708,7 +1768,7 @@
if
i32.const 0
i32.const 8
i32.const 292
i32.const 298
i32.const 0
call $~lib/env/abort
unreachable
@ -1728,7 +1788,7 @@
if
i32.const 0
i32.const 8
i32.const 293
i32.const 299
i32.const 0
call $~lib/env/abort
unreachable
@ -1748,7 +1808,7 @@
if
i32.const 0
i32.const 8
i32.const 294
i32.const 300
i32.const 0
call $~lib/env/abort
unreachable
@ -1764,7 +1824,7 @@
if
i32.const 0
i32.const 8
i32.const 307
i32.const 313
i32.const 0
call $~lib/env/abort
unreachable
@ -1776,7 +1836,7 @@
if
i32.const 0
i32.const 8
i32.const 308
i32.const 314
i32.const 0
call $~lib/env/abort
unreachable
@ -1792,7 +1852,7 @@
if
i32.const 0
i32.const 8
i32.const 309
i32.const 315
i32.const 0
call $~lib/env/abort
unreachable
@ -1804,7 +1864,7 @@
if
i32.const 0
i32.const 8
i32.const 310
i32.const 316
i32.const 0
call $~lib/env/abort
unreachable
@ -1816,7 +1876,7 @@
if
i32.const 0
i32.const 8
i32.const 311
i32.const 317
i32.const 0
call $~lib/env/abort
unreachable
@ -1828,7 +1888,7 @@
if
i32.const 0
i32.const 8
i32.const 312
i32.const 318
i32.const 0
call $~lib/env/abort
unreachable
@ -1840,7 +1900,7 @@
if
i32.const 0
i32.const 8
i32.const 313
i32.const 319
i32.const 0
call $~lib/env/abort
unreachable
@ -1852,7 +1912,7 @@
if
i32.const 0
i32.const 8
i32.const 314
i32.const 320
i32.const 0
call $~lib/env/abort
unreachable
@ -1864,7 +1924,7 @@
if
i32.const 0
i32.const 8
i32.const 316
i32.const 322
i32.const 0
call $~lib/env/abort
unreachable
@ -1876,7 +1936,7 @@
if
i32.const 0
i32.const 8
i32.const 317
i32.const 323
i32.const 0
call $~lib/env/abort
unreachable
@ -1888,7 +1948,7 @@
if
i32.const 0
i32.const 8
i32.const 318
i32.const 324
i32.const 0
call $~lib/env/abort
unreachable
@ -1900,7 +1960,7 @@
if
i32.const 0
i32.const 8
i32.const 319
i32.const 325
i32.const 0
call $~lib/env/abort
unreachable
@ -1912,7 +1972,7 @@
if
i32.const 0
i32.const 8
i32.const 320
i32.const 326
i32.const 0
call $~lib/env/abort
unreachable
@ -1924,7 +1984,7 @@
if
i32.const 0
i32.const 8
i32.const 321
i32.const 327
i32.const 0
call $~lib/env/abort
unreachable
@ -1936,7 +1996,7 @@
if
i32.const 0
i32.const 8
i32.const 322
i32.const 328
i32.const 0
call $~lib/env/abort
unreachable
@ -1948,7 +2008,7 @@
if
i32.const 0
i32.const 8
i32.const 323
i32.const 329
i32.const 0
call $~lib/env/abort
unreachable
@ -1960,7 +2020,7 @@
if
i32.const 0
i32.const 8
i32.const 324
i32.const 330
i32.const 0
call $~lib/env/abort
unreachable
@ -1972,7 +2032,7 @@
if
i32.const 0
i32.const 8
i32.const 324
i32.const 330
i32.const 29
call $~lib/env/abort
unreachable
@ -1984,7 +2044,7 @@
if
i32.const 0
i32.const 8
i32.const 325
i32.const 331
i32.const 0
call $~lib/env/abort
unreachable
@ -1996,7 +2056,7 @@
if
i32.const 0
i32.const 8
i32.const 325
i32.const 331
i32.const 29
call $~lib/env/abort
unreachable
@ -2008,7 +2068,7 @@
if
i32.const 0
i32.const 8
i32.const 327
i32.const 333
i32.const 0
call $~lib/env/abort
unreachable
@ -2020,7 +2080,7 @@
if
i32.const 0
i32.const 8
i32.const 328
i32.const 334
i32.const 0
call $~lib/env/abort
unreachable
@ -2032,7 +2092,7 @@
if
i32.const 0
i32.const 8
i32.const 329
i32.const 335
i32.const 0
call $~lib/env/abort
unreachable
@ -2044,7 +2104,7 @@
if
i32.const 0
i32.const 8
i32.const 330
i32.const 336
i32.const 0
call $~lib/env/abort
unreachable
@ -2056,7 +2116,7 @@
if
i32.const 0
i32.const 8
i32.const 331
i32.const 337
i32.const 0
call $~lib/env/abort
unreachable
@ -2068,7 +2128,7 @@
if
i32.const 0
i32.const 8
i32.const 332
i32.const 338
i32.const 0
call $~lib/env/abort
unreachable
@ -2080,7 +2140,7 @@
if
i32.const 0
i32.const 8
i32.const 334
i32.const 340
i32.const 0
call $~lib/env/abort
unreachable
@ -2092,7 +2152,7 @@
if
i32.const 0
i32.const 8
i32.const 335
i32.const 341
i32.const 0
call $~lib/env/abort
unreachable
@ -2104,7 +2164,7 @@
if
i32.const 0
i32.const 8
i32.const 336
i32.const 342
i32.const 0
call $~lib/env/abort
unreachable
@ -2116,7 +2176,7 @@
if
i32.const 0
i32.const 8
i32.const 337
i32.const 343
i32.const 0
call $~lib/env/abort
unreachable
@ -2128,7 +2188,7 @@
if
i32.const 0
i32.const 8
i32.const 338
i32.const 344
i32.const 0
call $~lib/env/abort
unreachable
@ -2140,7 +2200,7 @@
if
i32.const 0
i32.const 8
i32.const 339
i32.const 345
i32.const 0
call $~lib/env/abort
unreachable
@ -2297,14 +2357,14 @@
i32.const 1
i32.store
i32.const 8
i32.const 1
i32.store8
i64.const 1
i64.store8
i32.const 8
i32.const 1
i32.store16
i64.const 1
i64.store16
i32.const 8
i32.const 1
i32.store
i64.const 1
i64.store32
i32.const 8
i64.const 1
i64.store

View File

@ -99,65 +99,65 @@ function testAtomicAsm(): void {
i32.atomic.store8(0, 1);
i32.atomic.store16(0, 1);
i32.atomic.store(0, 1);
i64.atomic.store8(0, <i64>1);
i64.atomic.store16(0, <i64>1);
i64.atomic.store32(0, <i64>1);
i64.atomic.store8(0, 1);
i64.atomic.store16(0, 1);
i64.atomic.store32(0, 1);
i64.atomic.store(0, 1);
i32.atomic.rmw8.add_u(0, 1);
i32.atomic.rmw16.add_u(0, 1);
i32.atomic.rmw.add(0, 1);
i64.atomic.rmw8.add_u(0, <i64>1);
i64.atomic.rmw16.add_u(0, <i64>1);
i64.atomic.rmw32.add_u(0, <i64>1);
i64.atomic.rmw8.add_u(0, 1);
i64.atomic.rmw16.add_u(0, 1);
i64.atomic.rmw32.add_u(0, 1);
i64.atomic.rmw.add(0, 1);
i32.atomic.rmw8.sub_u(0, 1);
i32.atomic.rmw16.sub_u(0, 1);
i32.atomic.rmw.sub(0, 1);
i64.atomic.rmw8.sub_u(0, <i64>1);
i64.atomic.rmw16.sub_u(0, <i64>1);
i64.atomic.rmw32.sub_u(0, <i64>1);
i64.atomic.rmw8.sub_u(0, 1);
i64.atomic.rmw16.sub_u(0, 1);
i64.atomic.rmw32.sub_u(0, 1);
i64.atomic.rmw.sub(0, 1);
i32.atomic.rmw8.and_u(0, 1);
i32.atomic.rmw16.and_u(0, 1);
i32.atomic.rmw.and(0, 1);
i64.atomic.rmw8.and_u(0, <i64>1);
i64.atomic.rmw16.and_u(0, <i64>1);
i64.atomic.rmw32.and_u(0, <i64>1);
i64.atomic.rmw8.and_u(0, 1);
i64.atomic.rmw16.and_u(0, 1);
i64.atomic.rmw32.and_u(0, 1);
i64.atomic.rmw.and(0, 1);
i32.atomic.rmw8.or_u(0, 1);
i32.atomic.rmw16.or_u(0, 1);
i32.atomic.rmw.or(0, 1);
i64.atomic.rmw8.or_u(0, <i64>1);
i64.atomic.rmw16.or_u(0, <i64>1);
i64.atomic.rmw32.or_u(0, <i64>1);
i64.atomic.rmw8.or_u(0, 1);
i64.atomic.rmw16.or_u(0, 1);
i64.atomic.rmw32.or_u(0, 1);
i64.atomic.rmw.or(0, 1);
i32.atomic.rmw8.xor_u(0, 1);
i32.atomic.rmw16.xor_u(0, 1);
i32.atomic.rmw.xor(0, 1);
i64.atomic.rmw8.xor_u(0, <i64>1);
i64.atomic.rmw16.xor_u(0, <i64>1);
i64.atomic.rmw32.xor_u(0, <i64>1);
i64.atomic.rmw8.xor_u(0, 1);
i64.atomic.rmw16.xor_u(0, 1);
i64.atomic.rmw32.xor_u(0, 1);
i64.atomic.rmw.xor(0, 1);
i32.atomic.rmw8.xchg_u(0, 1);
i32.atomic.rmw16.xchg_u(0, 1);
i32.atomic.rmw.xchg(0, 1);
i64.atomic.rmw8.xchg_u(0, <i64>1);
i64.atomic.rmw16.xchg_u(0, <i64>1);
i64.atomic.rmw32.xchg_u(0, <i64>1);
i64.atomic.rmw8.xchg_u(0, 1);
i64.atomic.rmw16.xchg_u(0, 1);
i64.atomic.rmw32.xchg_u(0, 1);
i64.atomic.rmw.xchg(0, 1);
i32.atomic.rmw8.cmpxchg_u(0, 1, 2);
i32.atomic.rmw16.cmpxchg_u(0, 1, 2);
i32.atomic.rmw.cmpxchg(0, 1, 2);
i64.atomic.rmw8.cmpxchg_u(0, <i64>1, 2);
i64.atomic.rmw16.cmpxchg_u(0, <i64>1, 2);
i64.atomic.rmw32.cmpxchg_u(0, <i64>1, 2);
i64.atomic.rmw8.cmpxchg_u(0, 1, 2);
i64.atomic.rmw16.cmpxchg_u(0, 1, 2);
i64.atomic.rmw32.cmpxchg_u(0, 1, 2);
i64.atomic.rmw.cmpxchg(0, 1, 2);
// i32.atomic.wait(0, 0, -1);