| ;; Check that the instrumentation is correct when the output memory is 64-bit. |
| ;; This test output cannot be auto-generated because it includes a hash of this |
| ;; file. |
| |
| ;; RUN: wasm-split %s -all --instrument -S -o - | filecheck %s |
| |
| ;; Check that the output round trips and validates as well |
| ;; RUN: wasm-split %s -all --instrument -g -o %t |
| ;; RUN: wasm-opt %t -all --print | filecheck %s |
| |
| (module |
| (import "env" "foo" (func $foo)) |
| (export "bar" (func $bar)) |
| |
| (memory $mem i64 1 1) |
| |
| (func $bar |
| (call $foo) |
| ) |
| (func $baz (param i32) (result i32) |
| (local.get 0) |
| ) |
| ) |
| |
| ;; Check that the $addr parameter is an i64. |
| |
| ;; CHECK: (func $__write_profile (type $2) (param $addr i64) (param $size i32) (result i32) |
| ;; CHECK-NEXT: (if |
| ;; CHECK-NEXT: (i32.ge_u |
| ;; CHECK-NEXT: (local.get $size) |
| ;; CHECK-NEXT: (i32.const 16) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: (then |
| ;; CHECK-NEXT: (i64.store align=1 |
| ;; CHECK-NEXT: (local.get $addr) |
| ;; CHECK-NEXT: (i64.const {{.*}}) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: (i32.store offset=8 align=1 |
| ;; CHECK-NEXT: (local.get $addr) |
| ;; CHECK-NEXT: (global.get $bar_timestamp) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: (i32.store offset=12 align=1 |
| ;; CHECK-NEXT: (local.get $addr) |
| ;; CHECK-NEXT: (global.get $baz_timestamp) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: (i32.const 16) |
| ;; CHECK-NEXT: ) |