Roll out r164732 since it broke Production Mac builds.
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Feb 2014 21:44:36 +0000 (21:44 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 26 Feb 2014 21:44:36 +0000 (21:44 +0000)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164746 268f45cc-cd09-0410-ab3c-d52691b4dbfc

21 files changed:
Source/JavaScriptCore/CMakeLists.txt
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/DerivedSources.make
Source/JavaScriptCore/GNUmakefile.am
Source/JavaScriptCore/GNUmakefile.list.am
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters
Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
Source/JavaScriptCore/bytecode/BytecodeList.json [deleted file]
Source/JavaScriptCore/bytecode/Opcode.h
Source/JavaScriptCore/generate-bytecode-files [deleted file]
Source/JavaScriptCore/llint/LLIntCLoop.cpp
Source/JavaScriptCore/llint/LLIntCLoop.h
Source/JavaScriptCore/llint/LLIntData.cpp
Source/JavaScriptCore/llint/LLIntOpcode.h
Source/JavaScriptCore/llint/LowLevelInterpreter.asm
Source/WebKit/CMakeLists.txt
Source/WebKit/ChangeLog
Source/WebKit2/CMakeLists.txt
Source/WebKit2/ChangeLog

index 8f7b9fb..0db0cdc 100644 (file)
@@ -594,31 +594,24 @@ if (ENABLE_LLINT)
     )
 
     add_custom_command(
-        OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
-        MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files
-        DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json
-        COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json
-        VERBATIM)
-
-    add_custom_command(
         OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
         MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
         DEPENDS ${LLINT_ASM} ${OFFLINE_ASM}
         COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
         VERBATIM)
 
-    # We add the header files directly to the ADD_EXECUTABLE call instead of setting the
-    # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and
-    # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change.
-    # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have
-    # changed the command will always be called because the mtime of the .h files will
-    # always be older than that of their dependencies.
-    # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile
+    # We add the header file directly to the ADD_EXECUTABLE call instead of setting the
+    # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb may
+    # not regenerate it in case the hash it calculates does not change.
+    # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMAND above have
+    # changed the command will always be called because the mtime of LLIntDesiredOffsets.h will
+    # always be older than that of its dependencies.
+    # Additionally, setting the OBJECT_DEPENDS property will make LLIntDesiredOffsets.h a Makefile
     # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
-    # actually be run multiple times!
+    # actually be run twice!
     add_executable(LLIntOffsetsExtractor
         ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
-        ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
+        ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
     )
     target_link_libraries(LLIntOffsetsExtractor WTF)
 
@@ -631,7 +624,7 @@ if (ENABLE_LLINT)
     add_custom_command(
         OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
         MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
-        DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
+        DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM}
         COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
         COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
         VERBATIM)
@@ -796,7 +789,6 @@ set(JavaScriptCore_FORWARDING_HEADERS_FILES
     runtime/VM.h
 
     ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
-    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
 )
 
 
index c4c7ac6..2cea5af 100644 (file)
         (JSC::DFG::compileImpl):
         * jit/JITOperations.cpp:
 
-2014-02-26  Michael Saboff  <msaboff@apple.com>
-
-        Auto generate bytecode information for bytecode parser and LLInt
-        https://bugs.webkit.org/show_bug.cgi?id=129181
-
-        Reviewed by Mark Lam.
-
-        Added new bytecode/BytecodeList.json that contains a list of bytecodes and related
-        helpers.  It also includes bytecode length and other information used to generate files.
-        Added a new generator, generate-bytecode-files that generates Bytecodes.h and InitBytecodes.asm
-        in DerivedSources/JavaScriptCore/.
-
-        Added the generation of these files to the "DerivedSource" build step.
-        Slighty changed the build order, since the Bytecodes.h file is needed by
-        JSCLLIntOffsetsExtractor.  Moved the offline assembly to a separate step since it needs
-        to be run after JSCLLIntOffsetsExtractor.
-
-        Made related changes to OPCODE macros and their use.
-
-        * CMakeLists.txt:
-        * DerivedSources.make:
-        * GNUmakefile.am:
-        * GNUmakefile.list.am:
-        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
-        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
-        * JavaScriptCore.vcxproj/copy-files.cmd:
-        * JavaScriptCore.xcodeproj/project.pbxproj:
-        * bytecode/BytecodeList.json: Added.
-        * bytecode/Opcode.h:
-        (JSC::padOpcodeName):
-        * generate-bytecode-files: Added.
-        * llint/LLIntCLoop.cpp:
-        (JSC::LLInt::CLoop::initialize):
-        * llint/LLIntCLoop.h:
-        * llint/LLIntData.cpp:
-        (JSC::LLInt::initialize):
-        * llint/LLIntOpcode.h:
-        * llint/LowLevelInterpreter.asm:
-
 2014-02-26  Mark Lam  <mark.lam@apple.com>
 
         ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock() in inspector-protocol/*.
index 21ad8e5..12dc8a8 100644 (file)
@@ -58,8 +58,6 @@ all : \
     RegExpObject.lut.h \
     StringConstructor.lut.h \
     udis86_itab.h \
-    Bytecodes.h \
-    InitBytecodes.asm \
     JSCBuiltins \
 #
 
@@ -92,13 +90,6 @@ KeywordLookup.h: KeywordLookupGenerator.py Keywords.table
 udis86_itab.h: $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml
        (PYTHONPATH=$(JavaScriptCore)/disassembler/udis86 python $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml || exit 1)
 
-# Bytecode files
-
-Bytecodes.h: $(JavaScriptCore)/generate-bytecode-files $(JavaScriptCore)/bytecode/BytecodeList.json
-       python $(JavaScriptCore)/generate-bytecode-files --bytecodes_h Bytecodes.h $(JavaScriptCore)/bytecode/BytecodeList.json
-
-InitBytecodes.asm: $(JavaScriptCore)/generate-bytecode-files $(JavaScriptCore)/bytecode/BytecodeList.json
-       python $(JavaScriptCore)/generate-bytecode-files --init_bytecodes_asm InitBytecodes.asm $(JavaScriptCore)/bytecode/BytecodeList.json
 
 # Inspector interfaces
 
index 9c39968..ad73b78 100644 (file)
@@ -95,12 +95,6 @@ pkgconfig_DATA += Source/JavaScriptCore/javascriptcoregtk-@WEBKITGTK_API_VERSION
 
 $(shell mkdir -p DerivedSources/JavaScriptCore)
 
-DerivedSources/JavaScriptCore/Bytecodes.h: $(srcdir)/Source/JavaScriptCore/generate-bytecode-files $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
-       $(AM_V_GEN)$(PYTHON) $(srcdir)/Source/JavaScriptCore/generate-bytecode-files --bytecodes_h $@ $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
-
-DerivedSources/JavaScriptCore/InitBytecodes.asm: $(srcdir)/Source/JavaScriptCore/generate-bytecode-files $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
-       $(AM_V_GEN)$(PYTHON) $(srcdir)/Source/JavaScriptCore/generate-bytecode-files --init_bytecodes_asm $@ $(srcdir)/Source/JavaScriptCore/bytecode/BytecodeList.json
-
 DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table
        $(AM_V_GEN)$(PERL) $^ > $@
 
@@ -117,9 +111,9 @@ DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h: $(javascriptcore_sources) $
        $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@
        $(AM_V_at)touch $@
 
-$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h DerivedSources/JavaScriptCore/Bytecodes.h
+$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h 
 
-DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) DerivedSources/JavaScriptCore/InitBytecodes.asm
+DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT)
        $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@
        $(AM_V_at)touch $@
 
index 74bbd03..baa0ec5 100644 (file)
@@ -34,8 +34,6 @@ javascriptcore_built_nosources += \
        DerivedSources/JavaScriptCore/RegExpObject.lut.h \
        DerivedSources/JavaScriptCore/RegExpPrototype.lut.h \
        DerivedSources/JavaScriptCore/StringConstructor.lut.h \
-       DerivedSources/JavaScriptCore/Bytecodes.h \
-       DerivedSources/JavaScriptCore/InitBytecodes.asm \
        DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h \
        DerivedSources/JavaScriptCore/LLIntAssembly.h
 
index cccc578..261cba9 100644 (file)
     <ClInclude Include="..\yarr\YarrSyntaxChecker.h" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\bytecode\BytecodeList.json" />
     <None Include="JavaScriptCorePostBuild.cmd">
       <FileType>Document</FileType>
     </None>
index 86e2b97..a96a560 100644 (file)
     <None Include="JavaScriptCorePreLink.cmd" />
     <None Include="JavaScriptCorePostBuild.cmd" />
     <None Include="JavaScriptCorePreBuild.cmd" />
-    <None Include="..\bytecode\BytecodeList.json">
-      <Filter>bytecode</Filter>
-    </None>
   </ItemGroup>
   <ItemGroup>
     <MASM Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\LowLevelInterpreterWin.asm" />
index fae5068..e0c1f29 100755 (executable)
@@ -75,7 +75,6 @@ xcopy /y "%DerivedSourcesDirectory%\InspectorJSFrontendDispatchers.h" "%PrivateH
 \r
 echo Copying builtins header as if it were a private header...\r
 xcopy /y "%DerivedSourcesDirectory%\JSCBuiltins.h" "%PrivateHeadersDirectory%" >NUL\r
-xcopy /y "%DerivedSourcesDirectory%\Bytecodes.h" "%PrivateHeadersDirectory%" >NUL\r
 \r
 echo Copying resources...\r
 mkdir "%ResourcesDirectory%" 2>NUL\r
index 6196a6c..293bd01 100644 (file)
                        name = "Test Tools";
                        productName = "Test Tools";
                };
-               65788A9D18B409EB00C189FF /* Offline Assembler */ = {
-                       isa = PBXAggregateTarget;
-                       buildConfigurationList = 65788AA218B409EB00C189FF /* Build configuration list for PBXAggregateTarget "Offline Assembler" */;
-                       buildPhases = (
-                               65788AA018B409EB00C189FF /* Generate Offline Assembler */,
-                       );
-                       dependencies = (
-                               65788A9E18B409EB00C189FF /* PBXTargetDependency */,
-                       );
-                       name = "Offline Assembler";
-                       productName = "Offline Assembler";
-               };
                65FB3F6609D11E9100F49DEB /* Derived Sources */ = {
                        isa = PBXAggregateTarget;
                        buildConfigurationList = 65FB3F7709D11EBD00F49DEB /* Build configuration list for PBXAggregateTarget "Derived Sources" */;
@@ -49,7 +37,7 @@
                                5D35DEE10C7C140B008648B2 /* Generate DTrace header */,
                        );
                        dependencies = (
-                               65788AA918B40A3300C189FF /* PBXTargetDependency */,
+                               0FF922D614F46B600041A24E /* PBXTargetDependency */,
                        );
                        name = "Derived Sources";
                        productName = "Derived Sources";
                651122FD14046A4C002B101D /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; };
                651122FE14046A4C002B101D /* libedit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D5D8AD00E0D0EBE00F9C692 /* libedit.dylib */; };
                6511230714046B0A002B101D /* testRegExp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651122E5140469BA002B101D /* testRegExp.cpp */; };
