1 //! This module contains constants that are shared between the codegen and the meta crate, so they
2 //! are kept in sync.
3 
4 // Numbering scheme for value types:
5 //
6 // 0: Void
7 // 0x01-0x6f: Special types
8 // 0x70-0x7d: Lane types
9 // 0x7e-0x7f: Reference types
10 // 0x80-0xff: Vector types
11 //
12 // Vector types are encoded with the lane type in the low 4 bits and log2(lanes)
13 // in the high 4 bits, giving a range of 2-256 lanes.
14 
15 /// Start of the lane types.
16 pub const LANE_BASE: u8 = 0x70;
17 
18 /// Base for reference types.
19 pub const REFERENCE_BASE: u8 = 0x7E;
20 
21 /// Start of the 2-lane vector types.
22 pub const VECTOR_BASE: u8 = 0x80;
23