cranelift-wasm: Refactor bounds checks to avoid repetition of Spectre and non-Spectre (#6054)
This commit is contained in:
@@ -50,12 +50,12 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0057 v5 = load.i64 notrap aligned v1+8
|
||||
;; @0057 v6 = load.i64 notrap aligned v1
|
||||
;; @0057 v7 = load.i64 notrap aligned v1
|
||||
;; @0057 v4 = uextend.i64 v0
|
||||
;; @0057 v9 = icmp ugt v4, v5
|
||||
;; @0057 v8 = iconst.i64 0
|
||||
;; @0057 v7 = iadd v6, v4
|
||||
;; @0057 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0057 v6 = icmp ugt v4, v5
|
||||
;; @0057 v9 = iconst.i64 0
|
||||
;; @0057 v8 = iadd v7, v4
|
||||
;; @0057 v10 = select_spectre_guard v6, v9, v8 ; v9 = 0
|
||||
;; @0057 v11 = load.i32 little heap v10
|
||||
;; v2 -> v11
|
||||
;; @005f jump block1
|
||||
@@ -71,14 +71,14 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0064 v5 = load.i64 notrap aligned v1+8
|
||||
;; @0064 v6 = load.i64 notrap aligned v1
|
||||
;; @0064 v7 = load.i64 notrap aligned v1
|
||||
;; @0064 v4 = uextend.i64 v0
|
||||
;; @0064 v10 = icmp ugt v4, v5
|
||||
;; @0064 v9 = iconst.i64 0
|
||||
;; @0064 v7 = iadd v6, v4
|
||||
;; @0064 v6 = icmp ugt v4, v5
|
||||
;; @0064 v10 = iconst.i64 0
|
||||
;; @0064 v8 = iadd v7, v4
|
||||
;; v22 = iconst.i64 1234
|
||||
;; @0064 v8 = iadd v7, v22 ; v22 = 1234
|
||||
;; @0064 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0064 v9 = iadd v8, v22 ; v22 = 1234
|
||||
;; @0064 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0064 v12 = load.i32 little heap v11
|
||||
;; v2 -> v12
|
||||
;; @006e jump block1
|
||||
|
||||
@@ -53,15 +53,15 @@
|
||||
;; v12 -> v4
|
||||
;; @0057 v5 = load.i64 notrap aligned v1+8
|
||||
;; v13 -> v5
|
||||
;; @0057 v6 = load.i64 notrap aligned v1
|
||||
;; @0057 v6 = icmp ugt v4, v5
|
||||
;; v14 -> v6
|
||||
;; @0057 v7 = iadd v6, v4
|
||||
;; @0057 v7 = load.i64 notrap aligned v1
|
||||
;; v15 -> v7
|
||||
;; @0057 v8 = iconst.i64 0
|
||||
;; @0057 v8 = iadd v7, v4
|
||||
;; v16 -> v8
|
||||
;; @0057 v9 = icmp ugt v4, v5
|
||||
;; @0057 v9 = iconst.i64 0
|
||||
;; v17 -> v9
|
||||
;; @0057 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0057 v10 = select_spectre_guard v6, v9, v8 ; v9 = 0
|
||||
;; v18 -> v10
|
||||
;; @0057 v11 = load.i32 little heap v10
|
||||
;; v2 -> v11
|
||||
@@ -83,19 +83,19 @@
|
||||
;; v13 -> v4
|
||||
;; @0064 v5 = load.i64 notrap aligned v1+8
|
||||
;; v14 -> v5
|
||||
;; @0064 v6 = load.i64 notrap aligned v1
|
||||
;; @0064 v6 = icmp ugt v4, v5
|
||||
;; v15 -> v6
|
||||
;; @0064 v7 = iadd v6, v4
|
||||
;; @0064 v7 = load.i64 notrap aligned v1
|
||||
;; v16 -> v7
|
||||
;; @0064 v8 = iadd v7, v4
|
||||
;; v17 -> v8
|
||||
;; v22 = iconst.i64 1234
|
||||
;; v23 -> v22
|
||||
;; @0064 v8 = iadd v7, v22 ; v22 = 1234
|
||||
;; v17 -> v8
|
||||
;; @0064 v9 = iconst.i64 0
|
||||
;; @0064 v9 = iadd v8, v22 ; v22 = 1234
|
||||
;; v18 -> v9
|
||||
;; @0064 v10 = icmp ugt v4, v5
|
||||
;; @0064 v10 = iconst.i64 0
|
||||
;; v19 -> v10
|
||||
;; @0064 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0064 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; v20 -> v11
|
||||
;; @0064 v12 = load.i32 little heap v11
|
||||
;; v2 -> v12
|
||||
|
||||
@@ -63,25 +63,25 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0047 v6 = load.i64 notrap aligned v1+8
|
||||
;; @0047 v7 = load.i64 notrap aligned v1
|
||||
;; @0047 v8 = load.i64 notrap aligned v1
|
||||
;; @0047 v5 = uextend.i64 v0
|
||||
;; @0047 v10 = icmp ugt v5, v6
|
||||
;; @0047 v9 = iconst.i64 0
|
||||
;; @0047 v8 = iadd v7, v5
|
||||
;; @0047 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0047 v7 = icmp ugt v5, v6
|
||||
;; @0047 v10 = iconst.i64 0
|
||||
;; @0047 v9 = iadd v8, v5
|
||||
;; @0047 v11 = select_spectre_guard v7, v10, v9 ; v10 = 0
|
||||
;; @0047 v12 = load.i32 little heap v11
|
||||
;; v2 -> v12
|
||||
;; v33 = iconst.i64 4
|
||||
;; @004c v17 = iadd v8, v33 ; v33 = 4
|
||||
;; @004c v20 = select_spectre_guard v10, v9, v17 ; v9 = 0
|
||||
;; @004c v18 = iadd v9, v33 ; v33 = 4
|
||||
;; @004c v20 = select_spectre_guard v7, v10, v18 ; v10 = 0
|
||||
;; @004c v21 = load.i32 little heap v20
|
||||
;; v3 -> v21
|
||||
;; @0051 v23 = iconst.i64 0x0010_0003
|
||||
;; @0051 v24 = uadd_overflow_trap v5, v23, heap_oob ; v23 = 0x0010_0003
|
||||
;; @0051 v30 = icmp ugt v24, v6
|
||||
;; @0051 v26 = icmp ugt v24, v6
|
||||
;; v34 = iconst.i64 0x000f_ffff
|
||||
;; @0051 v28 = iadd v8, v34 ; v34 = 0x000f_ffff
|
||||
;; @0051 v31 = select_spectre_guard v30, v9, v28 ; v9 = 0
|
||||
;; @0051 v29 = iadd v9, v34 ; v34 = 0x000f_ffff
|
||||
;; @0051 v31 = select_spectre_guard v26, v10, v29 ; v10 = 0
|
||||
;; @0051 v32 = load.i32 little heap v31
|
||||
;; v4 -> v32
|
||||
;; @0056 jump block1
|
||||
@@ -97,23 +97,23 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i32, v2: i32, v3: i32, v4: i64):
|
||||
;; @005d v6 = load.i64 notrap aligned v4+8
|
||||
;; @005d v7 = load.i64 notrap aligned v4
|
||||
;; @005d v8 = load.i64 notrap aligned v4
|
||||
;; @005d v5 = uextend.i64 v0
|
||||
;; @005d v10 = icmp ugt v5, v6
|
||||
;; @005d v9 = iconst.i64 0
|
||||
;; @005d v8 = iadd v7, v5
|
||||
;; @005d v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @005d v7 = icmp ugt v5, v6
|
||||
;; @005d v10 = iconst.i64 0
|
||||
;; @005d v9 = iadd v8, v5
|
||||
;; @005d v11 = select_spectre_guard v7, v10, v9 ; v10 = 0
|
||||
;; @005d store little heap v1, v11
|
||||
;; v30 = iconst.i64 4
|
||||
;; @0064 v16 = iadd v8, v30 ; v30 = 4
|
||||
;; @0064 v19 = select_spectre_guard v10, v9, v16 ; v9 = 0
|
||||
;; @0064 v17 = iadd v9, v30 ; v30 = 4
|
||||
;; @0064 v19 = select_spectre_guard v7, v10, v17 ; v10 = 0
|
||||
;; @0064 store little heap v2, v19
|
||||
;; @006b v21 = iconst.i64 0x0010_0003
|
||||
;; @006b v22 = uadd_overflow_trap v5, v21, heap_oob ; v21 = 0x0010_0003
|
||||
;; @006b v28 = icmp ugt v22, v6
|
||||
;; @006b v24 = icmp ugt v22, v6
|
||||
;; v31 = iconst.i64 0x000f_ffff
|
||||
;; @006b v26 = iadd v8, v31 ; v31 = 0x000f_ffff
|
||||
;; @006b v29 = select_spectre_guard v28, v9, v26 ; v9 = 0
|
||||
;; @006b v27 = iadd v9, v31 ; v31 = 0x000f_ffff
|
||||
;; @006b v29 = select_spectre_guard v24, v10, v27 ; v10 = 0
|
||||
;; @006b store little heap v3, v29
|
||||
;; @0070 jump block1
|
||||
;;
|
||||
|
||||
@@ -48,11 +48,11 @@
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd_imm v4, -4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v5
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v6 = icmp ugt v3, v5
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v3
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v6, v9, v8 ; v9 = 0
|
||||
;; @0040 store little heap v1, v10
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -69,14 +69,14 @@
|
||||
;; @0048 v3 = uextend.i64 v0
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = iadd_imm v4, -4
|
||||
;; @0048 v6 = global_value.i64 gv2
|
||||
;; @0048 v7 = iadd v6, v3
|
||||
;; @0048 v8 = iconst.i64 0
|
||||
;; @0048 v9 = icmp ugt v3, v5
|
||||
;; @0048 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0048 v6 = icmp ugt v3, v5
|
||||
;; @0048 v7 = global_value.i64 gv2
|
||||
;; @0048 v8 = iadd v7, v3
|
||||
;; @0048 v9 = iconst.i64 0
|
||||
;; @0048 v10 = select_spectre_guard v6, v9, v8 ; v9 = 0
|
||||
;; @0048 v11 = load.i32 little heap v10
|
||||
;; @004b jump block1(v11)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd_imm v4, -4100
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iadd_imm v7, 4096
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = icmp ugt v3, v5
|
||||
;; @0040 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0040 v6 = icmp ugt v3, v5
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v3
|
||||
;; @0040 v9 = iadd_imm v8, 4096
|
||||
;; @0040 v10 = iconst.i64 0
|
||||
;; @0040 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0040 store little heap v1, v11
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -70,15 +70,15 @@
|
||||
;; @0049 v3 = uextend.i64 v0
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = iadd_imm v4, -4100
|
||||
;; @0049 v6 = global_value.i64 gv2
|
||||
;; @0049 v7 = iadd v6, v3
|
||||
;; @0049 v8 = iadd_imm v7, 4096
|
||||
;; @0049 v9 = iconst.i64 0
|
||||
;; @0049 v10 = icmp ugt v3, v5
|
||||
;; @0049 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0049 v6 = icmp ugt v3, v5
|
||||
;; @0049 v7 = global_value.i64 gv2
|
||||
;; @0049 v8 = iadd v7, v3
|
||||
;; @0049 v9 = iadd_imm v8, 4096
|
||||
;; @0049 v10 = iconst.i64 0
|
||||
;; @0049 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0049 v12 = load.i32 little heap v11
|
||||
;; @004d jump block1(v12)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -49,12 +49,12 @@
|
||||
;; @0040 v4 = iconst.i64 0xffff_0004
|
||||
;; @0040 v5 = uadd_overflow_trap v3, v4, heap_oob ; v4 = 0xffff_0004
|
||||
;; @0040 v6 = global_value.i64 gv1
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v3
|
||||
;; @0040 v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @0040 v10 = iconst.i64 0
|
||||
;; @0040 v11 = icmp ugt v5, v6
|
||||
;; @0040 v12 = select_spectre_guard v11, v10, v9 ; v10 = 0
|
||||
;; @0040 v7 = icmp ugt v5, v6
|
||||
;; @0040 v8 = global_value.i64 gv2
|
||||
;; @0040 v9 = iadd v8, v3
|
||||
;; @0040 v10 = iadd_imm v9, 0xffff_0000
|
||||
;; @0040 v11 = iconst.i64 0
|
||||
;; @0040 v12 = select_spectre_guard v7, v11, v10 ; v11 = 0
|
||||
;; @0040 store little heap v1, v12
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -72,15 +72,15 @@
|
||||
;; @004c v4 = iconst.i64 0xffff_0004
|
||||
;; @004c v5 = uadd_overflow_trap v3, v4, heap_oob ; v4 = 0xffff_0004
|
||||
;; @004c v6 = global_value.i64 gv1
|
||||
;; @004c v7 = global_value.i64 gv2
|
||||
;; @004c v8 = iadd v7, v3
|
||||
;; @004c v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @004c v10 = iconst.i64 0
|
||||
;; @004c v11 = icmp ugt v5, v6
|
||||
;; @004c v12 = select_spectre_guard v11, v10, v9 ; v10 = 0
|
||||
;; @004c v7 = icmp ugt v5, v6
|
||||
;; @004c v8 = global_value.i64 gv2
|
||||
;; @004c v9 = iadd v8, v3
|
||||
;; @004c v10 = iadd_imm v9, 0xffff_0000
|
||||
;; @004c v11 = iconst.i64 0
|
||||
;; @004c v12 = select_spectre_guard v7, v11, v10 ; v11 = 0
|
||||
;; @004c v13 = load.i32 little heap v12
|
||||
;; @0053 jump block1(v13)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @0053 return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp uge v3, v4
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v5 = icmp uge v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -67,14 +67,14 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0048 v3 = uextend.i64 v0
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v3
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = icmp uge v3, v4
|
||||
;; @0048 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0048 v5 = icmp uge v3, v4
|
||||
;; @0048 v6 = global_value.i64 gv2
|
||||
;; @0048 v7 = iadd v6, v3
|
||||
;; @0048 v8 = iconst.i64 0
|
||||
;; @0048 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0048 v10 = uload8.i32 little heap v9
|
||||
;; @004b jump block1(v10)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd_imm v4, -4097
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iadd_imm v7, 4096
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = icmp ugt v3, v5
|
||||
;; @0040 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0040 v6 = icmp ugt v3, v5
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v3
|
||||
;; @0040 v9 = iadd_imm v8, 4096
|
||||
;; @0040 v10 = iconst.i64 0
|
||||
;; @0040 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0040 istore8 little heap v1, v11
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -70,15 +70,15 @@
|
||||
;; @0049 v3 = uextend.i64 v0
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = iadd_imm v4, -4097
|
||||
;; @0049 v6 = global_value.i64 gv2
|
||||
;; @0049 v7 = iadd v6, v3
|
||||
;; @0049 v8 = iadd_imm v7, 4096
|
||||
;; @0049 v9 = iconst.i64 0
|
||||
;; @0049 v10 = icmp ugt v3, v5
|
||||
;; @0049 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0049 v6 = icmp ugt v3, v5
|
||||
;; @0049 v7 = global_value.i64 gv2
|
||||
;; @0049 v8 = iadd v7, v3
|
||||
;; @0049 v9 = iadd_imm v8, 4096
|
||||
;; @0049 v10 = iconst.i64 0
|
||||
;; @0049 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0049 v12 = uload8.i32 little heap v11
|
||||
;; @004d jump block1(v12)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -49,12 +49,12 @@
|
||||
;; @0040 v4 = iconst.i64 0xffff_0001
|
||||
;; @0040 v5 = uadd_overflow_trap v3, v4, heap_oob ; v4 = 0xffff_0001
|
||||
;; @0040 v6 = global_value.i64 gv1
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v3
|
||||
;; @0040 v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @0040 v10 = iconst.i64 0
|
||||
;; @0040 v11 = icmp ugt v5, v6
|
||||
;; @0040 v12 = select_spectre_guard v11, v10, v9 ; v10 = 0
|
||||
;; @0040 v7 = icmp ugt v5, v6
|
||||
;; @0040 v8 = global_value.i64 gv2
|
||||
;; @0040 v9 = iadd v8, v3
|
||||
;; @0040 v10 = iadd_imm v9, 0xffff_0000
|
||||
;; @0040 v11 = iconst.i64 0
|
||||
;; @0040 v12 = select_spectre_guard v7, v11, v10 ; v11 = 0
|
||||
;; @0040 istore8 little heap v1, v12
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -72,15 +72,15 @@
|
||||
;; @004c v4 = iconst.i64 0xffff_0001
|
||||
;; @004c v5 = uadd_overflow_trap v3, v4, heap_oob ; v4 = 0xffff_0001
|
||||
;; @004c v6 = global_value.i64 gv1
|
||||
;; @004c v7 = global_value.i64 gv2
|
||||
;; @004c v8 = iadd v7, v3
|
||||
;; @004c v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @004c v10 = iconst.i64 0
|
||||
;; @004c v11 = icmp ugt v5, v6
|
||||
;; @004c v12 = select_spectre_guard v11, v10, v9 ; v10 = 0
|
||||
;; @004c v7 = icmp ugt v5, v6
|
||||
;; @004c v8 = global_value.i64 gv2
|
||||
;; @004c v9 = iadd v8, v3
|
||||
;; @004c v10 = iadd_imm v9, 0xffff_0000
|
||||
;; @004c v11 = iconst.i64 0
|
||||
;; @004c v12 = select_spectre_guard v7, v11, v10 ; v11 = 0
|
||||
;; @004c v13 = uload8.i32 little heap v12
|
||||
;; @0053 jump block1(v13)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @0053 return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v3, v4
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v5 = icmp ugt v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -67,11 +67,11 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0048 v3 = uextend.i64 v0
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v3
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = icmp ugt v3, v4
|
||||
;; @0048 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0048 v5 = icmp ugt v3, v4
|
||||
;; @0048 v6 = global_value.i64 gv2
|
||||
;; @0048 v7 = iadd v6, v3
|
||||
;; @0048 v8 = iconst.i64 0
|
||||
;; @0048 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0048 v10 = load.i32 little heap v9
|
||||
;; @004b jump block1(v10)
|
||||
;;
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v4
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v5 = icmp ugt v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iadd_imm v7, 4096
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0040 store little heap v1, v10
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -68,12 +68,12 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0049 v3 = uextend.i64 v0
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = global_value.i64 gv2
|
||||
;; @0049 v6 = iadd v5, v3
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = icmp ugt v3, v4
|
||||
;; @0049 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0049 v5 = icmp ugt v3, v4
|
||||
;; @0049 v6 = global_value.i64 gv2
|
||||
;; @0049 v7 = iadd v6, v3
|
||||
;; @0049 v8 = iadd_imm v7, 4096
|
||||
;; @0049 v9 = iconst.i64 0
|
||||
;; @0049 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0049 v11 = load.i32 little heap v10
|
||||
;; @004d jump block1(v11)
|
||||
;;
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v4
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v5 = icmp ugt v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0040 store little heap v1, v10
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -68,12 +68,12 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @004c v3 = uextend.i64 v0
|
||||
;; @004c v4 = global_value.i64 gv1
|
||||
;; @004c v5 = global_value.i64 gv2
|
||||
;; @004c v6 = iadd v5, v3
|
||||
;; @004c v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @004c v8 = iconst.i64 0
|
||||
;; @004c v9 = icmp ugt v3, v4
|
||||
;; @004c v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @004c v5 = icmp ugt v3, v4
|
||||
;; @004c v6 = global_value.i64 gv2
|
||||
;; @004c v7 = iadd v6, v3
|
||||
;; @004c v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @004c v9 = iconst.i64 0
|
||||
;; @004c v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @004c v11 = load.i32 little heap v10
|
||||
;; @0053 jump block1(v11)
|
||||
;;
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp uge v3, v4
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v5 = icmp uge v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -67,14 +67,14 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0048 v3 = uextend.i64 v0
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v3
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = icmp uge v3, v4
|
||||
;; @0048 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0048 v5 = icmp uge v3, v4
|
||||
;; @0048 v6 = global_value.i64 gv2
|
||||
;; @0048 v7 = iadd v6, v3
|
||||
;; @0048 v8 = iconst.i64 0
|
||||
;; @0048 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0048 v10 = uload8.i32 little heap v9
|
||||
;; @004b jump block1(v10)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v4
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v5 = icmp ugt v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iadd_imm v7, 4096
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0040 istore8 little heap v1, v10
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -68,12 +68,12 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0049 v3 = uextend.i64 v0
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = global_value.i64 gv2
|
||||
;; @0049 v6 = iadd v5, v3
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = icmp ugt v3, v4
|
||||
;; @0049 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0049 v5 = icmp ugt v3, v4
|
||||
;; @0049 v6 = global_value.i64 gv2
|
||||
;; @0049 v7 = iadd v6, v3
|
||||
;; @0049 v8 = iadd_imm v7, 4096
|
||||
;; @0049 v9 = iconst.i64 0
|
||||
;; @0049 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0049 v11 = uload8.i32 little heap v10
|
||||
;; @004d jump block1(v11)
|
||||
;;
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v4
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v5 = icmp ugt v3, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v3
|
||||
;; @0040 v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0040 istore8 little heap v1, v10
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -68,12 +68,12 @@
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @004c v3 = uextend.i64 v0
|
||||
;; @004c v4 = global_value.i64 gv1
|
||||
;; @004c v5 = global_value.i64 gv2
|
||||
;; @004c v6 = iadd v5, v3
|
||||
;; @004c v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @004c v8 = iconst.i64 0
|
||||
;; @004c v9 = icmp ugt v3, v4
|
||||
;; @004c v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @004c v5 = icmp ugt v3, v4
|
||||
;; @004c v6 = global_value.i64 gv2
|
||||
;; @004c v7 = iadd v6, v3
|
||||
;; @004c v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @004c v9 = iconst.i64 0
|
||||
;; @004c v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @004c v11 = uload8.i32 little heap v10
|
||||
;; @0053 jump block1(v11)
|
||||
;;
|
||||
|
||||
@@ -47,11 +47,11 @@
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = iadd_imm v3, -4
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v4
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v5 = icmp ugt v0, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v0
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -67,14 +67,14 @@
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = global_value.i64 gv1
|
||||
;; @0048 v4 = iadd_imm v3, -4
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v0
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = icmp ugt v0, v4
|
||||
;; @0048 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0048 v5 = icmp ugt v0, v4
|
||||
;; @0048 v6 = global_value.i64 gv2
|
||||
;; @0048 v7 = iadd v6, v0
|
||||
;; @0048 v8 = iconst.i64 0
|
||||
;; @0048 v9 = select_spectre_guard v5, v8, v7 ; v8 = 0
|
||||
;; @0048 v10 = load.i32 little heap v9
|
||||
;; @004b jump block1(v10)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = iadd_imm v3, -4100
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v0, v4
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v5 = icmp ugt v0, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v0
|
||||
;; @0040 v8 = iadd_imm v7, 4096
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0040 store little heap v1, v10
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -68,15 +68,15 @@
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = global_value.i64 gv1
|
||||
;; @0049 v4 = iadd_imm v3, -4100
|
||||
;; @0049 v5 = global_value.i64 gv2
|
||||
;; @0049 v6 = iadd v5, v0
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = icmp ugt v0, v4
|
||||
;; @0049 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0049 v5 = icmp ugt v0, v4
|
||||
;; @0049 v6 = global_value.i64 gv2
|
||||
;; @0049 v7 = iadd v6, v0
|
||||
;; @0049 v8 = iadd_imm v7, 4096
|
||||
;; @0049 v9 = iconst.i64 0
|
||||
;; @0049 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0049 v11 = load.i32 little heap v10
|
||||
;; @004d jump block1(v11)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
;; @0040 v3 = iconst.i64 0xffff_0004
|
||||
;; @0040 v4 = uadd_overflow_trap v0, v3, heap_oob ; v3 = 0xffff_0004
|
||||
;; @0040 v5 = global_value.i64 gv1
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v0
|
||||
;; @0040 v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = icmp ugt v4, v5
|
||||
;; @0040 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0040 v6 = icmp ugt v4, v5
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v0
|
||||
;; @0040 v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @0040 v10 = iconst.i64 0
|
||||
;; @0040 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0040 store little heap v1, v11
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -70,15 +70,15 @@
|
||||
;; @004c v3 = iconst.i64 0xffff_0004
|
||||
;; @004c v4 = uadd_overflow_trap v0, v3, heap_oob ; v3 = 0xffff_0004
|
||||
;; @004c v5 = global_value.i64 gv1
|
||||
;; @004c v6 = global_value.i64 gv2
|
||||
;; @004c v7 = iadd v6, v0
|
||||
;; @004c v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @004c v9 = iconst.i64 0
|
||||
;; @004c v10 = icmp ugt v4, v5
|
||||
;; @004c v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @004c v6 = icmp ugt v4, v5
|
||||
;; @004c v7 = global_value.i64 gv2
|
||||
;; @004c v8 = iadd v7, v0
|
||||
;; @004c v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @004c v10 = iconst.i64 0
|
||||
;; @004c v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @004c v12 = load.i32 little heap v11
|
||||
;; @0053 jump block1(v12)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @0053 return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp uge v0, v3
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 v4 = icmp uge v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -65,14 +65,14 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = global_value.i64 gv1
|
||||
;; @0048 v4 = global_value.i64 gv2
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp uge v0, v3
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v4 = icmp uge v0, v3
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v0
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0048 v9 = uload8.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = iadd_imm v3, -4097
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v0, v4
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 v5 = icmp ugt v0, v4
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v0
|
||||
;; @0040 v8 = iadd_imm v7, 4096
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0040 istore8 little heap v1, v10
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -68,15 +68,15 @@
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = global_value.i64 gv1
|
||||
;; @0049 v4 = iadd_imm v3, -4097
|
||||
;; @0049 v5 = global_value.i64 gv2
|
||||
;; @0049 v6 = iadd v5, v0
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = icmp ugt v0, v4
|
||||
;; @0049 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0049 v5 = icmp ugt v0, v4
|
||||
;; @0049 v6 = global_value.i64 gv2
|
||||
;; @0049 v7 = iadd v6, v0
|
||||
;; @0049 v8 = iadd_imm v7, 4096
|
||||
;; @0049 v9 = iconst.i64 0
|
||||
;; @0049 v10 = select_spectre_guard v5, v9, v8 ; v9 = 0
|
||||
;; @0049 v11 = uload8.i32 little heap v10
|
||||
;; @004d jump block1(v11)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -48,12 +48,12 @@
|
||||
;; @0040 v3 = iconst.i64 0xffff_0001
|
||||
;; @0040 v4 = uadd_overflow_trap v0, v3, heap_oob ; v3 = 0xffff_0001
|
||||
;; @0040 v5 = global_value.i64 gv1
|
||||
;; @0040 v6 = global_value.i64 gv2
|
||||
;; @0040 v7 = iadd v6, v0
|
||||
;; @0040 v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @0040 v9 = iconst.i64 0
|
||||
;; @0040 v10 = icmp ugt v4, v5
|
||||
;; @0040 v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @0040 v6 = icmp ugt v4, v5
|
||||
;; @0040 v7 = global_value.i64 gv2
|
||||
;; @0040 v8 = iadd v7, v0
|
||||
;; @0040 v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @0040 v10 = iconst.i64 0
|
||||
;; @0040 v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @0040 istore8 little heap v1, v11
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -70,15 +70,15 @@
|
||||
;; @004c v3 = iconst.i64 0xffff_0001
|
||||
;; @004c v4 = uadd_overflow_trap v0, v3, heap_oob ; v3 = 0xffff_0001
|
||||
;; @004c v5 = global_value.i64 gv1
|
||||
;; @004c v6 = global_value.i64 gv2
|
||||
;; @004c v7 = iadd v6, v0
|
||||
;; @004c v8 = iadd_imm v7, 0xffff_0000
|
||||
;; @004c v9 = iconst.i64 0
|
||||
;; @004c v10 = icmp ugt v4, v5
|
||||
;; @004c v11 = select_spectre_guard v10, v9, v8 ; v9 = 0
|
||||
;; @004c v6 = icmp ugt v4, v5
|
||||
;; @004c v7 = global_value.i64 gv2
|
||||
;; @004c v8 = iadd v7, v0
|
||||
;; @004c v9 = iadd_imm v8, 0xffff_0000
|
||||
;; @004c v10 = iconst.i64 0
|
||||
;; @004c v11 = select_spectre_guard v6, v10, v9 ; v10 = 0
|
||||
;; @004c v12 = uload8.i32 little heap v11
|
||||
;; @0053 jump block1(v12)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @0053 return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp ugt v0, v3
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 v4 = icmp ugt v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v8
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -65,11 +65,11 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = global_value.i64 gv1
|
||||
;; @0048 v4 = global_value.i64 gv2
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp ugt v0, v3
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v4 = icmp ugt v0, v3
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v0
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0048 v9 = load.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;;
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 4096
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v4 = icmp ugt v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -66,12 +66,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = global_value.i64 gv1
|
||||
;; @0049 v4 = global_value.i64 gv2
|
||||
;; @0049 v5 = iadd v4, v0
|
||||
;; @0049 v6 = iadd_imm v5, 4096
|
||||
;; @0049 v7 = iconst.i64 0
|
||||
;; @0049 v8 = icmp ugt v0, v3
|
||||
;; @0049 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0049 v4 = icmp ugt v0, v3
|
||||
;; @0049 v5 = global_value.i64 gv2
|
||||
;; @0049 v6 = iadd v5, v0
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0049 v10 = load.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;;
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 0xffff_0000
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v4 = icmp ugt v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -66,12 +66,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @004c v3 = global_value.i64 gv1
|
||||
;; @004c v4 = global_value.i64 gv2
|
||||
;; @004c v5 = iadd v4, v0
|
||||
;; @004c v6 = iadd_imm v5, 0xffff_0000
|
||||
;; @004c v7 = iconst.i64 0
|
||||
;; @004c v8 = icmp ugt v0, v3
|
||||
;; @004c v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @004c v4 = icmp ugt v0, v3
|
||||
;; @004c v5 = global_value.i64 gv2
|
||||
;; @004c v6 = iadd v5, v0
|
||||
;; @004c v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @004c v8 = iconst.i64 0
|
||||
;; @004c v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @004c v10 = load.i32 little heap v9
|
||||
;; @0053 jump block1(v10)
|
||||
;;
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp uge v0, v3
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 v4 = icmp uge v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
@@ -65,14 +65,14 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = global_value.i64 gv1
|
||||
;; @0048 v4 = global_value.i64 gv2
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp uge v0, v3
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v4 = icmp uge v0, v3
|
||||
;; @0048 v5 = global_value.i64 gv2
|
||||
;; @0048 v6 = iadd v5, v0
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0048 v9 = uload8.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 4096
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v4 = icmp ugt v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
@@ -66,12 +66,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = global_value.i64 gv1
|
||||
;; @0049 v4 = global_value.i64 gv2
|
||||
;; @0049 v5 = iadd v4, v0
|
||||
;; @0049 v6 = iadd_imm v5, 4096
|
||||
;; @0049 v7 = iconst.i64 0
|
||||
;; @0049 v8 = icmp ugt v0, v3
|
||||
;; @0049 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0049 v4 = icmp ugt v0, v3
|
||||
;; @0049 v5 = global_value.i64 gv2
|
||||
;; @0049 v6 = iadd v5, v0
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0049 v10 = uload8.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;;
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = global_value.i64 gv1
|
||||
;; @0040 v4 = global_value.i64 gv2
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 0xffff_0000
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 v4 = icmp ugt v0, v3
|
||||
;; @0040 v5 = global_value.i64 gv2
|
||||
;; @0040 v6 = iadd v5, v0
|
||||
;; @0040 v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0047 jump block1
|
||||
;;
|
||||
@@ -66,12 +66,12 @@
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @004c v3 = global_value.i64 gv1
|
||||
;; @004c v4 = global_value.i64 gv2
|
||||
;; @004c v5 = iadd v4, v0
|
||||
;; @004c v6 = iadd_imm v5, 0xffff_0000
|
||||
;; @004c v7 = iconst.i64 0
|
||||
;; @004c v8 = icmp ugt v0, v3
|
||||
;; @004c v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @004c v4 = icmp ugt v0, v3
|
||||
;; @004c v5 = global_value.i64 gv2
|
||||
;; @004c v6 = iadd v5, v0
|
||||
;; @004c v7 = iadd_imm v6, 0xffff_0000
|
||||
;; @004c v8 = iconst.i64 0
|
||||
;; @004c v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @004c v10 = uload8.i32 little heap v9
|
||||
;; @0053 jump block1(v10)
|
||||
;;
|
||||
|
||||
@@ -43,13 +43,12 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = iconst.i64 0x0fff_fffc
|
||||
;; @0040 v4 = icmp_imm ugt v3, 0x0fff_fffc
|
||||
;; @0040 v5 = global_value.i64 gv1
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v3, v4 ; v4 = 0x0fff_fffc
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0040 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v8
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -62,15 +61,14 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0048 v3 = uextend.i64 v0
|
||||
;; @0048 v4 = iconst.i64 0x0fff_fffc
|
||||
;; @0048 v4 = icmp_imm ugt v3, 0x0fff_fffc
|
||||
;; @0048 v5 = global_value.i64 gv1
|
||||
;; @0048 v6 = iadd v5, v3
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = icmp ugt v3, v4 ; v4 = 0x0fff_fffc
|
||||
;; @0048 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0048 v10 = load.i32 little heap v9
|
||||
;; @004b jump block1(v10)
|
||||
;; @0048 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0048 v9 = load.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -43,14 +43,13 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = iconst.i64 0x0fff_effc
|
||||
;; @0040 v4 = icmp_imm ugt v3, 0x0fff_effc
|
||||
;; @0040 v5 = global_value.i64 gv1
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v4 ; v4 = 0x0fff_effc
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 store little heap v1, v10
|
||||
;; @0040 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -63,16 +62,15 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0049 v3 = uextend.i64 v0
|
||||
;; @0049 v4 = iconst.i64 0x0fff_effc
|
||||
;; @0049 v4 = icmp_imm ugt v3, 0x0fff_effc
|
||||
;; @0049 v5 = global_value.i64 gv1
|
||||
;; @0049 v6 = iadd v5, v3
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = icmp ugt v3, v4 ; v4 = 0x0fff_effc
|
||||
;; @0049 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0049 v11 = load.i32 little heap v10
|
||||
;; @004d jump block1(v11)
|
||||
;; @0049 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0049 v10 = load.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -43,13 +43,12 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = iconst.i64 0x0fff_ffff
|
||||
;; @0040 v4 = icmp_imm ugt v3, 0x0fff_ffff
|
||||
;; @0040 v5 = global_value.i64 gv1
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v3, v4 ; v4 = 0x0fff_ffff
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0040 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -62,15 +61,14 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0048 v3 = uextend.i64 v0
|
||||
;; @0048 v4 = iconst.i64 0x0fff_ffff
|
||||
;; @0048 v4 = icmp_imm ugt v3, 0x0fff_ffff
|
||||
;; @0048 v5 = global_value.i64 gv1
|
||||
;; @0048 v6 = iadd v5, v3
|
||||
;; @0048 v7 = iconst.i64 0
|
||||
;; @0048 v8 = icmp ugt v3, v4 ; v4 = 0x0fff_ffff
|
||||
;; @0048 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0048 v10 = uload8.i32 little heap v9
|
||||
;; @004b jump block1(v10)
|
||||
;; @0048 v8 = select_spectre_guard v4, v7, v6 ; v7 = 0
|
||||
;; @0048 v9 = uload8.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -43,14 +43,13 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i32, v2: i64):
|
||||
;; @0040 v3 = uextend.i64 v0
|
||||
;; @0040 v4 = iconst.i64 0x0fff_efff
|
||||
;; @0040 v4 = icmp_imm ugt v3, 0x0fff_efff
|
||||
;; @0040 v5 = global_value.i64 gv1
|
||||
;; @0040 v6 = iadd v5, v3
|
||||
;; @0040 v7 = iadd_imm v6, 4096
|
||||
;; @0040 v8 = iconst.i64 0
|
||||
;; @0040 v9 = icmp ugt v3, v4 ; v4 = 0x0fff_efff
|
||||
;; @0040 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0040 istore8 little heap v1, v10
|
||||
;; @0040 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -63,16 +62,15 @@
|
||||
;;
|
||||
;; block0(v0: i32, v1: i64):
|
||||
;; @0049 v3 = uextend.i64 v0
|
||||
;; @0049 v4 = iconst.i64 0x0fff_efff
|
||||
;; @0049 v4 = icmp_imm ugt v3, 0x0fff_efff
|
||||
;; @0049 v5 = global_value.i64 gv1
|
||||
;; @0049 v6 = iadd v5, v3
|
||||
;; @0049 v7 = iadd_imm v6, 4096
|
||||
;; @0049 v8 = iconst.i64 0
|
||||
;; @0049 v9 = icmp ugt v3, v4 ; v4 = 0x0fff_efff
|
||||
;; @0049 v10 = select_spectre_guard v9, v8, v7 ; v8 = 0
|
||||
;; @0049 v11 = uload8.i32 little heap v10
|
||||
;; @004d jump block1(v11)
|
||||
;; @0049 v9 = select_spectre_guard v4, v8, v7 ; v8 = 0
|
||||
;; @0049 v10 = uload8.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,13 +42,12 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_fffc
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_fffc
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_fffc
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 store little heap v1, v8
|
||||
;; @0040 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0040 store little heap v1, v7
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -60,15 +59,14 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = iconst.i64 0x0fff_fffc
|
||||
;; @0048 v3 = icmp_imm ugt v0, 0x0fff_fffc
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_fffc
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v9 = load.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;; @0048 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0048 v8 = load.i32 little heap v7
|
||||
;; @004b jump block1(v8)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_effc
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_effc
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 4096
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_effc
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0040 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v8
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -61,16 +60,15 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = iconst.i64 0x0fff_effc
|
||||
;; @0049 v3 = icmp_imm ugt v0, 0x0fff_effc
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = iadd v4, v0
|
||||
;; @0049 v6 = iadd_imm v5, 4096
|
||||
;; @0049 v7 = iconst.i64 0
|
||||
;; @0049 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_effc
|
||||
;; @0049 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0049 v10 = load.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;; @0049 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0049 v9 = load.i32 little heap v8
|
||||
;; @004d jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,13 +42,12 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_ffff
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_ffff
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_ffff
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0040 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0040 istore8 little heap v1, v7
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -60,15 +59,14 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = iconst.i64 0x0fff_ffff
|
||||
;; @0048 v3 = icmp_imm ugt v0, 0x0fff_ffff
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_ffff
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v9 = uload8.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;; @0048 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0048 v8 = uload8.i32 little heap v7
|
||||
;; @004b jump block1(v8)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_efff
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_efff
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 4096
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_efff
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0040 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -61,16 +60,15 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = iconst.i64 0x0fff_efff
|
||||
;; @0049 v3 = icmp_imm ugt v0, 0x0fff_efff
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = iadd v4, v0
|
||||
;; @0049 v6 = iadd_imm v5, 4096
|
||||
;; @0049 v7 = iconst.i64 0
|
||||
;; @0049 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_efff
|
||||
;; @0049 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0049 v10 = uload8.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;; @0049 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0049 v9 = uload8.i32 little heap v8
|
||||
;; @004d jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,13 +42,12 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_fffc
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_fffc
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_fffc
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 store little heap v1, v8
|
||||
;; @0040 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0040 store little heap v1, v7
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -60,15 +59,14 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = iconst.i64 0x0fff_fffc
|
||||
;; @0048 v3 = icmp_imm ugt v0, 0x0fff_fffc
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_fffc
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v9 = load.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;; @0048 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0048 v8 = load.i32 little heap v7
|
||||
;; @004b jump block1(v8)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_effc
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_effc
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 4096
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_effc
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v9
|
||||
;; @0040 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0040 store little heap v1, v8
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -61,16 +60,15 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = iconst.i64 0x0fff_effc
|
||||
;; @0049 v3 = icmp_imm ugt v0, 0x0fff_effc
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = iadd v4, v0
|
||||
;; @0049 v6 = iadd_imm v5, 4096
|
||||
;; @0049 v7 = iconst.i64 0
|
||||
;; @0049 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_effc
|
||||
;; @0049 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0049 v10 = load.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;; @0049 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0049 v9 = load.i32 little heap v8
|
||||
;; @004d jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,13 +42,12 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_ffff
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_ffff
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iconst.i64 0
|
||||
;; @0040 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_ffff
|
||||
;; @0040 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0040 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0040 istore8 little heap v1, v7
|
||||
;; @0043 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -60,15 +59,14 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0048 v3 = iconst.i64 0x0fff_ffff
|
||||
;; @0048 v3 = icmp_imm ugt v0, 0x0fff_ffff
|
||||
;; @0048 v4 = global_value.i64 gv1
|
||||
;; @0048 v5 = iadd v4, v0
|
||||
;; @0048 v6 = iconst.i64 0
|
||||
;; @0048 v7 = icmp ugt v0, v3 ; v3 = 0x0fff_ffff
|
||||
;; @0048 v8 = select_spectre_guard v7, v6, v5 ; v6 = 0
|
||||
;; @0048 v9 = uload8.i32 little heap v8
|
||||
;; @004b jump block1(v9)
|
||||
;; @0048 v7 = select_spectre_guard v3, v6, v5 ; v6 = 0
|
||||
;; @0048 v8 = uload8.i32 little heap v7
|
||||
;; @004b jump block1(v8)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004b return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i32, v2: i64):
|
||||
;; @0040 v3 = iconst.i64 0x0fff_efff
|
||||
;; @0040 v3 = icmp_imm ugt v0, 0x0fff_efff
|
||||
;; @0040 v4 = global_value.i64 gv1
|
||||
;; @0040 v5 = iadd v4, v0
|
||||
;; @0040 v6 = iadd_imm v5, 4096
|
||||
;; @0040 v7 = iconst.i64 0
|
||||
;; @0040 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_efff
|
||||
;; @0040 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v9
|
||||
;; @0040 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0040 istore8 little heap v1, v8
|
||||
;; @0044 jump block1
|
||||
;;
|
||||
;; block1:
|
||||
@@ -61,16 +60,15 @@
|
||||
;; gv1 = load.i64 notrap aligned readonly gv0
|
||||
;;
|
||||
;; block0(v0: i64, v1: i64):
|
||||
;; @0049 v3 = iconst.i64 0x0fff_efff
|
||||
;; @0049 v3 = icmp_imm ugt v0, 0x0fff_efff
|
||||
;; @0049 v4 = global_value.i64 gv1
|
||||
;; @0049 v5 = iadd v4, v0
|
||||
;; @0049 v6 = iadd_imm v5, 4096
|
||||
;; @0049 v7 = iconst.i64 0
|
||||
;; @0049 v8 = icmp ugt v0, v3 ; v3 = 0x0fff_efff
|
||||
;; @0049 v9 = select_spectre_guard v8, v7, v6 ; v7 = 0
|
||||
;; @0049 v10 = uload8.i32 little heap v9
|
||||
;; @004d jump block1(v10)
|
||||
;; @0049 v8 = select_spectre_guard v3, v7, v6 ; v7 = 0
|
||||
;; @0049 v9 = uload8.i32 little heap v8
|
||||
;; @004d jump block1(v9)
|
||||
;;
|
||||
;; block1(v2: i32):
|
||||
;; @004d return v2
|
||||
;; }
|
||||
;; }
|
||||
|
||||
Reference in New Issue
Block a user