Browse Source

Automatically set dest to __rax

dynamic
Raphael Roberts 5 years ago
parent
commit
48944fe68e
  1. 10
      c2logic/instructions.py

10
c2logic/instructions.py

@ -107,18 +107,24 @@ class ParsedInstruction(Instruction):
return unescaped.format(**self.__dict__)
class ParsedInstructionFactory():
RETURN_REGISTER = "__rax"
def __init__(self, name, argn, argt, assembly_string):
self.argn = argn
self.argt = argt
self.name = name
self.assembly_string = assembly_string
@property
def returns_data(self):
return "{dest}" in self.assembly_string
def __call__(self, *args):
ret_instruction = ParsedInstruction()
ret_instruction.argt = self.argt
ret_instruction.assembly_string = self.assembly_string
if "{dest}" in self.assembly_string:
ret_instruction.__setattr__('dest', args[0])
if self.returns_data:
ret_instruction.__setattr__('dest', self.RETURN_REGISTER)
args = args[1:]
ret_instruction.name = self.name
for arg, argn in zip(args, self.argn):

Loading…
Cancel
Save