7
OUTPUT = "../arch/X86/X86ImmSize.inc"
9
f = open("../arch/X86/X86GenInstrInfo.inc")
11
for line in f.readlines():
12
tmp = line.strip().split("=")
15
if name == "X86_INSTRUCTION_LIST_END":
17
if name.endswith("_DB"):
19
if "_LOCK_" in name or "BEXTR" in name:
21
if name.startswith("X86_"):
22
if name.endswith("16mi8"):
23
f2.write("{2, %s},\n" %name)
24
elif name.endswith("16ri8"):
25
f2.write("{2, %s},\n" %name)
26
elif name.endswith("32ri8"):
27
f2.write("{4, %s},\n" %name)
28
elif name.endswith("32mi8"):
29
f2.write("{4, %s},\n" %name)
30
elif name.endswith("64i32"):
31
f2.write("{8, %s},\n" %name)
32
elif name.endswith("64mi32"):
33
f2.write("{8, %s},\n" %name)
34
elif name.endswith("64ri32"):
35
f2.write("{8, %s},\n" %name)
36
elif name.endswith("64ri8"):
37
f2.write("{8, %s},\n" %name)
38
elif name.endswith("64mi8"):
39
f2.write("{8, %s},\n" %name)
40
elif name.endswith("16rmi8"):
41
f2.write("{2, %s},\n" %name)
42
elif name.endswith("32rmi8"):
43
f2.write("{4, %s},\n" %name)
44
elif name.endswith("16rri8"):
45
f2.write("{2, %s},\n" %name)
46
elif name.endswith("32rri8"):
47
f2.write("{4, %s},\n" %name)
48
elif name.endswith("64rmi8"):
49
f2.write("{8, %s},\n" %name)
50
elif name.endswith("64rmi32"):
51
f2.write("{8, %s},\n" %name)
52
elif name.endswith("64rri32"):
53
f2.write("{8, %s},\n" %name)
54
elif name.endswith("64rri8"):
55
f2.write("{8, %s},\n" %name)
56
elif name.endswith("32ri64"):
57
f2.write("{8, %s},\n" %name)
58
elif name.endswith("16i8"):
59
f2.write("{2, %s},\n" %name)
60
elif name.endswith("32i8"):
61
f2.write("{4, %s},\n" %name)
62
elif name.endswith("64i16"):
63
f2.write("{8, %s},\n" %name)
64
elif name.endswith("64i8"):
65
f2.write("{8, %s},\n" %name)
67
elif name.endswith("i8") or "i8_" in name:
68
f2.write("{1, %s},\n" %name)
69
elif "8ri" in name or "8mi" in name:
70
f2.write("{1, %s},\n" %name)
72
elif name.endswith("i16") or "i16_" in name:
73
f2.write("{2, %s},\n" %name)
74
elif "16ri" in name or "16mi" in name:
75
f2.write("{2, %s},\n" %name)
77
elif name.endswith("i32") or "i32_" in name:
78
f2.write("{4, %s},\n" %name)
79
elif "32ri" in name or "32mi" in name:
80
f2.write("{4, %s},\n" %name)
82
elif name.endswith("i64") or "i64_" in name:
83
f2.write("{8, %s},\n" %name)
84
elif "64ri" in name or "64mi" in name:
85
f2.write("{8, %s},\n" %name)
90
print("Generated %s" %OUTPUT)