mirror of
https://github.com/dart-lang/sdk
synced 2024-09-04 16:03:44 +00:00
39b8f7bef4
Before this CL kernel tags had specialized tags that was marked by the single high bit, then using the three lowest bits for a value: 128 + value = 0b10000xxx 136 + value = 0b10001xxx 144 + value = 0b10010xxx So the numbers from 128 to 151 is taken by this scheme, but because of the high bit marking stuff being special we can't really use 152-256. This CL shifts the specialized tags up so it instead uses the 3 highest bits as a marker while still using the lower 3 bits for the value: 224 + value = 0b11100xxx 232 + value = 0b11101xxx 240 + value = 0b11110xxx This takes up 224-247 and leave 248-255 unused. It would let us use 128-223 though. (If we eventually need more we can probably remove one of the specialized ranges (SpecializedVariableSet isn't used very much in previously sampled dill files) and use 4 bits for tagging). Additionally, a tool to print free tags has been added (via binary.md), and the "binary version is in sync with VM" test has been prepared for version > 99. TEST=Existing tests. Change-Id: If77b12cee6fc3801628dd67dc40afbb018ec8a61 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284302 Reviewed-by: Martin Kustermann <kustermann@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Jens Johansen <jensj@google.com> |
||
---|---|---|
.. | ||
compare_hierarchies.dart | ||
count_breakdown.dart | ||
dill_forensic.dart | ||
dump.dart | ||
size_breakdown.dart | ||
split.dart | ||
switch_order.dart | ||
type_check.dart |