Path: blob/main/tests/disas/epoch-interruption.wat
3072 views
;;! target = "x86_64"
;;! test = "optimize"
;;! flags = ["-Wepoch-interruption=y"]
(module (func (loop (br 0))))
;; function u0:0(i64 vmctx, i64) tail {
;; gv0 = vmctx
;; gv1 = load.i64 notrap aligned readonly gv0+8
;; gv2 = load.i64 notrap aligned gv1+16
;; gv3 = vmctx
;; gv4 = load.i64 notrap aligned readonly can_move gv3+8
;; sig0 = (i64 vmctx) -> i64 tail
;; fn0 = colocated u805306368:16 sig0
;; stack_limit = gv2
;;
;; block0(v0: i64, v1: i64):
;; @0016 v3 = load.i64 notrap aligned v0+24
;; @0016 v4 = load.i64 notrap aligned v3
;; @0016 v5 = load.i64 notrap aligned readonly can_move v0+8
;; @0016 v6 = load.i64 notrap aligned v5+8
;; @0016 v7 = icmp uge v4, v6
;; @0016 brif v7, block3, block2(v6)
;;
;; block3 cold:
;; @0016 v9 = call fn0(v0)
;; @0016 jump block2(v9)
;;
;; block2(v21: i64):
;; @0017 jump block4(v21)
;;
;; block4(v12: i64):
;; @0017 v11 = load.i64 notrap aligned v3
;; @0017 v13 = icmp uge v11, v12
;; @0017 brif v13, block7, block6(v12)
;;
;; block7 cold:
;; @0017 v15 = load.i64 notrap aligned v5+8
;; @0017 v16 = icmp.i64 uge v11, v15
;; @0017 brif v16, block8, block6(v15)
;;
;; block8 cold:
;; @0017 v18 = call fn0(v0)
;; @0017 jump block6(v18)
;;
;; block6(v22: i64):
;; @0019 jump block4(v22)
;; }