summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/include/asm')
-rw-r--r--src/target/firmware/include/asm/assembler.h16
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...)