From: Liya Huang <1425075...@qq.com>

Refer to the commit a3c101a61348 ("examples: fix building on arm64")
fix for arm32. crt0.S does not even build with
CONFIG_API=y, CONFIG_EXAMPLES=y:

    examples/api/crt0.S: Assembler messages:
    examples/api/crt0.S:32: Error: lo register required -- `ldr ip,=search_hint'
    examples/api/crt0.S:33: Error: lo register required -- `str sp,[ip]'
    examples/api/crt0.S:39: Error: lo register required -- `ldr ip,=syscall_ptr'
    examples/api/crt0.S:40: Error: lo register required -- `ldr pc,[ip]'
    make[2]: *** [scripts/Makefile.build:292:examples/api/crt0.o] Error 1

Use valid register names and instructions.

Signed-off-by: Liya Huang <1425075...@qq.com>
---

 examples/api/crt0.S | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/examples/api/crt0.S b/examples/api/crt0.S
index d2a97557817..d33e1c4aa4d 100644
--- a/examples/api/crt0.S
+++ b/examples/api/crt0.S
@@ -29,15 +29,17 @@ syscall:
        .text
        .globl _start
 _start:
-       ldr     ip, =search_hint
-       str     sp, [ip]
+       ldr     r0, =search_hint
+       mov     r1, sp
+       str     r1, [r0]
        b       main
 
 
        .globl syscall
 syscall:
-       ldr     ip, =syscall_ptr
-       ldr     pc, [ip]
+       ldr     r0, =syscall_ptr
+       ldr     r0, [r0]
+       bx      r0
 
 #elif defined(CONFIG_ARM64)
 
-- 
2.25.1

Reply via email to