<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[164814] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/164814">164814</a></dd>
<dt>Author</dt> <dd>msaboff@apple.com</dd>
<dt>Date</dt> <dd>2014-02-27 10:48:37 -0800 (Thu, 27 Feb 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Auto generate bytecode information for bytecode parser and LLInt
https://bugs.webkit.org/show_bug.cgi?id=129181

Reviewed by Mark Lam.

Source/JavaScriptCore: 

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 &quot;DerivedSource&quot; 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.

Added JavaScriptCore.framework/PrivateHeaders to header file search path for building
jsc to resolve Mac build issue.

* CMakeLists.txt:
* Configurations/JSC.xcconfig:
* 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/Opcode.h:
(JSC::padOpcodeName):
* llint/LLIntCLoop.cpp:
(JSC::LLInt::CLoop::initialize):
* llint/LLIntCLoop.h:
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
* llint/LLIntOpcode.h:
* llint/LowLevelInterpreter.asm:

Source/WebKit: 

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

* CMakeLists.txt:

Source/WebKit2: 

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

* CMakeLists.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreConfigurationsJSCxcconfig">trunk/Source/JavaScriptCore/Configurations/JSC.xcconfig</a></li>
<li><a href="#trunkSourceJavaScriptCoreDerivedSourcesmake">trunk/Source/JavaScriptCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceJavaScriptCoreGNUmakefileam">trunk/Source/JavaScriptCore/GNUmakefile.am</a></li>
<li><a href="#trunkSourceJavaScriptCoreGNUmakefilelistam">trunk/Source/JavaScriptCore/GNUmakefile.list.am</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxprojfilters">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojcopyfilescmd">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeOpcodeh">trunk/Source/JavaScriptCore/bytecode/Opcode.h</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntCLoopcpp">trunk/Source/JavaScriptCore/llint/LLIntCLoop.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntCLooph">trunk/Source/JavaScriptCore/llint/LLIntCLoop.h</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntDatacpp">trunk/Source/JavaScriptCore/llint/LLIntData.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntOpcodeh">trunk/Source/JavaScriptCore/llint/LLIntOpcode.h</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLowLevelInterpreterasm">trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm</a></li>
<li><a href="#trunkSourceWebKitCMakeListstxt">trunk/Source/WebKit/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2CMakeListstxt">trunk/Source/WebKit2/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCorebytecodeBytecodeListjson">trunk/Source/JavaScriptCore/bytecode/BytecodeList.json</a></li>
<li><a href="#trunkSourceJavaScriptCoregeneratebytecodefiles">trunk/Source/JavaScriptCore/generate-bytecode-files</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -595,24 +595,31 @@
</span><span class="cx">     )
</span><span class="cx"> 
</span><span class="cx">     add_custom_command(
</span><ins>+        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(
</ins><span class="cx">         OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
</span><span class="cx">         MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb
</span><span class="cx">         DEPENDS ${LLINT_ASM} ${OFFLINE_ASM}
</span><span class="cx">         COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
</span><span class="cx">         VERBATIM)
</span><span class="cx"> 
</span><del>-    # 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
</del><ins>+    # 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
</ins><span class="cx">     # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will
</span><del>-    # actually be run twice!
</del><ins>+    # actually be run multiple times!
</ins><span class="cx">     add_executable(LLIntOffsetsExtractor
</span><span class="cx">         ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp
</span><del>-        ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h
</del><ins>+        ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
</ins><span class="cx">     )
</span><span class="cx">     target_link_libraries(LLIntOffsetsExtractor WTF)
</span><span class="cx"> 
</span><span class="lines">@@ -625,7 +632,7 @@
</span><span class="cx">     add_custom_command(
</span><span class="cx">         OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
</span><span class="cx">         MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb
</span><del>-        DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM}
</del><ins>+        DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm
</ins><span class="cx">         COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $&lt;TARGET_FILE:LLIntOffsetsExtractor&gt; ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
</span><span class="cx">         COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h
</span><span class="cx">         VERBATIM)
</span><span class="lines">@@ -790,6 +797,7 @@
</span><span class="cx">     runtime/VM.h
</span><span class="cx"> 
</span><span class="cx">     ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltins.h
</span><ins>+    ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h
</ins><span class="cx"> )
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2014-02-26  Michael Saboff  &lt;msaboff@apple.com&gt;
+
+        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 &quot;DerivedSource&quot; 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.
+
+        Added JavaScriptCore.framework/PrivateHeaders to header file search path for building
+        jsc to resolve Mac build issue.
+
+        * CMakeLists.txt:
+        * Configurations/JSC.xcconfig:
+        * 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/Opcode.h:
+        (JSC::padOpcodeName):
+        * llint/LLIntCLoop.cpp:
+        (JSC::LLInt::CLoop::initialize):
+        * llint/LLIntCLoop.h:
+        * llint/LLIntData.cpp:
+        (JSC::LLInt::initialize):
+        * llint/LLIntOpcode.h:
+        * llint/LowLevelInterpreter.asm:
+
</ins><span class="cx"> 2014-02-27  Julien Brianceau   &lt;jbriance@cisco.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix 32-bit V_JITOperation_EJ callOperation introduced in r162652.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreConfigurationsJSCxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Configurations/JSC.xcconfig (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Configurations/JSC.xcconfig        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/Configurations/JSC.xcconfig        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -28,3 +28,6 @@
</span><span class="cx"> PRODUCT_NAME = jsc;
</span><span class="cx"> CODE_SIGN_ENTITLEMENTS = $(CODE_SIGN_ENTITLEMENTS_$(PLATFORM_NAME));
</span><span class="cx"> CODE_SIGN_ENTITLEMENTS_iphoneos = entitlements.plist;
</span><ins>+
+// Explicitly add the PrivateHeaders directory to the search path so that generated header files can be found in production builds.
+HEADER_SEARCH_PATHS = $(JAVASCRIPTCORE_FRAMEWORKS_DIR)/JavaScriptCore.framework/PrivateHeaders $(inherited);
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/DerivedSources.make (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/DerivedSources.make        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/DerivedSources.make        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -58,6 +58,8 @@
</span><span class="cx">     RegExpObject.lut.h \
</span><span class="cx">     StringConstructor.lut.h \
</span><span class="cx">     udis86_itab.h \
</span><ins>+    Bytecodes.h \
+    InitBytecodes.asm \
</ins><span class="cx">     JSCBuiltins \
</span><span class="cx"> #
</span><span class="cx"> 
</span><span class="lines">@@ -90,7 +92,14 @@
</span><span class="cx"> udis86_itab.h: $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml
</span><span class="cx">         (PYTHONPATH=$(JavaScriptCore)/disassembler/udis86 python $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml || exit 1)
</span><span class="cx"> 
</span><ins>+# Bytecode files
</ins><span class="cx"> 
</span><ins>+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
+
</ins><span class="cx"> # Inspector interfaces
</span><span class="cx"> 
</span><span class="cx"> INSPECTOR_DOMAINS = \
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreGNUmakefileam"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/GNUmakefile.am (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/GNUmakefile.am        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/GNUmakefile.am        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -95,6 +95,12 @@
</span><span class="cx"> 
</span><span class="cx"> $(shell mkdir -p DerivedSources/JavaScriptCore)
</span><span class="cx"> 
</span><ins>+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
+
</ins><span class="cx"> DerivedSources/JavaScriptCore/Lexer.lut.h: $(srcdir)/Source/JavaScriptCore/create_hash_table $(srcdir)/Source/JavaScriptCore/parser/Keywords.table
</span><span class="cx">         $(AM_V_GEN)$(PERL) $^ &gt; $@
</span><span class="cx"> 
</span><span class="lines">@@ -111,9 +117,9 @@
</span><span class="cx">         $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm $@
</span><span class="cx">         $(AM_V_at)touch $@
</span><span class="cx"> 
</span><del>-$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h 
</del><ins>+$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h DerivedSources/JavaScriptCore/Bytecodes.h
</ins><span class="cx"> 
</span><del>-DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT)
</del><ins>+DerivedSources/JavaScriptCore/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT) DerivedSources/JavaScriptCore/InitBytecodes.asm
</ins><span class="cx">         $(AM_V_GEN)$(RUBY) $(srcdir)/Source/JavaScriptCore/offlineasm/asm.rb $(srcdir)/Source/JavaScriptCore/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@
</span><span class="cx">         $(AM_V_at)touch $@
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreGNUmakefilelistam"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/GNUmakefile.list.am (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/GNUmakefile.list.am        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/GNUmakefile.list.am        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -34,6 +34,8 @@
</span><span class="cx">         DerivedSources/JavaScriptCore/RegExpObject.lut.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/RegExpPrototype.lut.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/StringConstructor.lut.h \
</span><ins>+        DerivedSources/JavaScriptCore/Bytecodes.h \
+        DerivedSources/JavaScriptCore/InitBytecodes.asm \
</ins><span class="cx">         DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h \
</span><span class="cx">         DerivedSources/JavaScriptCore/LLIntAssembly.h
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -1449,6 +1449,7 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\yarr\YarrSyntaxChecker.h&quot; /&gt;
</span><span class="cx">   &lt;/ItemGroup&gt;
</span><span class="cx">   &lt;ItemGroup&gt;
</span><ins>+    &lt;None Include=&quot;..\bytecode\BytecodeList.json&quot; /&gt;
</ins><span class="cx">     &lt;None Include=&quot;JavaScriptCorePostBuild.cmd&quot;&gt;
</span><span class="cx">       &lt;FileType&gt;Document&lt;/FileType&gt;
</span><span class="cx">     &lt;/None&gt;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -3348,6 +3348,9 @@
</span><span class="cx">     &lt;None Include=&quot;JavaScriptCorePreLink.cmd&quot; /&gt;
</span><span class="cx">     &lt;None Include=&quot;JavaScriptCorePostBuild.cmd&quot; /&gt;
</span><span class="cx">     &lt;None Include=&quot;JavaScriptCorePreBuild.cmd&quot; /&gt;
</span><ins>+    &lt;None Include=&quot;..\bytecode\BytecodeList.json&quot;&gt;
+      &lt;Filter&gt;bytecode&lt;/Filter&gt;
+    &lt;/None&gt;
</ins><span class="cx">   &lt;/ItemGroup&gt;
</span><span class="cx">   &lt;ItemGroup&gt;
</span><span class="cx">     &lt;MASM Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\LowLevelInterpreterWin.asm&quot; /&gt;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojcopyfilescmd"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/copy-files.cmd        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -75,6 +75,7 @@
</span><span class="cx"> 
</span><span class="cx"> echo Copying builtins header as if it were a private header...
</span><span class="cx"> xcopy /y &quot;%DerivedSourcesDirectory%\JSCBuiltins.h&quot; &quot;%PrivateHeadersDirectory%&quot; &gt;NUL
</span><ins>+xcopy /y &quot;%DerivedSourcesDirectory%\Bytecodes.h&quot; &quot;%PrivateHeadersDirectory%&quot; &gt;NUL
</ins><span class="cx"> 
</span><span class="cx"> echo Copying resources...
</span><span class="cx"> mkdir &quot;%ResourcesDirectory%&quot; 2&gt;NUL
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -29,6 +29,18 @@
</span><span class="cx">                         name = &quot;Test Tools&quot;;
</span><span class="cx">                         productName = &quot;Test Tools&quot;;
</span><span class="cx">                 };
</span><ins>+                65788A9D18B409EB00C189FF /* Offline Assembler */ = {
+                        isa = PBXAggregateTarget;
+                        buildConfigurationList = 65788AA218B409EB00C189FF /* Build configuration list for PBXAggregateTarget &quot;Offline Assembler&quot; */;
+                        buildPhases = (
+                                65788AA018B409EB00C189FF /* Offline Assemble */,
+                        );
+                        dependencies = (
+                                65788A9E18B409EB00C189FF /* PBXTargetDependency */,
+                        );
+                        name = &quot;Offline Assembler&quot;;
+                        productName = &quot;Offline Assembler&quot;;
+                };
</ins><span class="cx">                 65FB3F6609D11E9100F49DEB /* Derived Sources */ = {
</span><span class="cx">                         isa = PBXAggregateTarget;
</span><span class="cx">                         buildConfigurationList = 65FB3F7709D11EBD00F49DEB /* Build configuration list for PBXAggregateTarget &quot;Derived Sources&quot; */;
</span><span class="lines">@@ -37,7 +49,7 @@
</span><span class="cx">                                 5D35DEE10C7C140B008648B2 /* Generate DTrace header */,
</span><span class="cx">                         );
</span><span class="cx">                         dependencies = (
</span><del>-                                0FF922D614F46B600041A24E /* PBXTargetDependency */,
</del><ins>+                                65788AA918B40A3300C189FF /* PBXTargetDependency */,
</ins><span class="cx">                         );
</span><span class="cx">                         name = &quot;Derived Sources&quot;;
</span><span class="cx">                         productName = &quot;Derived Sources&quot;;
</span><span class="lines">@@ -795,6 +807,7 @@
</span><span class="cx">                 651122FD14046A4C002B101D /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932F5BD90822A1C700736975 /* JavaScriptCore.framework */; };
</span><span class="cx">                 651122FE14046A4C002B101D /* libedit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D5D8AD00E0D0EBE00F9C692 /* libedit.dylib */; };
</span><span class="cx">                 6511230714046B0A002B101D /* testRegExp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651122E5140469BA002B101D /* testRegExp.cpp */; };
</span><ins>+                6514F21918B3E1670098FF8B /* Bytecodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6514F21718B3E1670098FF8B /* Bytecodes.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 65303D641447B9E100D3F904 /* ParserTokens.h in Headers */ = {isa = PBXBuildFile; fileRef = 65303D631447B9E100D3F904 /* ParserTokens.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 6553A33117A1F1EE008CF6F3 /* CommonSlowPathsExceptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6553A32F17A1F1EE008CF6F3 /* CommonSlowPathsExceptions.cpp */; };
</span><span class="cx">                 6553A33217A1F1EE008CF6F3 /* CommonSlowPathsExceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6553A33017A1F1EE008CF6F3 /* CommonSlowPathsExceptions.h */; };
</span><span class="lines">@@ -1456,13 +1469,6 @@
</span><span class="cx">                         remoteGlobalIDString = 0F4680A914BA7FD900BFE272;
</span><span class="cx">                         remoteInfo = &quot;LLInt Offsets&quot;;
</span><span class="cx">                 };
</span><del>-                0FF922D514F46B600041A24E /* PBXContainerItemProxy */ = {
-                        isa = PBXContainerItemProxy;
-                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-                        proxyType = 1;
-                        remoteGlobalIDString = 0FF922C314F46B130041A24E;
-                        remoteInfo = JSCLLIntOffsetsExtractor;
-                };
</del><span class="cx">                 5D69E911152BE5470028D720 /* PBXContainerItemProxy */ = {
</span><span class="cx">                         isa = PBXContainerItemProxy;
</span><span class="cx">                         containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
</span><span class="lines">@@ -1498,6 +1504,34 @@
</span><span class="cx">                         remoteGlobalIDString = 5D6B2A47152B9E17005231DE;
</span><span class="cx">                         remoteInfo = &quot;Test Tools&quot;;
</span><span class="cx">                 };
</span><ins>+                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 = &quot;LLInt Offsets&quot;;
+                };
+                65788AAA18B40A3B00C189FF /* PBXContainerItemProxy */ = {
+                        isa = PBXContainerItemProxy;
+                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+                        proxyType = 1;
+                        remoteGlobalIDString = 65FB3F6609D11E9100F49DEB;
+                        remoteInfo = &quot;Derived Sources&quot;;
+                };
+                65788AAC18B40A7B00C189FF /* PBXContainerItemProxy */ = {
+                        isa = PBXContainerItemProxy;
+                        containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+                        proxyType = 1;
+                        remoteGlobalIDString = 65788A9D18B409EB00C189FF;
+                        remoteInfo = &quot;Offline Assembler&quot;;
+                };
</ins><span class="cx">                 65FB3F7D09D11EF300F49DEB /* PBXContainerItemProxy */ = {
</span><span class="cx">                         isa = PBXContainerItemProxy;
</span><span class="cx">                         containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
</span><span class="lines">@@ -2242,6 +2276,10 @@
</span><span class="cx">                 6507D2970E871E4A00D7D896 /* JSTypeInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTypeInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 651122E5140469BA002B101D /* testRegExp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testRegExp.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 6511230514046A4C002B101D /* testRegExp */ = {isa = PBXFileReference; explicitFileType = &quot;compiled.mach-o.executable&quot;; includeInIndex = 0; path = testRegExp; sourceTree = BUILT_PRODUCTS_DIR; };
</span><ins>+                6514F21718B3E1670098FF8B /* Bytecodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bytecodes.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                6514F21818B3E1670098FF8B /* InitBytecodes.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = InitBytecodes.asm; sourceTree = &quot;&lt;group&gt;&quot;; };
+                6529FB3018B2D63900C61102 /* generate-bytecode-files */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = &quot;generate-bytecode-files&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
+                6529FB3118B2D99900C61102 /* BytecodeList.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BytecodeList.json; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 652A3A201651C66100A80AFE /* ARM64Disassembler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ARM64Disassembler.cpp; path = disassembler/ARM64Disassembler.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 652A3A221651C69700A80AFE /* A64DOpcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = A64DOpcode.cpp; path = disassembler/ARM64/A64DOpcode.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 652A3A231651C69700A80AFE /* A64DOpcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = A64DOpcode.h; path = disassembler/ARM64/A64DOpcode.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3060,6 +3098,7 @@
</span><span class="cx">                 0867D691FE84028FC02AAC07 /* JavaScriptCore */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                6529FB3018B2D63900C61102 /* generate-bytecode-files */,
</ins><span class="cx">                                 8604F4F2143A6C4400B295F5 /* ChangeLog */,
</span><span class="cx">                                 F692A8540255597D01FF60F7 /* create_hash_table */,
</span><span class="cx">                                 A718F8211178EB4B002465A7 /* create_regex_tables */,
</span><span class="lines">@@ -3664,7 +3703,9 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 BC18C5230E16FC8A00B34460 /* ArrayPrototype.lut.h */,
</span><ins>+                                6514F21718B3E1670098FF8B /* Bytecodes.h */,
</ins><span class="cx">                                 BCD203E70E1718F4002C7E82 /* DatePrototype.lut.h */,
</span><ins>+                                6514F21818B3E1670098FF8B /* InitBytecodes.asm */,
</ins><span class="cx">                                 A513E5C6185F9436007E95AD /* InjectedScriptSource.h */,
</span><span class="cx">                                 A53243951856A475002ED692 /* InspectorJS.json */,
</span><span class="cx">                                 A53243961856A475002ED692 /* InspectorJSBackendCommands.js */,
</span><span class="lines">@@ -4527,6 +4568,7 @@
</span><span class="cx">                 969A078F0ED1D3AE00F1F681 /* bytecode */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                6529FB3118B2D99900C61102 /* BytecodeList.json */,
</ins><span class="cx">                                 0F8335B41639C1E3001443B5 /* ArrayAllocationProfile.cpp */,
</span><span class="cx">                                 0F8335B51639C1E3001443B5 /* ArrayAllocationProfile.h */,
</span><span class="cx">                                 0F63945115D07051006A597C /* ArrayProfile.cpp */,
</span><span class="lines">@@ -4841,6 +4883,10 @@
</span><span class="cx">                                 86D3B2C410156BDE002865E7 /* ARMAssembler.h in Headers */,
</span><span class="cx">                                 2AAAA31218BD49D100394CC8 /* StructureIDBlob.h in Headers */,
</span><span class="cx">                                 86ADD1450FDDEA980006EEC2 /* ARMv7Assembler.h in Headers */,
</span><ins>+                                A5CEEE15187F3BAD00E55C99 /* InspectorAgent.h in Headers */,
+                                6514F21918B3E1670098FF8B /* Bytecodes.h in Headers */,
+                                2A343F7618A1748B0039B085 /* GCSegmentedArray.h in Headers */,
+                                2A343F7818A1749D0039B085 /* GCSegmentedArrayInlines.h in Headers */,
</ins><span class="cx">                                 65C0285D1717966800351E35 /* ARMv7DOpcode.h in Headers */,
</span><span class="cx">                                 0F8335B81639C1EA001443B5 /* ArrayAllocationProfile.h in Headers */,
</span><span class="cx">                                 A7A8AF3517ADB5F3005AB174 /* ArrayBuffer.h in Headers */,
</span><span class="lines">@@ -5661,6 +5707,7 @@
</span><span class="cx">                         buildRules = (
</span><span class="cx">                         );
</span><span class="cx">                         dependencies = (
</span><ins>+                                65788AAB18B40A3B00C189FF /* PBXTargetDependency */,
</ins><span class="cx">                                 0FF922D314F46B2F0041A24E /* PBXTargetDependency */,
</span><span class="cx">                         );
</span><span class="cx">                         name = JSCLLIntOffsetsExtractor;
</span><span class="lines">@@ -5740,6 +5787,7 @@
</span><span class="cx">                         );
</span><span class="cx">                         dependencies = (
</span><span class="cx">                                 0FCEFABD1805D66300472CE4 /* PBXTargetDependency */,
</span><ins>+                                65788AAD18B40A7B00C189FF /* PBXTargetDependency */,
</ins><span class="cx">                                 65FB3F7E09D11EF300F49DEB /* PBXTargetDependency */,
</span><span class="cx">                         );
</span><span class="cx">                         name = JavaScriptCore;
</span><span class="lines">@@ -5791,15 +5839,16 @@
</span><span class="cx">                         targets = (
</span><span class="cx">                                 932F5BE30822A1C700736975 /* All */,
</span><span class="cx">                                 932F5B3E0822A1C700736975 /* JavaScriptCore */,
</span><ins>+                                0FCEFAB51805D61600472CE4 /* llvmForJSC */,
+                                0F4680A914BA7FD900BFE272 /* LLInt Offsets */,
</ins><span class="cx">                                 65FB3F6609D11E9100F49DEB /* Derived Sources */,
</span><ins>+                                0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */,
+                                65788A9D18B409EB00C189FF /* Offline Assembler */,
</ins><span class="cx">                                 1412111F0A48793C00480255 /* minidom */,
</span><span class="cx">                                 14BD59BE0A3E8F9000BAF59C /* testapi */,
</span><span class="cx">                                 932F5BDA0822A1C700736975 /* jsc */,
</span><span class="cx">                                 651122F714046A4C002B101D /* testRegExp */,
</span><del>-                                0F4680A914BA7FD900BFE272 /* LLInt Offsets */,
-                                0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */,
</del><span class="cx">                                 5D6B2A47152B9E17005231DE /* Test Tools */,
</span><del>-                                0FCEFAB51805D61600472CE4 /* llvmForJSC */,
</del><span class="cx">                         );
</span><span class="cx">                 };
</span><span class="cx"> /* End PBXProject section */
</span><span class="lines">@@ -5950,6 +5999,20 @@
</span><span class="cx">                         shellPath = /bin/sh;
</span><span class="cx">                         shellScript = &quot;set -e\n\n# Skip for Production builds.\nif [[ ${CONFIGURATION:=Debug} == \&quot;Production\&quot; ]]; then\n    exit\nfi\n\n# Copy and update the jsc binary to refer to JavaScriptCore.framework relative to its location.\nditto \&quot;${BUILT_PRODUCTS_DIR}/jsc\&quot; \&quot;${BUILT_PRODUCTS_DIR}/${JAVASCRIPTCORE_RESOURCES_DIR}/jsc\&quot;\ninstall_name_tool -change \&quot;${JAVASCRIPTCORE_FRAMEWORKS_DIR}/JavaScriptCore.framework/Versions/A/JavaScriptCore\&quot; \&quot;@loader_path/../JavaScriptCore\&quot; \&quot;${BUILT_PRODUCTS_DIR}/${JAVASCRIPTCORE_RESOURCES_DIR}/jsc\&quot;\n&quot;;
</span><span class="cx">                 };
</span><ins>+                65788AA018B409EB00C189FF /* Offline Assemble */ = {
+                        isa = PBXShellScriptBuildPhase;
+                        buildActionMask = 2147483647;
+                        files = (
+                        );
+                        inputPaths = (
+                        );
+                        name = &quot;Offline Assemble&quot;;
+                        outputPaths = (
+                        );
+                        runOnlyForDeploymentPostprocessing = 0;
+                        shellPath = /bin/sh;
+                        shellScript = &quot;if [[ \&quot;${ACTION}\&quot; == \&quot;installhdrs\&quot; ]]; then\n    exit 0\nfi\n\ncd \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\&quot;\n\n/usr/bin/env ruby JavaScriptCore/offlineasm/asm.rb JavaScriptCore/llint/LowLevelInterpreter.asm ${BUILT_PRODUCTS_DIR}/JSCLLIntOffsetsExtractor LLIntAssembly.h || exit 1&quot;;
+                };
</ins><span class="cx">                 65FB3F6509D11E9100F49DEB /* Generate Derived Sources */ = {
</span><span class="cx">                         isa = PBXShellScriptBuildPhase;
</span><span class="cx">                         buildActionMask = 2147483647;
</span><span class="lines">@@ -5962,7 +6025,7 @@
</span><span class="cx">                         );
</span><span class="cx">                         runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">                         shellPath = /bin/sh;
</span><del>-                        shellScript = &quot;set -e\n\nmkdir -p \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\&quot;\ncd \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\&quot;\n\n/bin/ln -sfh \&quot;${SRCROOT}\&quot; JavaScriptCore\nexport JavaScriptCore=\&quot;JavaScriptCore\&quot;\nexport BUILT_PRODUCTS_DIR=\&quot;../..\&quot;\n\nmake --no-builtin-rules -f \&quot;JavaScriptCore/DerivedSources.make\&quot; -j `/usr/sbin/sysctl -n hw.ncpu`\n\nif [[ \&quot;${ACTION}\&quot; == \&quot;installhdrs\&quot; ]]; 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&quot;;
</del><ins>+                        shellScript = &quot;set -e\n\nmkdir -p \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\&quot;\ncd \&quot;${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore\&quot;\n\n/bin/ln -sfh \&quot;${SRCROOT}\&quot; JavaScriptCore\nexport JavaScriptCore=\&quot;JavaScriptCore\&quot;\nexport BUILT_PRODUCTS_DIR=\&quot;../..\&quot;\n\nmake --no-builtin-rules -f \&quot;JavaScriptCore/DerivedSources.make\&quot; -j `/usr/sbin/sysctl -n hw.ncpu`\n&quot;;
</ins><span class="cx">                 };
</span><span class="cx">                 A55DEAA416703DF7003DB841 /* Check For Inappropriate Macros in External Headers */ = {
</span><span class="cx">                         isa = PBXShellScriptBuildPhase;
</span><span class="lines">@@ -6596,11 +6659,6 @@
</span><span class="cx">                         target = 0F4680A914BA7FD900BFE272 /* LLInt Offsets */;
</span><span class="cx">                         targetProxy = 0FF922D214F46B2F0041A24E /* PBXContainerItemProxy */;
</span><span class="cx">                 };
</span><del>-                0FF922D614F46B600041A24E /* PBXTargetDependency */ = {
-                        isa = PBXTargetDependency;
-                        target = 0FF922C314F46B130041A24E /* JSCLLIntOffsetsExtractor */;
-                        targetProxy = 0FF922D514F46B600041A24E /* PBXContainerItemProxy */;
-                };
</del><span class="cx">                 5D69E912152BE5470028D720 /* PBXTargetDependency */ = {
</span><span class="cx">                         isa = PBXTargetDependency;
</span><span class="cx">                         target = 932F5BDA0822A1C700736975 /* jsc */;
</span><span class="lines">@@ -6626,6 +6684,26 @@
</span><span class="cx">                         target = 5D6B2A47152B9E17005231DE /* Test Tools */;
</span><span class="cx">                         targetProxy = 5D6B2A56152B9E2E005231DE /* PBXContainerItemProxy */;
</span><span class="cx">                 };
</span><ins>+                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 */;
+                };
</ins><span class="cx">                 65FB3F7E09D11EF300F49DEB /* PBXTargetDependency */ = {
</span><span class="cx">                         isa = PBXTargetDependency;
</span><span class="cx">                         target = 65FB3F6609D11E9100F49DEB /* Derived Sources */;
</span><span class="lines">@@ -6913,6 +6991,42 @@
</span><span class="cx">                         };
</span><span class="cx">                         name = Production;
</span><span class="cx">                 };
</span><ins>+                65788AA318B409EB00C189FF /* Debug */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
+                        buildSettings = {
+                                INFOPLIST_FILE = &quot;Derived Sources copy-Info.plist&quot;;
+                                PRODUCT_NAME = &quot;Derived Sources copy&quot;;
+                        };
+                        name = Debug;
+                };
+                65788AA418B409EB00C189FF /* Release */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
+                        buildSettings = {
+                                INFOPLIST_FILE = &quot;Derived Sources copy-Info.plist&quot;;
+                                PRODUCT_NAME = &quot;Derived Sources copy&quot;;
+                        };
+                        name = Release;
+                };
+                65788AA518B409EB00C189FF /* Profiling */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
+                        buildSettings = {
+                                INFOPLIST_FILE = &quot;Derived Sources copy-Info.plist&quot;;
+                                PRODUCT_NAME = &quot;Derived Sources copy&quot;;
+                        };
+                        name = Profiling;
+                };
+                65788AA618B409EB00C189FF /* Production */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
+                        buildSettings = {
+                                INFOPLIST_FILE = &quot;Derived Sources copy-Info.plist&quot;;
+                                PRODUCT_NAME = &quot;Derived Sources copy&quot;;
+                        };
+                        name = Production;
+                };
</ins><span class="cx">                 65FB3F7809D11EBD00F49DEB /* Debug */ = {
</span><span class="cx">                         isa = XCBuildConfiguration;
</span><span class="cx">                         baseConfigurationReference = 1C9051430BA9E8A70081E9D0 /* JavaScriptCore.xcconfig */;
</span><span class="lines">@@ -7113,6 +7227,17 @@
</span><span class="cx">                         defaultConfigurationIsVisible = 0;
</span><span class="cx">                         defaultConfigurationName = Production;
</span><span class="cx">                 };
</span><ins>+                65788AA218B409EB00C189FF /* Build configuration list for PBXAggregateTarget &quot;Offline Assembler&quot; */ = {
+                        isa = XCConfigurationList;
+                        buildConfigurations = (
+                                65788AA318B409EB00C189FF /* Debug */,
+                                65788AA418B409EB00C189FF /* Release */,
+                                65788AA518B409EB00C189FF /* Profiling */,
+                                65788AA618B409EB00C189FF /* Production */,
+                        );
+                        defaultConfigurationIsVisible = 0;
+                        defaultConfigurationName = Production;
+                };
</ins><span class="cx">                 65FB3F7709D11EBD00F49DEB /* Build configuration list for PBXAggregateTarget &quot;Derived Sources&quot; */ = {
</span><span class="cx">                         isa = XCConfigurationList;
</span><span class="cx">                         buildConfigurations = (
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeBytecodeListjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/bytecode/BytecodeList.json (0 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/BytecodeList.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/bytecode/BytecodeList.json        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -0,0 +1,162 @@
</span><ins>+[
+    {
+        &quot;section&quot; : &quot;Bytecodes&quot;, &quot;emitInHFile&quot; : true, &quot;emitInASMFile&quot; : true, &quot;macroNameComponent&quot; : &quot;BYTECODE&quot;,
+        &quot;bytecodes&quot; : [
+            { &quot;name&quot; : &quot;op_enter&quot;, &quot;length&quot; : 1 },
+            { &quot;name&quot; : &quot;op_create_activation&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_touch_entry&quot;, &quot;length&quot; : 1 },
+            { &quot;name&quot; : &quot;op_init_lazy_reg&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_create_arguments&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_create_this&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_get_callee&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_to_this&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_new_object&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_new_array&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_new_array_with_size&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_new_array_buffer&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_new_regexp&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_mov&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_captured_mov&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_not&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_eq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_eq_null&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_neq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_neq_null&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_stricteq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_nstricteq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_less&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_lesseq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_greater&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_greatereq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_inc&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_dec&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_to_number&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_negate&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_add&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_mul&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_div&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_mod&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_sub&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_lshift&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_rshift&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_urshift&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_unsigned&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_bitand&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_bitxor&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_bitor&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_check_has_instance&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_instanceof&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_typeof&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_is_undefined&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_is_boolean&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_is_number&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_is_string&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_is_object&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_is_function&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_in&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_init_global_const_nop&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_init_global_const&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_get_by_id&quot;, &quot;length&quot; : 9  },
+            { &quot;name&quot; : &quot;op_get_by_id_out_of_line&quot;, &quot;length&quot; : 9  },
+            { &quot;name&quot; : &quot;op_get_array_length&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_get_arguments_length&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_put_by_id&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_put_by_id_out_of_line&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_put_by_id_transition_direct&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_put_by_id_transition_direct_out_of_line&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_put_by_id_transition_normal&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_put_by_id_transition_normal_out_of_line&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_del_by_id&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_get_by_val&quot;, &quot;length&quot; : 6 },
+            { &quot;name&quot; : &quot;op_get_argument_by_val&quot;, &quot;length&quot; : 6 },
+            { &quot;name&quot; : &quot;op_get_by_pname&quot;, &quot;length&quot; : 7 },
+            { &quot;name&quot; : &quot;op_put_by_val&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_put_by_val_direct&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_del_by_val&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_put_by_index&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_put_getter_setter&quot;, &quot;length&quot; : 5 },
+            { &quot;name&quot; : &quot;op_jmp&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_jtrue&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_jfalse&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_jeq_null&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_jneq_null&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_jneq_ptr&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jless&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jlesseq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jgreater&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jgreatereq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jnless&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jnlesseq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jngreater&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_jngreatereq&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_loop_hint&quot;, &quot;length&quot; : 1 },
+            { &quot;name&quot; : &quot;op_switch_imm&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_switch_char&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_switch_string&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_new_func&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_new_captured_func&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_new_func_exp&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_call&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_call_eval&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_call_varargs&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_tear_off_activation&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_tear_off_arguments&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_ret&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_ret_object_or_this&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_construct&quot;, &quot;length&quot; : 9 },
+            { &quot;name&quot; : &quot;op_strcat&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_to_primitive&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_get_pnames&quot;, &quot;length&quot; : 6 },
+            { &quot;name&quot; : &quot;op_next_pname&quot;, &quot;length&quot; : 7 },
+            { &quot;name&quot; : &quot;op_resolve_scope&quot;, &quot;length&quot; : 6 },
+            { &quot;name&quot; : &quot;op_get_from_scope&quot;, &quot;length&quot; : 8 },
+            { &quot;name&quot; : &quot;op_put_to_scope&quot;, &quot;length&quot; : 7 },
+            { &quot;name&quot; : &quot;op_push_with_scope&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_pop_scope&quot;, &quot;length&quot; : 1 },
+            { &quot;name&quot; : &quot;op_push_name_scope&quot;, &quot;length&quot; : 4 },
+            { &quot;name&quot; : &quot;op_catch&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_throw&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_throw_static_error&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_debug&quot;, &quot;length&quot; : 3 },
+            { &quot;name&quot; : &quot;op_profile_will_call&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_profile_did_call&quot;, &quot;length&quot; : 2 },
+            { &quot;name&quot; : &quot;op_end&quot;, &quot;length&quot; : 2 }
+        ]
+    },
+    {
+        &quot;section&quot; : &quot;NativeHelpers&quot;, &quot;emitInHFile&quot; : true, &quot;emitInASMFile&quot; : true, &quot;defaultLength&quot; : 1,
+        &quot;macroNameComponent&quot; : &quot;BYTECODE_HELPER&quot;, &quot;emitDefineID&quot; : true,
+        &quot;bytecodes&quot; : [
+            { &quot;name&quot; : &quot;llint_program_prologue&quot; },
+            { &quot;name&quot; : &quot;llint_eval_prologue&quot; },
+            { &quot;name&quot; : &quot;llint_function_for_call_prologue&quot; },
+            { &quot;name&quot; : &quot;llint_function_for_construct_prologue&quot; },
+            { &quot;name&quot; : &quot;llint_function_for_call_arity_check&quot; },
+            { &quot;name&quot; : &quot;llint_function_for_construct_arity_check&quot; },
+            { &quot;name&quot; : &quot;llint_generic_return_point&quot; },
+            { &quot;name&quot; : &quot;llint_throw_from_slow_path_trampoline&quot; },
+            { &quot;name&quot; : &quot;llint_throw_during_call_trampoline&quot; },
+            { &quot;name&quot; : &quot;llint_native_call_trampoline&quot; },
+            { &quot;name&quot; : &quot;llint_native_construct_trampoline&quot; }
+        ]
+    },
+    {
+        &quot;section&quot; : &quot;CLoopHelpers&quot;, &quot;emitInHFile&quot; : true, &quot;emitInASMFile&quot; : false, &quot;defaultLength&quot; : 1,
+        &quot;macroNameComponent&quot; : &quot;CLOOP_BYTECODE_HELPER&quot;,
+        &quot;bytecodes&quot; : [
+            { &quot;name&quot; : &quot;llint_c_loop_init&quot; },
+            { &quot;name&quot; : &quot;getHostCallReturnValue&quot; },
+            { &quot;name&quot; : &quot;llint_return_to_host&quot; },
+            { &quot;name&quot; : &quot;llint_call_to_javascript&quot; },
+            { &quot;name&quot; : &quot;llint_call_to_native_function&quot; },
+            { &quot;name&quot; : &quot;handleUncaughtException&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_1&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_2&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_3&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_4&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_5&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_6&quot; },
+            { &quot;name&quot; : &quot;llint_cloop_did_return_from_js_7&quot; }
+        ]
+    }
+]
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeOpcodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/Opcode.h (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/Opcode.h        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/bytecode/Opcode.h        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #ifndef Opcode_h
</span><span class="cx"> #define Opcode_h
</span><span class="cx"> 
</span><ins>+#include &quot;Bytecodes.h&quot;
</ins><span class="cx"> #include &quot;LLIntOpcode.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &lt;algorithm&gt;
</span><span class="lines">@@ -40,144 +41,8 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> 
</span><span class="cx"> #define FOR_EACH_CORE_OPCODE_ID_WITH_EXTENSION(macro, extension__) \
</span><del>-    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
</del><ins>+    FOR_EACH_BYTECODE_ID(macro) \
+    extension__
</ins><span class="cx"> 
</span><span class="cx"> #define FOR_EACH_CORE_OPCODE_ID(macro) \
</span><span class="cx">     FOR_EACH_CORE_OPCODE_ID_WITH_EXTENSION(macro, /* No extension */ )
</span><span class="lines">@@ -194,7 +59,11 @@
</span><span class="cx"> #undef OPCODE_ID_ENUM
</span><span class="cx"> 
</span><span class="cx"> const int maxOpcodeLength = 9;
</span><del>-const int numOpcodeIDs = op_end + 1;
</del><ins>+#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
</ins><span class="cx"> 
</span><span class="cx"> #define OPCODE_ID_LENGTHS(id, length) const int id##_length = length;
</span><span class="cx">     FOR_EACH_OPCODE_ID(OPCODE_ID_LENGTHS);
</span><span class="lines">@@ -206,7 +75,7 @@
</span><span class="cx">     const int opcodeLengths[numOpcodeIDs] = { FOR_EACH_OPCODE_ID(OPCODE_ID_LENGTH_MAP) };
</span><span class="cx"> #undef OPCODE_ID_LENGTH_MAP
</span><span class="cx"> 
</span><del>-#define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id &lt;= op_end, ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID);
</del><ins>+#define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id &lt;= numOpcodeIDs, ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID);
</ins><span class="cx">     FOR_EACH_OPCODE_ID(VERIFY_OPCODE_ID);
</span><span class="cx"> #undef VERIFY_OPCODE_ID
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoregeneratebytecodefiles"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/generate-bytecode-files (0 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/generate-bytecode-files                                (rev 0)
+++ trunk/Source/JavaScriptCore/generate-bytecode-files        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -0,0 +1,237 @@
</span><ins>+#! /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 &quot;AS IS&quot; 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 = &quot;&quot;&quot;/*
+* 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 &quot;AS IS&quot; 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.
+*/
+
+&quot;&quot;&quot;
+
+asmCopyrightMsg = &quot;&quot;&quot;# 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 &quot;AS IS&quot; 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.
+
+&quot;&quot;&quot;
+def openOrExit(path, mode):
+    try:
+        return open(path, mode)
+    except IOError as e:
+        print &quot;I/O error opening {0}, ({1}): {2}&quot;.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__ == &quot;__main__&quot;:
+    parser = optparse.OptionParser(usage = &quot;usage: %prog [--bytecodes_h &lt;FILE&gt;] [--init_bytecodes_asm &lt;FILE&gt;] &lt;bytecode-json-file&gt;&quot;)
+    parser.add_option(&quot;-b&quot;, &quot;--bytecodes_h&quot;, dest = &quot;bytecodesHFileName&quot;, help = &quot;generate bytecodes macro .h FILE&quot;, metavar = &quot;FILE&quot;)
+    parser.add_option(&quot;-a&quot;, &quot;--init_bytecodes_asm&quot;, dest = &quot;initASMFileName&quot;, help=&quot;generate ASM bytecodes init FILE&quot;, metavar = &quot;FILE&quot;)
+    (options, args) = parser.parse_args()
+
+    if len(args) != 1:
+        parser.error(&quot;missing &lt;bytecode-json-file&gt;&quot;)
+
+    bytecodeJSONFile = args[0]
+    bytecodeFile = openOrExit(bytecodeJSONFile, &quot;rb&quot;)
+    sha1Hash = hashFile(bytecodeFile)
+
+    hFileHashString = &quot;// SHA1Hash: {0}\n&quot;.format(sha1Hash)
+    asmFileHashString = &quot;# SHA1Hash: {0}\n&quot;.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, &quot;rb&quot;)
+            
+            hashLine = bytecodeHReadFile.readline()
+            if hashLine != hFileHashString:
+                needToGenerate = True
+        except:
+            needToGenerate = True
+        else:
+            bytecodeHReadFile.close()
+
+    if initASMFileName:
+        try:
+            initBytecodesReadFile = open(initASMFileName, &quot;rb&quot;)
+            
+            hashLine = initBytecodesReadFile.readline()
+            if hashLine != asmFileHashString:
+                needToGenerate = True
+        except:
+            needToGenerate = True
+        else:
+            initBytecodesReadFile.close()
+
+    if not needToGenerate:
+        print &quot;Nothing changed.\n&quot;
+        exit(0)
+
+    genString = &quot;Generating &quot;
+
+    if bytecodeHFilename:
+        bytecodeHFile = openOrExit(bytecodeHFilename, &quot;wb&quot;)
+        genString = genString + &quot;{0} &quot;.format(bytecodeHFilename)
+
+    if initASMFileName:
+        initBytecodesFile = openOrExit(initASMFileName, &quot;wb&quot;)
+        if bytecodeHFilename:
+            genString = genString + &quot;and &quot;
+        genString = genString + &quot;{0} &quot;.format(initASMFileName)
+
+    print &quot;{0}from {1}\n&quot;.format(genString, bytecodeJSONFile)
+
+
+    try:
+        bytecodeSections = json.load(bytecodeFile, encoding = &quot;utf-8&quot;)
+    except:
+        print &quot;Unexpected error parsing {0}: {1}&quot;.format(bytecodeJSONFile, sys.exc_info())
+
+    if bytecodeHFilename:
+        bytecodeHFile.write(hFileHashString)
+        bytecodeHFile.write(cCopyrightMsg % bytecodeJSONFile)
+        bytecodeHFile.write(&quot;#ifndef Bytecodes_h\n&quot;)
+        bytecodeHFile.write(&quot;#define Bytecodes_h\n\n&quot;)
+
+    if initASMFileName:
+        initBytecodesFile.write(asmFileHashString)
+        initBytecodesFile.write(asmCopyrightMsg % bytecodeJSONFile)
+        initASMBytecodeNum = 0
+
+    for section in bytecodeSections:
+        if bytecodeHFilename and section['emitInHFile']:
+            bytecodeHFile.write(&quot;#define FOR_EACH_{0}_ID(macro) \\\n&quot;.format(section[&quot;macroNameComponent&quot;]))
+            firstMacro = True
+            defaultLength = 1
+            if &quot;defaultLength&quot; in section:
+                defaultLength = section[&quot;defaultLength&quot;]
+
+            bytecodeNum = 0
+            for bytecode in section[&quot;bytecodes&quot;]:
+                if not firstMacro:
+                    bytecodeHFile.write(&quot; \\\n&quot;)
+
+                length = defaultLength
+                if &quot;length&quot; in bytecode:
+                    length = bytecode[&quot;length&quot;]
+
+                bytecodeHFile.write(&quot;    macro({0}, {1})&quot;.format(bytecode[&quot;name&quot;], length))
+                firstMacro = False
+                bytecodeNum = bytecodeNum + 1
+
+            bytecodeHFile.write(&quot;\n\n&quot;)
+            bytecodeHFile.write(&quot;#define NUMBER_OF_{0}_IDS {1}\n\n&quot;.format(section[&quot;macroNameComponent&quot;], bytecodeNum))
+
+            if &quot;emitDefineID&quot; in section:
+                bytecodeNum = 0
+                for bytecode in section[&quot;bytecodes&quot;]:
+                    bytecodeHFile.write(&quot;#define %s_ID %s\n&quot; % (bytecode[&quot;name&quot;].upper(), bytecodeNum))
+                    bytecodeNum = bytecodeNum + 1
+
+                bytecodeHFile.write(&quot;\n\n&quot;)
+
+        if initASMFileName and section['emitInASMFile']:
+            for bytecode in section[&quot;bytecodes&quot;]:
+                initBytecodesFile.write(&quot;setEntryAddress({0}, _{1})\n&quot;.format(initASMBytecodeNum, bytecode[&quot;name&quot;]))
+                initASMBytecodeNum = initASMBytecodeNum + 1
+
+    if bytecodeHFilename:
+        bytecodeHFile.write(&quot;#endif // Bytecodes_h\n&quot;)
+        bytecodeHFile.close()
+
+    if initASMFileName:
+        initBytecodesFile.close()
+
+    bytecodeFile.close()
+
+    exit(0)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntCLoopcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntCLoop.cpp (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntCLoop.cpp        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/llint/LLIntCLoop.cpp        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> void CLoop::initialize()
</span><span class="cx"> {
</span><del>-    execute(llint_unused, 0, 0, 0, true);
</del><ins>+    execute(llint_c_loop_init, 0, 0, 0, true);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace LLInt
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntCLooph"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntCLoop.h (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntCLoop.h        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/llint/LLIntCLoop.h        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -36,8 +36,6 @@
</span><span class="cx"> namespace JSC {
</span><span class="cx"> namespace LLInt {
</span><span class="cx"> 
</span><del>-const OpcodeID llint_unused = llint_end;
-
</del><span class="cx"> class CLoop {
</span><span class="cx"> public:
</span><span class="cx">     static void initialize();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntData.cpp (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntData.cpp        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/llint/LLIntData.cpp        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">             LLInt::getCodePtr(llint_throw_from_slow_path_trampoline);
</span><span class="cx">     #define OPCODE_ENTRY(opcode, length) \
</span><span class="cx">         Data::s_opcodeMap[opcode] = static_cast&lt;Opcode&gt;(LLInt::getCodePtr(llint_##opcode));
</span><del>-    FOR_EACH_OPCODE_ID(OPCODE_ENTRY);
</del><ins>+    FOR_EACH_CORE_OPCODE_ID(OPCODE_ENTRY);
</ins><span class="cx">     #undef OPCODE_ENTRY
</span><span class="cx">     #endif // !ENABLE(LLINT_C_LOOP)
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntOpcodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntOpcode.h (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntOpcode.h        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/llint/LLIntOpcode.h        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -31,19 +31,7 @@
</span><span class="cx"> #if ENABLE(LLINT_C_LOOP)
</span><span class="cx"> 
</span><span class="cx"> #define FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \
</span><del>-    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) \
</del><ins>+    FOR_EACH_CLOOP_BYTECODE_HELPER_ID(macro)
</ins><span class="cx"> 
</span><span class="cx"> #else // !ENABLE(LLINT_C_LOOP)
</span><span class="cx"> 
</span><span class="lines">@@ -56,25 +44,10 @@
</span><span class="cx"> #define FOR_EACH_LLINT_NATIVE_HELPER(macro) \
</span><span class="cx">     FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \
</span><span class="cx">     \
</span><del>-    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)
</del><ins>+    FOR_EACH_BYTECODE_HELPER_ID(macro)
</ins><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> #if ENABLE(LLINT_C_LOOP)
</span><span class="cx"> #define FOR_EACH_LLINT_OPCODE_EXTENSION(macro) FOR_EACH_LLINT_NATIVE_HELPER(macro)
</span><span class="cx"> #else
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLowLevelInterpreterasm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -631,6 +631,12 @@
</span><span class="cx">     ret
</span><span class="cx"> end
</span><span class="cx"> 
</span><ins>+# Dummy entry point the C Loop uses to initialize.
+if C_LOOP
+_llint_c_loop_init:
+    crash()
+end
+
</ins><span class="cx"> # stub to call into JavaScript or Native functions
</span><span class="cx"> # EncodedJSValue callToJavaScript(void* code, ExecState** vmTopCallFrame, ProtoCallFrame* protoFrame)
</span><span class="cx"> # EncodedJSValue callToNativeFunction(void* code, ExecState** vmTopCallFrame, ProtoCallFrame* protoFrame)
</span><span class="lines">@@ -689,11 +695,6 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-# Indicate the beginning of LLInt.
-_llint_begin:
-    crash()
-
-
</del><span class="cx"> _llint_program_prologue:
</span><span class="cx">     prologue(notFunctionCodeBlockGetter, notFunctionCodeBlockSetter, _llint_entry_osr, _llint_trace_prologue)
</span><span class="cx">     dispatch(0)
</span><span class="lines">@@ -1144,7 +1145,3 @@
</span><span class="cx"> _llint_op_init_global_const_nop:
</span><span class="cx">     dispatch(5)
</span><span class="cx"> 
</span><del>-# Indicate the end of LLInt.
-_llint_end:
-    crash()
-
</del></span></pre></div>
<a id="trunkSourceWebKitCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/CMakeLists.txt (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/CMakeLists.txt        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/WebKit/CMakeLists.txt        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -78,6 +78,7 @@
</span><span class="cx">     &quot;${JAVASCRIPTCORE_DIR}/profiler&quot;
</span><span class="cx">     &quot;${JAVASCRIPTCORE_DIR}/runtime&quot;
</span><span class="cx">     &quot;${WTF_DIR}&quot;
</span><ins>+    &quot;${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}&quot;
</ins><span class="cx">     &quot;${DERIVED_SOURCES_WEBCORE_DIR}&quot;
</span><span class="cx">     &quot;${DERIVED_SOURCES_DIR}/ForwardingHeaders&quot;
</span><span class="cx">     &quot;${CMAKE_BINARY_DIR}&quot;
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/WebKit/ChangeLog        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-02-26  Michael Saboff  &lt;msaboff@apple.com&gt;
+
+        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:
+
</ins><span class="cx"> 2014-02-26  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         [WinCairo] Fixed linking after disabling WebGL.
</span></span></pre></div>
<a id="trunkSourceWebKit2CMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/CMakeLists.txt (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/CMakeLists.txt        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/WebKit2/CMakeLists.txt        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -133,6 +133,7 @@
</span><span class="cx">     &quot;${JAVASCRIPTCORE_DIR}/runtime&quot;
</span><span class="cx">     &quot;${WTF_DIR}&quot;
</span><span class="cx">     &quot;${DERIVED_SOURCES_DIR}&quot;
</span><ins>+    &quot;${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}&quot;
</ins><span class="cx">     &quot;${DERIVED_SOURCES_WEBCORE_DIR}&quot;
</span><span class="cx">     &quot;${DERIVED_SOURCES_WEBKIT2_DIR}&quot;
</span><span class="cx">     &quot;${DERIVED_SOURCES_WEBKIT2_DIR}/include&quot;
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (164813 => 164814)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-02-27 18:47:54 UTC (rev 164813)
+++ trunk/Source/WebKit2/ChangeLog        2014-02-27 18:48:37 UTC (rev 164814)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-02-26  Michael Saboff  &lt;msaboff@apple.com&gt;
+
+        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:
+
</ins><span class="cx"> 2014-02-27  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Look up already existing VisitedLinkTableController objects by identifier
</span></span></pre>
</div>
</div>

</body>
</html>