Mercurial > lcfOS
comparison 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 |
comparison
equal
deleted
inserted
replaced
341:4d204f6f7d4e | 342:86b02c98a717 |
---|---|
1 | |
2 | |
3 from ..basetarget import Instruction | |
4 | |
5 from .token import ArmToken | |
6 from .registers import R0, SP | |
7 | |
8 | |
9 # Instructions: | |
10 | |
11 class ArmInstruction(Instruction): | |
12 def __init__(self): | |
13 self.token = ArmToken() | |
14 | |
15 | |
16 class Mov(ArmInstruction): | |
17 """ Mov Rd, imm16 """ | |
18 def __init__(self, reg, imm): | |
19 super().__init__() | |
20 self.reg = reg | |
21 self.imm = imm | |
22 | |
23 def encode(self): | |
24 self.token[0:12] = self.imm | |
25 self.token[12:16] = self.reg.num | |
26 self.token[16:20] = 0 | |
27 self.token[20] = 0 | |
28 self.token[21:28] = 0b0011101 | |
29 self.token.cond = 0xE # Always! | |
30 return self.token.encode() | |
31 | |
32 def relocations(self): | |
33 return [] | |
34 | |
35 def __repr__(self): | |
36 return 'DCD 0x{0:X}'.format(self.expr) | |
37 |