-               6514F21918B3E1670098FF8B /* Bytecodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6514F21718B3E1670098FF8B /* Bytecodes.h */; settings = {ATTRIBUTES = (Private, ); }; };
                65303D641447B9E100D3F904 /* ParserTokens.h in Headers */ = {isa = PBXBuildFile; fileRef = 65303D631447B9E100D3F904 /* ParserTokens.h */; settings = {ATTRIBUTES = (Private, ); }; };
                6553A33117A1F1EE008CF6F3 /* CommonSlowPathsExceptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6553A32F17A1F1EE008CF6F3 /* CommonSlowPathsExceptions.cpp */; };
                6553A33217A1F1EE008CF6F3 /* CommonSlowPathsExceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6553A33017A1F1EE008CF6F3 /* CommonSlowPathsExceptions.h */; };
                        remoteGlobalIDString = 0F4680A914BA7FD900BFE272;
                        remoteInfo = "LLInt Offsets";
                };
+               0FF922D514F46B600041A24E /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 0FF922C314F46B130041A24E;
+                       remoteInfo = JSCLLIntOffsetsExtractor;
+               };
                5D69E911152BE5470028D720 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
                        remoteGlobalIDString = 5D6B2A47152B9E17005231DE;
                        remoteInfo = "Test Tools";
                };
