summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/testsuite/tests/asmcomp/arm.S
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/testsuite/tests/asmcomp/arm.S')
-rw-r--r--ocaml-binary-annot/testsuite/tests/asmcomp/arm.S40
1 files changed, 40 insertions, 0 deletions
diff --git a/ocaml-binary-annot/testsuite/tests/asmcomp/arm.S b/ocaml-binary-annot/testsuite/tests/asmcomp/arm.S
new file mode 100644
index 0000000000..0697095189
--- /dev/null
+++ b/ocaml-binary-annot/testsuite/tests/asmcomp/arm.S
@@ -0,0 +1,40 @@
+/***********************************************************************/
+/* */
+/* Objective Caml */
+/* */
+/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
+/* */
+/* Copyright 1998 Institut National de Recherche en Informatique et */
+/* en Automatique. All rights reserved. This file is distributed */
+/* under the terms of the Q Public License version 1.0. */
+/* */
+/***********************************************************************/
+
+/* $Id: arm.S 9212 2009-03-31 09:46:08Z xleroy $ */
+
+ .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
+