summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2010-01-08 10:33:23 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2010-01-08 10:33:23 +0000
commit900355305538bc0aea1fec9dca3d553087d49ad1 (patch)
treec5a4c8a3ea92d2a1205adeadc8256bea492040dc
parente757938dde960a3e597fbffa3a75dd4619a9d0c0 (diff)
downloadocaml-900355305538bc0aea1fec9dca3d553087d49ad1.tar.gz
PR#4953: ARM/THUMB support
git-svn-id: http://caml.inria.fr/svn/ocaml/version/3.11@9513 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--Changes1
-rw-r--r--byterun/interp.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/Changes b/Changes
index 6b5ab9c85e..4859579f30 100644
--- a/Changes
+++ b/Changes
@@ -28,6 +28,7 @@ Bug fixes:
- PR#4922: ocamlbuild recompiles too many files
- PR#4923: missing \xff for scanf %S
- PR#4933: functors not handling private types correctly
+- PR#4953: problem compiling bytecode interpreter on ARM in Thumb mode.
- Module Printf: the simple conversion %F (without width indication) was not
treated properly.
- Makefile: problem with cygwin, flexdll, and symbolic links
diff --git a/byterun/interp.c b/byterun/interp.c
index bbd8367e8a..a162a1327d 100644
--- a/byterun/interp.c
+++ b/byterun/interp.c
@@ -157,7 +157,8 @@ sp is a local copy of the global variable caml_extern_sp. */
#define SP_REG asm("a4")
#define ACCU_REG asm("d7")
#endif
-#ifdef __arm__
+/* PR#4953: these specific registers not available in Thumb mode */
+#if defined (__arm__) && !defined(__thumb__)
#define PC_REG asm("r9")
#define SP_REG asm("r8")
#define ACCU_REG asm("r7")