Title: [149344] trunk/Source/_javascript_Core
Revision
149344
Author
[email protected]
Date
2013-04-29 18:22:32 -0700 (Mon, 29 Apr 2013)

Log Message

Unify the data access of StringImpl members from _javascript_Core
https://bugs.webkit.org/show_bug.cgi?id=115320

Reviewed by Andreas Kling.

DFG accesses the member infos by directly calling the methods on StringImpl,
while the baseline JIT was using helper methods on ThunkHelpers.

Cut the middle man, and use StringImpl directly everywhere.

* jit/JITInlines.h:
(JSC::JIT::emitLoadCharacterString):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::stringGetByValStubGenerator):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::stringGetByValStubGenerator):
* jit/JSInterfaceJIT.h:
* jit/ThunkGenerators.cpp:
(JSC::stringCharLoad):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (149343 => 149344)


--- trunk/Source/_javascript_Core/ChangeLog	2013-04-30 01:03:52 UTC (rev 149343)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-04-30 01:22:32 UTC (rev 149344)
@@ -1,3 +1,25 @@
+2013-04-29  Benjamin Poulain  <[email protected]>
+
+        Unify the data access of StringImpl members from _javascript_Core
+        https://bugs.webkit.org/show_bug.cgi?id=115320
+
+        Reviewed by Andreas Kling.
+
+        DFG accesses the member infos by directly calling the methods on StringImpl,
+        while the baseline JIT was using helper methods on ThunkHelpers.
+
+        Cut the middle man, and use StringImpl directly everywhere.
+
+        * jit/JITInlines.h:
+        (JSC::JIT::emitLoadCharacterString):
+        * jit/JITPropertyAccess.cpp:
+        (JSC::JIT::stringGetByValStubGenerator):
+        * jit/JITPropertyAccess32_64.cpp:
+        (JSC::JIT::stringGetByValStubGenerator):
+        * jit/JSInterfaceJIT.h:
+        * jit/ThunkGenerators.cpp:
+        (JSC::stringCharLoad):
+
 2013-04-29  Benjamin Poulain  <[email protected]>
 
         Use push and pop for iOS math function thunks

Modified: trunk/Source/_javascript_Core/jit/JITInlines.h (149343 => 149344)


--- trunk/Source/_javascript_Core/jit/JITInlines.h	2013-04-30 01:03:52 UTC (rev 149343)
+++ trunk/Source/_javascript_Core/jit/JITInlines.h	2013-04-30 01:22:32 UTC (rev 149344)
@@ -82,12 +82,12 @@
     failures.append(branch32(NotEqual, MacroAssembler::Address(src, ThunkHelpers::jsStringLengthOffset()), TrustedImm32(1)));
     loadPtr(MacroAssembler::Address(src, ThunkHelpers::jsStringValueOffset()), dst);
     failures.append(branchTest32(Zero, dst));
-    loadPtr(MacroAssembler::Address(dst, ThunkHelpers::stringImplFlagsOffset()), regT1);
-    loadPtr(MacroAssembler::Address(dst, ThunkHelpers::stringImplDataOffset()), dst);
+    loadPtr(MacroAssembler::Address(dst, StringImpl::flagsOffset()), regT1);
+    loadPtr(MacroAssembler::Address(dst, StringImpl::dataOffset()), dst);
 
     JumpList is16Bit;
     JumpList cont8Bit;
-    is16Bit.append(branchTest32(Zero, regT1, TrustedImm32(ThunkHelpers::stringImpl8BitFlag())));
+    is16Bit.append(branchTest32(Zero, regT1, TrustedImm32(StringImpl::flagIs8Bit())));
     load8(MacroAssembler::Address(dst, 0), dst);
     cont8Bit.append(jump());
     is16Bit.link(this);

Modified: trunk/Source/_javascript_Core/jit/JITPropertyAccess.cpp (149343 => 149344)


--- trunk/Source/_javascript_Core/jit/JITPropertyAccess.cpp	2013-04-30 01:03:52 UTC (rev 149343)
+++ trunk/Source/_javascript_Core/jit/JITPropertyAccess.cpp	2013-04-30 01:22:32 UTC (rev 149344)
@@ -71,9 +71,9 @@
     JumpList is16Bit;
     JumpList cont8Bit;
     // Load the string flags
