]> git.baikalelectronics.ru Git - uboot.git/commit
arm: smh: Allow semihosting trap calls to be inlined
authorAndre Przywara <andre.przywara@arm.com>
Wed, 5 Oct 2022 16:38:49 +0000 (17:38 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 2 Nov 2022 17:31:40 +0000 (13:31 -0400)
commitac8308c0ec20b862d748f07e4a64962fa32f4ad4
treea85f9470d457ca8a6d7f522da942bb903df866fb
parent936b571032eaaac77e37d218615b1b12fb902bc3
arm: smh: Allow semihosting trap calls to be inlined

Currently our semihosting trap function is somewhat fragile: we rely
on the current compiler behaviour to assign the second inline assembly
argument to the next free register (r1/x1), which happens to be the
"addr" argument to the smh_trap() function (per the calling convention).
I guess this is also the reason for the noinline attribute.

Make it explicit what we want: the "addr" argument needs to go into r1,
so we add another register variable. This allows to drop the "noinline"
attribute, so now the compiler beautifully inlines just the trap
instruction directly into the calling function.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/lib/semihosting.c