Correct tms fix (nw)

This commit is contained in:
Olivier Galibert 2015-12-07 15:08:58 +01:00
parent 3658b23f3a
commit 0bd06e40f5

View File

@ -138,7 +138,7 @@ VARIANT_CANONICAL_ORDER = [
def EmitWithPrefix(f, out, prefix): def EmitWithPrefix(f, out, prefix):
for o in out: for o in out:
print >>f, prefix + o print(prefix + o, file=f)
class Instruction: class Instruction:
@ -201,23 +201,23 @@ class Instruction:
def EmitDasm(self, f, prefix): def EmitDasm(self, f, prefix):
opcode, args = self.GetDasmInfo() opcode, args = self.GetDasmInfo()
args = [", " + a for a in args] args = [", " + a for a in args]
print >>f, "%scase 0x%02x:" % (prefix, self._id) print("%scase 0x%02x:" % (prefix, self._id), file=f)
print >>f, "%s sprintf(buf, \"%s\"%s);" % (prefix, opcode, "".join(args)) print("%s sprintf(buf, \"%s\"%s);" % (prefix, opcode, "".join(args)), file=f)
print >>f, "%s break;" % prefix print("%s break;" % prefix, file=f)
def EmitCdec(self, f, prefix, no, empty): def EmitCdec(self, f, prefix, no, empty):
print >>f, "%scase 0x%02x: // %s" % (prefix, self._id, self._name) print("%scase 0x%02x: // %s" % (prefix, self._id, self._name), file=f)
if not empty: if not empty:
print >>f, "%s *op = %s%s;" % (prefix, no, self.GetCdecSum()) print("%s *op = %s%s;" % (prefix, no, self.GetCdecSum()), file=f)
if self._type == "f": if self._type == "f":
for l in self._run: for l in self._run:
print >>f, prefix + l print(prefix + l, file=f)
else: else:
l = TYPES[self._type] l = TYPES[self._type]
if l: if l:
print >>f, prefix + l print(prefix + l, file=f)
print >>f, "%s break;" % prefix print("%s break;" % prefix, file=f)
def ExpandCintrp(self, line, values): def ExpandCintrp(self, line, values):
@ -267,7 +267,6 @@ class Instruction:
vals = [] vals = []
for v in VARIANT_CANONICAL_ORDER: for v in VARIANT_CANONICAL_ORDER:
if v in flags_fixed: if v in flags_fixed:
#print "@@@@", f
vals.append("%s=%d" % (v, flags_fixed[v])) vals.append("%s=%d" % (v, flags_fixed[v]))
out = ["case %d: // %s %s" % (no, self._name, " ".join(vals))] out = ["case %d: // %s %s" % (no, self._name, " ".join(vals))]
for line in self.PreprocessRunString(): for line in self.PreprocessRunString():
@ -317,13 +316,6 @@ class Instruction:
self._run.append(line) self._run.append(line)
def ins_cmp_dasm(a, b):
if a._cat[0] != b._cat[0]:
return cmp(a._cat[0], b._cat[0])
else:
return cmp(a._id, b._id)
def LoadLst(filename): def LoadLst(filename):
instructions = [] instructions = []
ins = None ins = None
@ -345,24 +337,24 @@ def LoadLst(filename):
def EmitDasm(f, ins_list): def EmitDasm(f, ins_list):
ins_list.sort(cmp=ins_cmp_dasm) ins_list.sort(key=lambda x : (x._cat, x._id))
last_cat = "" last_cat = ""
for i in ins_list: for i in ins_list:
cat = i._cat[0] cat = i._cat[0]
if cat != last_cat: if cat != last_cat:
if last_cat: if last_cat:
print >>f, "#endif" print("#endif", file=f)
print >>f print("", file=f)
print >>f, "#ifdef DASM" + cat print("#ifdef DASM" + cat, file=f)
last_cat = cat last_cat = cat
i.EmitDasm(f, " ") i.EmitDasm(f, " ")
print >>f print("", file=f)
print >>f, "#endif" print("#endif", file=f)
print >>f print("", file=f)
def EmitCdec(f, ins_list): def EmitCdec(f, ins_list):
ins_list.sort(cmp=ins_cmp_dasm) ins_list.sort(key=lambda x : (x._cat, x._id))
no = 4 no = 4
last_cat = "" last_cat = ""
for i in ins_list: for i in ins_list:
@ -373,14 +365,14 @@ def EmitCdec(f, ins_list):
if cat != last_cat: if cat != last_cat:
if last_cat: if last_cat:
print >>f, "#endif" print("#endif", file=f)
print >>f print("", file=f)
print >>f, "#ifdef CDEC" + cat print("#ifdef CDEC" + cat, file=f)
last_cat = cat last_cat = cat
i.EmitCdec(f, "", no, i._cat == "2b") i.EmitCdec(f, "", no, i._cat == "2b")
no += i._variants no += i._variants
print >>f print("", file=f)
no = 4 no = 4
for i in ins_list: for i in ins_list:
@ -394,24 +386,24 @@ def EmitCdec(f, ins_list):
if cat != last_cat: if cat != last_cat:
if last_cat: if last_cat:
print >>f, "#endif" print("#endif", file=f)
print >>f print("", file=f)
print >>f, "#ifdef CDEC" + cat print("#ifdef CDEC" + cat, file=f)
last_cat = cat last_cat = cat
i.EmitCdec(f, "", no, i._cat == "2a") i.EmitCdec(f, "", no, i._cat == "2a")
no += i._variants no += i._variants
print >>f print("", file=f)
print >>f, "#endif" print("#endif", file=f)
print >>f print("", file=f)
def EmitCintrp(f, ins_list): def EmitCintrp(f, ins_list):
ins_list.sort(cmp=ins_cmp_dasm) ins_list.sort(key=lambda x : (x._cat, x._id))
print >>f, "#ifdef CINTRP" print("#ifdef CINTRP", file=f)
no = 4 no = 4
for i in ins_list: for i in ins_list:
no = i.EmitCintrp(f, "", no) no = i.EmitCintrp(f, "", no)
print >>f, "#endif" print("#endif", file=f)
def CheckSelfAssign(line): def CheckSelfAssign(line):