-               65788A9F18B409EB00C189FF /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = 0FF922C314F46B130041A24E;
-                       remoteInfo = JSCLLIntOffsetsExtractor;
-               };
-               65788AA818B40A3300C189FF /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = 0F4680A914BA7FD900BFE272;
-                       remoteInfo = "LLInt Offsets";
-               };
-               65788AAA18B40A3B00C189FF /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = 65FB3F6609D11E9100F49DEB;
-                       remoteInfo = "Derived Sources";
-               };
-               65788AAC18B40A7B00C189FF /* PBXContainerItemProxy */ = {
-                       isa = PBXContainerItemProxy;
-                       containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-                       proxyType = 1;
-                       remoteGlobalIDString = 65788A9D18B409EB00C189FF;
-                       remoteInfo = "Offline Assembler";
-               };
                65FB3F7D09D11EF300F49DEB /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
                6507D2970E871E4A00D7D896 /* JSTypeInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTypeInfo.h; sourceTree = "<group>"; };
                651122E5140469BA002B101D /* testRegExp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testRegExp.cpp; sourceTree = "<group>"; };
                6511230514046A4C002B101D /* testRegExp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testRegExp; sourceTree = BUILT_PRODUCTS_DIR; };
-               6514F21718B3E1670098FF8B /* Bytecodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bytecodes.h; sourceTree = "<group>"; };
-               6514F21818B3E1670098FF8B /* InitBytecodes.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = InitBytecodes.asm; sourceTree = "<group>"; };
-               6529FB3018B2D63900C61102 /* generate-bytecode-files */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "generate-bytecode-files"; sourceTree = "<group>"; };
-               6529FB3118B2D99900C61102 /* BytecodeList.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BytecodeList.json; sourceTree = "<group>"; };
                652A3A201651C66100A80AFE /* ARM64Disassembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ARM64Disassembler.cpp; path = disassembler/ARM64Disassembler.cpp; sourceTree = "<group>"; };
                652A3A221651C69700A80AFE /* A64DOpcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = A64DOpcode.cpp; path = disassembler/ARM64/A64DOpcode.cpp; sourceTree = "<group>"; };
                652A3A231651C69700A80AFE /* A64DOpcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = A64DOpcode.h; path = disassembler/ARM64/A64DOpcode.h; sourceTree = "<group>"; };
                0867D691FE84028FC02AAC07 /* JavaScriptCore */ = {
                        isa = PBXGroup;
                        children = (
-                               6529FB3018B2D63900C61102 /* generate-bytecode-files */,
                                8604F4F2143A6C4400B295F5 /* ChangeLog */,
                                F692A8540255597D01FF60F7 /* create_hash_table */,
                                A718F8211178EB4B002465A7 /* create_regex_tables */,
                        isa = PBXGroup;
                        children = (
                                BC18C5230E16FC8A00B34460 /* ArrayPrototype.lut.h */,
-                               6514F21718B3E1670098FF8B /* Bytecodes.h */,
                                BCD203E70E1718F4002C7E82 /* DatePrototype.lut.h */,
-                               6514F21818B3E1670098FF8B /* InitBytecodes.asm */,
                                A513E5C6185F9436007E95AD /* InjectedScriptSource.h */,
                                A53243951856A475002ED692 /* InspectorJS.json */,
                                A53243961856A475002ED692 /* InspectorJSBackendCommands.js */,
                969A078F0ED1D3AE00F1F681 /* bytecode */ = {
                        isa = PBXGroup;
                        children = (
-                               6529FB3118B2D99900C61102 /* BytecodeList.json */,
                                0F8335B41639C1E3001443B5 /* ArrayAllocationProfile.cpp */,
                                0F8335B51639C1E3001443B5 /* ArrayAllocationProfile.h */,
                                0F63945115D07051006A597C /* ArrayProfile.cpp */,
                                A1A009C11831A26E00CF8711 /* ARM64Assembler.h in Headers */,
                                86D3B2C410156BDE002865E7 /* ARMAssembler.h in Headers */,
                                86ADD1450FDDEA980006EEC2 /* ARMv7Assembler.h in Headers */,
-                               A5CEEE15187F3BAD00E55C99 /* InspectorAgent.h in Headers */,
-                               6514F21918B3E1670098FF8B /* Bytecodes.h in Headers */,
-                               2A343F7618A1748B0039B085 /* GCSegmentedArray.h in Headers */,
-                               2A343F7818A1749D0039B085 /* GCSegmentedArrayInlines.h in Headers */,
                                65C0285D1717966800351E35 /* ARMv7DOpcode.h in Headers */,
                                0F8335B81639C1EA001443B5 /* ArrayAllocationProfile.h in Headers */,
                                A7A8AF3517ADB5F3005AB174 /* ArrayBuffer.h in Headers */,
                        buildRules = (
                        );
                        dependencies = (
-                               65788AAB18B40A3B00C189FF /* PBXTargetDependency */,
                                0FF922D314F46B2F0041A24E /* PBXTargetDependency */,
                        );
                        name = JSCLLIntOffsetsExtractor;
                        );
                        dependencies = (
                                0FCEFABD1805D66300472CE4 /* PBXTargetDependency */,
-                               65788AAD18B40A7B00C189FF /* PBXTargetDependency */,
                                65FB3F7E09D11EF300F49DEB /* PBXTargetDependency */,
                        );
                        name = JavaScriptCore;
                        targets = (
                                932F5BE30822A1C700736975 /* All */,
                                932F5B3E0822A1C700736975 /* JavaScriptCore */,
-                               0FCEFAB51805D61600472CE4 /* llvmForJSC */,
-                               0F4680A914BA7FD900BFE272 /* LLInt Offsets */,
                                65FB3F6609D11E9100F49DEB /* Derived Sources */,
-                               0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */,
-                               65788A9D18B409EB00C189FF /* Offline Assembler */,
                                1412111F0A48793C00480255 /* minidom */,
                                14BD59BE0A3E8F9000BAF59C /* testapi */,
                                932F5BDA0822A1C700736975 /* jsc */,
                                651122F714046A4C002B101D /* testRegExp */,
+                               0F4680A914BA7FD900BFE272 /* LLInt Offsets */,
+                               0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */,
                                5D6B2A47152B9E17005231DE /* Test Tools */,
+                               0FCEFAB51805D61600472CE4 /* llvmForJSC */,
                        );
                };
 /* End PBXProject section */
                        shellPath = /bin/sh;
                        shellScript = "set -e\n\n# Skip for Production builds.\nif [[ ${CONFIGURATION:=Debug} == \"Production\" ]]; then\n    exit\nfi\n\n# Copy and update the jsc binary to refer to JavaScriptCore.framework relative to its location.\nditto \"${BUILT_PRODUCTS_DIR}/jsc\" \"${BUILT_PRODUCTS_DIR}/${JAVASCRIPTCORE_RESOURCES_DIR}/jsc\"\ninstall_name_tool -change \"${JAVASCRIPTCORE_FRAMEWORKS_DIR}/JavaScriptCore.framework/Versions/A/JavaScriptCore\" \"@loader_path/../JavaScriptCore\" \"${BUILT_PRODUCTS_DIR}/${JAVASCRIPTCORE_RESOURCES_DIR}/jsc\"\n";
                };
-               65788AA018B409EB00C189FF /* Generate Derived Sources */ = {
-                       isa = PBXShellScriptBuildPhase;
-                       buildActionMask = 2147483647;
-                       files = (
-                       );
-                       inputPaths = (
-                       );
-                       name = "Generate Derived Sources";
-                       outputPaths = (
-                       );
-                       runOnlyForDeploymentPostprocessing = 0;
-                       shellPath = /bin/sh;
-                       shellScript = "cd \"${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\"\n\n/usr/bin/env ruby JavaScriptCore/offlineasm/asm.rb JavaScriptCore/llint/LowLevelInterpreter.asm ${BUILT_PRODUCTS_DIR}/JSCLLIntOffsetsExtractor LLIntAssembly.h || exit 1";
-               };
                65FB3F6509D11E9100F49DEB /* Generate Derived Sources */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
-                       shellScript = "set -e\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\"\ncd \"${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\"\n\n/bin/ln -sfh \"${SRCROOT}\" JavaScriptCore\nexport JavaScriptCore=\"JavaScriptCore\"\nexport BUILT_PRODUCTS_DIR=\"../..\"\n\nmake --no-builtin-rules -f \"JavaScriptCore/DerivedSources.make\" -j `/usr/sbin/sysctl -n hw.ncpu`\n\nif [[ \"${ACTION}\" == \"installhdrs\" ]]; then\n    exit 0\nfi";
+                       shellScript = "set -e\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\"\ncd \"${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\"\n\n/bin/ln -sfh \"${SRCROOT}\" JavaScriptCore\nexport JavaScriptCore=\"JavaScriptCore\"\nexport BUILT_PRODUCTS_DIR=\"../..\"\n\nmake --no-builtin-rules -f \"JavaScriptCore/DerivedSources.make\" -j `/usr/sbin/sysctl -n hw.ncpu`\n\nif [[ \"${ACTION}\" == \"installhdrs\" ]]; then\n    exit 0\nfi\n\n/usr/bin/env ruby JavaScriptCore/offlineasm/asm.rb JavaScriptCore/llint/LowLevelInterpreter.asm ${BUILT_PRODUCTS_DIR}/JSCLLIntOffsetsExtractor LLIntAssembly.h\n";
                };
                A55DEAA416703DF7003DB841 /* Check For Inappropriate Macros in External Headers */ = {
                        isa = PBXShellScriptBuildPhase;
                        target = 0F4680A914BA7FD900BFE272 /* LLInt Offsets */;
                        targetProxy = 0FF922D214F46B2F0041A24E /* PBXContainerItemProxy */;
                };
+               0FF922D614F46B600041A24E /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = 0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */;
+                       targetProxy = 0FF922D514F46B600041A24E /* PBXContainerItemProxy */;
+               };
                5D69E912152BE5470028D720 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 932F5BDA0822A1C700736975 /* jsc */;
                        target = 5D6B2A47152B9E17005231DE /* Test Tools */;
                        targetProxy = 5D6B2A56152B9E2E005231DE /* PBXContainerItemProxy */;
                };
