diff options
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/arm/locore.S | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/arm/arm/locore.S b/sys/arm/arm/locore.S index ff4494d..3a19733 100644 --- a/sys/arm/arm/locore.S +++ b/sys/arm/arm/locore.S @@ -65,14 +65,20 @@ __FBSDID("$FreeBSD$"); ENTRY_NP(btext) -ASENTRY_NP(_start) - /* - * Move metadata ptr to r12 (ip) + * On entry: + * r0 - metadata pointer or 0 + * r1 - if (r0 == 0) then metadata pointer */ +ASENTRY_NP(_start) + /* Move metadata ptr to r12 (ip) */ mov ip, r0 - + ldr r0, =0 + cmp ip, r0 + bne 1f + mov ip, r1 +1: /* Make sure interrupts are disabled. */ mrs r7, cpsr orr r7, r7, #(I32_bit|F32_bit) |