|
4 | 4 |
|
5 | 5 | from unicorn.arm_const import UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3 |
6 | 6 | from unicorn.arm64_const import ( |
7 | | - UC_ARM64_REG_X0, UC_ARM64_REG_X1, UC_ARM64_REG_X2, UC_ARM64_REG_X3, |
8 | | - UC_ARM64_REG_X4, UC_ARM64_REG_X5, UC_ARM64_REG_X6, UC_ARM64_REG_X7 |
| 7 | + UC_ARM64_REG_X0, UC_ARM64_REG_X1, UC_ARM64_REG_X2, UC_ARM64_REG_X3, |
| 8 | + UC_ARM64_REG_X4, UC_ARM64_REG_X5, UC_ARM64_REG_X6, UC_ARM64_REG_X7 |
9 | 9 | ) |
10 | 10 |
|
11 | 11 | from qiling.cc import QlCommonBaseCC |
12 | 12 |
|
13 | 13 | class QlArmBaseCC(QlCommonBaseCC): |
14 | | - """Calling convention base class for ARM-based systems. |
15 | | - Supports arguments passing over registers and stack. |
16 | | - """ |
| 14 | + """Calling convention base class for ARM-based systems. |
| 15 | + Supports arguments passing over registers and stack. |
| 16 | + """ |
17 | 17 |
|
18 | | - @staticmethod |
19 | | - def getNumSlots(argbits: int) -> int: |
20 | | - return 1 |
| 18 | + @staticmethod |
| 19 | + def getNumSlots(argbits: int) -> int: |
| 20 | + return 1 |
21 | 21 |
|
22 | | - def setReturnAddress(self, addr: int) -> None: |
23 | | - # TODO: do we need to update LR? |
24 | | - self.arch.stack_push(addr) |
| 22 | + def setReturnAddress(self, addr: int) -> None: |
| 23 | + # TODO: do we need to update LR? |
| 24 | + self.arch.stack_push(addr) |
25 | 25 |
|
26 | | - def unwind(self, nslots: int) -> int: |
27 | | - # TODO: cleanup? |
28 | | - return self.arch.stack_pop() |
| 26 | + def unwind(self, nslots: int) -> int: |
| 27 | + # TODO: cleanup? |
| 28 | + return self.arch.stack_pop() |
29 | 29 |
|
30 | 30 | class aarch64(QlArmBaseCC): |
31 | 31 | _retaddr_on_stack = False |
32 | | - _retreg = UC_ARM64_REG_X0 |
33 | | - _argregs = (UC_ARM64_REG_X0, UC_ARM64_REG_X1, UC_ARM64_REG_X2, UC_ARM64_REG_X3, UC_ARM64_REG_X4, UC_ARM64_REG_X5, UC_ARM64_REG_X6, UC_ARM64_REG_X7) + (None, ) * 8 |
| 32 | + _retreg = UC_ARM64_REG_X0 |
| 33 | + _argregs = (UC_ARM64_REG_X0, UC_ARM64_REG_X1, UC_ARM64_REG_X2, UC_ARM64_REG_X3, UC_ARM64_REG_X4, UC_ARM64_REG_X5, UC_ARM64_REG_X6, UC_ARM64_REG_X7) + (None, ) * 8 |
34 | 34 |
|
35 | 35 | class aarch32(QlArmBaseCC): |
36 | 36 | _retaddr_on_stack = False |
37 | | - _retreg = UC_ARM_REG_R0 |
38 | | - _argregs = (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3) + (None, ) * 12 |
| 37 | + _retreg = UC_ARM_REG_R0 |
| 38 | + _argregs = (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3) + (None, ) * 12 |
0 commit comments