aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/arm/sysdeps.h
diff options
context:
space:
mode:
authorXavier Leroy <xavierleroy@users.noreply.github.com>2016-08-24 11:24:59 +0200
committerGitHub <noreply@github.com>2016-08-24 11:24:59 +0200
commit0a7288fb65ebaed329e06c1fd14aef83e8defcda (patch)
treec2c7ac666c62be0f97a20c74286e0457890ddd8d /runtime/arm/sysdeps.h
parent954b01e1ac6189f4a8b5ad1b6accf6eb01261d1f (diff)
parente0f0f573a4a8fc1f564a31388afa9c23e48bb016 (diff)
downloadcompcert-0a7288fb65ebaed329e06c1fd14aef83e8defcda.tar.gz
compcert-0a7288fb65ebaed329e06c1fd14aef83e8defcda.zip
Merge pull request #118 from AbsInt/armeb
Support for ARM Big Endian
Diffstat (limited to 'runtime/arm/sysdeps.h')
-rw-r--r--runtime/arm/sysdeps.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/runtime/arm/sysdeps.h b/runtime/arm/sysdeps.h
index 3d6a702c..fd4ea61d 100644
--- a/runtime/arm/sysdeps.h
+++ b/runtime/arm/sysdeps.h
@@ -95,3 +95,43 @@ f:
.arch armv7
#endif
.fpu vfpv2
+
+
+
+// Endianness dependencies
+
+// Location of high and low word of first register pair (r0:r1)
+#ifdef ENDIANNESS_big
+#define Reg0HI r0
+#define Reg0LO r1
+#else
+#define Reg0HI r1
+#define Reg0LO r0
+#endif
+
+// Location of high and low word of second register pair (r2:r3)
+#ifdef ENDIANNESS_big
+#define Reg1HI r2
+#define Reg1LO r3
+#else
+#define Reg1HI r3
+#define Reg1LO r2
+#endif
+
+// Location of high and low word of third register pair (r4:r5)
+#ifdef ENDIANNESS_big
+#define Reg2HI r4
+#define Reg2LO r5
+#else
+#define Reg2HI r5
+#define Reg2LO r4
+#endif
+
+// Location of high and low word of fourth register pair (r6:r7)
+#ifdef ENDIANNESS_big
+#define Reg3HI r6
+#define Reg3LO r7
+#else
+#define Reg3HI r7
+#define Reg3LO r6
+#endif