mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-18 17:31:29 +00:00
Extract portable AS to its own definition and polyfill; Try running flatten/ssa before default optimizations, see WebAssembly/binaryen#1331
This commit is contained in:
@ -44,46 +44,48 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(if
|
||||
(tee_local $0
|
||||
(i32.const 1)
|
||||
)
|
||||
(set_local $0
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(i32.eqz
|
||||
(if (result i32)
|
||||
(tee_local $0
|
||||
(i32.const 1)
|
||||
)
|
||||
(tee_local $0
|
||||
(i32.const 2)
|
||||
)
|
||||
(get_local $0)
|
||||
)
|
||||
(get_local $0)
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(if
|
||||
(f64.eq
|
||||
(if (result f64)
|
||||
(f64.ne
|
||||
(tee_local $1
|
||||
(f64.const 1)
|
||||
)
|
||||
(f64.const 0)
|
||||
)
|
||||
(tee_local $1
|
||||
(f64.const 2)
|
||||
)
|
||||
(get_local $1)
|
||||
(f64.ne
|
||||
(tee_local $1
|
||||
(f64.const 1)
|
||||
)
|
||||
(f64.const 0)
|
||||
)
|
||||
(set_local $1
|
||||
(f64.const 2)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(f64.eq
|
||||
(get_local $1)
|
||||
(f64.const 0)
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/i
|
||||
(if (result i32)
|
||||
(tee_local $0
|
||||
(i32.const 1)
|
||||
)
|
||||
(i32.const 2)
|
||||
(get_local $0)
|
||||
(if
|
||||
(tee_local $0
|
||||
(i32.const 1)
|
||||
)
|
||||
(set_local $0
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(set_global $logical/i
|
||||
(get_local $0)
|
||||
)
|
||||
(if
|
||||
(i32.ne
|
||||
@ -92,15 +94,19 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/i
|
||||
(if (result i32)
|
||||
(if
|
||||
(i32.eqz
|
||||
(tee_local $0
|
||||
(i32.const 0)
|
||||
)
|
||||
(get_local $0)
|
||||
)
|
||||
(set_local $0
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_global $logical/i
|
||||
(get_local $0)
|
||||
)
|
||||
(if
|
||||
(i32.ne
|
||||
(get_global $logical/i)
|
||||
@ -108,17 +114,19 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/I
|
||||
(if (result i64)
|
||||
(i64.ne
|
||||
(tee_local $2
|
||||
(i64.const 1)
|
||||
)
|
||||
(i64.const 0)
|
||||
(if
|
||||
(i64.ne
|
||||
(tee_local $2
|
||||
(i64.const 1)
|
||||
)
|
||||
(i64.const 2)
|
||||
(get_local $2)
|
||||
(i64.const 0)
|
||||
)
|
||||
(set_local $2
|
||||
(i64.const 2)
|
||||
)
|
||||
)
|
||||
(set_global $logical/I
|
||||
(get_local $2)
|
||||
)
|
||||
(if
|
||||
(i64.ne
|
||||
@ -127,18 +135,20 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/I
|
||||
(if (result i64)
|
||||
(i64.ne
|
||||
(tee_local $2
|
||||
(i64.const 0)
|
||||
)
|
||||
(if
|
||||
(i64.eq
|
||||
(tee_local $2
|
||||
(i64.const 0)
|
||||
)
|
||||
(get_local $2)
|
||||
(i64.const 0)
|
||||
)
|
||||
(set_local $2
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(set_global $logical/I
|
||||
(get_local $2)
|
||||
)
|
||||
(if
|
||||
(i64.ne
|
||||
(get_global $logical/I)
|
||||
@ -146,17 +156,19 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/f
|
||||
(if (result f32)
|
||||
(f32.ne
|
||||
(tee_local $3
|
||||
(f32.const 1)
|
||||
)
|
||||
(f32.const 0)
|
||||
(if
|
||||
(f32.ne
|
||||
(tee_local $3
|
||||
(f32.const 1)
|
||||
)
|
||||
(f32.const 2)
|
||||
(get_local $3)
|
||||
(f32.const 0)
|
||||
)
|
||||
(set_local $3
|
||||
(f32.const 2)
|
||||
)
|
||||
)
|
||||
(set_global $logical/f
|
||||
(get_local $3)
|
||||
)
|
||||
(if
|
||||
(f32.ne
|
||||
@ -165,18 +177,20 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/f
|
||||
(if (result f32)
|
||||
(f32.ne
|
||||
(tee_local $3
|
||||
(f32.const 0)
|
||||
)
|
||||
(if
|
||||
(f32.eq
|
||||
(tee_local $3
|
||||
(f32.const 0)
|
||||
)
|
||||
(get_local $3)
|
||||
(f32.const 0)
|
||||
)
|
||||
(set_local $3
|
||||
(f32.const 1)
|
||||
)
|
||||
)
|
||||
(set_global $logical/f
|
||||
(get_local $3)
|
||||
)
|
||||
(if
|
||||
(f32.ne
|
||||
(get_global $logical/f)
|
||||
@ -184,17 +198,19 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(if
|
||||
(f64.ne
|
||||
(tee_local $1
|
||||
(f64.const 1)
|
||||
)
|
||||
(f64.const 0)
|
||||
)
|
||||
(set_local $1
|
||||
(f64.const 2)
|
||||
)
|
||||
)
|
||||
(set_global $logical/F
|
||||
(if (result f64)
|
||||
(f64.ne
|
||||
(tee_local $1
|
||||
(f64.const 1)
|
||||
)
|
||||
(f64.const 0)
|
||||
)
|
||||
(f64.const 2)
|
||||
(get_local $1)
|
||||
)
|
||||
(get_local $1)
|
||||
)
|
||||
(if
|
||||
(f64.ne
|
||||
@ -203,18 +219,20 @@
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(set_global $logical/F
|
||||
(if (result f64)
|
||||
(f64.ne
|
||||
(tee_local $1
|
||||
(f64.const 0)
|
||||
)
|
||||
(if
|
||||
(f64.eq
|
||||
(tee_local $1
|
||||
(f64.const 0)
|
||||
)
|
||||
(get_local $1)
|
||||
(f64.const 0)
|
||||
)
|
||||
(set_local $1
|
||||
(f64.const 1)
|
||||
)
|
||||
)
|
||||
(set_global $logical/F
|
||||
(get_local $1)
|
||||
)
|
||||
(if
|
||||
(f64.ne
|
||||
(get_global $logical/F)
|
||||
|
Reference in New Issue
Block a user