summaryrefslogtreecommitdiff
path: root/test/lit/merge
diff options
context:
space:
mode:
authorSébastien Doeraene <sjrdoeraene@gmail.com>2024-08-21 00:43:25 +0200
committerGitHub <noreply@github.com>2024-08-20 15:43:25 -0700
commit340ad71810484c279b1a36a9a7e458c9b18855b9 (patch)
tree4167b08dea6f5ffcdb975d90eb6f3c7925f628e0 /test/lit/merge
parent2c9c74d8b64e1776c6c374af8631995b0be606f1 (diff)
downloadbinaryen-340ad71810484c279b1a36a9a7e458c9b18855b9.tar.gz
binaryen-340ad71810484c279b1a36a9a7e458c9b18855b9.tar.bz2
binaryen-340ad71810484c279b1a36a9a7e458c9b18855b9.zip
[Exceptions] Finish interpreter + optimizer support for try_table. (#6814)
* Add interpreter support for exnref values. * Fix optimization passes to support try_table. * Enable the interpreter (but not in V8, see code) on exceptions.
Diffstat (limited to 'test/lit/merge')
-rw-r--r--test/lit/merge/renamings.wat48
-rw-r--r--test/lit/merge/renamings.wat.second16
2 files changed, 64 insertions, 0 deletions
diff --git a/test/lit/merge/renamings.wat b/test/lit/merge/renamings.wat
index c6a22542a..9c54f3514 100644
--- a/test/lit/merge/renamings.wat
+++ b/test/lit/merge/renamings.wat
@@ -160,6 +160,22 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (drop
+ ;; CHECK-NEXT: (block $catch (result i32)
+ ;; CHECK-NEXT: (try_table (catch $foo $catch)
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (drop
+ ;; CHECK-NEXT: (block $catch0 (result i64)
+ ;; CHECK-NEXT: (try_table (catch $bar $catch0)
+ ;; CHECK-NEXT: (nop)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i64.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.load $foo
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -220,6 +236,22 @@
)
)
)
+ (drop
+ (block $catch (result i32)
+ (try_table (catch $foo $catch)
+ (nop)
+ )
+ (i32.const 0)
+ )
+ )
+ (drop
+ (block $catch (result i64)
+ (try_table (catch $bar $catch)
+ (nop)
+ )
+ (i64.const 0)
+ )
+ )
;; Memories
(drop
@@ -310,6 +342,22 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (block $catch (result f32)
+;; CHECK-NEXT: (try_table (catch $foo_2 $catch)
+;; CHECK-NEXT: (nop)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (block $catch0 (result f64)
+;; CHECK-NEXT: (try_table (catch $other $catch0)
+;; CHECK-NEXT: (nop)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f64.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.load $foo_2
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
diff --git a/test/lit/merge/renamings.wat.second b/test/lit/merge/renamings.wat.second
index 25d3d5e81..c17b00cc5 100644
--- a/test/lit/merge/renamings.wat.second
+++ b/test/lit/merge/renamings.wat.second
@@ -70,6 +70,22 @@
)
)
)
+ (drop
+ (block $catch (result f32)
+ (try_table (catch $foo $catch)
+ (nop)
+ )
+ (f32.const 0.0)
+ )
+ )
+ (drop
+ (block $catch (result f64)
+ (try_table (catch $other $catch)
+ (nop)
+ )
+ (f64.const 0.0)
+ )
+ )
;; Memories
(drop