diff options
author | Sébastien Doeraene <sjrdoeraene@gmail.com> | 2024-08-21 00:43:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-20 15:43:25 -0700 |
commit | 340ad71810484c279b1a36a9a7e458c9b18855b9 (patch) | |
tree | 4167b08dea6f5ffcdb975d90eb6f3c7925f628e0 /test/lit/merge | |
parent | 2c9c74d8b64e1776c6c374af8631995b0be606f1 (diff) | |
download | binaryen-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.wat | 48 | ||||
-rw-r--r-- | test/lit/merge/renamings.wat.second | 16 |
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 |