* arm/crt0.s: Support 0 heap base response from HeapInfo syscall.

This commit is contained in:
Nick Clifton 2011-09-29 11:23:29 +00:00
parent 29deef8805
commit 5b495afe51
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2011-09-29 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* arm/crt0.s: Support 0 heap base response from HeapInfo syscall.
2011-09-29 Bin Cheng <bin.cheng@arm.com>
* arm/arm.h (HAVE_CALL_INDIRECT): Define.

View File

@ -86,6 +86,17 @@
AngelSWIAsm AngelSWI_ARM
#endif
ldr r0, .LC0 /* point at values read */
ldr r1, [r0, #0]
cmp r1, #0
bne .LC32
/* If the heap base value [r0, #0] is 0 then the heap base is actually
at the end of program data (i.e. __end__). See:
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471-/Bacbefaa.html
for more information. */
ldr r1, .LC31
str r1, [r0, #0]
.LC32:
ldr r1, [r0, #8]
ldr r2, [r0, #12]
/* We skip setting sp/sl if 0 returned from semihosting.
@ -437,6 +448,8 @@ change_back:
.LC30:
.word CommandLine
.word 255
.LC31:
.word __end__
/* Workspace for Angel calls. */
.data