summaryrefslogtreecommitdiff
path: root/src/glamo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glamo.h')
-rw-r--r--src/glamo.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/glamo.h b/src/glamo.h
index b2c1784..7fa4c04 100644
--- a/src/glamo.h
+++ b/src/glamo.h
@@ -65,6 +65,31 @@ MMIO_IN16(__volatile__ void *base, const unsigned long offset)
return val;
}
+#elif defined(__arm__) /* && !defined(__ARM_EABI__) */
+
+static __inline__ void
+MMIO_OUT16(__volatile__ void *base, const unsigned long offset,
+ const unsigned short val)
+{
+ __asm__ __volatile__(
+ "strh %0, [%1, +%2]"
+ :
+ : "r" (val), "r" (base), "r" (offset)
+ : "memory" );
+}
+
+static __inline__ CARD16
+MMIO_IN16(__volatile__ void *base, const unsigned long offset)
+{
+ register unsigned short val;
+ __asm__ __volatile__(
+ "ldrh %0, [%1, +%2]"
+ : "=r" (val)
+ : "r" (base), "r" (offset)
+ : "memory");
+ return val;
+}
+
#else
#define MMIO_OUT16(mmio, a, v) (*(VOL16 *)((mmio) + (a)) = (v))