diff options
Diffstat (limited to 'asmrun/arm.S')
-rw-r--r-- | asmrun/arm.S | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/asmrun/arm.S b/asmrun/arm.S index c32b4b6674..98fdfcfe32 100644 --- a/asmrun/arm.S +++ b/asmrun/arm.S @@ -91,11 +91,13 @@ caml_allocN: /* Record return address and desired size */ ldr alloc_limit, .Lcaml_last_return_address str lr, [alloc_limit, #0] - str r10, .Lcaml_requested_size + ldr alloc_limit, .LLcaml_requested_size + str r10, [alloc_limit, #0] /* Invoke GC */ bl .Linvoke_gc /* Try again */ - ldr r10, .Lcaml_requested_size + ldr r10, .LLcaml_requested_size + ldr r10, [r10, #0] b caml_allocN /* Shared code to invoke the GC */ @@ -323,9 +325,12 @@ caml_ml_array_bound_error: .LLtrap_handler: .word .Ltrap_handler .Lcaml_apply2: .word caml_apply2 .Lcaml_apply3: .word caml_apply3 -.Lcaml_requested_size: .word 0 +.LLcaml_requested_size: .word .Lcaml_requested_size .Lcaml_array_bound_error: .word caml_array_bound_error +.data +.Lcaml_requested_size: .word 0 + /* GC roots for callback */ .data |