aboutsummaryrefslogtreecommitdiff
;;; this test is loosely based on wasm_compile_br
(module
 (memory 0 1)
 ;; this function returns -1 if its argument is 10 or 11 and 0 otherwise
 (func $eq10or11 (param $x i32) (result i32)
       (if (result i32)
	   (i32.sub
	    (get_local $x)
	    (i32.const 10))
	 (then
	  (br_if 0 (i32.add (i32.const -3) (i32.const 3))
		 (i32.sub (get_local $x) (i32.const 11)))
	  (i32.const 1)
	  (i32.sub))
	 (else
	  (i32.const -1))))
 (func $main
       ;; write 0x00000000 at MEMORY_BOTTOM_ADDR
       (i32.store offset=0x0 align=4 (i32.const 0x0)
		  (call $eq10or11 (i32.const 12)))
       ;; write 0xFFFFFFFF at MEMORY_BOTTOM_ADDR + 0x4
       (i32.store offset=0x0 align=4 (i32.const 0x4)
		  (call $eq10or11 (i32.const 10)))
       ;; write 0xFFFFFFFF at MEMORY_BOTTOM_ADDR + 0x8
       (i32.store offset=0x0 align=4 (i32.const 0x8)
		  (call $eq10or11 (i32.const 11))))
 (export "main" (func $main)))