• Heiko Carstens's avatar
    s390/disassembler: generate opcode tables from text file · 8bc1e4ec
    Heiko Carstens authored
    The current way of adding new instructions to the opcode tables is
    painful and error prone. Therefore add, similar to binutils, a text
    file which contains all opcodes and the corresponding mnemonics and
    instruction formats.
    
    A small gen_opcode_table tool then generates a header file with the
    required enums and opcode table initializers at the prepare step of
    the kernel build.
    
    This way only a simple text file has to be maintained, which can be
    rather easily extended.
    
    Unlike before where there were plenty of opcode tables and a large
    switch statement to find the correct opcode table, there is now only
    one opcode table left which contains all instructions. A second opcode
    offset table now contains offsets within the opcode table to find
    instructions which have the same opcode prefix. In order to save space
    all 1-byte opcode instructions are grouped together at the end of the
    opcode table. This is also quite similar to like it was before.
    
    In addition also move and change code and definitions within the
    disassembler. As a side effect this reduces the size required for the
    code and opcode tables by ~1.5k.
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    8bc1e4ec
gen_opcode_table.c 7.2 KB