diff options
Diffstat (limited to 'Source/JavaScriptCore/disassembler')
-rw-r--r-- | Source/JavaScriptCore/disassembler/udis86/differences.txt | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/disassembler/udis86/itab.py | 16 |
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() |