-               65788A9E18B409EB00C189FF /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = 0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */;
-                       targetProxy = 65788A9F18B409EB00C189FF /* PBXContainerItemProxy */;
-               };
-               65788AA918B40A3300C189FF /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = 0F4680A914BA7FD900BFE272 /* LLInt Offsets */;
-                       targetProxy = 65788AA818B40A3300C189FF /* PBXContainerItemProxy */;
-               };
-               65788AAB18B40A3B00C189FF /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = 65FB3F6609D11E9100F49DEB /* Derived Sources */;
-                       targetProxy = 65788AAA18B40A3B00C189FF /* PBXContainerItemProxy */;
-               };
-               65788AAD18B40A7B00C189FF /* PBXTargetDependency */ = {
-                       isa = PBXTargetDependency;
-                       target = 65788A9D18B409EB00C189FF /* Offline Assembler */;
-                       targetProxy = 65788AAC18B40A7B00C189FF /* PBXContainerItemProxy */;
-               };
                65FB3F7E09D11EF300F49DEB /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 65FB3F6609D11E9100F49DEB /* Derived Sources */;
                        };
                        name = Production;
                };
-               65788AA318B409EB00C189FF /* Debug */ = {
-                       isa = XCBuildConfiguration;
-                       baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
-                       buildSettings = {
-                               INFOPLIST_FILE = "Derived Sources copy-Info.plist";
-                               PRODUCT_NAME = "Derived Sources copy";
-                       };
-                       name = Debug;
-               };
-               65788AA418B409EB00C189FF /* Release */ = {
-                       isa = XCBuildConfiguration;
-                       baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
-                       buildSettings = {
-                               INFOPLIST_FILE = "Derived Sources copy-Info.plist";
-                               PRODUCT_NAME = "Derived Sources copy";
-                       };
-                       name = Release;
-               };
-               65788AA518B409EB00C189FF /* Profiling */ = {
-                       isa = XCBuildConfiguration;
-                       baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
-                       buildSettings = {
-                               INFOPLIST_FILE = "Derived Sources copy-Info.plist";
-                               PRODUCT_NAME = "Derived Sources copy";
-                       };
-                       name = Profiling;
-               };
-               65788AA618B409EB00C189FF /* Production */ = {
-                       isa = XCBuildConfiguration;
-                       baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
-                       buildSettings = {
-                               INFOPLIST_FILE = "Derived Sources copy-Info.plist";
-                               PRODUCT_NAME = "Derived Sources copy";
-                       };
-                       name = Production;
-               };
                65FB3F7809D11EBD00F49DEB /* Debug */ = {
                        isa = XCBuildConfiguration;
                        baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Production;
                };
