Commit 393d0f79 authored by Thomas Lively's avatar Thomas Lively
Browse files

[WebAssembly] Allow multivalue signatures in object files

Summary:
Also changes the wasm YAML format to reflect the possibility of having
multiple return types and to put the returns after the params for
consistency with the binary encoding.

Reviewers: aheejin, sbc100

Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, arphaman, rupprecht, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69156

llvm-svn: 375283
parent c6921379
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5,8 +5,9 @@ Sections:
  - Type:            TYPE
    Signatures:
      - Index:           0
        ReturnType:      I64
        ParamTypes:
        ReturnTypes:
          - I64
  - Type:            FUNCTION
    FunctionTypes:   [ 0 ]
  - Type:            GLOBAL
+2 −1
Original line number Diff line number Diff line
@@ -5,8 +5,9 @@ Sections:
  - Type:            TYPE
    Signatures:
      - Index:           0
        ReturnType:      I64
        ParamTypes:
        ReturnTypes:
          - I64
  - Type:            IMPORT
    Imports:
      - Module:          env
+1 −1
Original line number Diff line number Diff line
@@ -19,8 +19,8 @@ entry:
; CHECK-NEXT:   - Type:            TYPE
; CHECK-NEXT:     Signatures:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         ReturnType:      NORESULT
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:         ReturnTypes:     []
; CHECK-NEXT:   - Type:            FUNCTION
; CHECK-NEXT:     FunctionTypes:   [ 0 ]
; CHECK-NEXT:   - Type:            TABLE
+8 −5
Original line number Diff line number Diff line
@@ -40,22 +40,25 @@ define void @call_ptr(i64 (i64)* %arg) {
; CHECK-NEXT:   - Type:            TYPE
; CHECK-NEXT:     Signatures:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         ReturnType:      I64
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:         ReturnTypes:
; CHECK-NEXT:           - I64
; CHECK-NEXT:       - Index:           1
; CHECK-NEXT:         ReturnType:      I32
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:         ReturnTypes:
; CHECK-NEXT:           - I32
; CHECK-NEXT:       - Index:           2
; CHECK-NEXT:         ReturnType:      I64
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:           - I64
; CHECK-NEXT:         ReturnTypes:
; CHECK-NEXT:           - I64
; CHECK-NEXT:       - Index:           3
; CHECK-NEXT:         ReturnType:      NORESULT
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:         ReturnTypes:     []
; CHECK-NEXT:       - Index:           4
; CHECK-NEXT:         ReturnType:      NORESULT
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:           - I32
; CHECK-NEXT:         ReturnTypes:     []
; CHECK-NEXT:   - Type:            FUNCTION
; CHECK-NEXT:     FunctionTypes:   [ 0, 3, 1, 3, 4 ]
; CHECK-NEXT:   - Type:            TABLE
+2 −2
Original line number Diff line number Diff line
@@ -20,12 +20,12 @@ define void @_start() {
; CHECK-NEXT:   - Type:            TYPE
; CHECK-NEXT:     Signatures:
; CHECK-NEXT:       - Index:           0
; CHECK-NEXT:         ReturnType:      NORESULT
; CHECK-NEXT:         ParamTypes:      []
; CHECK-NEXT:         ReturnTypes:     []
; CHECK-NEXT:       - Index:           1
; CHECK-NEXT:         ReturnType:      NORESULT
; CHECK-NEXT:         ParamTypes:
; CHECK-NEXT:           - I32
; CHECK-NEXT:         ReturnTypes:     []

; CHECK:        - Type:            EVENT
; CHECK-NEXT:     Events:
Loading