Update expect tests
This commit is contained in:
parent
0c4e8a7e09
commit
39eb650ff3
|
@ -8,25 +8,26 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -51,128 +52,106 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(get_local $l2)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2261))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(get_local $l2)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2261))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -197,31 +176,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,28 +8,30 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t13)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t15)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "safe_read32s_slow_jit" (func $e.safe_read32s_slow_jit (type $t7)))
|
||||
(import "e" "jit_find_cache_entry_in_page" (func $e.jit_find_cache_entry_in_page (type $t14)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "get_phys_eip_slow_jit" (func $e.get_phys_eip_slow_jit (type $t6)))
|
||||
(import "e" "jit_find_cache_entry_in_page" (func $e.jit_find_cache_entry_in_page (type $t15)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32) (local $l12 i32) (local $l13 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -54,47 +56,101 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B7
|
||||
(br_table $B7 $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(set_local $l10
|
||||
(i32.sub
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.load
|
||||
(i32.const 740))))
|
||||
(set_local $l12
|
||||
(i32.add
|
||||
(tee_local $l11
|
||||
(i32.sub
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B8
|
||||
(br_if $B8
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l13
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l12)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l12)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l13
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l12)
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l13)
|
||||
(i32.const -4096))
|
||||
(get_local $l12))
|
||||
(i32.const 18247680))
|
||||
(get_local $l10))
|
||||
(set_local $l6
|
||||
(get_local $l11))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(set_local $l0
|
||||
(i32.const 2))
|
||||
(br $L1))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
|
@ -105,301 +161,214 @@
|
|||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(set_local $l10
|
||||
(i32.sub
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.load
|
||||
(i32.const 740))))
|
||||
(set_local $l12
|
||||
(i32.add
|
||||
(tee_local $l11
|
||||
(i32.sub
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B7
|
||||
(br_if $B7
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l13
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l12)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l12)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l13
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l12)
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l13)
|
||||
(i32.const -4096))
|
||||
(get_local $l12))
|
||||
(i32.const 18247680))
|
||||
(get_local $l10))
|
||||
(set_local $l6
|
||||
(get_local $l11))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(set_local $l0
|
||||
(i32.const 2))
|
||||
(br $L0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I9 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(set_local $l2
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.const 112)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I8 (result i32)
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(set_local $l10
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B10
|
||||
(br_if $B10
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 7)))
|
||||
(i32.const 1))))
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(set_local $l2
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(set_local $l10
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B9
|
||||
(br_if $B9
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))
|
||||
(set_local $l6
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 740))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(get_local $l10))
|
||||
(block $B11
|
||||
(br_if $B11
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 7)))
|
||||
(i32.const 1))))
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.const 1)))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))
|
||||
(set_local $l6
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 740))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(get_local $l10))
|
||||
(if $I10
|
||||
(i32.eqz
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(get_local $l10)
|
||||
(i32.load
|
||||
(i32.const 560)))
|
||||
(i32.const -4096)))
|
||||
(then
|
||||
(if $I11
|
||||
(i32.ge_s
|
||||
(tee_local $l10
|
||||
(call $e.jit_find_cache_entry_in_page
|
||||
(get_local $l10)
|
||||
(i32.const 4103)
|
||||
(i32.const 899)
|
||||
(i32.const 3)))
|
||||
(i32.const 0))
|
||||
(then
|
||||
(set_local $l0
|
||||
(get_local $l10))
|
||||
(br $L0)))))
|
||||
(tee_local $l11
|
||||
(call $e.get_phys_eip_slow_jit
|
||||
(get_local $l10)))
|
||||
(i32.const 1))))
|
||||
(if $I12
|
||||
(i32.ge_s
|
||||
(tee_local $l10
|
||||
(call $e.jit_find_cache_entry_in_page
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 899)
|
||||
(i32.const 3)))
|
||||
(i32.const 0))
|
||||
(then
|
||||
(set_local $l0
|
||||
(get_local $l10))
|
||||
(br $L1)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -424,31 +393,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,25 +8,26 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -51,228 +52,206 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I7 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(i32.sub
|
||||
(get_local $l2)
|
||||
(i32.const 10)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const -2147481387))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 4)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(if $I9
|
||||
(i32.eqz
|
||||
(if $I8 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 64))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 112)))
|
||||
(i32.const -1))
|
||||
(i32.sub
|
||||
(get_local $l10)
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 64)))))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -6)))
|
||||
(set_local $l0
|
||||
(i32.const 0))
|
||||
(br $L1))))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I6 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(i32.sub
|
||||
(get_local $l2)
|
||||
(i32.const 10)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const -2147481387))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(if $I8
|
||||
(i32.eqz
|
||||
(if $I7 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 64))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 112)))
|
||||
(i32.const -1))
|
||||
(i32.sub
|
||||
(get_local $l10)
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 64)))))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -6)))
|
||||
(set_local $l0
|
||||
(i32.const 0))
|
||||
(br $L0))))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -297,31 +276,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,25 +8,26 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32) (local $l12 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -51,189 +52,220 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B7
|
||||
(br_table $B7 $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(i32.sub
|
||||
(get_local $l2)
|
||||
(i32.const 5)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const -2147481387))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(if $I11
|
||||
(i32.eqz
|
||||
(i32.or
|
||||
(i32.xor
|
||||
(i32.eqz
|
||||
(if $I8 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 128))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 128)))))
|
||||
(i32.eqz
|
||||
(if $I9 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 2048))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l11
|
||||
(i32.load
|
||||
(i32.const 96)))
|
||||
(tee_local $l12
|
||||
(i32.load
|
||||
(i32.const 112))))
|
||||
(i32.xor
|
||||
(i32.sub
|
||||
(i32.sub
|
||||
(get_local $l12)
|
||||
(get_local $l11))
|
||||
(i32.shr_u
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 31)))
|
||||
(get_local $l12)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 2048))))))
|
||||
(if $I10 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 64))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 112)))
|
||||
(i32.const -1))
|
||||
(i32.sub
|
||||
(get_local $l10)
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 64))))))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(set_local $l0
|
||||
(i32.const 2))
|
||||
(br $L1))))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(i32.sub
|
||||
(get_local $l2)
|
||||
(i32.const 5)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const -2147481387))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(if $I10
|
||||
(i32.eqz
|
||||
(i32.or
|
||||
(i32.xor
|
||||
(i32.eqz
|
||||
(if $I7 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 128))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 128)))))
|
||||
(i32.eqz
|
||||
(if $I8 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 2048))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l11
|
||||
(i32.load
|
||||
(i32.const 96)))
|
||||
(tee_local $l12
|
||||
(i32.load
|
||||
(i32.const 112))))
|
||||
(i32.xor
|
||||
(i32.sub
|
||||
(i32.sub
|
||||
(get_local $l12)
|
||||
(get_local $l11))
|
||||
(i32.shr_u
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 31)))
|
||||
(get_local $l12)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 2048))))))
|
||||
(if $I9 (result i32)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I12 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 64))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 112)))
|
||||
(i32.const -1))
|
||||
(i32.sub
|
||||
(get_local $l10)
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 64))))))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(set_local $l0
|
||||
(i32.const 2))
|
||||
(br $L0))))
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l3))
|
||||
(set_local $l3
|
||||
(i32.add
|
||||
(get_local $l3)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
|
@ -241,7 +273,7 @@
|
|||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I11 (result i32)
|
||||
(if $I13 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
|
@ -268,135 +300,82 @@
|
|||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l3))
|
||||
(set_local $l3
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l3)
|
||||
(get_local $l5)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l3))
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I12 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -421,31 +400,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,25 +8,26 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -51,160 +52,138 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I5 (result i32)
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I6 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(set_local $l2
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(set_local $l2
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -229,31 +208,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,30 +8,32 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "log_segment_null" (func $e.log_segment_null (type $t1)))
|
||||
(import "e" "trigger_gp" (func $e.trigger_gp (type $t1)))
|
||||
(import "e" "trigger_gp_jit" (func $e.trigger_gp_jit (type $t2)))
|
||||
(import "e" "safe_read32s_slow_jit" (func $e.safe_read32s_slow_jit (type $t7)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t13)))
|
||||
(import "e" "jit_find_cache_entry_in_page" (func $e.jit_find_cache_entry_in_page (type $t14)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t15)))
|
||||
(import "e" "get_phys_eip_slow_jit" (func $e.get_phys_eip_slow_jit (type $t6)))
|
||||
(import "e" "jit_find_cache_entry_in_page" (func $e.jit_find_cache_entry_in_page (type $t15)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32) (local $l12 i32) (local $l13 i32) (local $l14 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -56,46 +58,183 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(get_local $l2)
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I7
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(call $e.trigger_gp_jit
|
||||
(i32.const 0)
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B8
|
||||
(br_if $B8
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l10
|
||||
(i32.add
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))
|
||||
(i32.load
|
||||
(i32.const 740))))
|
||||
(set_local $l11
|
||||
(i32.sub
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.load
|
||||
(i32.const 740))))
|
||||
(set_local $l13
|
||||
(i32.add
|
||||
(tee_local $l12
|
||||
(i32.sub
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B9
|
||||
(br_if $B9
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l14
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l13)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l13)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l14
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l13)
|
||||
(get_local $l11)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l14)
|
||||
(i32.const -4096))
|
||||
(get_local $l13))
|
||||
(i32.const 18247680))
|
||||
(get_local $l11))
|
||||
(set_local $l6
|
||||
(get_local $l12))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(get_local $l10))
|
||||
(block $B10
|
||||
(br_if $B10
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1)))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.get_phys_eip_slow_jit
|
||||
(get_local $l10)))
|
||||
(i32.const 1))))
|
||||
(if $I11
|
||||
(i32.ge_s
|
||||
(tee_local $l10
|
||||
(call $e.jit_find_cache_entry_in_page
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 899)
|
||||
(i32.const 3)))
|
||||
(i32.const 0))
|
||||
(then
|
||||
(set_local $l0
|
||||
(get_local $l10))
|
||||
(br $L1)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
|
@ -111,168 +250,7 @@
|
|||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(get_local $l2)
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I6
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(call $e.trigger_gp
|
||||
(i32.const 0))
|
||||
(return)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B7
|
||||
(br_if $B7
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l10
|
||||
(i32.add
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))
|
||||
(i32.load
|
||||
(i32.const 740))))
|
||||
(set_local $l11
|
||||
(i32.sub
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.load
|
||||
(i32.const 740))))
|
||||
(set_local $l13
|
||||
(i32.add
|
||||
(tee_local $l12
|
||||
(i32.sub
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B8
|
||||
(br_if $B8
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l14
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l13)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l13)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l14
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l13)
|
||||
(get_local $l11)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l14)
|
||||
(i32.const -4096))
|
||||
(get_local $l13))
|
||||
(i32.const 18247680))
|
||||
(get_local $l11))
|
||||
(set_local $l6
|
||||
(get_local $l12))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(get_local $l10))
|
||||
(if $I9
|
||||
(i32.eqz
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(get_local $l10)
|
||||
(i32.load
|
||||
(i32.const 560)))
|
||||
(i32.const -4096)))
|
||||
(then
|
||||
(if $I10
|
||||
(i32.ge_s
|
||||
(tee_local $l10
|
||||
(call $e.jit_find_cache_entry_in_page
|
||||
(get_local $l10)
|
||||
(i32.const 4096)
|
||||
(i32.const 899)
|
||||
(i32.const 3)))
|
||||
(i32.const 0))
|
||||
(then
|
||||
(set_local $l0
|
||||
(get_local $l10))
|
||||
(br $L0)))))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -297,72 +275,32 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -387,31 +325,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,25 +8,26 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -51,193 +52,171 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I7 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(set_local $l2
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(set_local $l3
|
||||
(i32.sub
|
||||
(get_local $l3)
|
||||
(i32.const 1)))
|
||||
(if $I8
|
||||
(get_local $l3)
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -3)))
|
||||
(set_local $l0
|
||||
(i32.const 0))
|
||||
(br $L1))))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I6 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(set_local $l2
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(set_local $l3
|
||||
(i32.sub
|
||||
(get_local $l3)
|
||||
(i32.const 1)))
|
||||
(if $I7
|
||||
(get_local $l3)
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -3)))
|
||||
(set_local $l0
|
||||
(i32.const 0))
|
||||
(br $L0))))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -262,31 +241,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,28 +8,29 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "log_segment_null" (func $e.log_segment_null (type $t1)))
|
||||
(import "e" "trigger_gp" (func $e.trigger_gp (type $t1)))
|
||||
(import "e" "trigger_gp_jit" (func $e.trigger_gp_jit (type $t2)))
|
||||
(import "e" "safe_read32s_slow_jit" (func $e.safe_read32s_slow_jit (type $t7)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -54,195 +55,142 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 123456789))
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I5
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(call $e.trigger_gp
|
||||
(i32.const 0))
|
||||
(return)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B6
|
||||
(br_if $B6
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l2
|
||||
(i32.load align=1
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680))))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 123456789))
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I6
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(call $e.trigger_gp_jit
|
||||
(i32.const 0)
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B7
|
||||
(br_if $B7
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l2
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680))))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 7)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 7)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -267,31 +215,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,30 +8,31 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "log_segment_null" (func $e.log_segment_null (type $t1)))
|
||||
(import "e" "trigger_gp" (func $e.trigger_gp (type $t1)))
|
||||
(import "e" "trigger_gp_jit" (func $e.trigger_gp_jit (type $t2)))
|
||||
(import "e" "safe_read_write32s_slow_jit" (func $e.safe_read_write32s_slow_jit (type $t7)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t13)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t15)))
|
||||
(import "e" "bug_gen_safe_read_write_page_fault" (func $e.bug_gen_safe_read_write_page_fault (type $t2)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32) (local $l12 i32) (local $l13 i32) (local $l14 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -56,265 +57,212 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 123456789))
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I5
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(call $e.trigger_gp
|
||||
(i32.const 0))
|
||||
(return)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B6
|
||||
(br_if $B6
|
||||
(tee_local $l12
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092)))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read_write32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l13
|
||||
(i32.load align=1
|
||||
(tee_local $l11
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I7 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l14
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l14
|
||||
(i32.shr_s
|
||||
(get_local $l14)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l14))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l14))))
|
||||
(else
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.add
|
||||
(get_local $l2)
|
||||
(i32.const 123456789))
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I6
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(call $e.trigger_gp_jit
|
||||
(i32.const 0)
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B7
|
||||
(br_if $B7
|
||||
(tee_local $l12
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l13))
|
||||
(set_local $l13
|
||||
(i32.add
|
||||
(get_local $l13)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l13))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(set_local $l13
|
||||
(get_local $l13))
|
||||
(if $I8
|
||||
(i32.eqz
|
||||
(get_local $l12))
|
||||
(then
|
||||
(if $I9
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092)))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l10)
|
||||
(get_local $l13)
|
||||
(i32.const 4096))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(call $e.bug_gen_safe_read_write_page_fault
|
||||
(i32.const 32)
|
||||
(get_local $l10))))))
|
||||
(i32.store align=1
|
||||
(get_local $l11)
|
||||
(get_local $l13))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(tee_local $l11
|
||||
(call $e.safe_read_write32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l13
|
||||
(i32.load align=1
|
||||
(tee_local $l11
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I8 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l14
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l14
|
||||
(i32.shr_s
|
||||
(get_local $l14)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l14))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l14))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l13))
|
||||
(set_local $l13
|
||||
(i32.add
|
||||
(get_local $l13)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l13))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(set_local $l13
|
||||
(get_local $l13))
|
||||
(if $I9
|
||||
(i32.eqz
|
||||
(get_local $l12))
|
||||
(then
|
||||
(if $I10
|
||||
(i32.and
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l10)
|
||||
(get_local $l13)
|
||||
(i32.const 4096))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(call $e.bug_gen_safe_read_write_page_fault
|
||||
(i32.const 32)
|
||||
(get_local $l10))))))
|
||||
(i32.store align=1
|
||||
(get_local $l11)
|
||||
(get_local $l13))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 7)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 7)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -339,31 +287,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,28 +8,29 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "log_segment_null" (func $e.log_segment_null (type $t1)))
|
||||
(import "e" "trigger_gp" (func $e.trigger_gp (type $t1)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t13)))
|
||||
(import "e" "trigger_gp_jit" (func $e.trigger_gp_jit (type $t2)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t15)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -54,196 +55,143 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 123456789))
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I5
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(call $e.trigger_gp
|
||||
(i32.const 0))
|
||||
(return)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B6
|
||||
(br_if $B6
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l10)
|
||||
(get_local $l2)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(get_local $l5)
|
||||
(i32.const 123456789))
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I6
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(call $e.trigger_gp_jit
|
||||
(i32.const 0)
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B7
|
||||
(br_if $B7
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680))
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l10)
|
||||
(get_local $l2)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680))
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 7)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 7)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -268,31 +216,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,28 +8,29 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "log_segment_null" (func $e.log_segment_null (type $t1)))
|
||||
(import "e" "trigger_gp" (func $e.trigger_gp (type $t1)))
|
||||
(import "e" "trigger_gp_jit" (func $e.trigger_gp_jit (type $t2)))
|
||||
(import "e" "safe_read32s_slow_jit" (func $e.safe_read32s_slow_jit (type $t7)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -54,193 +55,140 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.const 51966)
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I5
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(call $e.trigger_gp
|
||||
(i32.const 0))
|
||||
(return)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B6
|
||||
(br_if $B6
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l2
|
||||
(i32.load align=1
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680))))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.const 51966)
|
||||
(call $e.log_segment_null
|
||||
(i32.const 3))
|
||||
(if $I6
|
||||
(i32.load8_u
|
||||
(i32.const 727))
|
||||
(then
|
||||
(call $e.trigger_gp_jit
|
||||
(i32.const 0)
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.load
|
||||
(i32.const 748))
|
||||
(i32.add)
|
||||
(set_local $l10)
|
||||
(block $B7
|
||||
(br_if $B7
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(set_local $l2
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680))))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -265,31 +213,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,26 +8,27 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "safe_read32s_slow_jit" (func $e.safe_read32s_slow_jit (type $t7)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -52,156 +53,134 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(set_local $l10
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B5
|
||||
(br_if $B5
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(set_local $l10
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B6
|
||||
(br_if $B6
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))
|
||||
(set_local $l6
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(set_local $l2)
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l10)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4041))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l10)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l11
|
||||
(call $e.safe_read32s_slow_jit
|
||||
(get_local $l10)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.load align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const -4096))
|
||||
(get_local $l10))
|
||||
(i32.const 18247680)))
|
||||
(set_local $l6
|
||||
(i32.add
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(set_local $l2)
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -226,31 +205,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,26 +8,27 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t13)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "safe_write32_slow_jit" (func $e.safe_write32_slow_jit (type $t15)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32) (local $l11 i32) (local $l12 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -52,158 +53,136 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(set_local $l11
|
||||
(i32.add
|
||||
(tee_local $l10
|
||||
(i32.sub
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B5
|
||||
(br_if $B5
|
||||
(i32.and
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l12
|
||||
(i32.load offset=312104
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l11)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l12
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l11)
|
||||
(get_local $l2)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(set_local $l11
|
||||
(i32.add
|
||||
(tee_local $l10
|
||||
(i32.sub
|
||||
(get_local $l6)
|
||||
(i32.const 4)))
|
||||
(i32.load
|
||||
(i32.const 744))))
|
||||
(block $B6
|
||||
(br_if $B6
|
||||
(i32.and
|
||||
(get_local $l12)
|
||||
(i32.const -4096))
|
||||
(get_local $l11))
|
||||
(i32.const 18247680))
|
||||
(get_local $l2))
|
||||
(set_local $l6
|
||||
(get_local $l10))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.eq
|
||||
(i32.and
|
||||
(tee_local $l12
|
||||
(i32.load offset=316208
|
||||
(i32.shl
|
||||
(i32.shr_u
|
||||
(get_local $l11)
|
||||
(i32.const 12))
|
||||
(i32.const 2))))
|
||||
(i32.const 4075))
|
||||
(i32.const 1))
|
||||
(i32.le_s
|
||||
(i32.and
|
||||
(get_local $l11)
|
||||
(i32.const 4095))
|
||||
(i32.const 4092))))
|
||||
(br_if $B3
|
||||
(i32.and
|
||||
(tee_local $l12
|
||||
(call $e.safe_write32_slow_jit
|
||||
(get_local $l11)
|
||||
(get_local $l2)
|
||||
(i32.const 0)))
|
||||
(i32.const 1))))
|
||||
(i32.store align=1
|
||||
(i32.add
|
||||
(i32.xor
|
||||
(i32.and
|
||||
(get_local $l12)
|
||||
(i32.const -4096))
|
||||
(get_local $l11))
|
||||
(i32.const 18247680))
|
||||
(get_local $l2))
|
||||
(set_local $l6
|
||||
(get_local $l10))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -228,31 +207,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,28 +8,29 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_FB_without_fault" (func $e.instr_FB_without_fault (type $t4)))
|
||||
(import "e" "trigger_gp" (func $e.trigger_gp (type $t1)))
|
||||
(import "e" "trigger_gp_jit" (func $e.trigger_gp_jit (type $t2)))
|
||||
(import "e" "handle_irqs" (func $e.handle_irqs (type $t0)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -54,105 +55,97 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(if $I7
|
||||
(i32.eqz
|
||||
(call $e.instr_FB_without_fault))
|
||||
(then
|
||||
(call $e.trigger_gp_jit
|
||||
(i32.const 0)
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(set_local $l2
|
||||
(i32.const 42424242))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.handle_irqs)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(if $I6
|
||||
(i32.eqz
|
||||
(call $e.instr_FB_without_fault))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(call $e.trigger_gp
|
||||
(i32.const 0))
|
||||
(return)))
|
||||
(set_local $l2
|
||||
(i32.const 53535353))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.const 5)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(set_local $l2
|
||||
(i32.const 42424242))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -177,77 +170,32 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.handle_irqs)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(set_local $l2
|
||||
(i32.const 53535353))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 6)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -272,31 +220,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,29 +8,30 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "task_switch_test_jit" (func $e.task_switch_test_jit (type $t0)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "task_switch_test_jit" (func $e.task_switch_test_jit (type $t1)))
|
||||
(import "e" "fpu_get_sti" (func $e.fpu_get_sti (type $t2)))
|
||||
(import "e" "fpu_fadd" (func $e.fpu_fadd (type $t16)))
|
||||
(import "e" "fpu_fadd" (func $e.fpu_fadd (type $t17)))
|
||||
(import "e" "fpu_pop" (func $e.fpu_pop (type $t0)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -55,162 +56,109 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(br_table $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(if $I5
|
||||
(i32.and
|
||||
(i32.load8_u
|
||||
(i32.const 580))
|
||||
(i32.const 12))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.task_switch_test_jit)
|
||||
(return)))
|
||||
(i32.const 1)
|
||||
(call $e.fpu_get_sti
|
||||
(i32.const 1136)
|
||||
(i32.const 1))
|
||||
(i64.load
|
||||
(i32.const 1136))
|
||||
(i32.load16_u
|
||||
(i32.const 1144))
|
||||
(call $e.fpu_fadd)
|
||||
(call $e.fpu_pop)
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(if $I6
|
||||
(i32.and
|
||||
(i32.load8_u
|
||||
(i32.const 580))
|
||||
(i32.const 12))
|
||||
(then
|
||||
(call $e.task_switch_test_jit
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.const 1)
|
||||
(call $e.fpu_get_sti
|
||||
(i32.const 1136)
|
||||
(i32.const 1))
|
||||
(i64.load
|
||||
(i32.const 1136))
|
||||
(i32.load16_u
|
||||
(i32.const 1144))
|
||||
(call $e.fpu_fadd)
|
||||
(call $e.fpu_pop)
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -235,31 +183,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,27 +8,28 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "task_switch_test_mmx_jit" (func $e.task_switch_test_mmx_jit (type $t0)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "task_switch_test_mmx_jit" (func $e.task_switch_test_mmx_jit (type $t1)))
|
||||
(import "e" "instr_660F54_reg" (func $e.instr_660F54_reg (type $t2)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -53,46 +54,100 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(br_table $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 4)))
|
||||
(if $I7
|
||||
(i32.and
|
||||
(i32.load8_u
|
||||
(i32.const 580))
|
||||
(i32.const 12))
|
||||
(then
|
||||
(call $e.task_switch_test_mmx_jit
|
||||
(i32.const 4096))
|
||||
(br $B3)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_660F54_reg
|
||||
(i32.const 1)
|
||||
(i32.const 0))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
|
@ -108,47 +163,7 @@
|
|||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 4)))
|
||||
(if $I6
|
||||
(i32.and
|
||||
(i32.load8_u
|
||||
(i32.const 580))
|
||||
(i32.const 12))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -4096))
|
||||
(i32.const 0)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.task_switch_test_mmx_jit)
|
||||
(return)))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -173,9 +188,7 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_660F54_reg
|
||||
(i32.const 1)
|
||||
(i32.const 0))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -200,96 +213,7 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -314,31 +238,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
|
@ -8,25 +8,26 @@
|
|||
(type $t6 (func (param i32) (result i32)))
|
||||
(type $t7 (func (param i32 i32) (result i32)))
|
||||
(type $t8 (func (param i32) (result i64)))
|
||||
(type $t9 (func (param i32 i64)))
|
||||
(type $t10 (func (param i64 i32)))
|
||||
(type $t11 (func (param i64 i32) (result i32)))
|
||||
(type $t12 (func (param i64 i32) (result i64)))
|
||||
(type $t13 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t14 (func (param i32 i32 i32 i32) (result i32)))
|
||||
(type $t15 (func (param i64 i32 i32)))
|
||||
(type $t16 (func (param i32 i64 i32)))
|
||||
(type $t17 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(type $t9 (func (param f32) (result i32)))
|
||||
(type $t10 (func (param f64) (result i32)))
|
||||
(type $t11 (func (param i32 i64)))
|
||||
(type $t12 (func (param i64 i32)))
|
||||
(type $t13 (func (param i64 i32) (result i32)))
|
||||
(type $t14 (func (param i64 i32) (result i64)))
|
||||
(type $t15 (func (param i32 i32 i32) (result i32)))
|
||||
(type $t16 (func (param i64 i32 i32)))
|
||||
(type $t17 (func (param i32 i64 i32)))
|
||||
(type $t18 (func (param i32 i64 i32) (result i32)))
|
||||
(type $t19 (func (param i32 i64 i64 i32) (result i32)))
|
||||
(import "e" "instr_F4" (func $e.instr_F4 (type $t0)))
|
||||
(import "e" "trigger_pagefault_end_jit" (func $e.trigger_pagefault_end_jit (type $t0)))
|
||||
(import "e" "trigger_fault_end_jit" (func $e.trigger_fault_end_jit (type $t0)))
|
||||
(import "e" "m" (memory $e.m 128))
|
||||
(func $f (export "f") (type $t1) (param $p0 i32)
|
||||
(local $l0 i32) (local $l1 i32) (local $l2 i32) (local $l3 i32) (local $l4 i32) (local $l5 i32) (local $l6 i32) (local $l7 i32) (local $l8 i32) (local $l9 i32) (local $l10 i32)
|
||||
(set_local $l0
|
||||
(get_local $p0))
|
||||
(set_local $l1
|
||||
(i32.const 10000))
|
||||
(i32.const 20011))
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
|
@ -51,47 +52,92 @@
|
|||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(loop $L0
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I1
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(return)))
|
||||
(block $B2
|
||||
(block $B3
|
||||
(block $B4
|
||||
(block $B0
|
||||
(loop $L1
|
||||
(block $B2
|
||||
(block $B3
|
||||
(set_local $l1
|
||||
(i32.add
|
||||
(get_local $l1)
|
||||
(i32.const -1)))
|
||||
(if $I4
|
||||
(i32.eqz
|
||||
(get_local $l1))
|
||||
(then
|
||||
(br $B0)))
|
||||
(block $B5
|
||||
(block $B6
|
||||
(br_table $B6 $B5 $B4 $B3 $B2
|
||||
(get_local $l0)))
|
||||
(block $B7
|
||||
(br_table $B7 $B6 $B5 $B3
|
||||
(get_local $l0)))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(i32.sub
|
||||
(get_local $l2)
|
||||
(i32.const 10)))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const -2147481387))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(if $I9
|
||||
(if $I8 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 64))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 112)))
|
||||
(i32.const -1))
|
||||
(i32.sub
|
||||
(get_local $l10)
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 64))))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(set_local $l0
|
||||
(i32.const 2))
|
||||
(br $L1))))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
|
@ -99,21 +145,61 @@
|
|||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(i32.sub
|
||||
(get_local $l2)
|
||||
(i32.const 10)))
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I10 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l2))
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const -2147481387))
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
|
@ -123,183 +209,76 @@
|
|||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 5)))
|
||||
(if $I8
|
||||
(if $I7 (result i32)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 116))
|
||||
(i32.const 64))
|
||||
(then
|
||||
(i32.and
|
||||
(i32.shr_u
|
||||
(i32.and
|
||||
(i32.xor
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 112)))
|
||||
(i32.const -1))
|
||||
(i32.sub
|
||||
(get_local $l10)
|
||||
(i32.const 1)))
|
||||
(i32.load
|
||||
(i32.const 104)))
|
||||
(i32.const 1)))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 64))))
|
||||
(then
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(set_local $l0
|
||||
(i32.const 2))
|
||||
(br $L0))))
|
||||
(i32.const -8)))
|
||||
(set_local $l0
|
||||
(i32.const 0))
|
||||
(br $L1))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 2)))
|
||||
(i32.store
|
||||
(i32.const 120)
|
||||
(i32.or
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const -2))
|
||||
(if $I9 (result i32)
|
||||
(i32.and
|
||||
(tee_local $l10
|
||||
(i32.load
|
||||
(i32.const 116)))
|
||||
(i32.const 1))
|
||||
(then
|
||||
(set_local $l10
|
||||
(i32.shr_s
|
||||
(get_local $l10)
|
||||
(i32.const 31)))
|
||||
(i32.lt_u
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 112))
|
||||
(get_local $l10))
|
||||
(i32.xor
|
||||
(i32.load
|
||||
(i32.const 96))
|
||||
(get_local $l10))))
|
||||
(else
|
||||
(i32.and
|
||||
(i32.load
|
||||
(i32.const 120))
|
||||
(i32.const 1))))))
|
||||
(i32.store
|
||||
(i32.const 96)
|
||||
(get_local $l5))
|
||||
(set_local $l5
|
||||
(i32.add
|
||||
(get_local $l5)
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 112)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 104)
|
||||
(i32.const 31))
|
||||
(i32.store
|
||||
(i32.const 116)
|
||||
(i32.const 2260))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 3)))
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const -8)))
|
||||
(set_local $l0
|
||||
(i32.const 0))
|
||||
(br $L0))
|
||||
(i32.store
|
||||
(i32.const 664)
|
||||
(i32.add
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 664))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 560)
|
||||
(i32.load
|
||||
(i32.const 556)))
|
||||
(i32.store
|
||||
(i32.const 556)
|
||||
(i32.add
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 556))
|
||||
(i32.const 1)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.instr_F4)
|
||||
(set_local $l2
|
||||
(i32.load
|
||||
(i32.const 64)))
|
||||
(set_local $l3
|
||||
(i32.load
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(i32.const 68)))
|
||||
(set_local $l4
|
||||
(i32.load
|
||||
(i32.const 72)))
|
||||
(set_local $l5
|
||||
(i32.load
|
||||
(i32.const 76)))
|
||||
(set_local $l6
|
||||
(i32.load
|
||||
(i32.const 80)))
|
||||
(set_local $l7
|
||||
(i32.load
|
||||
(i32.const 84)))
|
||||
(set_local $l8
|
||||
(i32.load
|
||||
(i32.const 88)))
|
||||
(set_local $l9
|
||||
(i32.load
|
||||
(i32.const 92)))
|
||||
(br $B0))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
|
@ -324,31 +303,30 @@
|
|||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_fault_end_jit)
|
||||
(return))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))
|
||||
(call $e.trigger_pagefault_end_jit)
|
||||
(return))
|
||||
(unreachable))))
|
||||
(unreachable)))
|
||||
(i32.store
|
||||
(i32.const 64)
|
||||
(get_local $l2))
|
||||
(i32.store
|
||||
(i32.const 68)
|
||||
(get_local $l3))
|
||||
(i32.store
|
||||
(i32.const 72)
|
||||
(get_local $l4))
|
||||
(i32.store
|
||||
(i32.const 76)
|
||||
(get_local $l5))
|
||||
(i32.store
|
||||
(i32.const 80)
|
||||
(get_local $l6))
|
||||
(i32.store
|
||||
(i32.const 84)
|
||||
(get_local $l7))
|
||||
(i32.store
|
||||
(i32.const 88)
|
||||
(get_local $l8))
|
||||
(i32.store
|
||||
(i32.const 92)
|
||||
(get_local $l9))))
|
||||
|
|
Loading…
Reference in a new issue