Skip to content
Snippets Groups Projects
Commit 9d63932b authored by Damien's avatar Damien
Browse files

Add gchelper.s, to load registers and clean stack for GC.

parent 0c5827fc
No related branches found
No related tags found
No related merge requests found
.syntax unified
.cpu cortex-m4
.thumb
.text
.align 2
@ void gc_helper_get_regs_and_clean_stack(r0=uint regs[10], r1=heap_end)
.global gc_helper_get_regs_and_clean_stack
.thumb
.thumb_func
.type gc_helper_get_regs_and_clean_stack, %function
gc_helper_get_regs_and_clean_stack:
@ 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
@ clean the stack from given pointer up to current sp
movs r0, #0
mov r2, sp
b .entry
.loop:
str r0, [r1], #4
.entry:
cmp r1, r2
bcc .loop
bx lr
.size gc_helper_get_regs_and_clean_stack, .-gc_helper_get_regs_and_clean_stack
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment