mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-25 12:41:50 +00:00
Notes on unary EQZ in compileBinary EQ
This commit is contained in:
@ -154,18 +154,18 @@
|
||||
)
|
||||
)
|
||||
(block
|
||||
(set_local $4
|
||||
(i64.shl
|
||||
(get_local $4)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $3
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $4
|
||||
(i64.shl
|
||||
(get_local $4)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(br $continue|0)
|
||||
)
|
||||
)
|
||||
@ -211,18 +211,18 @@
|
||||
)
|
||||
)
|
||||
(block
|
||||
(set_local $4
|
||||
(i64.shl
|
||||
(get_local $4)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $6
|
||||
(i32.sub
|
||||
(get_local $6)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $4
|
||||
(i64.shl
|
||||
(get_local $4)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(br $continue|1)
|
||||
)
|
||||
)
|
||||
@ -332,18 +332,18 @@
|
||||
)
|
||||
)
|
||||
(block
|
||||
(set_local $2
|
||||
(i64.shl
|
||||
(get_local $2)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $3
|
||||
(i32.sub
|
||||
(get_local $3)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $2
|
||||
(i64.shl
|
||||
(get_local $2)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(br $continue|3)
|
||||
)
|
||||
)
|
||||
|
@ -15,14 +15,16 @@ export function fmod(x: f64, y: f64): f64 {
|
||||
}
|
||||
|
||||
if (!ex) {
|
||||
for (var i = ux << 12; !(i >> 63); ex--) i <<= 1;
|
||||
for (var i = ux << 12; !(i >> 63); i <<= 1)
|
||||
--ex;
|
||||
ux <<= -ex + 1;
|
||||
} else {
|
||||
ux &= -1 >> 12;
|
||||
ux |= 1 << 52;
|
||||
}
|
||||
if (!ey) {
|
||||
for (i = uy << 12; !(i >> 63); ey--) i <<= 1;
|
||||
for (i = uy << 12; !(i >> 63); i <<= 1)
|
||||
--ey;
|
||||
uy <<= -ey + 1;
|
||||
} else {
|
||||
uy &= -1 >> 12;
|
||||
@ -44,7 +46,8 @@ export function fmod(x: f64, y: f64): f64 {
|
||||
return 0 * x;
|
||||
ux = i;
|
||||
}
|
||||
for (; !(ux >> 52); ex--) ux <<= 1;
|
||||
for (; !(ux >> 52); ux <<= 1)
|
||||
--ex;
|
||||
|
||||
if (ex > 0) {
|
||||
ux -= 1 << 52;
|
||||
|
@ -165,26 +165,18 @@
|
||||
)
|
||||
)
|
||||
(block
|
||||
(set_local $4
|
||||
(i32.sub
|
||||
(get_local $4)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $9
|
||||
(i64.shl
|
||||
(get_local $9)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(block (result i32)
|
||||
(set_local $8
|
||||
(get_local $4)
|
||||
)
|
||||
(set_local $4
|
||||
(i32.sub
|
||||
(get_local $8)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(get_local $8)
|
||||
)
|
||||
)
|
||||
(br $continue|0)
|
||||
)
|
||||
)
|
||||
@ -250,26 +242,18 @@
|
||||
)
|
||||
)
|
||||
(block
|
||||
(set_local $5
|
||||
(i32.sub
|
||||
(get_local $5)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $9
|
||||
(i64.shl
|
||||
(get_local $9)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(block (result i32)
|
||||
(set_local $8
|
||||
(get_local $5)
|
||||
)
|
||||
(set_local $5
|
||||
(i32.sub
|
||||
(get_local $8)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(get_local $8)
|
||||
)
|
||||
)
|
||||
(br $continue|1)
|
||||
)
|
||||
)
|
||||
@ -421,26 +405,18 @@
|
||||
)
|
||||
)
|
||||
(block
|
||||
(set_local $4
|
||||
(i32.sub
|
||||
(get_local $4)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(set_local $2
|
||||
(i64.shl
|
||||
(get_local $2)
|
||||
(i64.const 1)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(block (result i32)
|
||||
(set_local $8
|
||||
(get_local $4)
|
||||
)
|
||||
(set_local $4
|
||||
(i32.sub
|
||||
(get_local $8)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(get_local $8)
|
||||
)
|
||||
)
|
||||
(br $continue|3)
|
||||
)
|
||||
)
|
||||
|
Reference in New Issue
Block a user