| 75 | } |
| 76 | |
| 77 | void encode_const_zero(char*& ptr, const ValType* type) { |
| 78 | switch (type->kind()) { |
| 79 | case ValKind::I32: *ptr++ = 0x41; break; |
| 80 | case ValKind::I64: *ptr++ = 0x42; break; |
| 81 | case ValKind::F32: *ptr++ = 0x43; break; |
| 82 | case ValKind::F64: *ptr++ = 0x44; break; |
| 83 | case ValKind::FUNCREF: *ptr++ = 0xd0; break; |
| 84 | case ValKind::EXTERNREF: *ptr++ = 0xd0; break; |
| 85 | default: assert(false); |
| 86 | } |
| 87 | for (int i = 0; i < zero_size(type); ++i) *ptr++ = 0; |
| 88 | } |
| 89 | |
| 90 | |
| 91 | auto wrapper(const FuncType* type) -> vec<byte_t> { |