Autogenerate Opcode definitions
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 24 Aug 2012 19:37:50 +0000 (19:37 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 24 Aug 2012 19:37:50 +0000 (19:37 +0000)
commit62af568583e866462233c6a69ca15e37600a4902
tree39633a67a7fa733c843cb3011322d54406d45659
parent1e570b6238af119c0ab39ed836b3a5f80dd3fbf2
Autogenerate Opcode definitions
https://bugs.webkit.org/show_bug.cgi?id=94840

Reviewed by Gavin Barraclough.

Start the process of autogenerating the code emission for the bytecode.
We'll just start with automatic generation of the list of Opcodes as that
requires the actual definition of the opcodes, and the logic for parsing
them.

Due to some rather annoying dependency cycles, this initial version has
the OpcodeDefinitions.h file checked into the tree, although with some
work I hope to be able to fix that.

* DerivedSources.make:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/Opcode.h:
  Include OpcodeDefinitions.h as our definitive source of info
  about the opcodes.
* bytecode/OpcodeDefinitions.h: Added.
  Autogenerated file
* bytecode/opcodes: Added.
  The new opcode definition file
* opcode_definition_generator.py: Added.
(generateOpcodeDefinition):
(generate):
  Module that generates the content for OpcodeDefinitions.h
* opcode_generator.py: Added.
(printUsage):
(main):
  Driver script
* opcode_parser.py: Added.
  Simple parser for the opcode definitions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@126613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/DerivedSources.make
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
Source/JavaScriptCore/bytecode/Opcode.h
Source/JavaScriptCore/bytecode/OpcodeDefinitions.h [new file with mode: 0644]
Source/JavaScriptCore/bytecode/opcodes [new file with mode: 0644]
Source/JavaScriptCore/opcode_definition_generator.py [new file with mode: 0644]
Source/JavaScriptCore/opcode_generator.py [new file with mode: 0644]
Source/JavaScriptCore/opcode_parser.py [new file with mode: 0644]