Modified: trunk/Source/_javascript_Core/ChangeLog (133414 => 133415)
--- trunk/Source/_javascript_Core/ChangeLog 2012-11-04 08:03:03 UTC (rev 133414)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-11-04 08:07:41 UTC (rev 133415)
@@ -1,3 +1,18 @@
+2012-11-04 Csaba Osztrogonác <[email protected]>
+
+ [Qt] udis86_itab.c is always regenerated
+ https://bugs.webkit.org/show_bug.cgi?id=100756
+
+ Reviewed by Simon Hausmann.
+
+ * DerivedSources.pri: Generate sources to the generated directory.
+ * disassembler/udis86/differences.txt:
+ * disassembler/udis86/itab.py: Add --outputDir option.
+ (UdItabGenerator.__init__):
+ (genItabH):
+ (genItabC):
+ (main):
+
2012-11-02 Filip Pizlo <[email protected]>
LLInt 32-bit put_by_val ArrayStorage case should use the right register (t3, not t2) for the index in the publicLength updating path
Modified: trunk/Source/_javascript_Core/DerivedSources.pri (133414 => 133415)
--- trunk/Source/_javascript_Core/DerivedSources.pri 2012-11-04 08:03:03 UTC (rev 133414)
+++ trunk/Source/_javascript_Core/DerivedSources.pri 2012-11-04 08:07:41 UTC (rev 133415)
@@ -118,7 +118,7 @@
disassembler.input = DISASSEMBLER_FILES
disassembler.script = $$PWD/disassembler/udis86/itab.py
disassembler.depends = $$DISASSEMBLER_DEPENDENCY
- disassembler.commands = python $$disassembler.script ${QMAKE_FILE_NAME}
+ disassembler.commands = python $$disassembler.script ${QMAKE_FILE_NAME} --outputDir ${QMAKE_FUNC_FILE_OUT_PATH}
disassembler.CONFIG += no_link
GENERATORS += disassembler
}
Modified: trunk/Source/_javascript_Core/disassembler/udis86/differences.txt (133414 => 133415)
--- trunk/Source/_javascript_Core/disassembler/udis86/differences.txt 2012-11-04 08:03:03 UTC (rev 133414)
+++ trunk/Source/_javascript_Core/disassembler/udis86/differences.txt 2012-11-04 08:07:41 UTC (rev 133415)
@@ -20,3 +20,5 @@
- Made the code in udis86_syn.h use vsnprintf() instead of vsprintf().
- Fixed udis86_syn-att.c's jump destination printing to work correctly in 64-bit mode.
+
+- Add --outputDir option to itab.py.
Modified: trunk/Source/_javascript_Core/disassembler/udis86/itab.py (133414 => 133415)
--- trunk/Source/_javascript_Core/disassembler/udis86/itab.py 2012-11-04 08:03:03 UTC (rev 133414)
+++ trunk/Source/_javascript_Core/disassembler/udis86/itab.py 2012-11-04 08:07:41 UTC (rev 133415)
@@ -23,6 +23,8 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+from optparse import OptionParser
+import os
import sys
sys.path.append( '../scripts' );
@@ -194,10 +196,11 @@
MnemonicAliases = ( "invalid", "3dnow", "none", "db", "pause" )
- def __init__( self ):
+ def __init__( self, outputDir ):
# first itab entry (0) is Invalid
self.Itab.append( self.InvalidEntry )
self.MnemonicsTable.extend( self.MnemonicAliases )
+ self.outputDir = outputDir
def toGroupId( self, id ):
return 0x8000 | id
@@ -289,7 +292,7 @@
def genItabH( self ):
- self.ItabH = open( "udis86_itab.h", "w" )
+ self.ItabH = open( os.path.join(self.outputDir, "udis86_itab.h"), "w" )
# Generate Table Type Enumeration
self.ItabH.write( "#ifndef UD_ITAB_H\n" )
@@ -328,7 +331,7 @@
def genItabC( self ):
- self.ItabC = open( "udis86_itab.c", "w" )
+ self.ItabC = open( os.path.join(self.outputDir, "udis86_itab.c"), "w" )
self.ItabC.write( "/* itab.c -- generated by itab.py, do no edit" )
self.ItabC.write( " */\n" );
self.ItabC.write( "#include \"udis86_decode.h\"\n\n" );
@@ -344,9 +347,12 @@
self.genItabH()
def main():
- generator = UdItabGenerator()
+ parser = OptionParser()
+ parser.add_option("--outputDir", dest="outputDir", default="")
+ options, args = parser.parse_args()
+ generator = UdItabGenerator(os.path.normpath(options.outputDir))
optableXmlParser = ud_optable.UdOptableXmlParser()
- optableXmlParser.parse( sys.argv[ 1 ], generator.addInsnDef )
+ optableXmlParser.parse( args[ 0 ], generator.addInsnDef )
generator.genItab()