ir: add dedicated IR item for division

This commit is contained in:
Antoine Viallon 2024-04-12 16:38:32 +02:00
parent 67c2ed3a26
commit 6630fa13a5
Signed by: aviallon
GPG key ID: 186FC35EDEB25716

View file

@ -229,6 +229,25 @@ class IRMul(IRAction):
return f"MUL {', '.join(values)} -> {self.dest}" return f"MUL {', '.join(values)} -> {self.dest}"
class IRDiv(IRAction):
@typecheck
def __init__(self, location: SourceLocation, dest: IRAssignable, *values: IRValue):
super().__init__(location, reads=list(values), writes=[dest])
assert all(isinstance(v, IRValue) for v in values)
assert len(values) == 2
self.values = values
self.dest = dest
def destination(self) -> IRValue:
return self.dest
def codegen(self) -> str:
values = [str(value) for value in self.values]
return f"DIV {', '.join(values)} -> {self.dest}"
class IRNegation(IRAction): class IRNegation(IRAction):
@typecheck @typecheck