diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2011-09-18 08:09:34 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2011-09-18 08:09:34 +0000 |
commit | 958c48049f408101fd8bad0129003d5ced82119c (patch) | |
tree | dda6a47e424334d21ac8612285e03a330a5376d6 | |
parent | 012bc6eb1d2829102305d45cbe25f69e10537db0 (diff) |
PR#5336: add .type directives in ARM code
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11203 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | asmcomp/arm/emit.mlp | 1 | ||||
-rw-r--r-- | asmrun/arm.S | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/asmcomp/arm/emit.mlp b/asmcomp/arm/emit.mlp index 9da7beab8..ea3e77e53 100644 --- a/asmcomp/arm/emit.mlp +++ b/asmcomp/arm/emit.mlp @@ -556,6 +556,7 @@ let fundecl fundecl = ` .text\n`; ` .align 2\n`; ` .global {emit_symbol fundecl.fun_name}\n`; + ` .type {emit_symbol fundecl.fun_name}, %function\n`; `{emit_symbol fundecl.fun_name}:\n`; let n = frame_size() in ignore(emit_stack_adjustment "sub" n); diff --git a/asmrun/arm.S b/asmrun/arm.S index b7c64243a..395d0a136 100644 --- a/asmrun/arm.S +++ b/asmrun/arm.S @@ -24,6 +24,7 @@ alloc_limit .req r10 /* Allocation functions and GC interface */ .globl caml_call_gc + .type caml_call_gc, %function caml_call_gc: /* Record return address and desired size */ /* Can use alloc_limit as a temporary since it will be reloaded by @@ -41,6 +42,7 @@ caml_call_gc: bx lr .globl caml_alloc1 + .type caml_alloc1, %function caml_alloc1: sub alloc_ptr, alloc_ptr, #8 cmp alloc_ptr, alloc_limit @@ -54,6 +56,7 @@ caml_alloc1: b caml_alloc1 .globl caml_alloc2 + .type caml_alloc2, %function caml_alloc2: sub alloc_ptr, alloc_ptr, #12 cmp alloc_ptr, alloc_limit @@ -67,6 +70,7 @@ caml_alloc2: b caml_alloc2 .globl caml_alloc3 + .type caml_alloc3, %function caml_alloc3: sub alloc_ptr, alloc_ptr, #16 cmp alloc_ptr, alloc_limit @@ -80,6 +84,7 @@ caml_alloc3: b caml_alloc3 .globl caml_allocN + .type caml_allocN, %function caml_allocN: sub alloc_ptr, alloc_ptr, r12 cmp alloc_ptr, alloc_limit @@ -134,6 +139,7 @@ caml_allocN: /* Function to call is in r12 */ .globl caml_c_call + .type caml_c_call, %function caml_c_call: /* Preserve return address in callee-save register r4 */ mov r4, lr @@ -160,6 +166,7 @@ caml_c_call: /* Start the Caml program */ .globl caml_start_program + .type caml_start_program, %function caml_start_program: ldr r12, .Lcaml_program @@ -235,6 +242,7 @@ caml_start_program: /* Raise an exception from C */ .globl caml_raise_exception + .type caml_raise_exception, %function caml_raise_exception: /* Reload Caml allocation pointers */ ldr r12, .Lcaml_young_ptr @@ -250,6 +258,7 @@ caml_raise_exception: /* Callback from C to Caml */ .globl caml_callback_exn + .type caml_callback_exn, %function caml_callback_exn: /* Initial shuffling of arguments (r0 = closure, r1 = first arg) */ mov r12, r0 @@ -259,6 +268,7 @@ caml_callback_exn: b .Ljump_to_caml .globl caml_callback2_exn + .type caml_callback2_exn, %function caml_callback2_exn: /* Initial shuffling of arguments (r0 = closure, r1 = arg1, r2 = arg2) */ mov r12, r0 @@ -269,6 +279,7 @@ caml_callback2_exn: b .Ljump_to_caml .globl caml_callback3_exn + .type caml_callback3_exn, %function caml_callback3_exn: /* Initial shuffling of arguments */ /* (r0 = closure, r1 = arg1, r2 = arg2, r3 = arg3) */ @@ -281,6 +292,7 @@ caml_callback3_exn: b .Ljump_to_caml .globl caml_ml_array_bound_error + .type caml_ml_array_bound_error, %function caml_ml_array_bound_error: /* Load address of [caml_array_bound_error] in r12 */ ldr r12, .Lcaml_array_bound_error |