Title: [108456] trunk/Source/_javascript_Core
- Revision
- 108456
- Author
- [email protected]
- Date
- 2012-02-22 00:43:52 -0800 (Wed, 22 Feb 2012)
Log Message
Short circuit fixed for a 16 bt pattern character and an 8 bit string.
https://bugs.webkit.org/show_bug.cgi?id=75602
Patch by Hojong Han <[email protected]> on 2012-02-22
Reviewed by Gavin Barraclough.
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::backtrackPatternCharacterGreedy):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (108455 => 108456)
--- trunk/Source/_javascript_Core/ChangeLog 2012-02-22 08:37:18 UTC (rev 108455)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-02-22 08:43:52 UTC (rev 108456)
@@ -1,3 +1,13 @@
+2012-02-22 Hojong Han <[email protected]>
+
+ Short circuit fixed for a 16 bt pattern character and an 8 bit string.
+ https://bugs.webkit.org/show_bug.cgi?id=75602
+
+ Reviewed by Gavin Barraclough.
+
+ * yarr/YarrJIT.cpp:
+ (JSC::Yarr::YarrGenerator::backtrackPatternCharacterGreedy):
+
2012-02-21 Filip Pizlo <[email protected]>
Build fix for systems with case sensitive disks.
Modified: trunk/Source/_javascript_Core/yarr/YarrJIT.cpp (108455 => 108456)
--- trunk/Source/_javascript_Core/yarr/YarrJIT.cpp 2012-02-22 08:37:18 UTC (rev 108455)
+++ trunk/Source/_javascript_Core/yarr/YarrJIT.cpp 2012-02-22 08:43:52 UTC (rev 108456)
@@ -843,16 +843,22 @@
{
YarrOp& op = m_ops[opIndex];
PatternTerm* term = op.m_term;
+ UChar ch = term->patternCharacter;
const RegisterID countRegister = regT1;
m_backtrackingState.link(this);
- loadFromFrame(term->frameLocation, countRegister);
- m_backtrackingState.append(branchTest32(Zero, countRegister));
- sub32(TrustedImm32(1), countRegister);
- sub32(TrustedImm32(1), index);
- jump(op.m_reentry);
+ if ((ch > 0xff) && (m_charSize == Char8)) {
+ // Have a 16 bit pattern character and an 8 bit string - short circuit
+ m_backtrackingState.append(op.m_jumps);
+ } else {
+ loadFromFrame(term->frameLocation, countRegister);
+ m_backtrackingState.append(branchTest32(Zero, countRegister));
+ sub32(TrustedImm32(1), countRegister);
+ sub32(TrustedImm32(1), index);
+ jump(op.m_reentry);
+ }
}
void generatePatternCharacterNonGreedy(size_t opIndex)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes