armv8: semihosting: do not inline trap call
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 23 Mar 2015 10:06:10 +0000 (11:06 +0100)
committerTom Rini <trini@konsulko.com>
Sat, 28 Mar 2015 16:07:45 +0000 (12:07 -0400)
The semihosting trap call does not like being inlined, probably
because that will mean register reordering screwing up the return
value in r0, so tag this function "noinline".

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/arm/lib/semihosting.c

index fd6d8573f560fd1064f43540fea6b43c2a7ebd07..d3f724b726e19da7004ecabdc5ff38512a7df63a 100644 (file)
@@ -26,7 +26,7 @@
 /*
  * Call the handler
  */
-static long smh_trap(unsigned int sysnum, void *addr)
+static noinline long smh_trap(unsigned int sysnum, void *addr)
 {
        register long result asm("r0");
 #if defined(CONFIG_ARM64)