diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/instrument-memory.txt | 453 | ||||
-rw-r--r-- | test/passes/instrument-memory.wast | 58 |
2 files changed, 511 insertions, 0 deletions
diff --git a/test/passes/instrument-memory.txt b/test/passes/instrument-memory.txt new file mode 100644 index 000000000..dd2e876d0 --- /dev/null +++ b/test/passes/instrument-memory.txt @@ -0,0 +1,453 @@ +(module + (type $1 (func)) + (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) + (import "instrument" "load" (func $load (param i32 i32 i32 i32) (result i32))) + (import "instrument" "store" (func $store (param i32 i32 i32 i32) (result i32))) + (memory $0 256 256) + (func $A (type $1) + (drop + (i32.load8_s + (call $load + (i32.const 0) + (i32.const 1) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i32.load8_u + (call $load + (i32.const 1) + (i32.const 1) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i32.load16_s + (call $load + (i32.const 2) + (i32.const 2) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i32.load16_u + (call $load + (i32.const 3) + (i32.const 2) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i32.load + (call $load + (i32.const 4) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load8_s + (call $load + (i32.const 5) + (i32.const 1) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load8_u + (call $load + (i32.const 6) + (i32.const 1) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load16_s + (call $load + (i32.const 7) + (i32.const 2) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load16_u + (call $load + (i32.const 8) + (i32.const 2) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load32_s + (call $load + (i32.const 9) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load32_u + (call $load + (i32.const 10) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i64.load + (call $load + (i32.const 11) + (i32.const 8) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (f32.load + (call $load + (i32.const 12) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (f64.load + (call $load + (i32.const 13) + (i32.const 8) + (i32.const 0) + (i32.const 0) + ) + ) + ) + (drop + (i32.load8_s offset=1 + (call $load + (i32.const 14) + (i32.const 1) + (i32.const 1) + (i32.const 0) + ) + ) + ) + (drop + (i32.load8_u offset=2 + (call $load + (i32.const 15) + (i32.const 1) + (i32.const 2) + (i32.const 0) + ) + ) + ) + (drop + (i32.load16_s offset=3 align=1 + (call $load + (i32.const 16) + (i32.const 2) + (i32.const 3) + (i32.const 0) + ) + ) + ) + (drop + (i32.load16_u offset=4 align=1 + (call $load + (i32.const 17) + (i32.const 2) + (i32.const 4) + (i32.const 0) + ) + ) + ) + (drop + (i32.load offset=5 align=2 + (call $load + (i32.const 18) + (i32.const 4) + (i32.const 5) + (i32.const 0) + ) + ) + ) + (drop + (i64.load8_s offset=6 + (call $load + (i32.const 19) + (i32.const 1) + (i32.const 6) + (i32.const 0) + ) + ) + ) + (drop + (i64.load8_u offset=7 + (call $load + (i32.const 20) + (i32.const 1) + (i32.const 7) + (i32.const 0) + ) + ) + ) + (drop + (i64.load16_s offset=8 align=1 + (call $load + (i32.const 21) + (i32.const 2) + (i32.const 8) + (i32.const 0) + ) + ) + ) + (drop + (i64.load16_u offset=9 align=1 + (call $load + (i32.const 22) + (i32.const 2) + (i32.const 9) + (i32.const 0) + ) + ) + ) + (drop + (i64.load32_s offset=10 align=2 + (call $load + (i32.const 23) + (i32.const 4) + (i32.const 10) + (i32.const 0) + ) + ) + ) + (drop + (i64.load32_u offset=11 align=2 + (call $load + (i32.const 24) + (i32.const 4) + (i32.const 11) + (i32.const 0) + ) + ) + ) + (drop + (i64.load offset=12 align=2 + (call $load + (i32.const 25) + (i32.const 8) + (i32.const 12) + (i32.const 0) + ) + ) + ) + (drop + (f32.load offset=13 align=2 + (call $load + (i32.const 26) + (i32.const 4) + (i32.const 13) + (i32.const 0) + ) + ) + ) + (drop + (f64.load offset=14 align=2 + (call $load + (i32.const 27) + (i32.const 8) + (i32.const 14) + (i32.const 0) + ) + ) + ) + ) + (func $B (type $1) + (i32.store8 + (call $store + (i32.const 28) + (i32.const 1) + (i32.const 0) + (i32.const 0) + ) + (i32.const 1) + ) + (i32.store16 + (call $store + (i32.const 29) + (i32.const 2) + (i32.const 0) + (i32.const 0) + ) + (i32.const 2) + ) + (i32.store + (call $store + (i32.const 30) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + (i32.const 3) + ) + (i64.store8 + (call $store + (i32.const 31) + (i32.const 1) + (i32.const 0) + (i32.const 0) + ) + (i64.const 4) + ) + (i64.store16 + (call $store + (i32.const 32) + (i32.const 2) + (i32.const 0) + (i32.const 0) + ) + (i64.const 5) + ) + (i64.store32 + (call $store + (i32.const 33) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + (i64.const 6) + ) + (i64.store + (call $store + (i32.const 34) + (i32.const 8) + (i32.const 0) + (i32.const 0) + ) + (i64.const 7) + ) + (f32.store + (call $store + (i32.const 35) + (i32.const 4) + (i32.const 0) + (i32.const 0) + ) + (f32.const 8) + ) + (f64.store + (call $store + (i32.const 36) + (i32.const 8) + (i32.const 0) + (i32.const 0) + ) + (f64.const 9) + ) + (i32.store8 offset=1 + (call $store + (i32.const 37) + (i32.const 1) + (i32.const 1) + (i32.const 0) + ) + (i32.const 1) + ) + (i32.store16 offset=2 align=1 + (call $store + (i32.const 38) + (i32.const 2) + (i32.const 2) + (i32.const 0) + ) + (i32.const 2) + ) + (i32.store offset=3 align=2 + (call $store + (i32.const 39) + (i32.const 4) + (i32.const 3) + (i32.const 0) + ) + (i32.const 3) + ) + (i64.store8 offset=4 + (call $store + (i32.const 40) + (i32.const 1) + (i32.const 4) + (i32.const 0) + ) + (i64.const 4) + ) + (i64.store16 offset=5 + (call $store + (i32.const 41) + (i32.const 2) + (i32.const 5) + (i32.const 0) + ) + (i64.const 5) + ) + (i64.store32 offset=6 align=2 + (call $store + (i32.const 42) + (i32.const 4) + (i32.const 6) + (i32.const 0) + ) + (i64.const 6) + ) + (i64.store offset=7 align=2 + (call $store + (i32.const 43) + (i32.const 8) + (i32.const 7) + (i32.const 0) + ) + (i64.const 7) + ) + (f32.store offset=8 align=2 + (call $store + (i32.const 44) + (i32.const 4) + (i32.const 8) + (i32.const 0) + ) + (f32.const 8) + ) + (f64.store offset=9 align=2 + (call $store + (i32.const 45) + (i32.const 8) + (i32.const 9) + (i32.const 0) + ) + (f64.const 9) + ) + ) +) diff --git a/test/passes/instrument-memory.wast b/test/passes/instrument-memory.wast new file mode 100644 index 000000000..7f92de9cd --- /dev/null +++ b/test/passes/instrument-memory.wast @@ -0,0 +1,58 @@ +(module + (memory 256 256) + (type $1 (func)) + (func $A (type $1) + (drop (i32.load8_s (i32.const 0))) + (drop (i32.load8_u (i32.const 0))) + (drop (i32.load16_s (i32.const 0))) + (drop (i32.load16_u (i32.const 0))) + (drop (i32.load (i32.const 0))) + (drop (i64.load8_s (i32.const 0))) + (drop (i64.load8_u (i32.const 0))) + (drop (i64.load16_s (i32.const 0))) + (drop (i64.load16_u (i32.const 0))) + (drop (i64.load32_s (i32.const 0))) + (drop (i64.load32_u (i32.const 0))) + (drop (i64.load (i32.const 0))) + (drop (f32.load (i32.const 0))) + (drop (f64.load (i32.const 0))) + + (drop (i32.load8_s align=1 offset=1 (i32.const 0))) + (drop (i32.load8_u align=1 offset=2 (i32.const 0))) + (drop (i32.load16_s align=1 offset=3 (i32.const 0))) + (drop (i32.load16_u align=1 offset=4 (i32.const 0))) + (drop (i32.load align=2 offset=5 (i32.const 0))) + (drop (i64.load8_s align=1 offset=6 (i32.const 0))) + (drop (i64.load8_u align=1 offset=7 (i32.const 0))) + (drop (i64.load16_s align=1 offset=8 (i32.const 0))) + (drop (i64.load16_u align=1 offset=9 (i32.const 0))) + (drop (i64.load32_s align=2 offset=10 (i32.const 0))) + (drop (i64.load32_u align=2 offset=11 (i32.const 0))) + (drop (i64.load align=2 offset=12 (i32.const 0))) + (drop (f32.load align=2 offset=13 (i32.const 0))) + (drop (f64.load align=2 offset=14 (i32.const 0))) + ) + + (func $B (type $1) + (i32.store8 (i32.const 0) (i32.const 1)) + (i32.store16 (i32.const 0) (i32.const 2)) + (i32.store (i32.const 0) (i32.const 3)) + (i64.store8 (i32.const 0) (i64.const 4)) + (i64.store16 (i32.const 0) (i64.const 5)) + (i64.store326 (i32.const 0) (i64.const 6)) + (i64.store (i32.const 0) (i64.const 7)) + (f32.store (i32.const 0) (f32.const 8)) + (f64.store (i32.const 0) (f64.const 9)) + + (i32.store8 align=1 offset=1 (i32.const 0) (i32.const 1)) + (i32.store16 align=1 offset=2 (i32.const 0) (i32.const 2)) + (i32.store align=2 offset=3 (i32.const 0) (i32.const 3)) + (i64.store8 align=1 offset=4 (i32.const 0) (i64.const 4)) + (i64.store16 align=2 offset=5 (i32.const 0) (i64.const 5)) + (i64.store32 align=2 offset=6 (i32.const 0) (i64.const 6)) + (i64.store align=2 offset=7 (i32.const 0) (i64.const 7)) + (f32.store align=2 offset=8 (i32.const 0) (f32.const 8)) + (f64.store align=2 offset=9 (i32.const 0) (f64.const 9)) + ) +) + |