|
|
|
@ -953,8 +953,8 @@ def generate_translations2(instructions):
|
|
|
|
|
#dump_hash_tree2(hash_st)
|
|
|
|
|
print('Writing the table_root.h file...')
|
|
|
|
|
f = open(r'../bddisasm/include/table_root.h', 'wt')
|
|
|
|
|
f.write("#ifndef _TABLE_ROOT_H_\n")
|
|
|
|
|
f.write("#define _TABLE_ROOT_H_\n\n")
|
|
|
|
|
f.write("#ifndef TABLE_ROOT_H\n")
|
|
|
|
|
f.write("#define TABLE_ROOT_H\n\n")
|
|
|
|
|
dump_translation_tree_c(hash_st, 'gRootTable', f)
|
|
|
|
|
f.write("\n#endif\n\n")
|
|
|
|
|
f.close()
|
|
|
|
@ -962,8 +962,8 @@ def generate_translations2(instructions):
|
|
|
|
|
#dump_hash_tree2(hash_vex)
|
|
|
|
|
print('Writing the table_vex.h file...')
|
|
|
|
|
f = open(r'../bddisasm/include/table_vex.h', 'wt')
|
|
|
|
|
f.write("#ifndef _TABLE_VEX_H_\n")
|
|
|
|
|
f.write("#define _TABLE_VEX_H_\n\n")
|
|
|
|
|
f.write("#ifndef TABLE_VEX_H\n")
|
|
|
|
|
f.write("#define TABLE_VEX_H\n\n")
|
|
|
|
|
dump_translation_tree_c(hash_vex, 'gVexTable', f)
|
|
|
|
|
f.write("\n#endif\n\n")
|
|
|
|
|
f.close()
|
|
|
|
@ -971,8 +971,8 @@ def generate_translations2(instructions):
|
|
|
|
|
#dump_hash_tree2(hash_xop)
|
|
|
|
|
print('Writing the table_xop.h file...')
|
|
|
|
|
f = open(r'../bddisasm/include/table_xop.h', 'wt')
|
|
|
|
|
f.write("#ifndef _TABLE_XOP_H_\n")
|
|
|
|
|
f.write("#define _TABLE_XOP_H_\n\n")
|
|
|
|
|
f.write("#ifndef TABLE_XOP_H\n")
|
|
|
|
|
f.write("#define TABLE_XOP_H\n\n")
|
|
|
|
|
dump_translation_tree_c(hash_xop, 'gXopTable', f)
|
|
|
|
|
f.write("\n#endif\n\n")
|
|
|
|
|
f.close()
|
|
|
|
@ -980,8 +980,8 @@ def generate_translations2(instructions):
|
|
|
|
|
#dump_hash_tree2(hash_evex)
|
|
|
|
|
print('Writing the table_evex.h file...')
|
|
|
|
|
f = open(r'../bddisasm/include/table_evex.h', 'wt')
|
|
|
|
|
f.write("#ifndef _TABLE_EVEX_H_\n")
|
|
|
|
|
f.write("#define _TABLE_EVEX_H_\n\n")
|
|
|
|
|
f.write("#ifndef TABLE_EVEX_H\n")
|
|
|
|
|
f.write("#define TABLE_EVEX_H\n\n")
|
|
|
|
|
dump_translation_tree_c(hash_evex, 'gEvexTable', f)
|
|
|
|
|
f.write("\n#endif\n\n")
|
|
|
|
|
f.close()
|
|
|
|
@ -1020,8 +1020,8 @@ def generate_constants2(instructions):
|
|
|
|
|
|
|
|
|
|
def dump_mnemonics(mnemonics, prefixes, fname):
|
|
|
|
|
f = open(fname, 'wt')
|
|
|
|
|
f.write('#ifndef _MNEMONICS_H_\n')
|
|
|
|
|
f.write('#define _MNEMONICS_H_\n')
|
|
|
|
|
f.write('#ifndef MNEMONICS_H\n')
|
|
|
|
|
f.write('#define MNEMONICS_H\n')
|
|
|
|
|
f.write('\n')
|
|
|
|
|
f.write('const char *gMnemonics[%d] = \n' % len(mnemonics))
|
|
|
|
|
f.write('{\n')
|
|
|
|
@ -1058,8 +1058,8 @@ def dump_constants(constants, prefixes, constants_sets, constants_types, fname):
|
|
|
|
|
f.write('//\n')
|
|
|
|
|
f.write('// This file was auto-generated by generate_tables.py from defs.dat. DO NOT MODIFY!\n')
|
|
|
|
|
f.write('//\n\n')
|
|
|
|
|
f.write('#ifndef _CONSTANTS_H_\n')
|
|
|
|
|
f.write('#define _CONSTANTS_H_\n\n')
|
|
|
|
|
f.write('#ifndef CONSTANTS_H\n')
|
|
|
|
|
f.write('#define CONSTANTS_H\n\n')
|
|
|
|
|
f.write('\n')
|
|
|
|
|
f.write('typedef enum _ND_INS_CLASS\n')
|
|
|
|
|
f.write('{\n')
|
|
|
|
@ -1106,8 +1106,8 @@ def generate_master_table(instructions, fname):
|
|
|
|
|
f.write('//\n')
|
|
|
|
|
f.write('// This file was auto-generated by generate_tables.py from defs.dat. DO NOT MODIFY!\n')
|
|
|
|
|
f.write('//\n\n')
|
|
|
|
|
f.write('#ifndef _INSTRUCTIONS_H_\n')
|
|
|
|
|
f.write('#define _INSTRUCTIONS_H_\n')
|
|
|
|
|
f.write('#ifndef INSTRUCTIONS_H\n')
|
|
|
|
|
f.write('#define INSTRUCTIONS_H\n')
|
|
|
|
|
f.write('\n')
|
|
|
|
|
flags = []
|
|
|
|
|
f.write('const ND_INSTRUCTION gInstructions[%s] = \n' % len(instructions))
|
|
|
|
@ -1184,8 +1184,8 @@ def dump_translation_tree_c(t, hname, f):
|
|
|
|
|
|
|
|
|
|
def generate_features(features, fname):
|
|
|
|
|
f = open(fname, 'wt')
|
|
|
|
|
f.write('#ifndef _CPUID_FLAGS_H_\n')
|
|
|
|
|
f.write('#define _CPUID_FLAGS_H_\n')
|
|
|
|
|
f.write('#ifndef CPUID_FLAGS_H\n')
|
|
|
|
|
f.write('#define CPUID_FLAGS_H\n')
|
|
|
|
|
|
|
|
|
|
f.write('\n')
|
|
|
|
|
f.write('#define ND_CFF_NO_LEAF 0xFFFFFFFF\n')
|
|
|
|
@ -1200,7 +1200,7 @@ def generate_features(features, fname):
|
|
|
|
|
|
|
|
|
|
f.write('\n')
|
|
|
|
|
|
|
|
|
|
f.write('#endif // _CPUID_FLAGS_H_\n')
|
|
|
|
|
f.write('#endif // CPUID_FLAGS_H\n')
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# =============================================================================
|
|
|
|
|