/src/wasmer/lib/types/src/compilation/address_map.rs
Line | Count | Source (jump to first uncovered line) |
1 | | //! Data structures to provide transformation of the source |
2 | | // addresses of a WebAssembly module into the native code. |
3 | | |
4 | | use crate::lib::std::vec::Vec; |
5 | | use crate::SourceLoc; |
6 | | use rkyv::{Archive, Deserialize as RkyvDeserialize, Serialize as RkyvSerialize}; |
7 | | #[cfg(feature = "enable-serde")] |
8 | | use serde::{Deserialize, Serialize}; |
9 | | |
10 | | /// Single source location to generated address mapping. |
11 | | #[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))] |
12 | | #[cfg_attr(feature = "artifact-size", derive(loupe::MemoryUsage))] |
13 | 1.47M | #[derive(RkyvSerialize, RkyvDeserialize, Archive, Debug, Clone, Copy, PartialEq, Eq)] <wasmer_types::compilation::address_map::InstructionAddressMap as rkyv::Serialize<rkyv::ser::serializers::CompositeSerializer<rkyv::ser::serializers::alloc::AlignedSerializer<rkyv::util::aligned_vec::AlignedVec>, rkyv::ser::serializers::core::FallbackScratch<rkyv::ser::serializers::alloc::HeapScratch<4096>, rkyv::ser::serializers::alloc::AllocScratch>, rkyv::ser::serializers::alloc::SharedSerializeMap>>>::serialize Line | Count | Source | 13 | 1.47M | #[derive(RkyvSerialize, RkyvDeserialize, Archive, Debug, Clone, Copy, PartialEq, Eq)] |
Unexecuted instantiation: <wasmer_types::compilation::address_map::InstructionAddressMap as rkyv::Serialize<rkyv::ser::serializers::CompositeSerializer<rkyv::ser::serializers::alloc::AlignedSerializer<rkyv::util::aligned_vec::AlignedVec>, rkyv::ser::serializers::core::FallbackScratch<rkyv::ser::serializers::alloc::HeapScratch<4096>, rkyv::ser::serializers::alloc::AllocScratch>, rkyv::ser::serializers::alloc::SharedSerializeMap>>>::serialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::InstructionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::InstructionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::InstructionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::InstructionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize <wasmer_types::compilation::address_map::InstructionAddressMap as rkyv::Archive>::resolve Line | Count | Source | 13 | 1.47M | #[derive(RkyvSerialize, RkyvDeserialize, Archive, Debug, Clone, Copy, PartialEq, Eq)] |
Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#2}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#1}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#0}Unexecuted instantiation: <wasmer_types::compilation::address_map::InstructionAddressMap as rkyv::Archive>::resolve Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#2}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#1}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedInstructionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#0} |
14 | | #[archive_attr(derive(rkyv::CheckBytes, Debug))] |
15 | | pub struct InstructionAddressMap { |
16 | | /// Original source location. |
17 | | pub srcloc: SourceLoc, |
18 | | |
19 | | /// Generated instructions offset. |
20 | | pub code_offset: usize, |
21 | | |
22 | | /// Generated instructions length. |
23 | | pub code_len: usize, |
24 | | } |
25 | | |
26 | | /// Function and its instructions addresses mappings. |
27 | | #[cfg_attr(feature = "artifact-size", derive(loupe::MemoryUsage))] |
28 | | #[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))] |
29 | 263k | #[derive(RkyvSerialize, RkyvDeserialize, Archive, Debug, Clone, PartialEq, Eq, Default)] <wasmer_types::compilation::address_map::FunctionAddressMap as rkyv::Serialize<rkyv::ser::serializers::CompositeSerializer<rkyv::ser::serializers::alloc::AlignedSerializer<rkyv::util::aligned_vec::AlignedVec>, rkyv::ser::serializers::core::FallbackScratch<rkyv::ser::serializers::alloc::HeapScratch<4096>, rkyv::ser::serializers::alloc::AllocScratch>, rkyv::ser::serializers::alloc::SharedSerializeMap>>>::serialize Line | Count | Source | 29 | 263k | #[derive(RkyvSerialize, RkyvDeserialize, Archive, Debug, Clone, PartialEq, Eq, Default)] |
Unexecuted instantiation: <wasmer_types::compilation::address_map::FunctionAddressMap as rkyv::Serialize<rkyv::ser::serializers::CompositeSerializer<rkyv::ser::serializers::alloc::AlignedSerializer<rkyv::util::aligned_vec::AlignedVec>, rkyv::ser::serializers::core::FallbackScratch<rkyv::ser::serializers::alloc::HeapScratch<4096>, rkyv::ser::serializers::alloc::AllocScratch>, rkyv::ser::serializers::alloc::SharedSerializeMap>>>::serialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::FunctionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::FunctionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::FunctionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as rkyv::Deserialize<wasmer_types::compilation::address_map::FunctionAddressMap, rkyv::de::deserializers::alloc::SharedDeserializeMap>>::deserialize <wasmer_types::compilation::address_map::FunctionAddressMap as rkyv::Archive>::resolve Line | Count | Source | 29 | 263k | #[derive(RkyvSerialize, RkyvDeserialize, Archive, Debug, Clone, PartialEq, Eq, Default)] |
Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#4}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#3}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#2}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#1}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#0}Unexecuted instantiation: <wasmer_types::compilation::address_map::FunctionAddressMap as rkyv::Archive>::resolve Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#4}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#3}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#2}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#1}Unexecuted instantiation: <wasmer_types::compilation::address_map::ArchivedFunctionAddressMap as bytecheck::CheckBytes<rkyv::validation::validators::DefaultValidator>>::check_bytes::{closure#0} |
30 | | #[archive_attr(derive(rkyv::CheckBytes, Debug))] |
31 | | pub struct FunctionAddressMap { |
32 | | /// Instructions maps. |
33 | | /// The array is sorted by the InstructionAddressMap::code_offset field. |
34 | | pub instructions: Vec<InstructionAddressMap>, |
35 | | |
36 | | /// Function start source location (normally declaration). |
37 | | pub start_srcloc: SourceLoc, |
38 | | |
39 | | /// Function end source location. |
40 | | pub end_srcloc: SourceLoc, |
41 | | |
42 | | /// Generated function body offset if applicable, otherwise 0. |
43 | | pub body_offset: usize, |
44 | | |
45 | | /// Generated function body length. |
46 | | pub body_len: usize, |
47 | | } |