ir: add dedicated IR item for division
This commit is contained in:
parent
67c2ed3a26
commit
6630fa13a5
1 changed files with 19 additions and 0 deletions
|
|
@ -229,6 +229,25 @@ class IRMul(IRAction):
|
|||
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):
|
||||
|
||||
@typecheck
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue