;;; TOOL: run-objdump
;;; ARGS0: -v --debug-names --enable-extended-const
;;; ARGS1: -x
(type $type1 (func (param i32)))
(global $g_import (import "foo" "bar") i32)
(table 1 funcref)
(memory 1 1)
(data (i32.add (global.get $g_import) (i32.const 42)) "hello")
(elem (i32.mul (i32.const 4) (global.get $g_import)) func 0)
(global (mut i32) (i32.sub (i32.const 44) (i32.const 3)))
(global i32 (i32.const 45))
(func)
(;; STDERR ;;;
0000000: 0061 736d                                 ; WASM_BINARY_MAGIC
0000004: 0100 0000                                 ; WASM_BINARY_VERSION
; section "Type" (1)
0000008: 01                                        ; section code
0000009: 00                                        ; section size (guess)
000000a: 02                                        ; num types
; func type 0
000000b: 60                                        ; func
000000c: 01                                        ; num params
000000d: 7f                                        ; i32
000000e: 00                                        ; num results
; func type 1
000000f: 60                                        ; func
0000010: 00                                        ; num params
0000011: 00                                        ; num results
0000009: 08                                        ; FIXUP section size
; section "Import" (2)
0000012: 02                                        ; section code
0000013: 00                                        ; section size (guess)
0000014: 01                                        ; num imports
; import header 0
0000015: 03                                        ; string length
0000016: 666f 6f                                  foo  ; import module name
0000019: 03                                        ; string length
000001a: 6261 72                                  bar  ; import field name
000001d: 03                                        ; import kind
000001e: 7f                                        ; i32
000001f: 00                                        ; global mutability
0000013: 0c                                        ; FIXUP section size
; section "Function" (3)
0000020: 03                                        ; section code
0000021: 00                                        ; section size (guess)
0000022: 01                                        ; num functions
0000023: 01                                        ; function 0 signature index
0000021: 02                                        ; FIXUP section size
; section "Table" (4)
0000024: 04                                        ; section code
0000025: 00                                        ; section size (guess)
0000026: 01                                        ; num tables
; table 0
0000027: 70                                        ; funcref
0000028: 00                                        ; limits: flags
0000029: 01                                        ; limits: initial
0000025: 04                                        ; FIXUP section size
; section "Memory" (5)
000002a: 05                                        ; section code
000002b: 00                                        ; section size (guess)
000002c: 01                                        ; num memories
; memory 0
000002d: 01                                        ; limits: flags
000002e: 01                                        ; limits: initial
000002f: 01                                        ; limits: max
000002b: 04                                        ; FIXUP section size
; section "Global" (6)
0000030: 06                                        ; section code
0000031: 00                                        ; section size (guess)
0000032: 02                                        ; num globals
0000033: 7f                                        ; i32
0000034: 01                                        ; global mutability
0000035: 41                                        ; i32.const
0000036: 2c                                        ; i32 literal
0000037: 41                                        ; i32.const
0000038: 03                                        ; i32 literal
0000039: 6b                                        ; i32.sub
000003a: 0b                                        ; end
000003b: 7f                                        ; i32
000003c: 00                                        ; global mutability
000003d: 41                                        ; i32.const
000003e: 2d                                        ; i32 literal
000003f: 0b                                        ; end
0000031: 0e                                        ; FIXUP section size
; section "Elem" (9)
0000040: 09                                        ; section code
0000041: 00                                        ; section size (guess)
0000042: 01                                        ; num elem segments
; elem segment header 0
0000043: 00                                        ; segment flags
0000044: 41                                        ; i32.const
0000045: 04                                        ; i32 literal
0000046: 23                                        ; global.get
0000047: 00                                        ; global index
0000048: 6c                                        ; i32.mul
0000049: 0b                                        ; end
000004a: 01                                        ; num elems
000004b: 00                                        ; elem function index
0000041: 0a                                        ; FIXUP section size
; section "DataCount" (12)
000004c: 0c                                        ; section code
000004d: 00                                        ; section size (guess)
000004e: 01                                        ; data count
000004d: 01                                        ; FIXUP section size
; section "Code" (10)
000004f: 0a                                        ; section code
0000050: 00                                        ; section size (guess)
0000051: 01                                        ; num functions
; function body 0
0000052: 00                                        ; func body size (guess)
0000053: 00                                        ; local decl count
0000054: 0b                                        ; end
0000052: 02                                        ; FIXUP func body size
0000050: 04                                        ; FIXUP section size
; move data: [4f, 55) -> [4c, 52)
; truncate to 82 (0x52)
; section "Data" (11)
0000052: 0b                                        ; section code
0000053: 00                                        ; section size (guess)
0000054: 01                                        ; num data segments
; data segment header 0
0000055: 00                                        ; segment flags
0000056: 23                                        ; global.get
0000057: 00                                        ; global index
0000058: 41                                        ; i32.const
0000059: 2a                                        ; i32 literal
000005a: 6a                                        ; i32.add
000005b: 0b                                        ; end
000005c: 05                                        ; data segment size
; data segment data 0
000005d: 6865 6c6c 6f                              ; data segment data
0000053: 0e                                        ; FIXUP section size
; section "name"
0000062: 00                                        ; section code
0000063: 00                                        ; section size (guess)
0000064: 04                                        ; string length
0000065: 6e61 6d65                                name  ; custom section name
0000069: 02                                        ; local name type
000006a: 00                                        ; subsection size (guess)
000006b: 01                                        ; num functions
000006c: 00                                        ; function index
000006d: 00                                        ; num locals
000006a: 03                                        ; FIXUP subsection size
000006e: 04                                        ; name subsection type
000006f: 00                                        ; subsection size (guess)
0000070: 01                                        ; num names
0000071: 00                                        ; elem index
0000072: 05                                        ; string length
0000073: 7479 7065 31                             type1  ; elem name 0
000006f: 08                                        ; FIXUP subsection size
0000078: 07                                        ; name subsection type
0000079: 00                                        ; subsection size (guess)
000007a: 01                                        ; num names
000007b: 00                                        ; elem index
000007c: 08                                        ; string length
000007d: 675f 696d 706f 7274                      g_import  ; elem name 0
0000079: 0b                                        ; FIXUP subsection size
0000063: 21                                        ; FIXUP section size
;;; STDERR ;;)
(;; STDOUT ;;;

extended-const.wasm:	file format wasm 0x1

Section Details:

Type[2]:
 - type[0] (i32) -> nil
 - type[1] () -> nil
Import[1]:
 - global[0] i32 mutable=0 <- foo.bar
Function[1]:
 - func[0] sig=1
Table[1]:
 - table[0] type=funcref initial=1
Memory[1]:
 - memory[0] pages: initial=1 max=1
Global[2]:
 - global[1] i32 mutable=1 - init (i32.const 44, i32.const 3, i32.sub)
 - global[2] i32 mutable=0 - init i32=45
Elem[1]:
 - segment[0] flags=0 table=0 count=1 - init (i32.const 4, global.get 0 <g_import>, i32.mul)
  - elem[0] = ref.func:0
Code[1]:
 - func[0] size=2
Data[1]:
 - segment[0] memory=0 size=5 - init (global.get 0 <g_import>, i32.const 42, i32.add)
  - 0000000: 6865 6c6c 6f                             hello
Custom:
 - name: "name"
 - type[0] <type1>
 - global[0] <g_import>

Code Disassembly:

000050 func[0]:
 000051: 0b                         | end
;;; STDOUT ;;)
