Skip to content

Commit db4dc52

Browse files
committed
[JSC] Move JIT_UNICODE_EXPRESSIONS to ENABLE(YARR_JIT_UNICODE_EXPRESSIONS) in PlatformEnable.h
https://bugs.webkit.org/show_bug.cgi?id=228669 Reviewed by Alexey Shvayka. Source/JavaScriptCore: Move JIT_UNICODE_EXPRESSIONS to PlatformEnable.h to align to the other YarrJIT flags. This makes it easy to read that this is enabled on ARM64 and X86_64. * yarr/YarrJIT.cpp: Source/WTF: * wtf/PlatformEnable.h: Canonical link: https://commits.webkit.org/240152@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 20fd237 commit db4dc52

4 files changed

Lines changed: 44 additions & 21 deletions

File tree

Source/JavaScriptCore/ChangeLog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
2021-07-31 Yusuke Suzuki <ysuzuki@apple.com>
2+
3+
[JSC] Move JIT_UNICODE_EXPRESSIONS to ENABLE(YARR_JIT_UNICODE_EXPRESSIONS) in PlatformEnable.h
4+
https://bugs.webkit.org/show_bug.cgi?id=228669
5+
6+
Reviewed by Alexey Shvayka.
7+
8+
Move JIT_UNICODE_EXPRESSIONS to PlatformEnable.h to align to the other YarrJIT flags.
9+
This makes it easy to read that this is enabled on ARM64 and X86_64.
10+
11+
* yarr/YarrJIT.cpp:
12+
113
2021-07-31 Yusuke Suzuki <ysuzuki@apple.com>
214

315
[JSC] Clean up Yarr by using `static constexpr`

Source/JavaScriptCore/yarr/YarrJIT.cpp

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,6 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
198198
static constexpr RegisterID returnRegister2 = ARM64Registers::x1;
199199

200200
static constexpr TrustedImm32 surrogateTagMask = TrustedImm32(0xfffffc00);
201-
#define JIT_UNICODE_EXPRESSIONS
202201
#elif CPU(MIPS)
203202
static constexpr RegisterID input = MIPSRegisters::a0;
204203
static constexpr RegisterID index = MIPSRegisters::a1;
@@ -259,7 +258,6 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
259258
static constexpr TrustedImm32 leadingSurrogateTag = TrustedImm32(0xd800);
260259
static constexpr TrustedImm32 trailingSurrogateTag = TrustedImm32(0xdc00);
261260
static constexpr TrustedImm32 surrogateTagMask = TrustedImm32(0xfffffc00);
262-
#define JIT_UNICODE_EXPRESSIONS
263261
#endif
264262

265263
#if ENABLE(YARR_JIT_ALL_PARENS_EXPRESSIONS)
@@ -561,7 +559,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
561559
unicodeFail.link(this);
562560
}
563561

564-
#ifdef JIT_UNICODE_EXPRESSIONS
562+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
565563
void advanceIndexAfterCharacterClassTermMatch(const PatternTerm* term, JumpList& failuresAfterIncrementingIndex, const RegisterID character)
566564
{
567565
ASSERT(term->type == PatternTerm::Type::CharacterClass);
@@ -644,7 +642,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
644642
return BaseIndex(input, indexReg, TimesTwo, characterOffset * static_cast<int32_t>(sizeof(UChar)));
645643
}
646644

647-
#ifdef JIT_UNICODE_EXPRESSIONS
645+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
648646
void tryReadUnicodeCharImpl(RegisterID resultReg)
649647
{
650648
ASSERT(m_charSize == CharSize::Char16);
@@ -691,7 +689,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
691689

692690
if (m_charSize == CharSize::Char8)
693691
load8(address, resultReg);
694-
#ifdef JIT_UNICODE_EXPRESSIONS
692+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
695693
else if (m_decodeSurrogatePairs)
696694
tryReadUnicodeChar(address, resultReg);
697695
#endif
@@ -1679,7 +1677,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
16791677
}
16801678

