diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1998-10-15 16:10:53 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1998-10-15 16:10:53 +0000 |
commit | 66ae9423a784fbc4d35b794906a4dee705afccf2 (patch) | |
tree | c7228bb91e7f448d7f3e6f7c258cfb9a0897139b /testasmcomp | |
parent | fca1be1fddcd0d7a80a16f2282b6595e484556ae (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/.depend | 26 | ||||
-rw-r--r-- | testasmcomp/arm.S | 44 | ||||
-rw-r--r-- | testasmcomp/soli.cmm | 8 |
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)) |