Cranelift: Add .wat to assembly test support and generate Wasm load/store tests for all ISAs (#5439)
* cranelift-filetest: Add the ability to test `.wat` to assembly * Make the load/store test case generator script use `.wat` tests And generate tests that exercise both Wasm-to-CLIF lowering and Wasm all the way to assembly. * Remove old versions of generated load/store tests * Add new generated load/store tests * Fix filename reference in script
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w7, w0
|
||||
;; ldr x8, [x2, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w7, w0
|
||||
;; ldr x8, [x1, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2, #8]
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; str w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1, #8]
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65531
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; str w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65531
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldr w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x2, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x1, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2, #8]
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; strb w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1, #8]
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldrb w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65534
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; strb w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65534
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldrb w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; ldr x11, [x2, #8]
|
||||
;; sub x11, x11, #4
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x10, x11
|
||||
;; csel x12, x9, x12, hi
|
||||
;; csdb
|
||||
;; str w1, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; ldr x11, [x1, #8]
|
||||
;; sub x11, x11, #4
|
||||
;; ldr x12, [x1]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x10, x11
|
||||
;; csel x12, x9, x12, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x2, #8]
|
||||
;; movn x11, #4099
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x2]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; str w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x1, #8]
|
||||
;; movn x11, #4099
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x1]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65531
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x2, #8]
|
||||
;; ldr x2, [x2]
|
||||
;; add x0, x2, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; str w1, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65531
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x1, #8]
|
||||
;; ldr x1, [x1]
|
||||
;; add x0, x1, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2, #8]
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, x0, UXTW
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x9, x10
|
||||
;; csel x11, x8, x11, hs
|
||||
;; csdb
|
||||
;; strb w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1, #8]
|
||||
;; ldr x11, [x1]
|
||||
;; add x11, x11, x0, UXTW
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x9, x10
|
||||
;; csel x11, x8, x11, hs
|
||||
;; csdb
|
||||
;; ldrb w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x2, #8]
|
||||
;; movn x11, #4096
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x2]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; strb w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x1, #8]
|
||||
;; movn x11, #4096
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x1]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65534
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x2, #8]
|
||||
;; ldr x2, [x2]
|
||||
;; add x0, x2, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; strb w1, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65534
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x1, #8]
|
||||
;; ldr x1, [x1]
|
||||
;; add x0, x1, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w7, w0
|
||||
;; ldr x8, [x2, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w7, w0
|
||||
;; ldr x8, [x1, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2, #8]
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; str w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1, #8]
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65531
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; str w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65531
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldr w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x2, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x1, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2, #8]
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; strb w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1, #8]
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldrb w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65534
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; strb w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; movn w9, #65534
|
||||
;; adds x11, x10, x9
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldrb w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; ldr x11, [x2, #8]
|
||||
;; sub x11, x11, #4
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x10, x11
|
||||
;; csel x12, x9, x12, hi
|
||||
;; csdb
|
||||
;; str w1, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w10, w0
|
||||
;; ldr x11, [x1, #8]
|
||||
;; sub x11, x11, #4
|
||||
;; ldr x12, [x1]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x10, x11
|
||||
;; csel x12, x9, x12, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x2, #8]
|
||||
;; movn x11, #4099
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x2]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; str w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x1, #8]
|
||||
;; movn x11, #4099
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x1]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65531
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x2, #8]
|
||||
;; ldr x2, [x2]
|
||||
;; add x0, x2, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; str w1, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65531
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x1, #8]
|
||||
;; ldr x1, [x1]
|
||||
;; add x0, x1, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2, #8]
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, x0, UXTW
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x9, x10
|
||||
;; csel x11, x8, x11, hs
|
||||
;; csdb
|
||||
;; strb w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1, #8]
|
||||
;; ldr x11, [x1]
|
||||
;; add x11, x11, x0, UXTW
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x9, x10
|
||||
;; csel x11, x8, x11, hs
|
||||
;; csdb
|
||||
;; ldrb w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,76 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x2, #8]
|
||||
;; movn x11, #4096
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x2]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; strb w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w12, w0
|
||||
;; ldr x13, [x1, #8]
|
||||
;; movn x11, #4096
|
||||
;; add x13, x13, x11
|
||||
;; ldr x14, [x1]
|
||||
;; add x14, x14, x0, UXTW
|
||||
;; add x14, x14, #4096
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x12, x13
|
||||
;; csel x14, x11, x14, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,80 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65534
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x2, #8]
|
||||
;; ldr x2, [x2]
|
||||
;; add x0, x2, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; strb w1, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w13, w0
|
||||
;; movn w12, #65534
|
||||
;; adds x14, x13, x12
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x15, [x1, #8]
|
||||
;; ldr x1, [x1]
|
||||
;; add x0, x1, x0, UXTW
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x0, x0, x13
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x14, x15
|
||||
;; csel x0, x13, x0, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x0]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x6, [x2, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x6, [x1, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2, #8]
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; str w1, [x11, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1, #8]
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldr w0, [x9, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w8, #65531
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; str w1, [x13, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w8, #65531
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldr w0, [x11, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x5, [x2, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2, #8]
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; strb w1, [x11, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1, #8]
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldrb w0, [x9, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w8, #65534
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; strb w1, [x13, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w8, #65534
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldrb w0, [x11, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x9, [x2, #8]
|
||||
;; sub x9, x9, #4
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x0, x9
|
||||
;; csel x11, x8, x10, hi
|
||||
;; csdb
|
||||
;; str w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x9, [x1, #8]
|
||||
;; sub x9, x9, #4
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x0, x9
|
||||
;; csel x11, x8, x10, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x11, [x2, #8]
|
||||
;; movn x10, #4099
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; str w1, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x11, [x1, #8]
|
||||
;; movn x10, #4099
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x1]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w11, #65531
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x2, #8]
|
||||
;; ldr x15, [x2]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; str w1, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w11, #65531
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x1, #8]
|
||||
;; ldr x15, [x1]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2, #8]
|
||||
;; ldr x9, [x2]
|
||||
;; add x9, x9, x0
|
||||
;; movz x7, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x10, x7, x9, hs
|
||||
;; csdb
|
||||
;; strb w1, [x10]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1, #8]
|
||||
;; ldr x9, [x1]
|
||||
;; add x9, x9, x0
|
||||
;; movz x7, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x10, x7, x9, hs
|
||||
;; csdb
|
||||
;; ldrb w0, [x10]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x11, [x2, #8]
|
||||
;; movn x10, #4096
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; strb w1, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x11, [x1, #8]
|
||||
;; movn x10, #4096
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x1]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w11, #65534
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x2, #8]
|
||||
;; ldr x15, [x2]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; strb w1, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w11, #65534
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x1, #8]
|
||||
;; ldr x15, [x1]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x6, [x2, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x6, [x1, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2, #8]
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; str w1, [x11, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1, #8]
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldr w0, [x9, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w8, #65531
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; str w1, [x13, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w8, #65531
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldr w0, [x11, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x5, [x2, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2, #8]
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; strb w1, [x11, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1, #8]
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldrb w0, [x9, x10]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w8, #65534
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; strb w1, [x13, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w8, #65534
|
||||
;; adds x10, x0, x8
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldrb w0, [x11, x12]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x9, [x2, #8]
|
||||
;; sub x9, x9, #4
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x0, x9
|
||||
;; csel x11, x8, x10, hi
|
||||
;; csdb
|
||||
;; str w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x9, [x1, #8]
|
||||
;; sub x9, x9, #4
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0
|
||||
;; movz x8, #0
|
||||
;; subs xzr, x0, x9
|
||||
;; csel x11, x8, x10, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x11, [x2, #8]
|
||||
;; movn x10, #4099
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; str w1, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x11, [x1, #8]
|
||||
;; movn x10, #4099
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x1]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w11, #65531
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x2, #8]
|
||||
;; ldr x15, [x2]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; str w1, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w11, #65531
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x1, #8]
|
||||
;; ldr x15, [x1]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2, #8]
|
||||
;; ldr x9, [x2]
|
||||
;; add x9, x9, x0
|
||||
;; movz x7, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x10, x7, x9, hs
|
||||
;; csdb
|
||||
;; strb w1, [x10]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1, #8]
|
||||
;; ldr x9, [x1]
|
||||
;; add x9, x9, x0
|
||||
;; movz x7, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x10, x7, x9, hs
|
||||
;; csdb
|
||||
;; ldrb w0, [x10]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x11, [x2, #8]
|
||||
;; movn x10, #4096
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; strb w1, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x11, [x1, #8]
|
||||
;; movn x10, #4096
|
||||
;; add x12, x11, x10
|
||||
;; ldr x11, [x1]
|
||||
;; add x11, x11, x0
|
||||
;; add x11, x11, #4096
|
||||
;; movz x10, #0
|
||||
;; subs xzr, x0, x12
|
||||
;; csel x13, x10, x11, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x13]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,78 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movn w11, #65534
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x2, #8]
|
||||
;; ldr x15, [x2]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; strb w1, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movn w11, #65534
|
||||
;; adds x13, x0, x11
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x14, [x1, #8]
|
||||
;; ldr x15, [x1]
|
||||
;; add x15, x15, x0
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x15, x15, x12
|
||||
;; movz x12, #0
|
||||
;; subs xzr, x13, x14
|
||||
;; csel x15, x12, x15, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435452
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435452
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w8, w0
|
||||
;; movz w9, #61436
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, #4096
|
||||
;; str w1, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w8, w0
|
||||
;; movz w9, #61436
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x10, #4096
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435455
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435455
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w8, w0
|
||||
;; movz w9, #61439
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, #4096
|
||||
;; strb w1, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w8, w0
|
||||
;; movz w9, #61439
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x10, #4096
|
||||
;; ldrb w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0, UXTW
|
||||
;; orr x7, xzr, #268435452
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x9, x7
|
||||
;; csel x12, x11, x10, hi
|
||||
;; csdb
|
||||
;; str w1, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0, UXTW
|
||||
;; orr x7, xzr, #268435452
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x9, x7
|
||||
;; csel x12, x11, x10, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w11, w0
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; add x12, x12, #4096
|
||||
;; movz w9, #61436
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x11, x9
|
||||
;; csel x15, x13, x12, hi
|
||||
;; csdb
|
||||
;; str w1, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w11, w0
|
||||
;; ldr x12, [x1]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; add x12, x12, #4096
|
||||
;; movz w9, #61436
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x11, x9
|
||||
;; csel x15, x13, x12, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,68 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0, UXTW
|
||||
;; orr x7, xzr, #268435455
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x9, x7
|
||||
;; csel x12, x11, x10, hi
|
||||
;; csdb
|
||||
;; strb w1, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w9, w0
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0, UXTW
|
||||
;; orr x7, xzr, #268435455
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x9, x7
|
||||
;; csel x12, x11, x10, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x12]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; mov w11, w0
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; add x12, x12, #4096
|
||||
;; movz w9, #61439
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x11, x9
|
||||
;; csel x15, x13, x12, hi
|
||||
;; csdb
|
||||
;; strb w1, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; mov w11, w0
|
||||
;; ldr x12, [x1]
|
||||
;; add x12, x12, x0, UXTW
|
||||
;; add x12, x12, #4096
|
||||
;; movz w9, #61439
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; movz x13, #0
|
||||
;; subs xzr, x11, x9
|
||||
;; csel x15, x13, x12, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x15]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,54 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x4, [x2]
|
||||
;; str w1, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x4, [x1]
|
||||
;; ldr w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,56 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x5, [x2]
|
||||
;; add x5, x5, #4096
|
||||
;; str w1, [x5, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1]
|
||||
;; add x4, x5, #4096
|
||||
;; ldr w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,54 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x4, [x2]
|
||||
;; strb w1, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x4, [x1]
|
||||
;; ldrb w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,56 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x5, [x2]
|
||||
;; add x5, x5, #4096
|
||||
;; strb w1, [x5, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1]
|
||||
;; add x4, x5, #4096
|
||||
;; ldrb w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,54 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x4, [x2]
|
||||
;; str w1, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x4, [x1]
|
||||
;; ldr w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,56 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x5, [x2]
|
||||
;; add x5, x5, #4096
|
||||
;; str w1, [x5, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1]
|
||||
;; add x4, x5, #4096
|
||||
;; ldr w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,54 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x4, [x2]
|
||||
;; strb w1, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x4, [x1]
|
||||
;; ldrb w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,56 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x5, [x2]
|
||||
;; add x5, x5, #4096
|
||||
;; strb w1, [x5, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1]
|
||||
;; add x4, x5, #4096
|
||||
;; ldrb w0, [x4, w0, UXTW]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; str w1, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldr w0, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; str w1, [x10, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldr w0, [x8, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; strb w1, [x10, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldrb w0, [x8, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435452
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; str w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435452
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61436
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; str w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61436
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435455
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; strb w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435455
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61439
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; strb w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61439
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; str w1, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldr w0, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; str w1, [x10, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldr w0, [x8, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; strb w1, [x10, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldrb w0, [x8, x9]
|
||||
;; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435452
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; str w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435452
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61436
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; str w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61436
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; ldr w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,66 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x8, [x2]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435455
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; strb w1, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x8, [x1]
|
||||
;; add x8, x8, x0
|
||||
;; orr x6, xzr, #268435455
|
||||
;; movz x9, #0
|
||||
;; subs xzr, x0, x6
|
||||
;; csel x11, x9, x8, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x11]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,70 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61439
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; strb w1, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x10, [x1]
|
||||
;; add x10, x10, x0
|
||||
;; add x10, x10, #4096
|
||||
;; movz w8, #61439
|
||||
;; movk w8, w8, #4095, LSL #16
|
||||
;; movz x11, #0
|
||||
;; subs xzr, x0, x8
|
||||
;; csel x14, x11, x10, hi
|
||||
;; csdb
|
||||
;; ldrb w0, [x14]
|
||||
;; b label1
|
||||
;; block1:
|
||||
;; ret
|
||||
@@ -0,0 +1,46 @@
|
||||
;;! target = "aarch64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=true']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! # (no heap_bound global for static heaps)
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0xffffffff
|
||||
;;! index_type = "i64"
|
||||
;;! style = { kind = "static", bound = 0x10000000 }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i64 1)
|
||||
|
||||
(func (export "do_store") (param i64 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i64) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; udf #0xc11f
|
||||
@@ -0,0 +1,74 @@
|
||||
;;! target = "riscv64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; uext.w a6,a0
|
||||
;; ld a7,8(a2)
|
||||
;; addi a7,a7,-4
|
||||
;; ule a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a6
|
||||
;; sw a1,0(a7)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; uext.w a6,a0
|
||||
;; ld a7,8(a1)
|
||||
;; addi a7,a7,-4
|
||||
;; ule a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a6
|
||||
;; lw a0,0(a7)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
@@ -0,0 +1,82 @@
|
||||
;;! target = "riscv64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0x1000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0x1000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; uext.w t0,a0
|
||||
;; ld t1,8(a2)
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4092
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; uext.w t0,a0
|
||||
;; ld t1,8(a1)
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4092
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
@@ -0,0 +1,84 @@
|
||||
;;! target = "riscv64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store offset=0xffff0000)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load offset=0xffff0000))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; uext.w t0,a0
|
||||
;; auipc t3,0; ld t3,12(t3); j 12; .8byte 0xffff0004
|
||||
;; add t1,t0,t3
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; uext.w t0,a0
|
||||
;; auipc t3,0; ld t3,12(t3); j 12; .8byte 0xffff0004
|
||||
;; add t1,t0,t3
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
@@ -0,0 +1,72 @@
|
||||
;;! target = "riscv64"
|
||||
;;!
|
||||
;;! settings = ['enable_heap_access_spectre_mitigation=false']
|
||||
;;!
|
||||
;;! compile = true
|
||||
;;!
|
||||
;;! [globals.vmctx]
|
||||
;;! type = "i64"
|
||||
;;! vmctx = true
|
||||
;;!
|
||||
;;! [globals.heap_base]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 0, readonly = true }
|
||||
;;!
|
||||
;;! [globals.heap_bound]
|
||||
;;! type = "i64"
|
||||
;;! load = { base = "vmctx", offset = 8, readonly = true }
|
||||
;;!
|
||||
;;! [[heaps]]
|
||||
;;! base = "heap_base"
|
||||
;;! min_size = 0x10000
|
||||
;;! offset_guard_size = 0
|
||||
;;! index_type = "i32"
|
||||
;;! style = { kind = "dynamic", bound = "heap_bound" }
|
||||
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
;; !!! GENERATED BY 'make-load-store-tests.sh' DO NOT EDIT !!!
|
||||
;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
(module
|
||||
(memory i32 1)
|
||||
|
||||
(func (export "do_store") (param i32 i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
i32.store8 offset=0)
|
||||
|
||||
(func (export "do_load") (param i32) (result i32)
|
||||
local.get 0
|
||||
i32.load8_u offset=0))
|
||||
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; uext.w a5,a0
|
||||
;; ld a6,8(a2)
|
||||
;; ult a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a5
|
||||
;; sb a1,0(a6)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; uext.w a5,a0
|
||||
;; ld a6,8(a1)
|
||||
;; ult a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a5
|
||||
;; lbu a0,0(a6)
|
||||
;; j label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user