view python/ppci/target/arm/instructions.py @ 342:86b02c98a717 devel

Moved target directory
author Windel Bouwman
date Sat, 01 Mar 2014 15:40:31 +0100
parents
children b4882ff0ed06
line wrap: on
line source



from ..basetarget import Instruction

from .token import ArmToken
from .registers import R0, SP


# Instructions:

class ArmInstruction(Instruction):
    def __init__(self):
        self.token = ArmToken()


class Mov(ArmInstruction):
    """ Mov Rd, imm16 """
    def __init__(self, reg, imm):
        super().__init__()
        self.reg = reg
        self.imm = imm

    def encode(self):
        self.token[0:12] = self.imm
        self.token[12:16] = self.reg.num
        self.token[16:20] = 0
        self.token[20] = 0
        self.token[21:28] = 0b0011101
        self.token.cond = 0xE # Always!
        return self.token.encode()

    def relocations(self):
        return []

    def __repr__(self):
        return 'DCD 0x{0:X}'.format(self.expr)