Mercurial > lcfOS
diff python/ir/instruction.py @ 147:4e79484a9d47
Moved core to ir folder
author | Windel Bouwman |
---|---|
date | Fri, 22 Feb 2013 10:33:48 +0100 |
parents | python/ppci/core/instruction.py@9e552d34bd60 |
children | b28a11c01dbe |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/ir/instruction.py Fri Feb 22 10:33:48 2013 +0100 @@ -0,0 +1,32 @@ + +from .value import Value + +def Enum(**enums): + return type('Enum', (), enums) + +class Instruction(Value): + """ Base class for all instructions. """ + pass + +class CallInstruction(Instruction): + def __init__(self, callee, arguments): + super().__init__() + self.callee = callee + self.arguments = arguments + +BinOps = Enum(Add=1, Sub=2, Mul=3) + +class BinaryOperator(Instruction): + def __init__(self, operation, value1, value2): + assert value1 + assert value2 + print('operation is in binops:', operation in BinOps) + # Check types of the two operands: + self.value1 = value1 + self.value2 = value2 + self.operation = operation + +class LoadInstruction(Instruction): + def __init__(self, ptr, name, insertBefore): + self.setName(name) +