Skip to content

Commit

Permalink
[JSC] Use or64 since it can encode startOfStructureHeap in imm
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=255570
rdar://108171748

Reviewed by Justin Michaud.

StructureAlignedMemoryAllocator ensures that we can compose Structure* with StructureID with BitOr operation.
This patch changes add64 to or64 since or64 can encode bits more nicely in imm field, removing one unnecessary `mov`.

* Source/JavaScriptCore/jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitNonNullDecodeZeroExtendedStructureID):

Canonical link: https://commits.webkit.org/263057@main
  • Loading branch information
Constellation committed Apr 18, 2023
1 parent b96c7b6 commit 34a1f63
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Expand Up @@ -21926,7 +21926,7 @@ IGNORE_CLANG_WARNINGS_END
LValue maskedStructureID = structureID;
if constexpr (structureHeapAddressSize < 4 * GB)
maskedStructureID = m_out.bitAnd(structureID, m_out.constInt32(StructureID::structureIDMask));
return m_out.add(m_out.constIntPtr(g_jscConfig.startOfStructureHeap), m_out.zeroExtPtr(maskedStructureID));
return m_out.bitOr(m_out.constIntPtr(g_jscConfig.startOfStructureHeap), m_out.zeroExtPtr(maskedStructureID));
#endif
}

Expand Down
6 changes: 2 additions & 4 deletions Source/JavaScriptCore/jit/AssemblyHelpers.cpp
Expand Up @@ -442,11 +442,9 @@ void AssemblyHelpers::emitNonNullDecodeZeroExtendedStructureID(RegisterID source
if constexpr (structureHeapAddressSize >= 4 * GB) {
ASSERT(structureHeapAddressSize == 4 * GB);
move(source, dest);
add64(TrustedImm64(g_jscConfig.startOfStructureHeap), dest);
} else {
} else
and32(TrustedImm32(StructureID::structureIDMask), source, dest);
add64(TrustedImm64(g_jscConfig.startOfStructureHeap), dest);
}
or64(TrustedImm64(g_jscConfig.startOfStructureHeap), dest);
#else // not CPU(ADDRESS64)
move(source, dest);
#endif
Expand Down

0 comments on commit 34a1f63

Please sign in to comment.