-    jit.loadPtr(Address(regT0, ThunkHelpers::stringImplFlagsOffset()), regT2);
-    jit.loadPtr(Address(regT0, ThunkHelpers::stringImplDataOffset()), regT0);
-    is16Bit.append(jit.branchTest32(Zero, regT2, TrustedImm32(ThunkHelpers::stringImpl8BitFlag())));
+    jit.loadPtr(Address(regT0, StringImpl::flagsOffset()), regT2);
+    jit.loadPtr(Address(regT0, StringImpl::dataOffset()), regT0);
+    is16Bit.append(jit.branchTest32(Zero, regT2, TrustedImm32(StringImpl::flagIs8Bit())));
     jit.load8(BaseIndex(regT0, regT1, TimesOne, 0), regT0);
     cont8Bit.append(jit.jump());
     is16Bit.link(&jit);

Modified: trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp (149343 => 149344)


--- trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp	2013-04-30 01:03:52 UTC (rev 149343)
+++ trunk/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp	2013-04-30 01:22:32 UTC (rev 149344)
@@ -110,9 +110,9 @@
     JumpList is16Bit;
     JumpList cont8Bit;
     // Load the string flags
-    jit.loadPtr(Address(regT0, ThunkHelpers::stringImplFlagsOffset()), regT1);
-    jit.loadPtr(Address(regT0, ThunkHelpers::stringImplDataOffset()), regT0);
-    is16Bit.append(jit.branchTest32(Zero, regT1, TrustedImm32(ThunkHelpers::stringImpl8BitFlag())));
+    jit.loadPtr(Address(regT0, StringImpl::flagsOffset()), regT1);
+    jit.loadPtr(Address(regT0, StringImpl::dataOffset()), regT0);
+    is16Bit.append(jit.branchTest32(Zero, regT1, TrustedImm32(StringImpl::flagIs8Bit())));
     jit.load8(BaseIndex(regT0, regT2, TimesOne, 0), regT0);
     cont8Bit.append(jit.jump());
     is16Bit.link(&jit);

Modified: trunk/Source/_javascript_Core/jit/JSInterfaceJIT.h (149343 => 149344)


--- trunk/Source/_javascript_Core/jit/JSInterfaceJIT.h	2013-04-30 01:03:52 UTC (rev 149343)
+++ trunk/Source/_javascript_Core/jit/JSInterfaceJIT.h	2013-04-30 01:22:32 UTC (rev 149344)
@@ -219,9 +219,6 @@
     };
 
     struct ThunkHelpers {
-        static unsigned stringImplFlagsOffset() { return StringImpl::flagsOffset(); }
-        static unsigned stringImpl8BitFlag() { return StringImpl::flagIs8Bit(); }
-        static unsigned stringImplDataOffset() { return StringImpl::dataOffset(); }
         static unsigned jsStringLengthOffset() { return OBJECT_OFFSETOF(JSString, m_length); }
         static unsigned jsStringValueOffset() { return OBJECT_OFFSETOF(JSString, m_value); }
     };

Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (149343 => 149344)


--- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2013-04-30 01:03:52 UTC (rev 149343)
+++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2013-04-30 01:22:32 UTC (rev 149344)
@@ -436,9 +436,9 @@
     SpecializedThunkJIT::JumpList is16Bit;
     SpecializedThunkJIT::JumpList cont8Bit;
     // Load the string flags
-    jit.loadPtr(MacroAssembler::Address(SpecializedThunkJIT::regT0, ThunkHelpers::stringImplFlagsOffset()), SpecializedThunkJIT::regT2);
-    jit.loadPtr(MacroAssembler::Address(SpecializedThunkJIT::regT0, ThunkHelpers::stringImplDataOffset()), SpecializedThunkJIT::regT0);
-    is16Bit.append(jit.branchTest32(MacroAssembler::Zero, SpecializedThunkJIT::regT2, MacroAssembler::TrustedImm32(ThunkHelpers::stringImpl8BitFlag())));
+    jit.loadPtr(MacroAssembler::Address(SpecializedThunkJIT::regT0, StringImpl::flagsOffset()), SpecializedThunkJIT::regT2);
+    jit.loadPtr(MacroAssembler::Address(SpecializedThunkJIT::regT0, StringImpl::dataOffset()), SpecializedThunkJIT::regT0);
+    is16Bit.append(jit.branchTest32(MacroAssembler::Zero, SpecializedThunkJIT::regT2, MacroAssembler::TrustedImm32(StringImpl::flagIs8Bit())));
     jit.load8(MacroAssembler::BaseIndex(SpecializedThunkJIT::regT0, SpecializedThunkJIT::regT1, MacroAssembler::TimesOne, 0), SpecializedThunkJIT::regT0);
     cont8Bit.append(jit.jump());
     is16Bit.link(&jit);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to