html-to-markdown 2.28.0 → 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 (196) 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/html-to-markdown-rs/src/converter/text_node.rs +1 -0
  9. data/rust-vendor/html-to-markdown-rs/src/converter/utility/content.rs +17 -0
  10. data/rust-vendor/html-to-markdown-rs/src/converter/visitor_hooks.rs +8 -5
  11. data/rust-vendor/html-to-markdown-rs/tests/test_issue_218.rs +56 -0
  12. data/rust-vendor/libc/.cargo-checksum.json +1 -1
  13. data/rust-vendor/libc/.cargo_vcs_info.json +1 -1
  14. data/rust-vendor/libc/CHANGELOG.md +19 -0
  15. data/rust-vendor/libc/Cargo.lock +1 -1
  16. data/rust-vendor/libc/Cargo.toml +1 -1
  17. data/rust-vendor/libc/Cargo.toml.orig +1 -1
  18. data/rust-vendor/libc/build.rs +3 -3
  19. data/rust-vendor/libc/src/fuchsia/mod.rs +2 -0
  20. data/rust-vendor/libc/src/hermit.rs +1 -0
  21. data/rust-vendor/libc/src/lib.rs +1 -0
  22. data/rust-vendor/libc/src/new/linux_uapi/linux/mod.rs +1 -0
  23. data/rust-vendor/libc/src/new/linux_uapi/linux/pidfd.rs +59 -0
  24. data/rust-vendor/libc/src/new/mod.rs +3 -0
  25. data/rust-vendor/libc/src/new/netbsd/sys/file.rs +16 -0
  26. data/rust-vendor/libc/src/new/netbsd/sys/mod.rs +2 -0
  27. data/rust-vendor/libc/src/new/netbsd/sys/socket.rs +44 -0
  28. data/rust-vendor/libc/src/new/qurt/mod.rs +2 -0
  29. data/rust-vendor/libc/src/solid/mod.rs +1 -0
  30. data/rust-vendor/libc/src/switch.rs +1 -0
  31. data/rust-vendor/libc/src/teeos/mod.rs +2 -0
  32. data/rust-vendor/libc/src/trusty.rs +1 -0
  33. data/rust-vendor/libc/src/unix/bsd/apple/b64/mod.rs +1 -0
  34. data/rust-vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs +31 -0
  35. data/rust-vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs +92 -0
  36. data/rust-vendor/libc/src/unix/hurd/mod.rs +1 -0
  37. data/rust-vendor/libc/src/unix/linux_like/linux/gnu/mod.rs +1 -0
  38. data/rust-vendor/libc/src/unix/linux_like/linux/mod.rs +22 -46
  39. data/rust-vendor/libc/src/unix/mod.rs +2 -0
  40. data/rust-vendor/libc/src/unix/newlib/espidf/mod.rs +2 -0
  41. data/rust-vendor/libc/src/unix/redox/mod.rs +2 -2
  42. data/rust-vendor/libc/src/vxworks/mod.rs +46 -0
  43. data/rust-vendor/libc/src/wasi/mod.rs +2 -0
  44. data/rust-vendor/libc/src/windows/mod.rs +2 -0
  45. data/rust-vendor/uuid/.cargo-checksum.json +1 -1
  46. data/rust-vendor/uuid/.cargo_vcs_info.json +1 -1
  47. data/rust-vendor/uuid/Cargo.lock +71 -137
  48. data/rust-vendor/uuid/Cargo.toml +4 -4
  49. data/rust-vendor/uuid/Cargo.toml.orig +4 -4
  50. data/rust-vendor/uuid/README.md +3 -3
  51. data/rust-vendor/uuid/src/lib.rs +4 -4
  52. data/rust-vendor/zerocopy/.cargo-checksum.json +1 -1
  53. data/rust-vendor/zerocopy/.cargo_vcs_info.json +1 -1
  54. data/rust-vendor/zerocopy/Cargo.lock +3 -3
  55. data/rust-vendor/zerocopy/Cargo.toml +178 -4
  56. data/rust-vendor/zerocopy/Cargo.toml.orig +5 -5
  57. data/rust-vendor/zerocopy/benches/formats/coco_dynamic_padding.rs +24 -0
  58. data/rust-vendor/zerocopy/benches/formats/coco_dynamic_size.rs +23 -0
  59. data/rust-vendor/zerocopy/benches/formats/coco_static_size.rs +23 -0
  60. data/rust-vendor/zerocopy/benches/read_from_bytes.rs +7 -0
  61. data/rust-vendor/zerocopy/benches/read_from_bytes.x86-64 +15 -0
  62. data/rust-vendor/zerocopy/benches/read_from_bytes.x86-64.mca +65 -0
  63. data/rust-vendor/zerocopy/benches/read_from_prefix.rs +10 -0
  64. data/rust-vendor/zerocopy/benches/read_from_prefix.x86-64 +14 -0
  65. data/rust-vendor/zerocopy/benches/read_from_prefix.x86-64.mca +63 -0
  66. data/rust-vendor/zerocopy/benches/read_from_suffix.rs +10 -0
  67. data/rust-vendor/zerocopy/benches/read_from_suffix.x86-64 +15 -0
  68. data/rust-vendor/zerocopy/benches/read_from_suffix.x86-64.mca +65 -0
  69. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_padding.rs +7 -0
  70. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_padding.x86-64 +22 -0
  71. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_padding.x86-64.mca +77 -0
  72. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_size.rs +7 -0
  73. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_size.x86-64 +20 -0
  74. data/rust-vendor/zerocopy/benches/ref_from_bytes_dynamic_size.x86-64.mca +75 -0
  75. data/rust-vendor/zerocopy/benches/ref_from_bytes_static_size.rs +7 -0
  76. data/rust-vendor/zerocopy/benches/ref_from_bytes_static_size.x86-64 +8 -0
  77. data/rust-vendor/zerocopy/benches/ref_from_bytes_static_size.x86-64.mca +53 -0
  78. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_padding.rs +10 -0
  79. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_padding.x86-64 +30 -0
  80. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_padding.x86-64.mca +95 -0
  81. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_size.rs +10 -0
  82. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_size.x86-64 +16 -0
  83. data/rust-vendor/zerocopy/benches/ref_from_bytes_with_elems_dynamic_size.x86-64.mca +65 -0
  84. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_padding.rs +10 -0
  85. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_padding.x86-64 +22 -0
  86. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_padding.x86-64.mca +77 -0
  87. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_size.rs +10 -0
  88. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_size.x86-64 +17 -0
  89. data/rust-vendor/zerocopy/benches/ref_from_prefix_dynamic_size.x86-64.mca +67 -0
  90. data/rust-vendor/zerocopy/benches/ref_from_prefix_static_size.rs +10 -0
  91. data/rust-vendor/zerocopy/benches/ref_from_prefix_static_size.x86-64 +8 -0
  92. data/rust-vendor/zerocopy/benches/ref_from_prefix_static_size.x86-64.mca +53 -0
  93. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_padding.rs +13 -0
  94. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_padding.x86-64 +35 -0
  95. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_padding.x86-64.mca +101 -0
  96. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_size.rs +13 -0
  97. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_size.x86-64 +22 -0
  98. data/rust-vendor/zerocopy/benches/ref_from_prefix_with_elems_dynamic_size.x86-64.mca +77 -0
  99. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_padding.rs +10 -0
  100. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_padding.x86-64 +23 -0
  101. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_padding.x86-64.mca +79 -0
  102. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_size.rs +10 -0
  103. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_size.x86-64 +13 -0
  104. data/rust-vendor/zerocopy/benches/ref_from_suffix_dynamic_size.x86-64.mca +63 -0
  105. data/rust-vendor/zerocopy/benches/ref_from_suffix_static_size.rs +10 -0
  106. data/rust-vendor/zerocopy/benches/ref_from_suffix_static_size.x86-64 +13 -0
  107. data/rust-vendor/zerocopy/benches/ref_from_suffix_static_size.x86-64.mca +61 -0
  108. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.rs +13 -0
  109. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.x86-64 +34 -0
  110. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.x86-64.mca +99 -0
  111. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.rs +13 -0
  112. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.x86-64 +23 -0
  113. data/rust-vendor/zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.x86-64.mca +77 -0
  114. data/rust-vendor/zerocopy/benches/transmute.rs +16 -0
  115. data/rust-vendor/zerocopy/benches/transmute.x86-64 +3 -0
  116. data/rust-vendor/zerocopy/benches/transmute.x86-64.mca +43 -0
  117. data/rust-vendor/zerocopy/benches/transmute_ref_dynamic_size.rs +16 -0
  118. data/rust-vendor/zerocopy/benches/transmute_ref_dynamic_size.x86-64 +4 -0
  119. data/rust-vendor/zerocopy/benches/transmute_ref_dynamic_size.x86-64.mca +45 -0
  120. data/rust-vendor/zerocopy/benches/transmute_ref_static_size.rs +15 -0
  121. data/rust-vendor/zerocopy/benches/transmute_ref_static_size.x86-64 +3 -0
  122. data/rust-vendor/zerocopy/benches/transmute_ref_static_size.x86-64.mca +43 -0
  123. data/rust-vendor/zerocopy/benches/try_read_from_bytes.rs +7 -0
  124. data/rust-vendor/zerocopy/benches/try_read_from_bytes.x86-64 +23 -0
  125. data/rust-vendor/zerocopy/benches/try_read_from_bytes.x86-64.mca +79 -0
  126. data/rust-vendor/zerocopy/benches/try_read_from_prefix.rs +10 -0
  127. data/rust-vendor/zerocopy/benches/try_read_from_prefix.x86-64 +16 -0
  128. data/rust-vendor/zerocopy/benches/try_read_from_prefix.x86-64.mca +67 -0
  129. data/rust-vendor/zerocopy/benches/try_read_from_suffix.rs +10 -0
  130. data/rust-vendor/zerocopy/benches/try_read_from_suffix.x86-64 +18 -0
  131. data/rust-vendor/zerocopy/benches/try_read_from_suffix.x86-64.mca +71 -0
  132. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_padding.rs +7 -0
  133. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_padding.x86-64 +24 -0
  134. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_padding.x86-64.mca +81 -0
  135. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_size.rs +7 -0
  136. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_size.x86-64 +22 -0
  137. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_dynamic_size.x86-64.mca +79 -0
  138. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_static_size.rs +7 -0
  139. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_static_size.x86-64 +13 -0
  140. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_static_size.x86-64.mca +59 -0
  141. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_padding.rs +10 -0
  142. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_padding.x86-64 +36 -0
  143. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_padding.x86-64.mca +105 -0
  144. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_size.rs +10 -0
  145. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_size.x86-64 +18 -0
  146. data/rust-vendor/zerocopy/benches/try_ref_from_bytes_with_elems_dynamic_size.x86-64.mca +69 -0
  147. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_padding.rs +10 -0
  148. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_padding.x86-64 +29 -0
  149. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_padding.x86-64.mca +91 -0
  150. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_size.rs +10 -0
  151. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_size.x86-64 +22 -0
  152. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_dynamic_size.x86-64.mca +77 -0
  153. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_static_size.rs +10 -0
  154. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_static_size.x86-64 +15 -0
  155. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_static_size.x86-64.mca +63 -0
  156. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_padding.rs +13 -0
  157. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_padding.x86-64 +35 -0
  158. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_padding.x86-64.mca +101 -0
  159. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_size.rs +13 -0
  160. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_size.x86-64 +26 -0
  161. data/rust-vendor/zerocopy/benches/try_ref_from_prefix_with_elems_dynamic_size.x86-64.mca +83 -0
  162. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_padding.rs +10 -0
  163. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_padding.x86-64 +26 -0
  164. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_padding.x86-64.mca +85 -0
  165. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_size.rs +10 -0
  166. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_size.x86-64 +18 -0
  167. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_dynamic_size.x86-64.mca +71 -0
  168. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_static_size.rs +10 -0
  169. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_static_size.x86-64 +16 -0
  170. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_static_size.x86-64.mca +67 -0
  171. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_padding.rs +13 -0
  172. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_padding.x86-64 +39 -0
  173. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_padding.x86-64.mca +109 -0
  174. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_size.rs +13 -0
  175. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_size.x86-64 +28 -0
  176. data/rust-vendor/zerocopy/benches/try_ref_from_suffix_with_elems_dynamic_size.x86-64.mca +87 -0
  177. data/rust-vendor/zerocopy/benches/try_transmute.rs +16 -0
  178. data/rust-vendor/zerocopy/benches/try_transmute.x86-64 +9 -0
  179. data/rust-vendor/zerocopy/benches/try_transmute.x86-64.mca +55 -0
  180. data/rust-vendor/zerocopy/benches/try_transmute_ref_dynamic_size.rs +18 -0
  181. data/rust-vendor/zerocopy/benches/try_transmute_ref_dynamic_size.x86-64 +6 -0
  182. data/rust-vendor/zerocopy/benches/try_transmute_ref_dynamic_size.x86-64.mca +49 -0
  183. data/rust-vendor/zerocopy/benches/try_transmute_ref_static_size.rs +17 -0
  184. data/rust-vendor/zerocopy/benches/try_transmute_ref_static_size.x86-64 +5 -0
  185. data/rust-vendor/zerocopy/benches/try_transmute_ref_static_size.x86-64.mca +47 -0
  186. data/rust-vendor/zerocopy/rustdoc/style.css +55 -0
  187. data/rust-vendor/zerocopy/src/lib.rs +331 -0
  188. data/rust-vendor/zerocopy/src/macros.rs +48 -1
  189. data/rust-vendor/zerocopy/src/util/macros.rs +199 -0
  190. data/rust-vendor/zerocopy/tests/codegen.rs +111 -0
  191. data/rust-vendor/zerocopy-derive/.cargo-checksum.json +1 -1
  192. data/rust-vendor/zerocopy-derive/.cargo_vcs_info.json +1 -1
  193. data/rust-vendor/zerocopy-derive/Cargo.lock +1 -1
  194. data/rust-vendor/zerocopy-derive/Cargo.toml +1 -1
  195. data/rust-vendor/zerocopy-derive/Cargo.toml.orig +1 -1
  196. metadata +138 -2
