diff options
Diffstat (limited to 'utils/hwstub/stmp/config.h')
-rw-r--r-- | utils/hwstub/stmp/config.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/utils/hwstub/stmp/config.h b/utils/hwstub/stmp/config.h index 6bd995e147..9d6de07f33 100644 --- a/utils/hwstub/stmp/config.h +++ b/utils/hwstub/stmp/config.h | |||
@@ -18,8 +18,8 @@ | |||
18 | * KIND, either express or implied. | 18 | * KIND, either express or implied. |
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | #ifndef __HWEMUL_CONFIG__ | 21 | #ifndef __HWSTUB_CONFIG__ |
22 | #define __HWEMUL_CONFIG__ | 22 | #define __HWSTUB_CONFIG__ |
23 | 23 | ||
24 | #define MEMORYSIZE 0 | 24 | #define MEMORYSIZE 0 |
25 | #define STACK_SIZE 0x1000 | 25 | #define STACK_SIZE 0x1000 |
@@ -30,4 +30,27 @@ | |||
30 | #define DRAM_ORIG 0x40000000 | 30 | #define DRAM_ORIG 0x40000000 |
31 | #define DRAM_SIZE (MEMORYSIZE * 0x100000) | 31 | #define DRAM_SIZE (MEMORYSIZE * 0x100000) |
32 | 32 | ||
33 | #endif /* __HWEMUL_CONFIG__ */ | 33 | #define CPU_ARM |
34 | #define ARM_ARCH 5 | ||
35 | |||
36 | #if defined(CPU_ARM) && defined(__ASSEMBLER__) | ||
37 | /* ARMv4T doesn't switch the T bit when popping pc directly, we must use BX */ | ||
38 | .macro ldmpc cond="", order="ia", regs | ||
39 | #if ARM_ARCH == 4 && defined(USE_THUMB) | ||
40 | ldm\cond\order sp!, { \regs, lr } | ||
41 | bx\cond lr | ||
42 | #else | ||
43 | ldm\cond\order sp!, { \regs, pc } | ||
44 | #endif | ||
45 | .endm | ||
46 | .macro ldrpc cond="" | ||
47 | #if ARM_ARCH == 4 && defined(USE_THUMB) | ||
48 | ldr\cond lr, [sp], #4 | ||
49 | bx\cond lr | ||
50 | #else | ||
51 | ldr\cond pc, [sp], #4 | ||
52 | #endif | ||
53 | .endm | ||
54 | #endif | ||
55 | |||
56 | #endif /* __HWSTUB_CONFIG__ */ | ||