|
@@ -18,7 +18,8 @@
|
|
|
(type $t16 (func (param i32 i32 i32 i32) (result i32)))
|
|
|
(type $t17 (func (param i32 i64 i32) (result i32)))
|
|
|
(type $t18 (func (param i32 i64 i64 i32) (result i32)))
|
|
|
- (import "e" "assert_seg_non_null" (func $e.assert_seg_non_null (type $t1)))
|
|
|
+ (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_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 $t15)))
|
|
|
(import "e" "bug_gen_safe_read_write_page_fault" (func $e.bug_gen_safe_read_write_page_fault (type $t2)))
|
|
@@ -103,14 +104,53 @@
|
|
|
(i32.add
|
|
|
(get_local $l2)
|
|
|
(i32.const 123456789))
|
|
|
- (call $e.assert_seg_non_null
|
|
|
+ (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 $B5
|
|
|
- (br_if $B5
|
|
|
+ (block $B6
|
|
|
+ (br_if $B6
|
|
|
(tee_local $l12
|
|
|
(i32.and
|
|
|
(i32.eq
|
|
@@ -153,7 +193,7 @@
|
|
|
(i32.load
|
|
|
(i32.const 120))
|
|
|
(i32.const -2))
|
|
|
- (if $I6 (result i32)
|
|
|
+ (if $I7 (result i32)
|
|
|
(i32.and
|
|
|
(tee_local $l14
|
|
|
(i32.load
|
|
@@ -196,11 +236,11 @@
|
|
|
(i32.const 2260))
|
|
|
(set_local $l13
|
|
|
(get_local $l13))
|
|
|
- (if $I7
|
|
|
+ (if $I8
|
|
|
(i32.eqz
|
|
|
(get_local $l12))
|
|
|
(then
|
|
|
- (if $I8
|
|
|
+ (if $I9
|
|
|
(i32.and
|
|
|
(call $e.safe_write32_slow_jit
|
|
|
(get_local $l10)
|