@@ -0,0 +1,63 @@
1
+ Iterations: 100
2
+ Instructions: 1200
3
+ Total Cycles: 439
4
+ Total uOps: 1400
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.19
8
+ IPC: 2.73
9
+ Block RThroughput: 3.5
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.50 lea ecx, [rsi + rdi]
23
+ 1 1 0.33 mov eax, edx
24
+ 1 1 0.33 and eax, 1
25
+ 1 1 0.33 add rax, rdi
26
+ 1 0 0.25 xor esi, esi
27
+ 1 1 0.33 sub rdx, 4
28
+ 2 2 0.67 cmovb rax, rsi
29
+ 1 1 0.50 shr rdx
30
+ 1 1 0.33 test cl, 1
31
+ 2 2 0.67 cmovne rax, rsi
32
+ 1 1 1.00 U ret
33
+
34
+
35
+ Resources:
36
+ [0] - SBDivider
37
+ [1] - SBFPDivider
38
+ [2] - SBPort0
39
+ [3] - SBPort1
40
+ [4] - SBPort4
41
+ [5] - SBPort5
42
+ [6.0] - SBPort23
43
+ [6.1] - SBPort23
44
+
45
+
46
+ Resource pressure per iteration:
47
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
48
+ - - 4.33 4.33 - 4.34 - -
49
+
50
+ Resource pressure by instruction:
51
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
52
+ - - 0.02 0.32 - 0.66 - - mov rdx, rsi
53
+ - - 0.32 0.68 - - - - lea ecx, [rsi + rdi]
54
+ - - 0.66 - - 0.34 - - mov eax, edx
55
+ - - 0.02 0.33 - 0.65 - - and eax, 1
56
+ - - - 0.99 - 0.01 - - add rax, rdi
57
+ - - - - - - - - xor esi, esi
58
+ - - 0.65 - - 0.35 - - sub rdx, 4
59
+ - - 1.00 1.00 - - - - cmovb rax, rsi
60
+ - - 0.66 - - 0.34 - - shr rdx
61
+ - - - 0.01 - 0.99 - - test cl, 1
62
+ - - 1.00 1.00 - - - - cmovne rax, rsi
63
+ - - - - - 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_ref_from_suffix_static_size(source: &[u8]) -> Option<&format::LocoPacket> {
6
+ match zerocopy::FromBytes::ref_from_suffix(source) {
7
+ Ok((_rest, packet)) => Some(packet),
8
+ _ => None,
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ bench_ref_from_suffix_static_size:
2
+ lea eax, [rsi + rdi]
3
+ cmp rsi, 6
4
+ setb cl
5
+ or cl, al
6
+ test cl, 1
7
+ je .LBB5_2
8
+ xor eax, eax
9
+ ret
10
+ .LBB5_2:
11
+ lea rax, [rdi + rsi]
12
+ add rax, -6
13
+ ret
@@ -0,0 +1,61 @@
1
+ Iterations: 100
2
+ Instructions: 1100
3
+ Total Cycles: 338
4
+ Total uOps: 1100
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.25
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.50 lea eax, [rsi + rdi]
22
+ 1 1 0.33 cmp rsi, 6
23
+ 1 1 0.50 setb cl
24
+ 1 1 0.33 or cl, al
25
+ 1 1 0.33 test cl, 1
26
+ 1 1 1.00 je .LBB5_2
27
+ 1 0 0.25 xor eax, eax
28
+ 1 1 1.00 U ret
29
+ 1 1 0.50 lea rax, [rdi + rsi]
30
+ 1 1 0.33 add rax, -6
31
+ 1 1 1.00 U ret
32
+
33
+
34
+ Resources:
35
+ [0] - SBDivider
36
+ [1] - SBFPDivider
37
+ [2] - SBPort0
38
+ [3] - SBPort1
39
+ [4] - SBPort4
40
+ [5] - SBPort5
41
+ [6.0] - SBPort23
42
+ [6.1] - SBPort23
43
+
44
+
45
+ Resource pressure per iteration:
46
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
47
+ - - 3.32 3.33 - 3.35 - -
48
+
49
+ Resource pressure by instruction:
50
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
51
+ - - 0.97 0.03 - - - - lea eax, [rsi + rdi]
52
+ - - 0.33 0.32 - 0.35 - - cmp rsi, 6
53
+ - - 1.00 - - - - - setb cl
54
+ - - - 1.00 - - - - or cl, al
55
+ - - - 1.00 - - - - test cl, 1
56
+ - - - - - 1.00 - - je .LBB5_2
57
+ - - - - - - - - xor eax, eax
58
+ - - - - - 1.00 - - ret
59
+ - - 0.34 0.66 - - - - lea rax, [rdi + rsi]
60
+ - - 0.68 0.32 - - - - add rax, -6
61
+ - - - - - 1.00 - - ret
@@ -0,0 +1,13 @@
1
+ #[path = "formats/coco_dynamic_padding.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_ref_from_suffix_with_elems_dynamic_padding(
6
+ source: &[u8],
7
+ count: usize,
8
+ ) -> Option<&format::LocoPacket> {
9
+ match zerocopy::FromBytes::ref_from_suffix_with_elems(source, count) {
10
+ Ok((_rest, packet)) => Some(packet),
11
+ _ => None,
12
+ }
13
+ }
@@ -0,0 +1,34 @@
1
+ bench_ref_from_suffix_with_elems_dynamic_padding:
2
+ mov rcx, rdx
3
+ mov edx, 3
4
+ mov rax, rcx
5
+ mul rdx
6
+ jo .LBB5_1
7
+ cmp rax, -10
8
+ ja .LBB5_1
9
+ lea rdx, [rax + 9]
10
+ not eax
11
+ and eax, 3
12
+ add rax, rdx
13
+ jae .LBB5_4
14
+ .LBB5_1:
15
+ xor r8d, r8d
16
+ mov edx, 1
17
+ mov rax, r8
18
+ ret
19
+ .LBB5_4:
20
+ lea r9d, [rsi + rdi]
21
+ xor edx, edx
22
+ mov r8d, 0
23
+ test r9b, 3
24
+ je .LBB5_5
25
+ mov rax, r8
26
+ ret
27
+ .LBB5_5:
28
+ sub rsi, rax
29
+ jb .LBB5_1
30
+ add rdi, rsi
31
+ mov rdx, rcx
32
+ mov r8, rdi
33
+ mov rax, r8
34
+ ret
@@ -0,0 +1,99 @@
1
+ Iterations: 100
2
+ Instructions: 3000
3
+ Total Cycles: 973
4
+ Total uOps: 3100
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.19
8
+ IPC: 3.08
9
+ Block RThroughput: 8.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_1
26
+ 1 1 0.33 cmp rax, -10
27
+ 1 1 1.00 ja .LBB5_1
28
+ 1 1 0.50 lea rdx, [rax + 9]
29
+ 1 1 0.33 not eax
30
+ 1 1 0.33 and eax, 3
31
+ 1 1 0.33 add rax, rdx
32
+ 1 1 1.00 jae .LBB5_4
33
+ 1 0 0.25 xor r8d, r8d
34
+ 1 1 0.33 mov edx, 1
35
+ 1 1 0.33 mov rax, r8
36
+ 1 1 1.00 U ret
37
+ 1 1 0.50 lea r9d, [rsi + rdi]
38
+ 1 0 0.25 xor edx, edx
39
+ 1 1 0.33 mov r8d, 0
40
+ 1 1 0.33 test r9b, 3
41
+ 1 1 1.00 je .LBB5_5
42
+ 1 1 0.33 mov rax, r8
43
+ 1 1 1.00 U ret
44
+ 1 1 0.33 sub rsi, rax
45
+ 1 1 1.00 jb .LBB5_1
46
+ 1 1 0.33 add rdi, rsi
47
+ 1 1 0.33 mov rdx, rcx
48
+ 1 1 0.33 mov r8, rdi
49
+ 1 1 0.33 mov rax, r8
50
+ 1 1 1.00 U ret
51
+
52
+
53
+ Resources:
54
+ [0] - SBDivider
55
+ [1] - SBFPDivider
56
+ [2] - SBPort0
57
+ [3] - SBPort1
58
+ [4] - SBPort4
59
+ [5] - SBPort5
60
+ [6.0] - SBPort23
61
+ [6.1] - SBPort23
62
+
63
+
64
+ Resource pressure per iteration:
65
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
66
+ - - 9.66 9.66 - 9.68 - -
67
+
68
+ Resource pressure by instruction:
69
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
70
+ - - - 0.99 - 0.01 - - mov rcx, rdx
71
+ - - 0.66 0.34 - - - - mov edx, 3
72
+ - - 0.34 0.66 - - - - mov rax, rcx
73
+ - - 1.00 1.00 - - - - mul rdx
74
+ - - - - - 1.00 - - jo .LBB5_1
75
+ - - 1.00 - - - - - cmp rax, -10
76
+ - - - - - 1.00 - - ja .LBB5_1
77
+ - - - 1.00 - - - - lea rdx, [rax + 9]
78
+ - - 1.00 - - - - - not eax
79
+ - - 1.00 - - - - - and eax, 3
80
+ - - 1.00 - - - - - add rax, rdx
81
+ - - - - - 1.00 - - jae .LBB5_4
82
+ - - - - - - - - xor r8d, r8d
83
+ - - 0.33 0.33 - 0.34 - - mov edx, 1
84
+ - - 0.33 - - 0.67 - - mov rax, r8
85
+ - - - - - 1.00 - - ret
86
+ - - 0.33 0.67 - - - - lea r9d, [rsi + rdi]
87
+ - - - - - - - - xor edx, edx
88
+ - - 0.67 0.33 - - - - mov r8d, 0
89
+ - - 0.33 0.34 - 0.33 - - test r9b, 3
90
+ - - - - - 1.00 - - je .LBB5_5
91
+ - - 0.66 0.01 - 0.33 - - mov rax, r8
92
+ - - - - - 1.00 - - ret
93
+ - - 0.33 0.67 - - - - sub rsi, rax
94
+ - - - - - 1.00 - - jb .LBB5_1
95
+ - - - 1.00 - - - - add rdi, rsi
96
+ - - 0.01 0.99 - - - - mov rdx, rcx
97
+ - - - 1.00 - - - - mov r8, rdi
98
+ - - 0.67 0.33 - - - - mov rax, r8
99
+ - - - - - 1.00 - - ret
@@ -0,0 +1,13 @@
1
+ #[path = "formats/coco_dynamic_size.rs"]
2
+ mod format;
3
+
4
+ #[unsafe(no_mangle)]
5
+ fn bench_ref_from_suffix_with_elems_dynamic_size(
6
+ source: &[u8],
7
+ count: usize,
8
+ ) -> Option<&format::LocoPacket> {
9
+ match zerocopy::FromBytes::ref_from_suffix_with_elems(source, count) {
10
+ Ok((_rest, packet)) => Some(packet),
11
+ _ => None,
12
+ }
13
+ }
@@ -0,0 +1,23 @@
1
+ bench_ref_from_suffix_with_elems_dynamic_size:
2
+ movabs rax, 9223372036854775805
3
+ cmp rdx, rax
4
+ ja .LBB5_1
5
+ lea r8d, [rsi + rdi]
6
+ xor ecx, ecx
7
+ mov eax, 0
8
+ test r8b, 1
9
+ jne .LBB5_5
10
+ lea rax, [2*rdx + 4]
11
+ sub rsi, rax
12
+ jae .LBB5_4
13
+ .LBB5_1:
14
+ xor eax, eax
15
+ mov edx, 1
16
+ ret
17
+ .LBB5_4:
18
+ add rdi, rsi
19
+ mov rcx, rdx
20
+ mov rax, rdi
21
+ .LBB5_5:
22
+ mov rdx, rcx
23
+ ret
@@ -0,0 +1,77 @@
1
+ Iterations: 100
2
+ Instructions: 1900
3
+ Total Cycles: 571
4
+ Total uOps: 1900
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.33
8
+ IPC: 3.33
9
+ Block RThroughput: 5.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 movabs rax, 9223372036854775805
22
+ 1 1 0.33 cmp rdx, rax
23
+ 1 1 1.00 ja .LBB5_1
24
+ 1 1 0.50 lea r8d, [rsi + rdi]
25
+ 1 0 0.25 xor ecx, ecx
26
+ 1 1 0.33 mov eax, 0
27
+ 1 1 0.33 test r8b, 1
28
+ 1 1 1.00 jne .LBB5_5
29
+ 1 1 0.50 lea rax, [2*rdx + 4]
30
+ 1 1 0.33 sub rsi, rax
31
+ 1 1 1.00 jae .LBB5_4
32
+ 1 0 0.25 xor eax, eax
33
+ 1 1 0.33 mov edx, 1
34
+ 1 1 1.00 U ret
35
+ 1 1 0.33 add rdi, rsi
36
+ 1 1 0.33 mov rcx, rdx
37
+ 1 1 0.33 mov rax, rdi
38
+ 1 1 0.33 mov rdx, rcx
39
+ 1 1 1.00 U ret
40
+
41
+
42
+ Resources:
43
+ [0] - SBDivider
44
+ [1] - SBFPDivider
45
+ [2] - SBPort0
46
+ [3] - SBPort1
47
+ [4] - SBPort4
48
+ [5] - SBPort5
49
+ [6.0] - SBPort23
50
+ [6.1] - SBPort23
51
+
52
+
53
+ Resource pressure per iteration:
54
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
55
+ - - 5.66 5.66 - 5.68 - -
56
+
57
+ Resource pressure by instruction:
58
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
59
+ - - 0.66 0.33 - 0.01 - - movabs rax, 9223372036854775805
60
+ - - 0.01 0.99 - - - - cmp rdx, rax
61
+ - - - - - 1.00 - - ja .LBB5_1
62
+ - - 0.99 0.01 - - - - lea r8d, [rsi + rdi]
63
+ - - - - - - - - xor ecx, ecx
64
+ - - 0.33 0.33 - 0.34 - - mov eax, 0
65
+ - - 0.33 0.34 - 0.33 - - test r8b, 1
66
+ - - - - - 1.00 - - jne .LBB5_5
67
+ - - 0.34 0.66 - - - - lea rax, [2*rdx + 4]
68
+ - - - 1.00 - - - - sub rsi, rax
69
+ - - - - - 1.00 - - jae .LBB5_4
70
+ - - - - - - - - xor eax, eax
71
+ - - 1.00 - - - - - mov edx, 1
72
+ - - - - - 1.00 - - ret
73
+ - - - 1.00 - - - - add rdi, rsi
74
+ - - 1.00 - - - - - mov rcx, rdx
75
+ - - 0.32 0.68 - - - - mov rax, rdi
76
+ - - 0.68 0.32 - - - - mov rdx, rcx
77
+ - - - - - 1.00 - - ret
@@ -0,0 +1,16 @@
1
+ use zerocopy::Unalign;
2
+ use zerocopy_derive::*;
3
+
4
+ #[path = "formats/coco_static_size.rs"]
5
+ mod format;
6
+
7
+ #[derive(IntoBytes, KnownLayout, Immutable)]
8
+ #[repr(C)]
9
+ struct MinimalViableSource {
10
+ bytes: [u8; 6],
11
+ }
12
+
13
+ #[unsafe(no_mangle)]
14
+ fn bench_transmute(source: MinimalViableSource) -> Unalign<format::LocoPacket> {
15
+ zerocopy::transmute!(source)
16
+ }
@@ -0,0 +1,3 @@
1
+ bench_transmute:
2
+ mov rax, rdi
3
+ ret
@@ -0,0 +1,43 @@
1
+ Iterations: 100
2
+ Instructions: 200
3
+ Total Cycles: 104
4
+ Total uOps: 200
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 1.92
8
+ IPC: 1.92
9
+ Block RThroughput: 1.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 1.00 U ret
23
+
24
+
25
+ Resources:
26
+ [0] - SBDivider
27
+ [1] - SBFPDivider
28
+ [2] - SBPort0
29
+ [3] - SBPort1
30
+ [4] - SBPort4
31
+ [5] - SBPort5
32
+ [6.0] - SBPort23
33
+ [6.1] - SBPort23
34
+
35
+
36
+ Resource pressure per iteration:
37
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
38
+ - - 0.49 0.50 - 1.01 - -
39
+
40
+ Resource pressure by instruction:
41
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
42
+ - - 0.49 0.50 - 0.01 - - mov rax, rdi
43
+ - - - - - 1.00 - - ret
@@ -0,0 +1,16 @@
1
+ use zerocopy_derive::*;
2
+
3
+ #[path = "formats/coco_dynamic_size.rs"]
4
+ mod format;
5
+
6
+ #[derive(IntoBytes, KnownLayout, Immutable)]
7
+ #[repr(C, align(2))]
8
+ struct MinimalViableSource {
9
+ header: [u8; 6],
10
+ trailer: [[u8; 2]],
11
+ }
12
+
13
+ #[unsafe(no_mangle)]
14
+ fn bench_transmute_ref_dynamic_size(source: &MinimalViableSource) -> &format::LocoPacket {
15
+ zerocopy::transmute_ref!(source)
16
+ }
@@ -0,0 +1,4 @@
1
+ bench_transmute_ref_dynamic_size:
2
+ mov rax, rdi
3
+ lea rdx, [rsi + 1]
4
+ ret
@@ -0,0 +1,45 @@
1
+ Iterations: 100
2
+ Instructions: 300
3
+ Total Cycles: 104
4
+ Total uOps: 300
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 2.88
8
+ IPC: 2.88
9
+ Block RThroughput: 1.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.50 lea rdx, [rsi + 1]
23
+ 1 1 1.00 U ret
24
+
25
+
26
+ Resources:
27
+ [0] - SBDivider
28
+ [1] - SBFPDivider
29
+ [2] - SBPort0
30
+ [3] - SBPort1
31
+ [4] - SBPort4
32
+ [5] - SBPort5
33
+ [6.0] - SBPort23
34
+ [6.1] - SBPort23
35
+
36
+
37
+ Resource pressure per iteration:
38
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
39
+ - - 0.99 1.00 - 1.01 - -
40
+
41
+ Resource pressure by instruction:
42
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
43
+ - - 0.99 - - 0.01 - - mov rax, rdi
44
+ - - - 1.00 - - - - lea rdx, [rsi + 1]
45
+ - - - - - 1.00 - - ret
@@ -0,0 +1,15 @@
1
+ use zerocopy_derive::*;
2
+
3
+ #[path = "formats/coco_static_size.rs"]
4
+ mod format;
5
+
6
+ #[derive(IntoBytes, KnownLayout, Immutable)]
7
+ #[repr(C, align(2))]
8
+ struct MinimalViableSource {
9
+ bytes: [u8; 6],
10
+ }
11
+
12
+ #[unsafe(no_mangle)]
13
+ fn bench_transmute_ref_static_size(source: &MinimalViableSource) -> &format::LocoPacket {
14
+ zerocopy::transmute_ref!(source)
15
+ }
@@ -0,0 +1,3 @@
1
+ bench_transmute_ref_static_size:
2
+ mov rax, rdi
3
+ ret
@@ -0,0 +1,43 @@
1
+ Iterations: 100
2
+ Instructions: 200
3
+ Total Cycles: 104
4
+ Total uOps: 200
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 1.92
8
+ IPC: 1.92
9
+ Block RThroughput: 1.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 1.00 U ret
23
+
24
+
25
+ Resources:
26
+ [0] - SBDivider
27
+ [1] - SBFPDivider
28
+ [2] - SBPort0
29
+ [3] - SBPort1
30
+ [4] - SBPort4
31
+ [5] - SBPort5
32
+ [6.0] - SBPort23
33
+ [6.1] - SBPort23
34
+
35
+
36
+ Resource pressure per iteration:
37
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
38
+ - - 0.49 0.50 - 1.01 - -
39
+
40
+ Resource pressure by instruction:
41
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
42
+ - - 0.49 0.50 - 0.01 - - mov rax, rdi
43
+ - - - - - 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_read_from_bytes_static_size(source: &[u8]) -> Option<format::CocoPacket> {
6
+ zerocopy::TryFromBytes::try_read_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,23 @@
1
+ bench_try_read_from_bytes_static_size:
2
+ mov ax, -16191
3
+ cmp rsi, 6
4
+ jne .LBB5_1
5
+ mov ecx, dword ptr [rdi]
6
+ movzx edx, cx
7
+ cmp edx, 49344
8
+ jne .LBB5_4
9
+ movzx eax, word ptr [rdi + 4]
10
+ shl rax, 32
11
+ or rcx, rax
12
+ shr rcx, 16
13
+ mov ax, -16192
14
+ .LBB5_4:
15
+ shl rcx, 16
16
+ movzx eax, ax
17
+ or rax, rcx
18
+ ret
19
+ .LBB5_1:
20
+ shl rcx, 16
21
+ movzx eax, ax
22
+ or rax, rcx
23
+ ret