diff options
Diffstat (limited to 'src/target/firmware/include/asm')
-rw-r--r-- | src/target/firmware/include/asm/assembler.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/target/firmware/include/asm/assembler.h b/src/target/firmware/include/asm/assembler.h index b43f9d17..cd03e98d 100644 --- a/src/target/firmware/include/asm/assembler.h +++ b/src/target/firmware/include/asm/assembler.h @@ -19,6 +19,21 @@ #include <asm/ptrace.h> +/* + * Endian independent macros for shifting bytes within registers. + */ +#ifndef __ARMEB__ +#define pull lsr +#define push lsl +#define get_byte_0 lsl #0 +#define get_byte_1 lsr #8 +#define get_byte_2 lsr #16 +#define get_byte_3 lsr #24 +#define put_byte_0 lsl #0 +#define put_byte_1 lsl #8 +#define put_byte_2 lsl #16 +#define put_byte_3 lsl #24 +#else #define pull lsl #define push lsr #define get_byte_0 lsr #24 @@ -29,6 +44,7 @@ #define put_byte_1 lsl #16 #define put_byte_2 lsl #8 #define put_byte_3 lsl #0 +#endif #define PLD(code...) |