-               65788AA218B409EB00C189FF /* Build configuration list for PBXAggregateTarget "Offline Assembler" */ = {
-                       isa = XCConfigurationList;
-                       buildConfigurations = (
-                               65788AA318B409EB00C189FF /* Debug */,
-                               65788AA418B409EB00C189FF /* Release */,
-                               65788AA518B409EB00C189FF /* Profiling */,
-                               65788AA618B409EB00C189FF /* Production */,
-                       );
-                       defaultConfigurationIsVisible = 0;
-                       defaultConfigurationName = Production;
-               };
                65FB3F7709D11EBD00F49DEB /* Build configuration list for PBXAggregateTarget "Derived Sources" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
diff --git a/Source/JavaScriptCore/bytecode/BytecodeList.json b/Source/JavaScriptCore/bytecode/BytecodeList.json
deleted file mode 100644 (file)
index 3203359..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-[
-    {
-        "section" : "Bytecodes", "emitInHFile" : true, "emitInASMFile" : true, "macroNameComponent" : "BYTECODE",
-        "bytecodes" : [
-            { "name" : "op_enter", "length" : 1 },
-            { "name" : "op_create_activation", "length" : 2 },
-            { "name" : "op_touch_entry", "length" : 1 },
-            { "name" : "op_init_lazy_reg", "length" : 2 },
-            { "name" : "op_create_arguments", "length" : 2 },
-            { "name" : "op_create_this", "length" : 4 },
-            { "name" : "op_get_callee", "length" : 3 },
-            { "name" : "op_to_this", "length" : 3 },
-            { "name" : "op_new_object", "length" : 4 },
-            { "name" : "op_new_array", "length" : 5 },
-            { "name" : "op_new_array_with_size", "length" : 4 },
-            { "name" : "op_new_array_buffer", "length" : 5 },
-            { "name" : "op_new_regexp", "length" : 3 },
-            { "name" : "op_mov", "length" : 3 },
-            { "name" : "op_captured_mov", "length" : 4 },
-            { "name" : "op_not", "length" : 3 },
-            { "name" : "op_eq", "length" : 4 },
-            { "name" : "op_eq_null", "length" : 3 },
-            { "name" : "op_neq", "length" : 4 },
-            { "name" : "op_neq_null", "length" : 3 },
-            { "name" : "op_stricteq", "length" : 4 },
-            { "name" : "op_nstricteq", "length" : 4 },
-            { "name" : "op_less", "length" : 4 },
-            { "name" : "op_lesseq", "length" : 4 },
-            { "name" : "op_greater", "length" : 4 },
-            { "name" : "op_greatereq", "length" : 4 },
-            { "name" : "op_inc", "length" : 2 },
-            { "name" : "op_dec", "length" : 2 },
-            { "name" : "op_to_number", "length" : 3 },
-            { "name" : "op_negate", "length" : 3 },
-            { "name" : "op_add", "length" : 5 },
-            { "name" : "op_mul", "length" : 5 },
-            { "name" : "op_div", "length" : 5 },
-            { "name" : "op_mod", "length" : 4 },
-            { "name" : "op_sub", "length" : 5 },
-            { "name" : "op_lshift", "length" : 4 },
-            { "name" : "op_rshift", "length" : 4 },
-            { "name" : "op_urshift", "length" : 4 },
-            { "name" : "op_unsigned", "length" : 3 },
-            { "name" : "op_bitand", "length" : 5 },
-            { "name" : "op_bitxor", "length" : 5 },
-            { "name" : "op_bitor", "length" : 5 },
-            { "name" : "op_check_has_instance", "length" : 5 },
-            { "name" : "op_instanceof", "length" : 4 },
-            { "name" : "op_typeof", "length" : 3 },
-            { "name" : "op_is_undefined", "length" : 3 },
-            { "name" : "op_is_boolean", "length" : 3 },
-            { "name" : "op_is_number", "length" : 3 },
-            { "name" : "op_is_string", "length" : 3 },
-            { "name" : "op_is_object", "length" : 3 },
-            { "name" : "op_is_function", "length" : 3 },
-            { "name" : "op_in", "length" : 4 },
-            { "name" : "op_init_global_const_nop", "length" : 5 },
-            { "name" : "op_init_global_const", "length" : 5 },
-            { "name" : "op_get_by_id", "length" : 9  },
-            { "name" : "op_get_by_id_out_of_line", "length" : 9  },
-            { "name" : "op_get_array_length", "length" : 9 },
-            { "name" : "op_get_arguments_length", "length" : 4 },
-            { "name" : "op_put_by_id", "length" : 9 },
-            { "name" : "op_put_by_id_out_of_line", "length" : 9 },
-            { "name" : "op_put_by_id_transition_direct", "length" : 9 },
-            { "name" : "op_put_by_id_transition_direct_out_of_line", "length" : 9 },
-            { "name" : "op_put_by_id_transition_normal", "length" : 9 },
-            { "name" : "op_put_by_id_transition_normal_out_of_line", "length" : 9 },
-            { "name" : "op_del_by_id", "length" : 4 },
-            { "name" : "op_get_by_val", "length" : 6 },
-            { "name" : "op_get_argument_by_val", "length" : 6 },
-            { "name" : "op_get_by_pname", "length" : 7 },
-            { "name" : "op_put_by_val", "length" : 5 },
-            { "name" : "op_put_by_val_direct", "length" : 5 },
-            { "name" : "op_del_by_val", "length" : 4 },
-            { "name" : "op_put_by_index", "length" : 4 },
-            { "name" : "op_put_getter_setter", "length" : 5 },
-            { "name" : "op_jmp", "length" : 2 },
-            { "name" : "op_jtrue", "length" : 3 },
-            { "name" : "op_jfalse", "length" : 3 },
-            { "name" : "op_jeq_null", "length" : 3 },
-            { "name" : "op_jneq_null", "length" : 3 },
-            { "name" : "op_jneq_ptr", "length" : 4 },
-            { "name" : "op_jless", "length" : 4 },
-            { "name" : "op_jlesseq", "length" : 4 },
-            { "name" : "op_jgreater", "length" : 4 },
-            { "name" : "op_jgreatereq", "length" : 4 },
-            { "name" : "op_jnless", "length" : 4 },
-            { "name" : "op_jnlesseq", "length" : 4 },
-            { "name" : "op_jngreater", "length" : 4 },
-            { "name" : "op_jngreatereq", "length" : 4 },
-            { "name" : "op_loop_hint", "length" : 1 },
-            { "name" : "op_switch_imm", "length" : 4 },
-            { "name" : "op_switch_char", "length" : 4 },
-            { "name" : "op_switch_string", "length" : 4 },
-            { "name" : "op_new_func", "length" : 4 },
-            { "name" : "op_new_captured_func", "length" : 4 },
-            { "name" : "op_new_func_exp", "length" : 3 },
-            { "name" : "op_call", "length" : 9 },
-            { "name" : "op_call_eval", "length" : 9 },
-            { "name" : "op_call_varargs", "length" : 9 },
-            { "name" : "op_tear_off_activation", "length" : 2 },
-            { "name" : "op_tear_off_arguments", "length" : 3 },
-            { "name" : "op_ret", "length" : 2 },
-            { "name" : "op_ret_object_or_this", "length" : 3 },
-            { "name" : "op_construct", "length" : 9 },
-            { "name" : "op_strcat", "length" : 4 },
-            { "name" : "op_to_primitive", "length" : 3 },
-            { "name" : "op_get_pnames", "length" : 6 },
-            { "name" : "op_next_pname", "length" : 7 },
-            { "name" : "op_resolve_scope", "length" : 6 },
-            { "name" : "op_get_from_scope", "length" : 8 },
-            { "name" : "op_put_to_scope", "length" : 7 },
-            { "name" : "op_push_with_scope", "length" : 2 },
-            { "name" : "op_pop_scope", "length" : 1 },
-            { "name" : "op_push_name_scope", "length" : 4 },
-            { "name" : "op_catch", "length" : 2 },
-            { "name" : "op_throw", "length" : 2 },
-            { "name" : "op_throw_static_error", "length" : 3 },
-            { "name" : "op_debug", "length" : 3 },
-            { "name" : "op_profile_will_call", "length" : 2 },
-            { "name" : "op_profile_did_call", "length" : 2 },
-            { "name" : "op_end", "length" : 2 }
-        ]
-    },
-    {
-        "section" : "NativeHelpers", "emitInHFile" : true, "emitInASMFile" : true, "defaultLength" : 1,
-        "macroNameComponent" : "BYTECODE_HELPER", "emitDefineID" : true,
-        "bytecodes" : [
-            { "name" : "llint_program_prologue" },
-            { "name" : "llint_eval_prologue" },
-            { "name" : "llint_function_for_call_prologue" },
-            { "name" : "llint_function_for_construct_prologue" },
-            { "name" : "llint_function_for_call_arity_check" },
-            { "name" : "llint_function_for_construct_arity_check" },
-            { "name" : "llint_generic_return_point" },
-            { "name" : "llint_throw_from_slow_path_trampoline" },
-            { "name" : "llint_throw_during_call_trampoline" },
-            { "name" : "llint_native_call_trampoline" },
-            { "name" : "llint_native_construct_trampoline" }
-        ]
-    },
-    {
-        "section" : "CLoopHelpers", "emitInHFile" : true, "emitInASMFile" : false, "defaultLength" : 1,
-        "macroNameComponent" : "CLOOP_BYTECODE_HELPER",
-        "bytecodes" : [
-            { "name" : "llint_c_loop_init" },
-            { "name" : "getHostCallReturnValue" },
-            { "name" : "llint_return_to_host" },
-            { "name" : "llint_call_to_javascript" },
-            { "name" : "llint_call_to_native_function" },
-            { "name" : "handleUncaughtException" },
-            { "name" : "llint_cloop_did_return_from_js_1" },
-            { "name" : "llint_cloop_did_return_from_js_2" },
-            { "name" : "llint_cloop_did_return_from_js_3" },
-            { "name" : "llint_cloop_did_return_from_js_4" },
-            { "name" : "llint_cloop_did_return_from_js_5" },
-            { "name" : "llint_cloop_did_return_from_js_6" },
-            { "name" : "llint_cloop_did_return_from_js_7" }
-        ]
-    }
-]
index be85cd4..c982ac0 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef Opcode_h
 #define Opcode_h
 
-#include "Bytecodes.h"
 #include "LLIntOpcode.h"
 
 #include <algorithm>
 namespace JSC {
 
 #define FOR_EACH_CORE_OPCODE_ID_WITH_EXTENSION(macro, extension__) \
-    FOR_EACH_BYTECODE_ID(macro) \
-    extension__
+    macro(op_enter, 1) \
+    macro(op_create_activation, 2) \
+    macro(op_touch_entry, 1) \
+    macro(op_init_lazy_reg, 2) \
+    macro(op_create_arguments, 2) \
+    macro(op_create_this, 4) \
+    macro(op_get_callee, 3) \
+    macro(op_to_this, 3) \
+    \
+    macro(op_new_object, 4) \
+    macro(op_new_array, 5) \
+    macro(op_new_array_with_size, 4) \
+    macro(op_new_array_buffer, 5) \
+    macro(op_new_regexp, 3) \
+    macro(op_mov, 3) \
+    macro(op_captured_mov, 4) \
+    \
+    macro(op_not, 3) \
+    macro(op_eq, 4) \
+    macro(op_eq_null, 3) \
+    macro(op_neq, 4) \
+    macro(op_neq_null, 3) \
+    macro(op_stricteq, 4) \
+    macro(op_nstricteq, 4) \
+    macro(op_less, 4) \
+    macro(op_lesseq, 4) \
+    macro(op_greater, 4) \
+    macro(op_greatereq, 4) \
+    \
+    macro(op_inc, 2) \
+    macro(op_dec, 2) \
+    macro(op_to_number, 3) \
+    macro(op_negate, 3) \
+    macro(op_add, 5) \
+    macro(op_mul, 5) \
+    macro(op_div, 5) \
+    macro(op_mod, 4) \
+    macro(op_sub, 5) \
+    \
+    macro(op_lshift, 4) \
+    macro(op_rshift, 4) \
+    macro(op_urshift, 4) \
+    macro(op_unsigned, 3) \
+    macro(op_bitand, 5) \
+    macro(op_bitxor, 5) \
+    macro(op_bitor, 5) \
+    \
+    macro(op_check_has_instance, 5) \
+    macro(op_instanceof, 4) \
+    macro(op_typeof, 3) \
+    macro(op_is_undefined, 3) \
+    macro(op_is_boolean, 3) \
+    macro(op_is_number, 3) \
+    macro(op_is_string, 3) \
+    macro(op_is_object, 3) \
+    macro(op_is_function, 3) \
+    macro(op_in, 4) \
+    \
+    macro(op_init_global_const_nop, 5) \
+    macro(op_init_global_const, 5) \
+    macro(op_get_by_id, 9) /* has value profiling */ \
+    macro(op_get_by_id_out_of_line, 9) /* has value profiling */ \
+    macro(op_get_array_length, 9) /* has value profiling */ \
+    macro(op_get_arguments_length, 4) \
+    macro(op_put_by_id, 9) \
+    macro(op_put_by_id_out_of_line, 9) \
+    macro(op_put_by_id_transition_direct, 9) \
+    macro(op_put_by_id_transition_direct_out_of_line, 9) \
+    macro(op_put_by_id_transition_normal, 9) \
+    macro(op_put_by_id_transition_normal_out_of_line, 9) \
+    macro(op_del_by_id, 4) \
+    macro(op_get_by_val, 6) /* has value profiling */ \
+    macro(op_get_argument_by_val, 6) /* must be the same size as op_get_by_val */ \
+    macro(op_get_by_pname, 7) \
+    macro(op_put_by_val, 5) \
+    macro(op_put_by_val_direct, 5) \
+    macro(op_del_by_val, 4) \
+    macro(op_put_by_index, 4) \
+    macro(op_put_getter_setter, 5) \
+    \
+    macro(op_jmp, 2) \
+    macro(op_jtrue, 3) \
+    macro(op_jfalse, 3) \
+    macro(op_jeq_null, 3) \
+    macro(op_jneq_null, 3) \
+    macro(op_jneq_ptr, 4) \
+    macro(op_jless, 4) \
+    macro(op_jlesseq, 4) \
+    macro(op_jgreater, 4) \
+    macro(op_jgreatereq, 4) \
+    macro(op_jnless, 4) \
+    macro(op_jnlesseq, 4) \
+    macro(op_jngreater, 4) \
+    macro(op_jngreatereq, 4) \
+    \
+    macro(op_loop_hint, 1) \
+    \
+    macro(op_switch_imm, 4) \
+    macro(op_switch_char, 4) \
+    macro(op_switch_string, 4) \
+    \
+    macro(op_new_func, 4) \
+    macro(op_new_captured_func, 4) \
+    macro(op_new_func_exp, 3) \
+    macro(op_call, 9) /* has value profiling */ \
+    macro(op_call_eval, 9) /* has value profiling */ \
+    macro(op_call_varargs, 9) /* has value profiling */ \
+    macro(op_tear_off_activation, 2) \
+    macro(op_tear_off_arguments, 3) \
+    macro(op_ret, 2) \
+    macro(op_ret_object_or_this, 3) \
+    \
+    macro(op_construct, 9) \
+    macro(op_strcat, 4) \
+    macro(op_to_primitive, 3) \
+    \
+    macro(op_get_pnames, 6) \
+    macro(op_next_pname, 7) \
+    \
+    macro(op_resolve_scope, 6) \
+    macro(op_get_from_scope, 8) /* has value profiling */ \
+    macro(op_put_to_scope, 7) \
+    \
+    macro(op_push_with_scope, 2) \
+    macro(op_pop_scope, 1) \
+    macro(op_push_name_scope, 4) \
+    \
+    macro(op_catch, 2) \
+    macro(op_throw, 2) \
+    macro(op_throw_static_error, 3) \
+    \
+    macro(op_debug, 3) \
+    macro(op_profile_will_call, 2) \
+    macro(op_profile_did_call, 2) \
+    \
+    extension__ \
+    \
+    macro(op_end, 2) // end must be the last opcode in the list
 
 #define FOR_EACH_CORE_OPCODE_ID(macro) \
     FOR_EACH_CORE_OPCODE_ID_WITH_EXTENSION(macro, /* No extension */ )
