summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/disassembler
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/disassembler')
-rw-r--r--Source/JavaScriptCore/disassembler/udis86/differences.txt2
-rw-r--r--Source/JavaScriptCore/disassembler/udis86/itab.py16
2 files changed, 13 insertions, 5 deletions
diff --git a/Source/JavaScriptCore/disassembler/udis86/differences.txt b/Source/JavaScriptCore/disassembler/udis86/differences.txt
index 3ef51efcf..dc225b6ff 100644
--- a/Source/JavaScriptCore/disassembler/udis86/differences.txt
+++ b/Source/JavaScriptCore/disassembler/udis86/differences.txt
@@ -20,3 +20,5 @@ here:
- 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.
diff --git a/Source/JavaScriptCore/disassembler/udis86/itab.py b/Source/JavaScriptCore/disassembler/udis86/itab.py
index 27fa9b3f3..07e20a6e1 100644
--- a/Source/JavaScriptCore/disassembler/udis86/itab.py
+++ b/Source/JavaScriptCore/disassembler/udis86/itab.py
@@ -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 @@ class UdItabGenerator( ud_opcode.UdOpcodeTables ):
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 @@ class UdItabGenerator( ud_opcode.UdOpcodeTables ):
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 @@ class UdItabGenerator( ud_opcode.UdOpcodeTables ):
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 @@ class UdItabGenerator( ud_opcode.UdOpcodeTables ):
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()