hello.wat 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. ;; Copyright (C) 2019 Intel Corporation. All rights reserved.
  2. ;; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  3. (module
  4. (type $t0 (func (param i32 externref) (result i32)))
  5. (import "env" "native-cmp-externref"
  6. (func $native-cmp-externref (param externref externref) (result i32))
  7. )
  8. (import "env" "native-chk-externref"
  9. (func $native-chk-externref (param i32 externref) (result i32))
  10. )
  11. (table $t1 8 8 externref)
  12. (table $t2 funcref
  13. (elem
  14. $native-cmp-externref
  15. $native-chk-externref
  16. )
  17. )
  18. (func (export "set-externref") (param $i i32) (param $r externref)
  19. (table.set $t1 (local.get $i) (local.get $r))
  20. )
  21. (func (export "get-externref") (param $i i32) (result externref)
  22. (table.get $t1 (local.get $i))
  23. )
  24. (func (export "cmp-externref") (param $i i32) (param $r externref) (result i32)
  25. (table.get $t1 (local.get $i))
  26. (local.get $r)
  27. (call $native-cmp-externref)
  28. )
  29. (func (export "chk-externref") (param $i i32) (param $r externref) (result i32)
  30. (call_indirect $t2 (type $t0)
  31. (local.get $i)
  32. (local.get $r)
  33. (i32.const 1)
  34. )
  35. )
  36. )