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,65 @@
1
+ Iterations: 100
2
+ Instructions: 1300
3
+ Total Cycles: 377
4
+ Total uOps: 1400
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.71
8
+ IPC: 3.45
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 rcx, rsi
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.50 shl rcx, 16
29
+ 1 1 0.33 inc rcx
30
+ 1 0 0.25 xor eax, eax
31
+ 1 1 0.33 cmp rsi, 6
32
+ 2 2 0.67 cmovae rax, rcx
33
+ 1 1 1.00 U ret
34
+
35
+
36
+ Resources:
37
+ [0] - SBDivider
38
+ [1] - SBFPDivider
39
+ [2] - SBPort0
40
+ [3] - SBPort1
41
+ [4] - SBPort4
42
+ [5] - SBPort5
43
+ [6.0] - SBPort23
44
+ [6.1] - SBPort23
45
+
46
+
47
+ Resource pressure per iteration:
48
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
49
+ - - 3.66 3.67 - 3.67 1.00 1.00
50
+
51
+ Resource pressure by instruction:
52
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
53
+ - - 0.63 0.36 - 0.01 - - mov rcx, rsi
54
+ - - 0.05 0.05 - 0.90 - - cmp rsi, 6
55
+ - - - - - 1.00 - - jb .LBB5_2
56
+ - - - - - - - 1.00 mov eax, dword ptr [rdi + rsi - 6]
57
+ - - - - - - 1.00 - movzx ecx, word ptr [rdi + rsi - 2]
58
+ - - 0.97 - - 0.03 - - shl rcx, 32
59
+ - - 0.02 0.35 - 0.63 - - or rcx, rax
60
+ - - 0.98 - - 0.02 - - shl rcx, 16
61
+ - - - 0.98 - 0.02 - - inc rcx
62
+ - - - - - - - - xor eax, eax
63
+ - - 0.03 0.93 - 0.04 - - cmp rsi, 6
64
+ - - 0.98 1.00 - 0.02 - - cmovae rax, rcx
65
+ - - - - - 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_ref_from_bytes_dynamic_padding(source: &[u8]) -> Option<&format::LocoPacket> {
6
+ zerocopy::FromBytes::ref_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,22 @@
1
+ bench_ref_from_bytes_dynamic_padding:
2
+ test dil, 3
3
+ jne .LBB5_3
4
+ movabs rax, 9223372036854775804
5
+ and rax, rsi
6
+ cmp rax, 9
7
+ jb .LBB5_3
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
+ je .LBB5_4
17
+ .LBB5_3:
18
+ xor edi, edi
19
+ mov rdx, rsi
20
+ .LBB5_4:
21
+ mov rax, rdi
22
+ ret
@@ -0,0 +1,77 @@
1
+ Iterations: 100
2
+ Instructions: 1900
3
+ Total Cycles: 645
4
+ Total uOps: 2000
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.10
8
+ IPC: 2.95
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 test dil, 3
22
+ 1 1 1.00 jne .LBB5_3
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_3
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 je .LBB5_4
36
+ 1 0 0.25 xor edi, edi
37
+ 1 1 0.33 mov rdx, rsi
38
+ 1 1 0.33 mov rax, rdi
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
+ - - 6.32 6.33 - 6.35 - -
56
+
57
+ Resource pressure by instruction:
58
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
59
+ - - 0.64 0.35 - 0.01 - - test dil, 3
60
+ - - - - - 1.00 - - jne .LBB5_3
61
+ - - 0.34 0.65 - 0.01 - - movabs rax, 9223372036854775804
62
+ - - 0.35 0.65 - - - - and rax, rsi
63
+ - - 0.33 0.34 - 0.33 - - cmp rax, 9
64
+ - - - - - 1.00 - - jb .LBB5_3
65
+ - - 0.35 - - 0.65 - - add rax, -9
66
+ - - 0.97 0.01 - 0.02 - - movabs rcx, -6148914691236517205
67
+ - - 1.00 1.00 - - - - mul rcx
68
+ - - 0.99 - - 0.01 - - shr rdx
69
+ - - 0.33 0.67 - - - - lea rax, [rdx + 2*rdx]
70
+ - - 0.34 0.66 - - - - or rax, 3
71
+ - - 0.33 0.66 - 0.01 - - add rax, 9
72
+ - - 0.01 0.99 - - - - cmp rsi, rax
73
+ - - - - - 1.00 - - je .LBB5_4
74
+ - - - - - - - - xor edi, edi
75
+ - - 0.32 0.01 - 0.67 - - mov rdx, rsi
76
+ - - 0.02 0.34 - 0.64 - - mov rax, rdi
77
+ - - - - - 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_ref_from_bytes_dynamic_size(source: &[u8]) -> Option<&format::LocoPacket> {
6
+ zerocopy::FromBytes::ref_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,20 @@
1
+ bench_ref_from_bytes_dynamic_size:
2
+ mov rdx, rsi
3
+ cmp rsi, 4
4
+ setb al
5
+ or al, dil
6
+ test al, 1
7
+ je .LBB5_2
8
+ xor eax, eax
9
+ ret
10
+ .LBB5_2:
11
+ lea rcx, [rdx - 4]
12
+ mov rsi, rcx
13
+ and rsi, -2
14
+ add rsi, 4
15
+ shr rcx
16
+ xor eax, eax
17
+ cmp rdx, rsi
18
+ cmove rdx, rcx
19
+ cmove rax, rdi
20
+ ret
@@ -0,0 +1,75 @@
1
+ Iterations: 100
2
+ Instructions: 1800
3
+ Total Cycles: 704
4
+ Total uOps: 2000
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 2.84
8
+ IPC: 2.56
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 mov rdx, rsi
22
+ 1 1 0.33 cmp rsi, 4
23
+ 1 1 0.50 setb al
24
+ 1 1 0.33 or al, dil
25
+ 1 1 0.33 test al, 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 rcx, [rdx - 4]
30
+ 1 1 0.33 mov rsi, rcx
31
+ 1 1 0.33 and rsi, -2
32
+ 1 1 0.33 add rsi, 4
33
+ 1 1 0.50 shr rcx
34
+ 1 0 0.25 xor eax, eax
35
+ 1 1 0.33 cmp rdx, rsi
36
+ 2 2 0.67 cmove rdx, rcx
37
+ 2 2 0.67 cmove rax, rdi
38
+ 1 1 1.00 U ret
39
+
40
+
41
+ Resources:
42
+ [0] - SBDivider
43
+ [1] - SBFPDivider
44
+ [2] - SBPort0
45
+ [3] - SBPort1
46
+ [4] - SBPort4
47
+ [5] - SBPort5
48
+ [6.0] - SBPort23
49
+ [6.1] - SBPort23
50
+
51
+
52
+ Resource pressure per iteration:
53
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
54
+ - - 5.97 5.98 - 6.05 - -
55
+
56
+ Resource pressure by instruction:
57
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
58
+ - - 0.97 0.01 - 0.02 - - mov rdx, rsi
59
+ - - 0.01 0.02 - 0.97 - - cmp rsi, 4
60
+ - - 0.03 - - 0.97 - - setb al
61
+ - - 0.01 0.02 - 0.97 - - or al, dil
62
+ - - - 0.98 - 0.02 - - test al, 1
63
+ - - - - - 1.00 - - je .LBB5_2
64
+ - - - - - - - - xor eax, eax
65
+ - - - - - 1.00 - - ret
66
+ - - 0.98 0.02 - - - - lea rcx, [rdx - 4]
67
+ - - 0.01 0.99 - - - - mov rsi, rcx
68
+ - - - 0.98 - 0.02 - - and rsi, -2
69
+ - - 0.98 0.01 - 0.01 - - add rsi, 4
70
+ - - 0.99 - - 0.01 - - shr rcx
71
+ - - - - - - - - xor eax, eax
72
+ - - 0.02 0.97 - 0.01 - - cmp rdx, rsi
73
+ - - 0.99 0.99 - 0.02 - - cmove rdx, rcx
74
+ - - 0.98 0.99 - 0.03 - - cmove rax, rdi
75
+ - - - - - 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_ref_from_bytes_static_size(source: &[u8]) -> Option<&format::LocoPacket> {
6
+ zerocopy::FromBytes::ref_from_bytes(source).ok()
7
+ }
@@ -0,0 +1,8 @@
1
+ bench_ref_from_bytes_static_size:
2
+ mov ecx, edi
3
+ and ecx, 1
4
+ xor rsi, 6
5
+ xor eax, eax
6
+ or rsi, rcx
7
+ cmove rax, rdi
8
+ ret
@@ -0,0 +1,53 @@
1
+ Iterations: 100
2
+ Instructions: 700
3
+ Total Cycles: 240
4
+ Total uOps: 800
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.33
8
+ IPC: 2.92
9
+ Block RThroughput: 2.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 ecx, edi
22
+ 1 1 0.33 and ecx, 1
23
+ 1 1 0.33 xor rsi, 6
24
+ 1 0 0.25 xor eax, eax
25
+ 1 1 0.33 or rsi, rcx
26
+ 2 2 0.67 cmove rax, rdi
27
+ 1 1 1.00 U ret
28
+
29
+
30
+ Resources:
31
+ [0] - SBDivider
32
+ [1] - SBFPDivider
33
+ [2] - SBPort0
34
+ [3] - SBPort1
35
+ [4] - SBPort4
36
+ [5] - SBPort5
37
+ [6.0] - SBPort23
38
+ [6.1] - SBPort23
39
+
40
+
41
+ Resource pressure per iteration:
42
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
43
+ - - 2.33 2.33 - 2.34 - -
44
+
45
+ Resource pressure by instruction:
46
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
47
+ - - 0.01 0.98 - 0.01 - - mov ecx, edi
48
+ - - 0.02 0.66 - 0.32 - - and ecx, 1
49
+ - - 0.33 0.66 - 0.01 - - xor rsi, 6
50
+ - - - - - - - - xor eax, eax
51
+ - - 0.98 0.02 - - - - or rsi, rcx
52
+ - - 0.99 0.01 - 1.00 - - cmove rax, rdi
53
+ - - - - - 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_ref_from_bytes_with_elems_dynamic_padding(
6
+ source: &[u8],
7
+ count: usize,
8
+ ) -> Option<&format::LocoPacket> {
9
+ zerocopy::FromBytes::ref_from_bytes_with_elems(source, count).ok()
10
+ }
@@ -0,0 +1,30 @@
1
+ bench_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_5
7
+ cmp rax, -10
8
+ ja .LBB5_5
9
+ mov edx, eax
10
+ not edx
11
+ and edx, 3
12
+ add rdx, rax
13
+ add rdx, 9
14
+ cmp rsi, rdx
15
+ jne .LBB5_5
16
+ mov r8d, edi
17
+ and r8d, 3
18
+ jne .LBB5_5
19
+ add rax, 9
20
+ cmp rdx, rax
21
+ jb .LBB5_5
22
+ mov rax, rdi
23
+ mov rdx, rcx
24
+ ret
25
+ .LBB5_5:
26
+ xor edi, edi
27
+ mov rcx, rsi
28
+ mov rax, rdi
29
+ mov rdx, rcx
30
+ ret
@@ -0,0 +1,95 @@
1
+ Iterations: 100
2
+ Instructions: 2800
3
+ Total Cycles: 944
4
+ Total uOps: 2900
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.07
8
+ IPC: 2.97
9
+ Block RThroughput: 7.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 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_5
26
+ 1 1 0.33 cmp rax, -10
27
+ 1 1 1.00 ja .LBB5_5
28
+ 1 1 0.33 mov edx, eax
29
+ 1 1 0.33 not edx
30
+ 1 1 0.33 and edx, 3
31
+ 1 1 0.33 add rdx, rax
32
+ 1 1 0.33 add rdx, 9
33
+ 1 1 0.33 cmp rsi, rdx
34
+ 1 1 1.00 jne .LBB5_5
35
+ 1 1 0.33 mov r8d, edi
36
+ 1 1 0.33 and r8d, 3
37
+ 1 1 1.00 jne .LBB5_5
38
+ 1 1 0.33 add rax, 9
39
+ 1 1 0.33 cmp rdx, rax
40
+ 1 1 1.00 jb .LBB5_5
41
+ 1 1 0.33 mov rax, rdi
42
+ 1 1 0.33 mov rdx, rcx
43
+ 1 1 1.00 U ret
44
+ 1 0 0.25 xor edi, edi
45
+ 1 1 0.33 mov rcx, rsi
46
+ 1 1 0.33 mov rax, rdi
47
+ 1 1 0.33 mov rdx, rcx
48
+ 1 1 1.00 U ret
49
+
50
+
51
+ Resources:
52
+ [0] - SBDivider
53
+ [1] - SBFPDivider
54
+ [2] - SBPort0
55
+ [3] - SBPort1
56
+ [4] - SBPort4
57
+ [5] - SBPort5
58
+ [6.0] - SBPort23
59
+ [6.1] - SBPort23
60
+
61
+
62
+ Resource pressure per iteration:
63
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
64
+ - - 9.32 9.32 - 9.36 - -
65
+
66
+ Resource pressure by instruction:
67
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
68
+ - - 0.64 0.18 - 0.18 - - mov rcx, rdx
69
+ - - 0.17 0.83 - - - - mov edx, 3
70
+ - - 0.50 0.49 - 0.01 - - mov rax, rcx
71
+ - - 1.00 1.00 - - - - mul rdx
72
+ - - - - - 1.00 - - jo .LBB5_5
73
+ - - 0.82 0.18 - - - - cmp rax, -10
74
+ - - - - - 1.00 - - ja .LBB5_5
75
+ - - 0.02 0.98 - - - - mov edx, eax
76
+ - - 0.82 0.02 - 0.16 - - not edx
77
+ - - 0.82 0.17 - 0.01 - - and edx, 3
78
+ - - 0.99 - - 0.01 - - add rdx, rax
79
+ - - 0.98 0.01 - 0.01 - - add rdx, 9
80
+ - - 1.00 - - - - - cmp rsi, rdx
81
+ - - - - - 1.00 - - jne .LBB5_5
82
+ - - 0.16 0.83 - 0.01 - - mov r8d, edi
83
+ - - 0.17 0.17 - 0.66 - - and r8d, 3
84
+ - - - - - 1.00 - - jne .LBB5_5
85
+ - - 0.02 0.98 - - - - add rax, 9
86
+ - - - 0.17 - 0.83 - - cmp rdx, rax
87
+ - - - - - 1.00 - - jb .LBB5_5
88
+ - - 0.01 0.67 - 0.32 - - mov rax, rdi
89
+ - - 0.02 0.98 - - - - mov rdx, rcx
90
+ - - - - - 1.00 - - ret
91
+ - - - - - - - - xor edi, edi
92
+ - - 0.34 0.66 - - - - mov rcx, rsi
93
+ - - 0.34 0.50 - 0.16 - - mov rax, rdi
94
+ - - 0.50 0.50 - - - - mov rdx, rcx
95
+ - - - - - 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_ref_from_bytes_with_elems_dynamic_size(
6
+ source: &[u8],
7
+ count: usize,
8
+ ) -> Option<&format::LocoPacket> {
9
+ zerocopy::FromBytes::ref_from_bytes_with_elems(source, count).ok()
10
+ }
@@ -0,0 +1,16 @@
1
+ bench_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_2
9
+ lea rcx, [2*rdx + 4]
10
+ cmp rsi, rcx
11
+ je .LBB5_3
12
+ .LBB5_2:
13
+ xor eax, eax
14
+ mov rdx, rsi
15
+ .LBB5_3:
16
+ ret
@@ -0,0 +1,65 @@
1
+ Iterations: 100
2
+ Instructions: 1300
3
+ Total Cycles: 439
4
+ Total uOps: 1400
5
+
6
+ Dispatch Width: 4
7
+ uOps Per Cycle: 3.19
8
+ IPC: 2.96
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 movabs rax, 9223372036854775805
22
+ 1 1 0.33 cmp rdx, rax
23
+ 2 2 1.00 seta cl
24
+ 1 1 0.33 mov rax, rdi
25
+ 1 1 0.33 or dil, cl
26
+ 1 1 0.33 test dil, 1
27
+ 1 1 1.00 jne .LBB5_2
28
+ 1 1 0.50 lea rcx, [2*rdx + 4]
29
+ 1 1 0.33 cmp rsi, rcx
30
+ 1 1 1.00 je .LBB5_3
31
+ 1 0 0.25 xor eax, eax
32
+ 1 1 0.33 mov rdx, rsi
33
+ 1 1 1.00 U ret
34
+
35
+
36
+ Resources:
37
+ [0] - SBDivider
38
+ [1] - SBFPDivider
39
+ [2] - SBPort0
40
+ [3] - SBPort1
41
+ [4] - SBPort4
42
+ [5] - SBPort5
43
+ [6.0] - SBPort23
44
+ [6.1] - SBPort23
45
+
46
+
47
+ Resource pressure per iteration:
48
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1]
49
+ - - 4.32 4.33 - 4.35 - -
50
+
51
+ Resource pressure by instruction:
52
+ [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
53
+ - - - 0.99 - 0.01 - - movabs rax, 9223372036854775805
54
+ - - 0.33 0.67 - - - - cmp rdx, rax
55
+ - - 1.98 - - 0.02 - - seta cl
56
+ - - 0.01 0.99 - - - - mov rax, rdi
57
+ - - 1.00 - - - - - or dil, cl
58
+ - - 0.99 0.01 - - - - test dil, 1
59
+ - - - - - 1.00 - - jne .LBB5_2
60
+ - - - 1.00 - - - - lea rcx, [2*rdx + 4]
61
+ - - 0.01 - - 0.99 - - cmp rsi, rcx
62
+ - - - - - 1.00 - - je .LBB5_3
63
+ - - - - - - - - xor eax, eax
64
+ - - - 0.67 - 0.33 - - mov rdx, rsi
65
+ - - - - - 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_ref_from_prefix_dynamic_padding(source: &[u8]) -> Option<&format::LocoPacket> {
6
+ match zerocopy::FromBytes::ref_from_prefix(source) {
7
+ Ok((packet, _rest)) => Some(packet),
8
+ _ => None,
9
+ }
10
+ }
@@ -0,0 +1,22 @@
1
+ bench_ref_from_prefix_dynamic_padding:
2
+ xor edx, edx
3
+ mov eax, 0
4
+ test dil, 3
5
+ je .LBB5_1
6
+ ret
7
+ .LBB5_1:
8
+ movabs rax, 9223372036854775804
9
+ and rsi, rax
10
+ cmp rsi, 9
11
+ jae .LBB5_3
12
+ mov edx, 1
13
+ xor eax, eax
14
+ ret
15
+ .LBB5_3:
16
+ add rsi, -9
17
+ movabs rcx, -6148914691236517205
18
+ mov rax, rsi
19
+ mul rcx
20
+ shr rdx
21
+ mov rax, rdi
22
+ ret