1;;! target = "x86_64" 2 3(module 4 (func $imported (import "env" "f") (param i32) (result i32)) 5 (func $local (result externref externref funcref funcref) 6 global.get 0 7 global.get 1 8 global.get 2 9 global.get 3) 10 11 (global (export "externref-imported") externref (ref.null extern)) 12 (global (export "externref-local") externref (ref.null extern)) 13 (global (export "funcref-imported") funcref (ref.func $imported)) 14 (global (export "funcref-local") funcref (ref.func $local))) 15 16;; function u0:0(i64 vmctx, i64) -> i32, i32, i64, i64 tail { 17;; gv0 = vmctx 18;; gv1 = load.i64 notrap aligned readonly gv0+8 19;; gv2 = load.i64 notrap aligned gv1+24 20;; gv3 = vmctx 21;; gv4 = load.i64 notrap aligned readonly can_move gv3+8 22;; gv5 = load.i64 notrap aligned readonly can_move gv4+32 23;; gv6 = load.i64 notrap aligned gv4+40 24;; stack_limit = gv2 25;; 26;; block0(v0: i64, v1: i64): 27;; v113 = iconst.i64 80 28;; @008f v7 = iadd v0, v113 ; v113 = 80 29;; @008f v8 = load.i32 notrap aligned readonly can_move v7 30;; v112 = iconst.i32 1 31;; @008f v9 = band v8, v112 ; v112 = 1 32;; v111 = iconst.i32 0 33;; @008f v10 = icmp eq v8, v111 ; v111 = 0 34;; @008f v11 = uextend.i32 v10 35;; @008f v12 = bor v9, v11 36;; @008f brif v12, block4, block2 37;; 38;; block2: 39;; @008f v13 = uextend.i64 v8 40;; @008f v109 = load.i64 notrap aligned readonly can_move v0+8 41;; @008f v14 = load.i64 notrap aligned readonly can_move v109+32 42;; @008f v15 = iadd v14, v13 43;; @008f v16 = load.i32 notrap aligned v15 44;; @008f v17 = iconst.i32 2 45;; @008f v18 = band v16, v17 ; v17 = 2 46;; @008f brif v18, block4, block3 47;; 48;; block3: 49;; @008f v20 = load.i64 notrap aligned readonly v0+32 50;; @008f v21 = load.i32 notrap aligned v20 51;; @008f v22 = uextend.i64 v8 52;; @008f v107 = load.i64 notrap aligned readonly can_move v0+8 53;; @008f v23 = load.i64 notrap aligned readonly can_move v107+32 54;; @008f v24 = iadd v23, v22 55;; @008f v25 = iconst.i64 16 56;; @008f v26 = iadd v24, v25 ; v25 = 16 57;; @008f store notrap aligned v21, v26 58;; @008f v27 = iconst.i32 2 59;; @008f v28 = bor.i32 v16, v27 ; v27 = 2 60;; @008f v29 = uextend.i64 v8 61;; @008f v105 = load.i64 notrap aligned readonly can_move v0+8 62;; @008f v30 = load.i64 notrap aligned readonly can_move v105+32 63;; @008f v31 = iadd v30, v29 64;; @008f store notrap aligned v28, v31 65;; @008f v32 = uextend.i64 v8 66;; @008f v103 = load.i64 notrap aligned readonly can_move v0+8 67;; @008f v33 = load.i64 notrap aligned readonly can_move v103+32 68;; @008f v34 = iadd v33, v32 69;; @008f v35 = iconst.i64 8 70;; @008f v36 = iadd v34, v35 ; v35 = 8 71;; @008f v37 = load.i64 notrap aligned v36 72;; v102 = iconst.i64 1 73;; @008f v38 = iadd v37, v102 ; v102 = 1 74;; @008f v39 = uextend.i64 v8 75;; @008f v100 = load.i64 notrap aligned readonly can_move v0+8 76;; @008f v40 = load.i64 notrap aligned readonly can_move v100+32 77;; @008f v41 = iadd v40, v39 78;; @008f v42 = iconst.i64 8 79;; @008f v43 = iadd v41, v42 ; v42 = 8 80;; @008f store notrap aligned v38, v43 81;; @008f store.i32 notrap aligned v8, v20 82;; @008f jump block4 83;; 84;; block4: 85;; v99 = iconst.i64 96 86;; @0091 v45 = iadd.i64 v0, v99 ; v99 = 96 87;; @0091 v46 = load.i32 notrap aligned readonly can_move v45 88;; v98 = iconst.i32 1 89;; @0091 v47 = band v46, v98 ; v98 = 1 90;; v97 = iconst.i32 0 91;; @0091 v48 = icmp eq v46, v97 ; v97 = 0 92;; @0091 v49 = uextend.i32 v48 93;; @0091 v50 = bor v47, v49 94;; @0091 brif v50, block7, block5 95;; 96;; block5: 97;; @0091 v51 = uextend.i64 v46 98;; @0091 v95 = load.i64 notrap aligned readonly can_move v0+8 99;; @0091 v52 = load.i64 notrap aligned readonly can_move v95+32 100;; @0091 v53 = iadd v52, v51 101;; @0091 v54 = load.i32 notrap aligned v53 102;; @0091 v55 = iconst.i32 2 103;; @0091 v56 = band v54, v55 ; v55 = 2 104;; @0091 brif v56, block7, block6 105;; 106;; block6: 107;; @0091 v58 = load.i64 notrap aligned readonly v0+32 108;; @0091 v59 = load.i32 notrap aligned v58 109;; @0091 v60 = uextend.i64 v46 110;; @0091 v93 = load.i64 notrap aligned readonly can_move v0+8 111;; @0091 v61 = load.i64 notrap aligned readonly can_move v93+32 112;; @0091 v62 = iadd v61, v60 113;; @0091 v63 = iconst.i64 16 114;; @0091 v64 = iadd v62, v63 ; v63 = 16 115;; @0091 store notrap aligned v59, v64 116;; @0091 v65 = iconst.i32 2 117;; @0091 v66 = bor.i32 v54, v65 ; v65 = 2 118;; @0091 v67 = uextend.i64 v46 119;; @0091 v91 = load.i64 notrap aligned readonly can_move v0+8 120;; @0091 v68 = load.i64 notrap aligned readonly can_move v91+32 121;; @0091 v69 = iadd v68, v67 122;; @0091 store notrap aligned v66, v69 123;; @0091 v70 = uextend.i64 v46 124;; @0091 v89 = load.i64 notrap aligned readonly can_move v0+8 125;; @0091 v71 = load.i64 notrap aligned readonly can_move v89+32 126;; @0091 v72 = iadd v71, v70 127;; @0091 v73 = iconst.i64 8 128;; @0091 v74 = iadd v72, v73 ; v73 = 8 129;; @0091 v75 = load.i64 notrap aligned v74 130;; v88 = iconst.i64 1 131;; @0091 v76 = iadd v75, v88 ; v88 = 1 132;; @0091 v77 = uextend.i64 v46 133;; @0091 v86 = load.i64 notrap aligned readonly can_move v0+8 134;; @0091 v78 = load.i64 notrap aligned readonly can_move v86+32 135;; @0091 v79 = iadd v78, v77 136;; @0091 v80 = iconst.i64 8 137;; @0091 v81 = iadd v79, v80 ; v80 = 8 138;; @0091 store notrap aligned v76, v81 139;; @0091 store.i32 notrap aligned v46, v58 140;; @0091 jump block7 141;; 142;; block7: 143;; @0093 v83 = load.i64 notrap aligned table v0+112 144;; @0095 v85 = load.i64 notrap aligned table v0+128 145;; @0097 jump block1 146;; 147;; block1: 148;; @0097 return v8, v46, v83, v85 149;; } 150