html-to-markdown 2.28.1 → 2.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +6 -6
  3. data/README.md +5 -1
  4. data/ext/html-to-markdown-rb/native/Cargo.lock +1694 -0
  5. data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
  6. data/lib/html_to_markdown/version.rb +1 -1
  7. data/rust-vendor/html-to-markdown-rs/Cargo.toml +1 -1
  8. data/rust-vendor/libc/.cargo-checksum.json +1 -1
  9. data/rust-vendor/libc/.cargo_vcs_info.json +1 -1
  10. data/rust-vendor/libc/CHANGELOG.md +19 -0
  11. data/rust-vendor/libc/Cargo.lock +1 -1
  12. data/rust-vendor/libc/Cargo.toml +1 -1
  13. data/rust-vendor/libc/Cargo.toml.orig +1 -1
  14. data/rust-vendor/libc/build.rs +3 -3
  15. data/rust-vendor/libc/src/fuchsia/mod.rs +2 -0
  16. data/rust-vendor/libc/src/hermit.rs +1 -0
  17. data/rust-vendor/libc/src/lib.rs +1 -0
  18. data/rust-vendor/libc/src/new/linux_uapi/linux/mod.rs +1 -0
  19. data/rust-vendor/libc/src/new/linux_uapi/linux/pidfd.rs +59 -0
  20. data/rust-vendor/libc/src/new/mod.rs +3 -0
  21. data/rust-vendor/libc/src/new/netbsd/sys/file.rs +16 -0
  22. data/rust-vendor/libc/src/new/netbsd/sys/mod.rs +2 -0
  23. data/rust-vendor/libc/src/new/netbsd/sys/socket.rs +44 -0
  24. data/rust-vendor/libc/src/new/qurt/mod.rs +2 -0
  25. data/rust-vendor/libc/src/solid/mod.rs +1 -0
  26. data/rust-vendor/libc/src/switch.rs +1 -0
  27. data/rust-vendor/libc/src/teeos/mod.rs +2 -0
  28. data/rust-vendor/libc/src/trusty.rs +1 -0
  29. data/rust-vendor/libc/src/unix/bsd/apple/b64/mod.rs +1 -0
  30. data/rust-vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs +31 -0
  31. data/rust-vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs +92 -0
  32. data/rust-vendor/libc/src/unix/hurd/mod.rs +1 -0
  33. data/rust-vendor/libc/src/unix/linux_like/linux/gnu/mod.rs +1 -0
  34. data/rust-vendor/libc/src/unix/linux_like/linux/mod.rs +22 -46
  35. data/rust-vendor/libc/src/unix/mod.rs +2 -0
  36. data/rust-vendor/libc/src/unix/newlib/espidf/mod.rs +2 -0
  37. data/rust-vendor/libc/src/unix/redox/mod.rs +2 -2
  38. data/rust-vendor/libc/src/vxworks/mod.rs +46 -0
  39. data/rust-vendor/libc/src/wasi/mod.rs +2 -0
  40. data/rust-vendor/libc/src/windows/mod.rs +2 -0
  41. data/rust-vendor/zerocopy/.cargo-checksum.json +1 -1
  42. data/rust-vendor/zerocopy/.cargo_vcs_info.json +1 -1
  43. data/rust-vendor/zerocopy/Cargo.lock +3 -3
  44. data/rust-vendor/zerocopy/Cargo.toml +178 -4
  45. data/rust-vendor/zerocopy/Cargo.toml.orig +5 -5
  46. data/rust-vendor/zerocopy/benches/formats/coco_dynamic_padding.rs +24 -0
  47. data/rust-vendor/zerocopy/benches/formats/coco_dynamic_size.rs +23 -0
  48. data/rust-vendor/zerocopy/benches/formats/coco_static_size.rs +23 -0
  49. data/rust-vendor/zerocopy/benches/read_from_bytes.rs +7 -0
  50. data/rust-vendor/zerocopy/benches/read_from_bytes.x86-64 +15 -0
  51. data/rust-vendor/zerocopy/benches/read_from_bytes.x86-64.mca +65 -0
  52. data/rust-vendor/zerocopy/benches/read_from_prefix.rs +10 -0
  53. data/rust-vendor/zerocopy/benches/read_from_prefix.x86-64 +14 -0
  54. data/rust-vendor/zerocopy/benches/read_from_prefix.x86-64.mca +63 -0
  55. data/rust-vendor/zerocopy/benches/read_from_suffix.rs +10 -0
  56. data/rust-vendor/zerocopy/benches/read_from_suffix.x86-64 +15 -0
  57. data/rust-vendor/zerocopy/benches/read_from_suffix.x86-64.mca +65 -0
  58. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_padding.rs +7 -0
  59. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_padding.x86-64 +22 -0
  60. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_padding.x86-64.mca +77 -0
  61. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_size.rs +7 -0
  62. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_size.x86-64 +20 -0
  63. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_size.x86-64.mca +75 -0
  64. data/rust-vendor/zerocopy/benches/ref_from_bytes_static_size.rs +7 -0
  65. data/rust-vendor/zerocopy/benches/ref_from_bytes_static_size.x86-64 +8 -0
  66. data/rust-vendor/zerocopy/benches/ref_from_bytes_static_size.x86-64.mca +53 -0
  67. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_padding.rs +10 -0
  68. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_padding.x86-64 +30 -0
  69. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_padding.x86-64.mca +95 -0
  70. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_size.rs +10 -0
  71. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_size.x86-64 +16 -0
  72. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_size.x86-64.mca +65 -0
  73. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_padding.rs +10 -0
  74. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_padding.x86-64 +22 -0
  75. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_padding.x86-64.mca +77 -0
  76. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_size.rs +10 -0
  77. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_size.x86-64 +17 -0
  78. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_size.x86-64.mca +67 -0
  79. data/rust-vendor/zerocopy/benches/ref_from_prefix_static_size.rs +10 -0
  80. data/rust-vendor/zerocopy/benches/ref_from_prefix_static_size.x86-64 +8 -0
  81. data/rust-vendor/zerocopy/benches/ref_from_prefix_static_size.x86-64.mca +53 -0
  82. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_padding.rs +13 -0
  83. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_padding.x86-64 +35 -0
  84. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_padding.x86-64.mca +101 -0
  85. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_size.rs +13 -0
  86. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_size.x86-64 +22 -0
  87. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_size.x86-64.mca +77 -0
  88. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_padding.rs +10 -0
  89. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_padding.x86-64 +23 -0
  90. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_padding.x86-64.mca +79 -0
  91. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_size.rs +10 -0
  92. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_size.x86-64 +13 -0
  93. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_size.x86-64.mca +63 -0
  94. data/rust-vendor/zerocopy/benches/ref_from_suffix_static_size.rs +10 -0
  95. data/rust-vendor/zerocopy/benches/ref_from_suffix_static_size.x86-64 +13 -0
  96. data/rust-vendor/zerocopy/benches/ref_from_suffix_static_size.x86-64.mca +61 -0
  97. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.rs +13 -0
  98. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.x86-64 +34 -0
  99. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.x86-64.mca +99 -0
  100. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.rs +13 -0
  101. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.x86-64 +23 -0
  102. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.x86-64.mca +77 -0
  103. data/rust-vendor/zerocopy/benches/transmute.rs +16 -0
  104. data/rust-vendor/zerocopy/benches/transmute.x86-64 +3 -0
  105. data/rust-vendor/zerocopy/benches/transmute.x86-64.mca +43 -0
  106. data/rust-vendor/zerocopy/benches/transmute_ref_dynamic_size.rs +16 -0
  107. data/rust-vendor/zerocopy/benches/transmute_ref_dynamic_size.x86-64 +4 -0
  108. data/rust-vendor/zerocopy/benches/transmute_ref_dynamic_size.x86-64.mca +45 -0
  109. data/rust-vendor/zerocopy/benches/transmute_ref_static_size.rs +15 -0
  110. data/rust-vendor/zerocopy/benches/transmute_ref_static_size.x86-64 +3 -0
  111. data/rust-vendor/zerocopy/benches/transmute_ref_static_size.x86-64.mca +43 -0
  112. data/rust-vendor/zerocopy/benches/try_read_from_bytes.rs +7 -0
  113. data/rust-vendor/zerocopy/benches/try_read_from_bytes.x86-64 +23 -0
  114. data/rust-vendor/zerocopy/benches/try_read_from_bytes.x86-64.mca +79 -0
  115. data/rust-vendor/zerocopy/benches/try_read_from_prefix.rs +10 -0
  116. data/rust-vendor/zerocopy/benches/try_read_from_prefix.x86-64 +16 -0
  117. data/rust-vendor/zerocopy/benches/try_read_from_prefix.x86-64.mca +67 -0
  118. data/rust-vendor/zerocopy/benches/try_read_from_suffix.rs +10 -0
  119. data/rust-vendor/zerocopy/benches/try_read_from_suffix.x86-64 +18 -0
  120. data/rust-vendor/zerocopy/benches/try_read_from_suffix.x86-64.mca +71 -0
  121. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_padding.rs +7 -0
  122. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_padding.x86-64 +24 -0
  123. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_padding.x86-64.mca +81 -0
  124. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_size.rs +7 -0
  125. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_size.x86-64 +22 -0
  126. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_size.x86-64.mca +79 -0
  127. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_static_size.rs +7 -0
  128. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_static_size.x86-64 +13 -0
  129. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_static_size.x86-64.mca +59 -0
  130. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_padding.rs +10 -0
  131. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_padding.x86-64 +36 -0
  132. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_padding.x86-64.mca +105 -0
  133. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_size.rs +10 -0
  134. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_size.x86-64 +18 -0
  135. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_size.x86-64.mca +69 -0
  136. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_padding.rs +10 -0
  137. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_padding.x86-64 +29 -0
  138. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_padding.x86-64.mca +91 -0
  139. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_size.rs +10 -0
  140. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_size.x86-64 +22 -0
  141. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_size.x86-64.mca +77 -0
  142. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_static_size.rs +10 -0
  143. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_static_size.x86-64 +15 -0
  144. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_static_size.x86-64.mca +63 -0
  145. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_padding.rs +13 -0
  146. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_padding.x86-64 +35 -0
  147. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_padding.x86-64.mca +101 -0
  148. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_size.rs +13 -0
  149. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_size.x86-64 +26 -0
  150. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_size.x86-64.mca +83 -0
  151. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_padding.rs +10 -0
  152. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_padding.x86-64 +26 -0
  153. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_padding.x86-64.mca +85 -0
  154. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_size.rs +10 -0
  155. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_size.x86-64 +18 -0
  156. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_size.x86-64.mca +71 -0
  157. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_static_size.rs +10 -0
  158. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_static_size.x86-64 +16 -0
  159. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_static_size.x86-64.mca +67 -0
  160. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_padding.rs +13 -0
  161. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_padding.x86-64 +39 -0
  162. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_padding.x86-64.mca +109 -0
  163. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_size.rs +13 -0
  164. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_size.x86-64 +28 -0
  165. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_size.x86-64.mca +87 -0
  166. data/rust-vendor/zerocopy/benches/try_transmute.rs +16 -0
  167. data/rust-vendor/zerocopy/benches/try_transmute.x86-64 +9 -0
  168. data/rust-vendor/zerocopy/benches/try_transmute.x86-64.mca +55 -0
  169. data/rust-vendor/zerocopy/benches/try_transmute_ref_dynamic_size.rs +18 -0
  170. data/rust-vendor/zerocopy/benches/try_transmute_ref_dynamic_size.x86-64 +6 -0
  171. data/rust-vendor/zerocopy/benches/try_transmute_ref_dynamic_size.x86-64.mca +49 -0
  172. data/rust-vendor/zerocopy/benches/try_transmute_ref_static_size.rs +17 -0
  173. data/rust-vendor/zerocopy/benches/try_transmute_ref_static_size.x86-64 +5 -0
  174. data/rust-vendor/zerocopy/benches/try_transmute_ref_static_size.x86-64.mca +47 -0
  175. data/rust-vendor/zerocopy/rustdoc/style.css +55 -0
  176. data/rust-vendor/zerocopy/src/lib.rs +331 -0
  177. data/rust-vendor/zerocopy/src/macros.rs +48 -1
  178. data/rust-vendor/zerocopy/src/util/macros.rs +199 -0
  179. data/rust-vendor/zerocopy/tests/codegen.rs +111 -0
  180. data/rust-vendor/zerocopy-derive/.cargo-checksum.json +1 -1
  181. data/rust-vendor/zerocopy-derive/.cargo_vcs_info.json +1 -1
  182. data/rust-vendor/zerocopy-derive/Cargo.lock +1 -1
  183. data/rust-vendor/zerocopy-derive/Cargo.toml +1 -1
  184. data/rust-vendor/zerocopy-derive/Cargo.toml.orig +1 -1
  185. metadata +137 -2
