diff options
Diffstat (limited to 'stm/gchelper.s')
-rw-r--r-- | stm/gchelper.s | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/stm/gchelper.s b/stm/gchelper.s index f8735d2830..6baedcdd0e 100644 --- a/stm/gchelper.s +++ b/stm/gchelper.s @@ -4,6 +4,32 @@ .text .align 2 +@ uint gc_helper_get_regs_and_sp(r0=uint regs[10]) + .global gc_helper_get_regs_and_sp + .thumb + .thumb_func + .type gc_helper_get_regs_and_sp, %function +gc_helper_get_regs_and_sp: + @ store registers into given array + str r4, [r0], #4 + str r5, [r0], #4 + str r6, [r0], #4 + str r7, [r0], #4 + str r8, [r0], #4 + str r9, [r0], #4 + str r10, [r0], #4 + str r11, [r0], #4 + str r12, [r0], #4 + str r13, [r0], #4 + + @ return the sp + mov r0, sp + bx lr + + +@ this next function is now obsolete + + .size gc_helper_get_regs_and_clean_stack, .-gc_helper_get_regs_and_clean_stack @ void gc_helper_get_regs_and_clean_stack(r0=uint regs[10], r1=heap_end) .global gc_helper_get_regs_and_clean_stack .thumb |