view python/target/armtarget.py @ 340:c7cc54c0dfdf devel

Test featurebranch
author Windel Bouwman
date Sun, 23 Feb 2014 16:24:01 +0100
parents 6f4753202b9a
children 4d204f6f7d4e
line wrap: on
line source

import struct
from .basetarget import Register, Instruction, Target, Label, LabelRef
from .basetarget import Imm32, Imm8, Imm7, Imm3
from .arminstructions import allins, Reg8Op, ArmRegister
from .arminstructions import thumb_assembly_rules

from .armframe import ArmFrame
from .arminstructionselector import ArmInstructionSelector

""" ARM target description. """

# TODO: encode this in DSL (domain specific language)
# TBD: is this required?
# TODO: make a difference between armv7 and armv5?


class ArmThumbTarget(Target):
    def __init__(self):
        super().__init__('arm_thumb')
        for i in allins:
            self.addInstruction(i)
            # TODO: fix this nicer?
            #setattr(self, i.__name__, i)
        self.check()
        self.ins_sel = ArmInstructionSelector()
        self.FrameClass = ArmFrame
        self.assembler_rules = thumb_assembly_rules


class ArmArmTarget(Target):
    def __init__(self):
        super().__init__('arm_arm')