@@ -59,11 +194,7 @@ namespace JSC {
 #undef OPCODE_ID_ENUM
 
 const int maxOpcodeLength = 9;
-#if ENABLE(LLINT_C_LOOP)
-const int numOpcodeIDs = NUMBER_OF_BYTECODE_IDS + NUMBER_OF_BYTECODE_HELPER_IDS + NUMBER_OF_CLOOP_BYTECODE_HELPER_IDS;
-#else
-const int numOpcodeIDs = NUMBER_OF_BYTECODE_IDS;
-#endif
+const int numOpcodeIDs = op_end + 1;
 
 #define OPCODE_ID_LENGTHS(id, length) const int id##_length = length;
     FOR_EACH_OPCODE_ID(OPCODE_ID_LENGTHS);
@@ -75,7 +206,7 @@ const int numOpcodeIDs = NUMBER_OF_BYTECODE_IDS;
     const int opcodeLengths[numOpcodeIDs] = { FOR_EACH_OPCODE_ID(OPCODE_ID_LENGTH_MAP) };
 #undef OPCODE_ID_LENGTH_MAP
 
-#define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id <= numOpcodeIDs, ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID);
+#define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id <= op_end, ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID);
     FOR_EACH_OPCODE_ID(VERIFY_OPCODE_ID);
 #undef VERIFY_OPCODE_ID
 
diff --git a/Source/JavaScriptCore/generate-bytecode-files b/Source/JavaScriptCore/generate-bytecode-files
deleted file mode 100755 (executable)
index 96dce6e..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-#! /usr/bin/python
-
-# Copyright (C) 2014 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1.  Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer. 
-# 2.  Redistributions in binary form must reproduce the above copyright
-#     notice, this list of conditions and the following disclaimer in the
-#     documentation and/or other materials provided with the distribution. 
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# This tool processes the bytecode list to create Bytecodes.h and InitBytecodes.asm
-
-import hashlib
-import json
-import optparse
-import os
-import re
-import sys
-
-cCopyrightMsg = """/*
-* Copyright (C) 2014 Apple Inc. All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions
-* are met:
-*
-* 1.  Redistributions of source code must retain the above copyright
-*     notice, this list of conditions and the following disclaimer. 
-* 2.  Redistributions in binary form must reproduce the above copyright
-*     notice, this list of conditions and the following disclaimer in the
-*     documentation and/or other materials provided with the distribution. 
-*
-* THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-* Autogenerated from %s, do not modify.
-*/
-
-"""
-
-asmCopyrightMsg = """# Copyright (C) 2014 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1.  Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer. 
-# 2.  Redistributions in binary form must reproduce the above copyright
-#     notice, this list of conditions and the following disclaimer in the
-#     documentation and/or other materials provided with the distribution. 
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Autogenerated from %s, do not modify.
-
-"""
-def openOrExit(path, mode):
-    try:
-        return open(path, mode)
-    except IOError as e:
-        print "I/O error opening {0}, ({1}): {2}".format(path, e.errno, e.strerror)
-        exit(1)
-
-def hashFile(file):
-    sha1 = hashlib.sha1()
-    file.seek(0)
-    for line in file:
-        sha1.update(line)
-
-    file.seek(0)
-
-    return sha1.hexdigest()
-
-if __name__ == "__main__":
-    parser = optparse.OptionParser(usage = "usage: %prog [--bytecodes_h <FILE>] [--init_bytecodes_asm <FILE>] <bytecode-json-file>")
-    parser.add_option("-b", "--bytecodes_h", dest = "bytecodesHFileName", help = "generate bytecodes macro .h FILE", metavar = "FILE")
-    parser.add_option("-a", "--init_bytecodes_asm", dest = "initASMFileName", help="generate ASM bytecodes init FILE", metavar = "FILE")
-    (options, args) = parser.parse_args()
-
-    if len(args) != 1:
-        parser.error("missing <bytecode-json-file>")
-
-    bytecodeJSONFile = args[0]
-    bytecodeFile = openOrExit(bytecodeJSONFile, "rb")
-    sha1Hash = hashFile(bytecodeFile)
-
-    hFileHashString = "// SHA1Hash: {0}\n".format(sha1Hash)
-    asmFileHashString = "# SHA1Hash: {0}\n".format(sha1Hash)
-
-    bytecodeHFilename = options.bytecodesHFileName
-    initASMFileName = options.initASMFileName
-
-    if not bytecodeHFilename and not initASMFileName:
-        parser.print_help()
-        exit(0)
-
-    needToGenerate = False
-
-    if bytecodeHFilename:
-        try:
-            bytecodeHReadFile = open(bytecodeHFilename, "rb")
-            
-            hashLine = bytecodeHReadFile.readline()
-            if hashLine != hFileHashString:
-                needToGenerate = True
-        except:
-            needToGenerate = True
-        else:
-            bytecodeHReadFile.close()
-
-    if initASMFileName:
-        try:
-            initBytecodesReadFile = open(initASMFileName, "rb")
-            
-            hashLine = initBytecodesReadFile.readline()
-            if hashLine != asmFileHashString:
-                needToGenerate = True
-        except:
-            needToGenerate = True
-        else:
-            initBytecodesReadFile.close()
-
-    if not needToGenerate:
-        print "Nothing changed.\n"
-        exit(0)
-
-    genString = "Generating "
-
-    if bytecodeHFilename:
-        bytecodeHFile = openOrExit(bytecodeHFilename, "wb")
-        genString = genString + "{0} ".format(bytecodeHFilename)
-
-    if initASMFileName:
-        initBytecodesFile = openOrExit(initASMFileName, "wb")
-        if bytecodeHFilename:
-            genString = genString + "and "
-        genString = genString + "{0} ".format(initASMFileName)
-
-    print "{0}from {1}\n".format(genString, bytecodeJSONFile)
-
-
-    try:
-        bytecodeSections = json.load(bytecodeFile, encoding = "utf-8")
-    except:
-        print "Unexpected error parsing {0}: {1}".format(bytecodeJSONFile, sys.exc_info())
-
-    if bytecodeHFilename:
-        bytecodeHFile.write(hFileHashString)
-        bytecodeHFile.write(cCopyrightMsg % bytecodeJSONFile)
-        bytecodeHFile.write("#ifndef Bytecodes_h\n")
-        bytecodeHFile.write("#define Bytecodes_h\n\n")
-
-    if initASMFileName:
-        initBytecodesFile.write(asmFileHashString)
-        initBytecodesFile.write(asmCopyrightMsg % bytecodeJSONFile)
-        initASMBytecodeNum = 0
-
-    for section in bytecodeSections:
-        if bytecodeHFilename and section['emitInHFile']:
-            bytecodeHFile.write("#define FOR_EACH_{0}_ID(macro) \\\n".format(section["macroNameComponent"]))
-            firstMacro = True
-            defaultLength = 1
-            if "defaultLength" in section:
-                defaultLength = section["defaultLength"]
-
-            bytecodeNum = 0
-            for bytecode in section["bytecodes"]:
-                if not firstMacro:
-                    bytecodeHFile.write(" \\\n")
-
-                length = defaultLength
-                if "length" in bytecode:
-                    length = bytecode["length"]
-
-                bytecodeHFile.write("    macro({0}, {1})".format(bytecode["name"], length))
-                firstMacro = False
-                bytecodeNum = bytecodeNum + 1
-
-            bytecodeHFile.write("\n\n")
-            bytecodeHFile.write("#define NUMBER_OF_{0}_IDS {1}\n\n".format(section["macroNameComponent"], bytecodeNum))
-
-            if "emitDefineID" in section:
-                bytecodeNum = 0
-                for bytecode in section["bytecodes"]:
-                    bytecodeHFile.write("#define %s_ID %s\n" % (bytecode["name"].upper(), bytecodeNum))
-                    bytecodeNum = bytecodeNum + 1
-
-                bytecodeHFile.write("\n\n")
-
-        if initASMFileName and section['emitInASMFile']:
-            for bytecode in section["bytecodes"]:
-                initBytecodesFile.write("setEntryAddress({0}, _{1})\n".format(initASMBytecodeNum, bytecode["name"]))
-                initASMBytecodeNum = initASMBytecodeNum + 1
-
-    if bytecodeHFilename:
-        bytecodeHFile.write("#endif // Bytecodes_h\n")
-        bytecodeHFile.close()
-
-    if initASMFileName:
-        initBytecodesFile.close()
-
-    bytecodeFile.close()
-
-    exit(0)
index 6426212..27db115 100644 (file)
@@ -35,7 +35,7 @@ namespace LLInt {
 
 void CLoop::initialize()
 {
-    execute(llint_c_loop_init, 0, 0, 0, true);
+    execute(llint_unused, 0, 0, 0, true);
 }
 
 } // namespace LLInt
index 33fd940..b357712 100644 (file)
@@ -36,6 +36,8 @@
 namespace JSC {
 namespace LLInt {
 
+const OpcodeID llint_unused = llint_end;
+
 class CLoop {
 public:
     static void initialize();
index d4edef4..96e02d7 100644 (file)
@@ -56,7 +56,7 @@ void initialize()
             LLInt::getCodePtr(llint_throw_from_slow_path_trampoline);
     #define OPCODE_ENTRY(opcode, length) \
         Data::s_opcodeMap[opcode] = static_cast<Opcode>(LLInt::getCodePtr(llint_##opcode));
-    FOR_EACH_CORE_OPCODE_ID(OPCODE_ENTRY);
+    FOR_EACH_OPCODE_ID(OPCODE_ENTRY);
     #undef OPCODE_ENTRY
     #endif // !ENABLE(LLINT_C_LOOP)
 }
index f875016..b6e830e 100644 (file)
 #if ENABLE(LLINT_C_LOOP)
 
 #define FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \
-    FOR_EACH_CLOOP_BYTECODE_HELPER_ID(macro)
+    macro(getHostCallReturnValue, 1) \
+    macro(llint_return_to_host, 1) \
+    macro(llint_call_to_javascript, 1) \
+    macro(llint_call_to_native_function, 1) \
+    macro(handleUncaughtException, 1) \
+    \
+    macro(llint_cloop_did_return_from_js_1, 1) \
+    macro(llint_cloop_did_return_from_js_2, 1) \
+    macro(llint_cloop_did_return_from_js_3, 1) \
+    macro(llint_cloop_did_return_from_js_4, 1) \
+    macro(llint_cloop_did_return_from_js_5, 1) \
+    macro(llint_cloop_did_return_from_js_6, 1) \
+    macro(llint_cloop_did_return_from_js_7, 1) \
 
 #else // !ENABLE(LLINT_C_LOOP)
 
 #define FOR_EACH_LLINT_NATIVE_HELPER(macro) \
     FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \
     \
-    FOR_EACH_BYTECODE_HELPER_ID(macro)
-
+    macro(llint_begin, 1) \
+    \
+    macro(llint_program_prologue, 1) \
+    macro(llint_eval_prologue, 1) \
+    macro(llint_function_for_call_prologue, 1) \
+    macro(llint_function_for_construct_prologue, 1) \
+    macro(llint_function_for_call_arity_check, 1) \
+    macro(llint_function_for_construct_arity_check, 1) \
+    macro(llint_generic_return_point, 1) \
+    macro(llint_throw_from_slow_path_trampoline, 1) \
+    macro(llint_throw_during_call_trampoline, 1) \
+    \
+    /* Native call trampolines */ \
+    macro(llint_native_call_trampoline, 1) \
+    macro(llint_native_construct_trampoline, 1) \
+    \
+    macro(llint_end, 1)
 
 
 #if ENABLE(LLINT_C_LOOP)
index a88cb8d..f09628f 100644 (file)
@@ -630,12 +630,6 @@ macro doReturn()
     ret
 end
 
-# Dummy entry point the C Loop uses to initialize.
-if C_LOOP
-_llint_c_loop_init:
-    crash()
-end
-
 # stub to call into JavaScript or Native functions
 # EncodedJSValue callToJavaScript(void* code, ExecState** vmTopCallFrame, ProtoCallFrame* protoFrame)
 # EncodedJSValue callToNativeFunction(void* code, ExecState** vmTopCallFrame, ProtoCallFrame* protoFrame)
@@ -694,6 +688,11 @@ _sanitizeStackForVMImpl:
 end
 
 
+# Indicate the beginning of LLInt.
+_llint_begin:
+    crash()
+
+
 _llint_program_prologue:
     prologue(notFunctionCodeBlockGetter, notFunctionCodeBlockSetter, _llint_entry_osr, _llint_trace_prologue)
     dispatch(0)
@@ -1144,3 +1143,7 @@ end
 _llint_op_init_global_const_nop:
     dispatch(5)
 
+# Indicate the end of LLInt.
+_llint_end:
+    crash()
+
index e8d692e..fb4ad95 100644 (file)
@@ -78,7 +78,6 @@ set(WebKit_INCLUDE_DIRECTORIES
     "${JAVASCRIPTCORE_DIR}/profiler"
     "${JAVASCRIPTCORE_DIR}/runtime"
     "${WTF_DIR}"
-    "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
     "${DERIVED_SOURCES_WEBCORE_DIR}"
     "${DERIVED_SOURCES_DIR}/ForwardingHeaders"
     "${CMAKE_BINARY_DIR}"
index 1b992fb..7c485dd 100644 (file)
@@ -1,15 +1,3 @@
-2014-02-26  Michael Saboff  <msaboff@apple.com>
-
-        Auto generate bytecode information for bytecode parser and LLInt
-        https://bugs.webkit.org/show_bug.cgi?id=129181
-
-        Reviewed by Mark Lam.
-
-        Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
-        generated Bytecodes.h include file.
-
-        * CMakeLists.txt:
-
 2014-02-26  Joseph Pecoraro  <pecoraro@apple.com>
 
         Web Inspector: Remove console.profiles from window.console API
index 01cbc02..21d9ebd 100644 (file)
@@ -133,7 +133,6 @@ set(WebKit2_INCLUDE_DIRECTORIES
     "${JAVASCRIPTCORE_DIR}/runtime"
     "${WTF_DIR}"
     "${DERIVED_SOURCES_DIR}"
-    "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
     "${DERIVED_SOURCES_WEBCORE_DIR}"
     "${DERIVED_SOURCES_WEBKIT2_DIR}"
     "${DERIVED_SOURCES_WEBKIT2_DIR}/include"
index 3eff634..101a51e 100644 (file)
 
         * WebKit2.xcodeproj/project.pbxproj:
 
-2014-02-26  Michael Saboff  <msaboff@apple.com>
-
-        Auto generate bytecode information for bytecode parser and LLInt
-        https://bugs.webkit.org/show_bug.cgi?id=129181
-
-        Reviewed by Mark Lam.
-
-        Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
-        generated Bytecodes.h include file.
-
-        * CMakeLists.txt:
-
 2014-02-26  Simon Fraser  <simon.fraser@apple.com>
 
         Fix MiniBrowser/WebKitTestRunner link errors; WKView still