1;;! target = "x86_64" 2;;! test = "winch" 3(module 4 (table $t3 3 funcref) 5 (elem (table $t3) (i32.const 1) func $dummy) 6 (func $dummy) 7 (func $f3 (export "get-funcref") (param $i i32) (result funcref) 8 (table.get $t3 (local.get $i)) 9 ) 10) 11 12 13;; wasm[0]::function[0]::dummy: 14;; pushq %rbp 15;; movq %rsp, %rbp 16;; movq 8(%rdi), %r11 17;; movq 0x18(%r11), %r11 18;; addq $0x10, %r11 19;; cmpq %rsp, %r11 20;; ja 0x38 21;; 1c: movq %rdi, %r14 22;; subq $0x10, %rsp 23;; movq %rdi, 8(%rsp) 24;; movq %rsi, (%rsp) 25;; addq $0x10, %rsp 26;; popq %rbp 27;; retq 28;; 38: ud2 29;; 30;; wasm[0]::function[1]::f3: 31;; pushq %rbp 32;; movq %rsp, %rbp 33;; movq 8(%rdi), %r11 34;; movq 0x18(%r11), %r11 35;; addq $0x30, %r11 36;; cmpq %rsp, %r11 37;; ja 0x10e 38;; 5c: movq %rdi, %r14 39;; subq $0x20, %rsp 40;; movq %rdi, 0x18(%rsp) 41;; movq %rsi, 0x10(%rsp) 42;; movl %edx, 0xc(%rsp) 43;; movl 0xc(%rsp), %r11d 44;; subq $4, %rsp 45;; movl %r11d, (%rsp) 46;; movl (%rsp), %ecx 47;; addq $4, %rsp 48;; movq %r14, %rdx 49;; movq 0x38(%rdx), %rbx 50;; cmpq %rbx, %rcx 51;; jae 0x110 52;; 9e: movq %rcx, %r11 53;; imulq $8, %r11, %r11 54;; movq 0x30(%rdx), %rdx 55;; movq %rdx, %rsi 56;; addq %r11, %rdx 57;; cmpq %rbx, %rcx 58;; cmovaeq %rsi, %rdx 59;; movq (%rdx), %rax 60;; testq %rax, %rax 61;; jne 0xff 62;; c5: subq $4, %rsp 63;; movl %ecx, (%rsp) 64;; subq $0xc, %rsp 65;; movq %r14, %rdi 66;; movl $0, %esi 67;; movl 0xc(%rsp), %edx 68;; callq 0x2e6 69;; addq $0xc, %rsp 70;; addq $4, %rsp 71;; movq 0x18(%rsp), %r14 72;; jmp 0x105 73;; ff: andq $0xfffffffffffffffe, %rax 74;; addq $0x20, %rsp 75;; popq %rbp 76;; retq 77;; 10e: ud2 78;; 110: ud2 79