16811679
op.m_jumps.append(branch32(NotEqual, character, Imm32(ch)));
1682-
#ifdef JIT_UNICODE_EXPRESSIONS
1680+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
16831681
if (m_decodeSurrogatePairs && !U_IS_BMP(ch))
16841682
add32(TrustedImm32(2), countRegister);
16851683
else
@@ -1711,7 +1709,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
17111709
failures.append(jumpIfCharNotEquals(ch, m_checkedOffset - term->inputPosition, character));
17121710

17131711
add32(TrustedImm32(1), index);
1714-
#ifdef JIT_UNICODE_EXPRESSIONS
1712+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
17151713
if (m_decodeSurrogatePairs && !U_IS_BMP(ch)) {
17161714
Jump surrogatePairOk = notAtEndOfInput();
17171715
sub32(TrustedImm32(1), index);
@@ -1785,7 +1783,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
17851783
nonGreedyFailures.append(jumpIfCharNotEquals(ch, m_checkedOffset - term->inputPosition, character));
17861784

17871785
add32(TrustedImm32(1), index);
1788-
#ifdef JIT_UNICODE_EXPRESSIONS
1786+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
17891787
if (m_decodeSurrogatePairs && !U_IS_BMP(ch)) {
17901788
Jump surrogatePairOk = notAtEndOfInput();
17911789
sub32(TrustedImm32(1), index);
@@ -1835,7 +1833,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
18351833
matchDest.link(this);
18361834
}
18371835
}
1838-
#ifdef JIT_UNICODE_EXPRESSIONS
1836+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
18391837
if (m_decodeSurrogatePairs && (!term->characterClass->hasOneCharacterSize() || term->invert())) {
18401838
Jump isBMPChar = branch32(LessThan, character, supplementaryPlanesBase);
18411839
op.m_jumps.append(atEndOfInput());
@@ -1846,7 +1844,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
18461844
}
18471845
void backtrackCharacterClassOnce(size_t opIndex)
18481846
{
1849-
#ifdef JIT_UNICODE_EXPRESSIONS
1847+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
18501848
if (m_decodeSurrogatePairs) {
18511849
YarrOp& op = m_ops[opIndex];
18521850
PatternTerm* term = op.m_term;
@@ -1874,7 +1872,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
18741872

18751873
Checked<unsigned> scaledMaxCount = term->quantityMaxCount;
18761874

1877-
#ifdef JIT_UNICODE_EXPRESSIONS
1875+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
18781876
if (m_decodeSurrogatePairs && term->characterClass->hasOnlyNonBMPCharacters() && !term->invert())
18791877
scaledMaxCount *= 2;
18801878
#endif
@@ -1896,7 +1894,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
18961894
}
18971895
}
18981896