@@ -0,0 +1,67 @@
1
+ Iterations: 100
2
+ Instructions: 1400
3
+ Total Cycles: 442
4
+ Total uOps: 1500
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.39
8
+ IPC: 3.17
9
+ Block RThroughput: 3.8
10
+
11
+
12
+ Instruction Info:
13
+ [1]: #uOps
14
+ [2]: Latency
15
+ [3]: RThroughput
16
+ [4]: MayLoad
17
+ [5]: MayStore
18
+ [6]: HasSideEffects (U)
19
+
20
+ [1] [2] [3] [4] [5] [6] Instructions:
21
+ 1 1 0.33 mov eax, 49345
22
+ 1 1 0.33 cmp rsi, 6
23
+ 1 1 1.00 jb .LBB5_2
24
+ 1 5 0.50 * mov eax, dword ptr [rdi]
25
+ 1 5 0.50 * movzx ecx, word ptr [rdi + 4]
26
+ 1 1 0.50 shl rcx, 32
27
+ 1 1 0.33 or rcx, rax
28
+ 1 1 0.33 movzx eax, cx
29
+ 1 1 0.33 and rcx, -65536
30
+ 1 1 0.33 or rcx, 49344
31
+ 1 1 0.33 cmp eax, 49344
32
+ 1 1 0.33 mov eax, 49345
33
+ 2 2 0.67 cmove rax, rcx
34
+ 1 1 1.00 U ret
35
+
36
+
37
+ Resources:
38
+ [0] - SBDivider
39
+ [1] - SBFPDivider
40
+ [2] - SBPort0
41
+ [3] - SBPort1
42
+ [4] - SBPort4
43
+ [5] - SBPort5
44
+ [6.0] - SBPort23
45
+ [6.1] - SBPort23
46
+
47
+
48
+ Resource pressure per iteration:
49
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
50
+ - - 4.33 4.33 - 4.34 1.00 1.00
51
+
52
+ Resource pressure by instruction:
53
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
54
+ - - 0.65 0.01 - 0.34 - - mov eax, 49345
55
+ - - 0.01 0.33 - 0.66 - - cmp rsi, 6
56
+ - - - - - 1.00 - - jb .LBB5_2
57
+ - - - - - - - 1.00 mov eax, dword ptr [rdi]
58
+ - - - - - - 1.00 - movzx ecx, word ptr [rdi + 4]
59
+ - - 0.65 - - 0.35 - - shl rcx, 32
60
+ - - - 0.67 - 0.33 - - or rcx, rax
61
+ - - 0.01 0.99 - - - - movzx eax, cx
62
+ - - 0.99 0.01 - - - - and rcx, -65536
63
+ - - 0.01 0.99 - - - - or rcx, 49344
64
+ - - 0.99 0.01 - - - - cmp eax, 49344
65
+ - - 0.02 0.33 - 0.65 - - mov eax, 49345
66
+ - - 1.00 0.99 - 0.01 - - cmove rax, rcx
67
+ - - - - - 1.00 - - ret
@@ -0,0 +1,10 @@
1
+ #[path = "formats/coco_static_size.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_try_read_from_suffix_static_size(source: &[u8]) -> Option<format::CocoPacket> {
6
+ match zerocopy::TryFromBytes::try_read_from_suffix(source) {
7
+ Ok((_rest, packet)) => Some(packet),
8
+ _ => None,
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ bench_try_read_from_suffix_static_size:
2
+ mov eax, 49345
3
+ cmp rsi, 6
4
+ jb .LBB5_2
5
+ mov eax, dword ptr [rdi + rsi - 6]
6
+ movzx ecx, word ptr [rdi + rsi - 2]
7
+ shl rcx, 32
8
+ or rcx, rax
9
+ movzx edx, cx
10
+ xor eax, eax
11
+ cmp edx, 49344
12
+ cmovne rcx, rsi
13
+ sete al
14
+ and rcx, -65536
15
+ xor rax, 49345
16
+ or rax, rcx
17
+ .LBB5_2:
18
+ ret
@@ -0,0 +1,71 @@
1
+ Iterations: 100
2
+ Instructions: 1600
3
+ Total Cycles: 478
4
+ Total uOps: 1700
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.56
8
+ IPC: 3.35
9
+ Block RThroughput: 4.3
10
+
11
+
12
+ Instruction Info:
13
+ [1]: #uOps
14
+ [2]: Latency
15
+ [3]: RThroughput
16
+ [4]: MayLoad
17
+ [5]: MayStore
18
+ [6]: HasSideEffects (U)
19
+
20
+ [1] [2] [3] [4] [5] [6] Instructions:
21
+ 1 1 0.33 mov eax, 49345
22
+ 1 1 0.33 cmp rsi, 6
23
+ 1 1 1.00 jb .LBB5_2
24
+ 1 5 0.50 * mov eax, dword ptr [rdi + rsi - 6]
25
+ 1 5 0.50 * movzx ecx, word ptr [rdi + rsi - 2]
26
+ 1 1 0.50 shl rcx, 32
27
+ 1 1 0.33 or rcx, rax
28
+ 1 1 0.33 movzx edx, cx
29
+ 1 0 0.25 xor eax, eax
30
+ 1 1 0.33 cmp edx, 49344
31
+ 2 2 0.67 cmovne rcx, rsi
32
+ 1 1 0.50 sete al
33
+ 1 1 0.33 and rcx, -65536
34
+ 1 1 0.33 xor rax, 49345
35
+ 1 1 0.33 or rax, rcx
36
+ 1 1 1.00 U ret
37
+
38
+
39
+ Resources:
40
+ [0] - SBDivider
41
+ [1] - SBFPDivider
42
+ [2] - SBPort0
43
+ [3] - SBPort1
44
+ [4] - SBPort4
45
+ [5] - SBPort5
46
+ [6.0] - SBPort23
47
+ [6.1] - SBPort23
48
+
49
+
50
+ Resource pressure per iteration:
51
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
52
+ - - 4.66 4.66 - 4.68 1.00 1.00
53
+
54
+ Resource pressure by instruction:
55
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
56
+ - - 0.32 0.01 - 0.67 - - mov eax, 49345
57
+ - - 0.62 0.02 - 0.36 - - cmp rsi, 6
58
+ - - - - - 1.00 - - jb .LBB5_2
59
+ - - - - - - - 1.00 mov eax, dword ptr [rdi + rsi - 6]
60
+ - - - - - - 1.00 - movzx ecx, word ptr [rdi + rsi - 2]
61
+ - - 0.37 - - 0.63 - - shl rcx, 32
62
+ - - 0.99 0.01 - - - - or rcx, rax
63
+ - - 1.00 - - - - - movzx edx, cx
64
+ - - - - - - - - xor eax, eax
65
+ - - 0.35 0.64 - 0.01 - - cmp edx, 49344
66
+ - - 1.00 1.00 - - - - cmovne rcx, rsi
67
+ - - - - - 1.00 - - sete al
68
+ - - 0.01 0.99 - - - - and rcx, -65536
69
+ - - - 1.00 - - - - xor rax, 49345
70
+ - - - 0.99 - 0.01 - - or rax, rcx
71
+ - - - - - 1.00 - - ret
@@ -0,0 +1,7 @@
1
+ #[path = "formats/coco_dynamic_padding.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_try_ref_from_bytes_dynamic_padding(source: &[u8]) -> Option<&format::CocoPacket> {
6
+ zerocopy::TryFromBytes::try_ref_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,24 @@
1
+ bench_try_ref_from_bytes_dynamic_padding:
2
+ test dil, 3
3
+ jne .LBB5_4
4
+ movabs rax, 9223372036854775804
5
+ and rax, rsi
6
+ cmp rax, 9
7
+ jb .LBB5_4
8
+ add rax, -9
9
+ movabs rcx, -6148914691236517205
10
+ mul rcx
11
+ shr rdx
12
+ lea rax, [rdx + 2*rdx]
13
+ or rax, 3
14
+ add rax, 9
15
+ cmp rsi, rax
16
+ jne .LBB5_4
17
+ cmp word ptr [rdi], -16192
18
+ je .LBB5_5
19
+ .LBB5_4:
20
+ xor edi, edi
21
+ mov rdx, rsi
22
+ .LBB5_5:
23
+ mov rax, rdi
24
+ ret
@@ -0,0 +1,81 @@
1
+ Iterations: 100
2
+ Instructions: 2100
3
+ Total Cycles: 709
4
+ Total uOps: 2300
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.24
8
+ IPC: 2.96
9
+ Block RThroughput: 5.8
10
+
11
+
12
+ Instruction Info:
13
+ [1]: #uOps
14
+ [2]: Latency
15
+ [3]: RThroughput
16
+ [4]: MayLoad
17
+ [5]: MayStore
18
+ [6]: HasSideEffects (U)
19
+
20
+ [1] [2] [3] [4] [5] [6] Instructions:
21
+ 1 1 0.33 test dil, 3
22
+ 1 1 1.00 jne .LBB5_4
23
+ 1 1 0.33 movabs rax, 9223372036854775804
24
+ 1 1 0.33 and rax, rsi
25
+ 1 1 0.33 cmp rax, 9
26
+ 1 1 1.00 jb .LBB5_4
27
+ 1 1 0.33 add rax, -9
28
+ 1 1 0.33 movabs rcx, -6148914691236517205
29
+ 2 4 1.00 mul rcx
30
+ 1 1 0.50 shr rdx
31
+ 1 1 0.50 lea rax, [rdx + 2*rdx]
32
+ 1 1 0.33 or rax, 3
33
+ 1 1 0.33 add rax, 9
34
+ 1 1 0.33 cmp rsi, rax
35
+ 1 1 1.00 jne .LBB5_4
36
+ 2 6 0.50 * cmp word ptr [rdi], -16192
37
+ 1 1 1.00 je .LBB5_5
38
+ 1 0 0.25 xor edi, edi
39
+ 1 1 0.33 mov rdx, rsi
40
+ 1 1 0.33 mov rax, rdi
41
+ 1 1 1.00 U ret
42
+
43
+
44
+ Resources:
45
+ [0] - SBDivider
46
+ [1] - SBFPDivider
47
+ [2] - SBPort0
48
+ [3] - SBPort1
49
+ [4] - SBPort4
50
+ [5] - SBPort5
51
+ [6.0] - SBPort23
52
+ [6.1] - SBPort23
53
+
54
+
55
+ Resource pressure per iteration:
56
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
57
+ - - 6.98 6.99 - 7.03 0.50 0.50
58
+
59
+ Resource pressure by instruction:
60
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
61
+ - - 0.48 0.51 - 0.01 - - test dil, 3
62
+ - - - - - 1.00 - - jne .LBB5_4
63
+ - - 0.51 0.49 - - - - movabs rax, 9223372036854775804
64
+ - - 0.01 0.99 - - - - and rax, rsi
65
+ - - 0.51 0.49 - - - - cmp rax, 9
66
+ - - - - - 1.00 - - jb .LBB5_4
67
+ - - 0.98 - - 0.02 - - add rax, -9
68
+ - - 0.98 0.02 - - - - movabs rcx, -6148914691236517205
69
+ - - 1.00 1.00 - - - - mul rcx
70
+ - - 0.99 - - 0.01 - - shr rdx
71
+ - - - 1.00 - - - - lea rax, [rdx + 2*rdx]
72
+ - - - 0.51 - 0.49 - - or rax, 3
73
+ - - 0.01 0.49 - 0.50 - - add rax, 9
74
+ - - - 0.02 - 0.98 - - cmp rsi, rax
75
+ - - - - - 1.00 - - jne .LBB5_4
76
+ - - 0.51 0.49 - - 0.50 0.50 cmp word ptr [rdi], -16192
77
+ - - - - - 1.00 - - je .LBB5_5
78
+ - - - - - - - - xor edi, edi
79
+ - - 0.50 0.50 - - - - mov rdx, rsi
80
+ - - 0.50 0.48 - 0.02 - - mov rax, rdi
81
+ - - - - - 1.00 - - ret
@@ -0,0 +1,7 @@
1
+ #[path = "formats/coco_dynamic_size.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_try_ref_from_bytes_dynamic_size(source: &[u8]) -> Option<&format::CocoPacket> {
6
+ zerocopy::TryFromBytes::try_ref_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,22 @@
1
+ bench_try_ref_from_bytes_dynamic_size:
2
+ mov rdx, rsi
3
+ mov rax, rdi
4
+ cmp rsi, 4
5
+ setb cl
6
+ or cl, al
7
+ test cl, 1
8
+ jne .LBB5_4
9
+ lea rcx, [rdx - 4]
10
+ mov rsi, rcx
11
+ and rsi, -2
12
+ add rsi, 4
13
+ cmp rdx, rsi
14
+ jne .LBB5_4
15
+ cmp word ptr [rax], -16192
16
+ jne .LBB5_4
17
+ shr rcx
18
+ mov rdx, rcx
19
+ ret
20
+ .LBB5_4:
21
+ xor eax, eax
22
+ ret
@@ -0,0 +1,79 @@
1
+ Iterations: 100
2
+ Instructions: 2000
3
+ Total Cycles: 639
4
+ Total uOps: 2100
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.29
8
+ IPC: 3.13
9
+ Block RThroughput: 5.3
10
+
11
+
12
+ Instruction Info:
13
+ [1]: #uOps
14
+ [2]: Latency
15
+ [3]: RThroughput
16
+ [4]: MayLoad
17
+ [5]: MayStore
18
+ [6]: HasSideEffects (U)
19
+
20
+ [1] [2] [3] [4] [5] [6] Instructions:
21
+ 1 1 0.33 mov rdx, rsi
22
+ 1 1 0.33 mov rax, rdi
23
+ 1 1 0.33 cmp rsi, 4
24
+ 1 1 0.50 setb cl
25
+ 1 1 0.33 or cl, al
26
+ 1 1 0.33 test cl, 1
27
+ 1 1 1.00 jne .LBB5_4
28
+ 1 1 0.50 lea rcx, [rdx - 4]
29
+ 1 1 0.33 mov rsi, rcx
30
+ 1 1 0.33 and rsi, -2
31
+ 1 1 0.33 add rsi, 4
32
+ 1 1 0.33 cmp rdx, rsi
33
+ 1 1 1.00 jne .LBB5_4
34
+ 2 6 0.50 * cmp word ptr [rax], -16192
35
+ 1 1 1.00 jne .LBB5_4
36
+ 1 1 0.50 shr rcx
37
+ 1 1 0.33 mov rdx, rcx
38
+ 1 1 1.00 U ret
39
+ 1 0 0.25 xor eax, eax
40
+ 1 1 1.00 U ret
41
+
42
+
43
+ Resources:
44
+ [0] - SBDivider
45
+ [1] - SBFPDivider
46
+ [2] - SBPort0
47
+ [3] - SBPort1
48
+ [4] - SBPort4
49
+ [5] - SBPort5
50
+ [6.0] - SBPort23
51
+ [6.1] - SBPort23
52
+
53
+
54
+ Resource pressure per iteration:
55
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
56
+ - - 6.32 6.32 - 6.36 0.50 0.50
57
+
58
+ Resource pressure by instruction:
59
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
60
+ - - 0.33 0.66 - 0.01 - - mov rdx, rsi
61
+ - - 0.66 0.34 - - - - mov rax, rdi
62
+ - - 0.34 0.66 - - - - cmp rsi, 4
63
+ - - 0.99 - - 0.01 - - setb cl
64
+ - - 0.01 0.99 - - - - or cl, al
65
+ - - - 1.00 - - - - test cl, 1
66
+ - - - - - 1.00 - - jne .LBB5_4
67
+ - - 0.66 0.34 - - - - lea rcx, [rdx - 4]
68
+ - - 0.33 0.66 - 0.01 - - mov rsi, rcx
69
+ - - 1.00 - - - - - and rsi, -2
70
+ - - 0.66 0.34 - - - - add rsi, 4
71
+ - - - 1.00 - - - - cmp rdx, rsi
72
+ - - - - - 1.00 - - jne .LBB5_4
73
+ - - - - - 1.00 0.50 0.50 cmp word ptr [rax], -16192
74
+ - - - - - 1.00 - - jne .LBB5_4
75
+ - - 0.67 - - 0.33 - - shr rcx
76
+ - - 0.67 0.33 - - - - mov rdx, rcx
77
+ - - - - - 1.00 - - ret
78
+ - - - - - - - - xor eax, eax
79
+ - - - - - 1.00 - - ret
@@ -0,0 +1,7 @@
1
+ #[path = "formats/coco_static_size.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_try_ref_from_bytes_static_size(source: &[u8]) -> Option<&format::CocoPacket> {
6
+ zerocopy::TryFromBytes::try_ref_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,13 @@
1
+ bench_try_ref_from_bytes_static_size:
2
+ mov rax, rdi
3
+ cmp rsi, 6
4
+ setne cl
5
+ or cl, al
6
+ test cl, 1
7
+ jne .LBB5_2
8
+ cmp word ptr [rax], -16192
9
+ je .LBB5_3
10
+ .LBB5_2:
11
+ xor eax, eax
12
+ .LBB5_3:
13
+ ret
@@ -0,0 +1,59 @@
1
+ Iterations: 100
2
+ Instructions: 1000
3
+ Total Cycles: 308
4
+ Total uOps: 1100
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.57
8
+ IPC: 3.25
9
+ Block RThroughput: 3.0
10
+
11
+
12
+ Instruction Info:
13
+ [1]: #uOps
14
+ [2]: Latency
15
+ [3]: RThroughput
16
+ [4]: MayLoad
17
+ [5]: MayStore
18
+ [6]: HasSideEffects (U)
19
+
20
+ [1] [2] [3] [4] [5] [6] Instructions:
21
+ 1 1 0.33 mov rax, rdi
22
+ 1 1 0.33 cmp rsi, 6
23
+ 1 1 0.50 setne cl
24
+ 1 1 0.33 or cl, al
25
+ 1 1 0.33 test cl, 1
26
+ 1 1 1.00 jne .LBB5_2
27
+ 2 6 0.50 * cmp word ptr [rax], -16192
28
+ 1 1 1.00 je .LBB5_3
29
+ 1 0 0.25 xor eax, eax
30
+ 1 1 1.00 U ret
31
+
32
+
33
+ Resources:
34
+ [0] - SBDivider
35
+ [1] - SBFPDivider
36
+ [2] - SBPort0
37
+ [3] - SBPort1
38
+ [4] - SBPort4
39
+ [5] - SBPort5
40
+ [6.0] - SBPort23
41
+ [6.1] - SBPort23
42
+
43
+
44
+ Resource pressure per iteration:
45
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
46
+ - - 2.98 2.98 - 3.04 0.50 0.50
47
+
48
+ Resource pressure by instruction:
49
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
50
+ - - 0.02 0.97 - 0.01 - - mov rax, rdi
51
+ - - 0.02 0.98 - - - - cmp rsi, 6
52
+ - - 1.00 - - - - - setne cl
53
+ - - 0.97 0.02 - 0.01 - - or cl, al
54
+ - - 0.96 0.03 - 0.01 - - test cl, 1
55
+ - - - - - 1.00 - - jne .LBB5_2
56
+ - - 0.01 0.98 - 0.01 0.50 0.50 cmp word ptr [rax], -16192
57
+ - - - - - 1.00 - - je .LBB5_3
58
+ - - - - - - - - xor eax, eax
59
+ - - - - - 1.00 - - ret
@@ -0,0 +1,10 @@
1
+ #[path = "formats/coco_dynamic_padding.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_try_ref_from_bytes_with_elems_dynamic_padding(
6
+ source: &[u8],
7
+ count: usize,
8
+ ) -> Option<&format::CocoPacket> {
9
+ zerocopy::TryFromBytes::try_ref_from_bytes_with_elems(source, count).ok()
10
+ }
@@ -0,0 +1,36 @@
1
+ bench_try_ref_from_bytes_with_elems_dynamic_padding:
2
+ mov rcx, rdx
3
+ mov edx, 3
4
+ mov rax, rcx
5
+ mul rdx
6
+ jo .LBB5_8
7
+ mov rdx, rax
8
+ cmp rax, -10
9
+ ja .LBB5_8
10
+ mov eax, edx
11
+ not eax
12
+ and eax, 3
13
+ lea r8, [rax + rdx]
14
+ add r8, 9
15
+ xor eax, eax
16
+ cmp rsi, r8
17
+ jne .LBB5_6
18
+ mov r9d, edi
19
+ and r9d, 3
20
+ jne .LBB5_6
21
+ add rdx, 9
22
+ cmp r8, rdx
23
+ jb .LBB5_6
24
+ movzx edx, word ptr [rdi]
25
+ cmp dx, -16192
26
+ cmove rsi, rcx
27
+ xor eax, eax
28
+ cmp edx, 49344
29
+ cmove rax, rdi
30
+ .LBB5_6:
31
+ mov rdx, rsi
32
+ ret
33
+ .LBB5_8:
34
+ xor eax, eax
35
+ mov rdx, rsi
36
+ ret
@@ -0,0 +1,105 @@
1
+ Iterations: 100
2
+ Instructions: 3300
3
+ Total Cycles: 1082
4
+ Total uOps: 3600
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.33
8
+ IPC: 3.05
9
+ Block RThroughput: 9.0
10
+
11
+
12
+ Instruction Info:
13
+ [1]: #uOps
14
+ [2]: Latency
15
+ [3]: RThroughput
16
+ [4]: MayLoad
17
+ [5]: MayStore
18
+ [6]: HasSideEffects (U)
19
+
20
+ [1] [2] [3] [4] [5] [6] Instructions:
21
+ 1 1 0.33 mov rcx, rdx
22
+ 1 1 0.33 mov edx, 3
23
+ 1 1 0.33 mov rax, rcx
24
+ 2 4 1.00 mul rdx
25
+ 1 1 1.00 jo .LBB5_8
26
+ 1 1 0.33 mov rdx, rax
27
+ 1 1 0.33 cmp rax, -10
28
+ 1 1 1.00 ja .LBB5_8
29
+ 1 1 0.33 mov eax, edx
30
+ 1 1 0.33 not eax
31
+ 1 1 0.33 and eax, 3
32
+ 1 1 0.50 lea r8, [rax + rdx]
33
+ 1 1 0.33 add r8, 9
34
+ 1 0 0.25 xor eax, eax
35
+ 1 1 0.33 cmp rsi, r8
36
+ 1 1 1.00 jne .LBB5_6
37
+ 1 1 0.33 mov r9d, edi
38
+ 1 1 0.33 and r9d, 3
39
+ 1 1 1.00 jne .LBB5_6
40
+ 1 1 0.33 add rdx, 9
41
+ 1 1 0.33 cmp r8, rdx
42
+ 1 1 1.00 jb .LBB5_6
43
+ 1 5 0.50 * movzx edx, word ptr [rdi]
44
+ 1 1 0.33 cmp dx, -16192
45
+ 2 2 0.67 cmove rsi, rcx
46
+ 1 0 0.25 xor eax, eax
47
+ 1 1 0.33 cmp edx, 49344
48
+ 2 2 0.67 cmove rax, rdi
49
+ 1 1 0.33 mov rdx, rsi
50
+ 1 1 1.00 U ret
51
+ 1 0 0.25 xor eax, eax
52
+ 1 1 0.33 mov rdx, rsi
53
+ 1 1 1.00 U ret
54
+
55
+
56
+ Resources:
57
+ [0] - SBDivider
58
+ [1] - SBFPDivider
59
+ [2] - SBPort0
60
+ [3] - SBPort1
61
+ [4] - SBPort4
62
+ [5] - SBPort5
63
+ [6.0] - SBPort23
64
+ [6.1] - SBPort23
65
+
66
+
67
+ Resource pressure per iteration:
68
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
69
+ - - 10.64 10.65 - 10.71 0.50 0.50
70
+
71
+ Resource pressure by instruction:
72
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
73
+ - - 0.25 0.73 - 0.02 - - mov rcx, rdx
74
+ - - 0.74 0.03 - 0.23 - - mov edx, 3
75
+ - - 0.60 0.40 - - - - mov rax, rcx
76
+ - - 1.00 1.00 - - - - mul rdx
77
+ - - - - - 1.00 - - jo .LBB5_8
78
+ - - 0.11 0.89 - - - - mov rdx, rax
79
+ - - 0.99 0.01 - - - - cmp rax, -10
80
+ - - - - - 1.00 - - ja .LBB5_8
81
+ - - 0.01 0.89 - 0.10 - - mov eax, edx
82
+ - - 0.11 0.89 - - - - not eax
83
+ - - 0.01 0.88 - 0.11 - - and eax, 3
84
+ - - 0.01 0.99 - - - - lea r8, [rax + rdx]
85
+ - - 0.01 0.99 - - - - add r8, 9
86
+ - - - - - - - - xor eax, eax
87
+ - - - 0.99 - 0.01 - - cmp rsi, r8
88
+ - - - - - 1.00 - - jne .LBB5_6
89
+ - - 0.42 - - 0.58 - - mov r9d, edi
90
+ - - 0.53 0.01 - 0.46 - - and r9d, 3
91
+ - - - - - 1.00 - - jne .LBB5_6
92
+ - - 0.99 0.01 - - - - add rdx, 9
93
+ - - 0.99 0.01 - - - - cmp r8, rdx
94
+ - - - - - 1.00 - - jb .LBB5_6
95
+ - - - - - - 0.50 0.50 movzx edx, word ptr [rdi]
96
+ - - 0.45 0.01 - 0.54 - - cmp dx, -16192
97
+ - - 1.00 0.35 - 0.65 - - cmove rsi, rcx
98
+ - - - - - - - - xor eax, eax
99
+ - - 0.75 0.02 - 0.23 - - cmp edx, 49344
100
+ - - 1.00 0.68 - 0.32 - - cmove rax, rdi
101
+ - - 0.12 0.54 - 0.34 - - mov rdx, rsi
102
+ - - - - - 1.00 - - ret
103
+ - - - - - - - - xor eax, eax
104
+ - - 0.55 0.33 - 0.12 - - mov rdx, rsi
105
+ - - - - - 1.00 - - ret
@@ -0,0 +1,10 @@
1
+ #[path = "formats/coco_dynamic_size.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_try_ref_from_bytes_with_elems_dynamic_size(
6
+ source: &[u8],
7
+ count: usize,
8
+ ) -> Option<&format::CocoPacket> {
9
+ zerocopy::TryFromBytes::try_ref_from_bytes_with_elems(source, count).ok()
10
+ }
@@ -0,0 +1,18 @@
1
+ bench_try_ref_from_bytes_with_elems_dynamic_size:
2
+ movabs rax, 9223372036854775805
3
+ cmp rdx, rax
4
+ seta cl
5
+ mov rax, rdi
6
+ or dil, cl
7
+ test dil, 1
8
+ jne .LBB5_3
9
+ lea rcx, [2*rdx + 4]
10
+ cmp rsi, rcx
11
+ jne .LBB5_3
12
+ cmp word ptr [rax], -16192
13
+ je .LBB5_4
14
+ .LBB5_3:
15
+ xor eax, eax
16
+ mov rdx, rsi
17
+ .LBB5_4:
18
+ ret