summaryrefslogtreecommitdiffstats
path: root/testasmcomp
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1998-10-15 16:10:53 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1998-10-15 16:10:53 +0000
commit66ae9423a784fbc4d35b794906a4dee705afccf2 (patch)
treec7228bb91e7f448d7f3e6f7c258cfb9a0897139b /testasmcomp
parentfca1be1fddcd0d7a80a16f2282b6595e484556ae (diff)
Portage ARM
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2120 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'testasmcomp')
-rw-r--r--testasmcomp/.depend26
-rw-r--r--testasmcomp/arm.S44
-rw-r--r--testasmcomp/soli.cmm8
3 files changed, 63 insertions, 15 deletions
diff --git a/testasmcomp/.depend b/testasmcomp/.depend
index 226b03a41..988c08f41 100644
--- a/testasmcomp/.depend
+++ b/testasmcomp/.depend
@@ -1,15 +1,17 @@
lexcmm.cmi: parsecmm.cmi
parsecmm.cmi: ../asmcomp/cmm.cmi
parsecmmaux.cmi: ../typing/ident.cmi
-lexcmm.cmo: lexcmm.cmi ../utils/misc.cmi parsecmm.cmi
-lexcmm.cmx: lexcmm.cmi ../utils/misc.cmx parsecmm.cmx
-main.cmo: ../asmcomp/printmach.cmi lexcmm.cmi parsecmmaux.cmi \
- ../asmcomp/asmgen.cmi parsecmm.cmi ../utils/clflags.cmo
-main.cmx: ../asmcomp/printmach.cmx lexcmm.cmx parsecmmaux.cmx \
- ../asmcomp/asmgen.cmx parsecmm.cmx ../utils/clflags.cmx
-parsecmm.cmo: parsecmm.cmi ../utils/misc.cmi ../asmcomp/arch.cmo \
- parsecmmaux.cmi ../asmcomp/cmm.cmi
-parsecmm.cmx: parsecmm.cmi ../utils/misc.cmx ../asmcomp/arch.cmx \
- parsecmmaux.cmx ../asmcomp/cmm.cmx
-parsecmmaux.cmo: parsecmmaux.cmi ../typing/ident.cmi
-parsecmmaux.cmx: parsecmmaux.cmi ../typing/ident.cmx
+lexcmm.cmo: ../utils/misc.cmi parsecmm.cmi lexcmm.cmi
+lexcmm.cmx: ../utils/misc.cmx parsecmm.cmx lexcmm.cmi
+main.cmo: ../asmcomp/asmgen.cmi ../utils/clflags.cmo ../asmcomp/compilenv.cmi \
+ ../asmcomp/emit.cmi lexcmm.cmi parsecmm.cmi parsecmmaux.cmi \
+ ../asmcomp/printmach.cmi
+main.cmx: ../asmcomp/asmgen.cmx ../utils/clflags.cmx ../asmcomp/compilenv.cmx \
+ ../asmcomp/emit.cmx lexcmm.cmx parsecmm.cmx parsecmmaux.cmx \
+ ../asmcomp/printmach.cmx
+parsecmm.cmo: ../asmcomp/arch.cmo ../asmcomp/cmm.cmi ../utils/misc.cmi \
+ ../utils/nativeint.cmi parsecmmaux.cmi parsecmm.cmi
+parsecmm.cmx: ../asmcomp/arch.cmx ../asmcomp/cmm.cmx ../utils/misc.cmx \
+ ../utils/nativeint.cmx parsecmmaux.cmx parsecmm.cmi
+parsecmmaux.cmo: ../typing/ident.cmi parsecmmaux.cmi
+parsecmmaux.cmx: ../typing/ident.cmx parsecmmaux.cmi
diff --git a/testasmcomp/arm.S b/testasmcomp/arm.S
new file mode 100644
index 000000000..96772fb06
--- /dev/null
+++ b/testasmcomp/arm.S
@@ -0,0 +1,44 @@
+/***********************************************************************/
+/* */
+/* Objective Caml */
+/* */
+/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
+/* */
+/* Copyright 1998 Institut National de Recherche en Informatique et */
+/* Automatique. Distributed only by permission. */
+/* */
+/***********************************************************************/
+
+/* $Id$ */
+
+fp .req r11
+ip .req r12
+sp .req r13
+lr .req r14
+pc .req r15
+
+ .text
+
+ .global call_gen_code
+ .type call_gen_code, %function
+ .align 0
+call_gen_code:
+ mov ip, sp
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
+ sub fp, ip, #4
+ @ r0 is function to call
+ @ r1, r2, r3 are arguments 1, 2, 3
+ mov r4, r0
+ mov r0, r1
+ mov r1, r2
+ mov r2, r3
+ mov lr, pc
+ mov pc, r4
+ ldmea fp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
+
+ .global caml_c_call
+ .type caml_c_call, %function
+ .align 0
+caml_c_call:
+ @ function to call is in r10
+ mov pc, r10
diff --git a/testasmcomp/soli.cmm b/testasmcomp/soli.cmm
index 5bee86ffa..f44859dc9 100644
--- a/testasmcomp/soli.cmm
+++ b/testasmcomp/soli.cmm
@@ -101,6 +101,8 @@
(assign i (+ i 1)))))
(function "solitaire" ()
- (if (app "solve" 0 int)
- (app "print_board" [] unit)
- []))
+ (seq
+ (if (app "solve" 0 int)
+ (app "print_board" [] unit)
+ [])
+ 0))