1899-
#ifdef JIT_UNICODE_EXPRESSIONS
1897+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
19001898
if (m_decodeSurrogatePairs) {
19011899
if (term->isFixedWidthCharacterClass())
19021900
add32(TrustedImm32(term->characterClass->hasNonBMPCharacters() ? 2 : 1), countRegister);
@@ -1933,7 +1931,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
19331931
JumpList failures;
19341932
JumpList failuresDecrementIndex;
19351933
Label loop(this);
1936-
#ifdef JIT_UNICODE_EXPRESSIONS
1934+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
19371935
if (term->isFixedWidthCharacterClass() && term->characterClass->hasNonBMPCharacters()) {
19381936
move(TrustedImm32(1), character);
19391937
failures.append(checkNotEnoughInput(character));
@@ -1956,7 +1954,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
19561954
matchDest.link(this);
19571955
}
19581956

1959-
#ifdef JIT_UNICODE_EXPRESSIONS
1957+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
19601958
if (m_decodeSurrogatePairs)
19611959
advanceIndexAfterCharacterClassTermMatch(term, failuresDecrementIndex, character);
19621960
else
@@ -2012,7 +2010,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
20122010
sub32(TrustedImm32(1), countRegister);
20132011
add32(TrustedImm32(1), index);
20142012

2015-
#ifdef JIT_UNICODE_EXPRESSIONS
2013+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
20162014
Jump isBMPChar = branch32(LessThan, character, supplementaryPlanesBase);
20172015
add32(TrustedImm32(1), index);
20182016
isBMPChar.link(this);
@@ -2036,7 +2034,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
20362034
move(TrustedImm32(0), countRegister);
20372035
op.m_reentry = label();
20382036

2039-
#ifdef JIT_UNICODE_EXPRESSIONS
2037+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
20402038
if (m_decodeSurrogatePairs) {
20412039
if (!term->characterClass->hasOneCharacterSize() || term->invert())
20422040
storeToFrame(index, term->frameLocation + BackTrackInfoCharacterClass::beginIndex());
@@ -2059,7 +2057,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
20592057

20602058
m_backtrackingState.link(this);
20612059

2062-
#ifdef JIT_UNICODE_EXPRESSIONS
2060+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
20632061
if (m_decodeSurrogatePairs) {
20642062
if (!term->characterClass->hasOneCharacterSize() || term->invert())
20652063
loadFromFrame(term->frameLocation + BackTrackInfoCharacterClass::beginIndex(), index);
@@ -2086,7 +2084,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
20862084
}
20872085
}
20882086

2089-
#ifdef JIT_UNICODE_EXPRESSIONS
2087+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
20902088
if (m_decodeSurrogatePairs)
20912089
advanceIndexAfterCharacterClassTermMatch(term, nonGreedyFailuresDecrementIndex, character);
20922090
else
@@ -3930,7 +3928,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
39303928

39313929
void generateTryReadUnicodeCharacterHelper()
39323930
{
3933-
#ifdef JIT_UNICODE_EXPRESSIONS
3931+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
39343932
if (m_tryReadUnicodeCharacterCalls.isEmpty())
39353933
return;
39363934

@@ -4074,7 +4072,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
40744072
{
40754073
YarrCodeBlock& codeBlock = m_codeBlock;
40764074

4077-
#ifndef JIT_UNICODE_EXPRESSIONS
4075+
#if !ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
40784076
if (m_decodeSurrogatePairs) {
40794077
codeBlock.setFallBackWithFailureReason(JITFailureReason::DecodeSurrogatePair);
40804078
return;
@@ -4140,7 +4138,7 @@ class YarrGenerator final : public YarrJITInfo, private MacroAssembler {
41404138
move(regT0, stackPointerRegister);
41414139
}
41424140

4143-
#ifdef JIT_UNICODE_EXPRESSIONS
4141+
#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS)
41444142
if (m_decodeSurrogatePairs)
41454143
getEffectiveAddress(BaseIndex(input, length, TimesTwo), endOfStringAddress);
41464144
#endif

Source/WTF/ChangeLog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2021-07-31 Yusuke Suzuki <ysuzuki@apple.com>
2+
3+
[JSC] Move JIT_UNICODE_EXPRESSIONS to ENABLE(YARR_JIT_UNICODE_EXPRESSIONS) in PlatformEnable.h
4+
https://bugs.webkit.org/show_bug.cgi?id=228669
5+
6+
Reviewed by Alexey Shvayka.
7+
8+
* wtf/PlatformEnable.h:
9+
110
2021-07-30 Rob Buis <rbuis@igalia.com>
211

312
[css-overflow] Implement clip value for overflow

Source/WTF/wtf/PlatformEnable.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,10 @@
751751
#define ENABLE_YARR_JIT_BACKREFERENCES 1
752752
#endif
753753

754+
#if CPU(ARM64) || CPU(X86_64)
755+
#define ENABLE_YARR_JIT_UNICODE_EXPRESSIONS 1
756+
#endif
757+
754758
/* If either the JIT or the RegExp JIT is enabled, then the Assembler must be
755759
enabled as well: */
756760
#if ENABLE(JIT) || ENABLE(YARR_JIT) || !ENABLE(C_LOOP)

0 commit comments

Comments
 (0)