summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/arm/bits/arm_asm.h
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2008-06-18 16:59:33 +0000
committerCarmelo Amoroso <carmelo.amoroso@st.com>2008-06-18 16:59:33 +0000
commitf3c549ad2d6056d81ad709040f485a5b3b14ac79 (patch)
treefb00d87f25aa2f07767ce0f6dd6b6cd255968ea6 /libc/sysdeps/linux/arm/bits/arm_asm.h
parent3d17dd647a04ad0837b063a610520fb6defb2d8d (diff)
downloaduClibc-alpine-f3c549ad2d6056d81ad709040f485a5b3b14ac79.tar.bz2
uClibc-alpine-f3c549ad2d6056d81ad709040f485a5b3b14ac79.tar.xz
Synch libc powerpc/arm/sh64/m68k/alpha/microblaze/i960/vax/e1 specific with trunk
Diffstat (limited to 'libc/sysdeps/linux/arm/bits/arm_asm.h')
-rw-r--r--libc/sysdeps/linux/arm/bits/arm_asm.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h b/libc/sysdeps/linux/arm/bits/arm_asm.h
new file mode 100644
index 000000000..1d87df6eb
--- /dev/null
+++ b/libc/sysdeps/linux/arm/bits/arm_asm.h
@@ -0,0 +1,28 @@
+/* Various definitons used the the ARM uClibc assembly code. */
+#ifndef _ARM_ASM_H
+#define _ARM_ASM_H
+
+#ifdef __thumb2__
+.thumb
+.syntax unified
+#define IT(t, cond) i##t cond
+#else
+/* XXX: This can be removed if/when we require an assembler that supports
+ unified assembly syntax. */
+#define IT(t, cond)
+/* Code to return from a thumb function stub. */
+#ifdef __ARM_ARCH_4T__
+#define POP_RET pop {r2, pc}
+#else
+#define POP_RET pop {r2, r3}; bx r3
+#endif
+#endif
+
+#if defined(__ARM_ARCH_6M__)
+/* Force arm mode to flush out errors on M profile cores. */
+#undef IT
+#define THUMB1_ONLY 1
+#endif
+
+#endif /* _ARM_ASM_H */
+