[webkit-reviews] review granted: [Bug 240443] Add ARM64 disassembler support for symbolic dumping of some well known constants. : [Attachment 459468] proposed patch.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 16 18:09:57 PDT 2022
Yusuke Suzuki <ysuzuki at apple.com> has granted Mark Lam <mark.lam at apple.com>'s
request for review:
Bug 240443: Add ARM64 disassembler support for symbolic dumping of some well
known constants.
https://bugs.webkit.org/show_bug.cgi?id=240443
Attachment 459468: proposed patch.
https://bugs.webkit.org/attachment.cgi?id=459468&action=review
--- Comment #11 from Yusuke Suzuki <ysuzuki at apple.com> ---
Comment on attachment 459468
--> https://bugs.webkit.org/attachment.cgi?id=459468
proposed patch.
View in context: https://bugs.webkit.org/attachment.cgi?id=459468&action=review
r=me
> Source/JavaScriptCore/ChangeLog:119
> + 7. Enhanced the Integrity::isSanePointer() check to reject pointer
values that
> + are less than 4G on CPU(ADDRESS64) targets. No sane pointer
should be in the
> + lowest 4G address region.
> +
> + This also helps the disassembler more quickly filter out constant
values that
> + aren't pointers.
> +
> + This change affects DFG's speculationFromCell(), which is the
only place that
> + may affect user facing performance. However, I think the impact
should be
> + insignificant (since the added check is cheap).
Is it true for all supported OSes (Windows, Linux, FreeBSD)? Or, should we have
`OS(DARWIN)` guard?
> Source/JavaScriptCore/disassembler/Disassembler.cpp:52
> +using LabelMap = HashMap<void*, std::variant<CString, const char*>>;
> +LazyNeverDestroyed<LabelMap> labelMap;
> +
> +static LabelMap& ensureLabelMap()
> +{
> + static std::once_flag onceKey;
> + std::call_once(onceKey, [] {
> + labelMap.construct();
> + });
> + return labelMap.get();
> +}
We need a lock around access to this hashmap since concurrent compilers &
concurrent VMs on workers can put things into this hashmap.
> Source/WTF/ChangeLog:13
> +USE(APPLE_INTERNAL_SDK) && ENABLE(DISASSEMBLER) && CPU(ARM64E)
Is it a typo?
More information about the webkit-reviews
mailing list