[PATCH 0/2] semihosting: use assembly conduit functions
Sean Anderson
sean.anderson at seco.com
Fri Feb 10 00:08:26 CET 2023
On 2/7/23 10:21, Andre Przywara wrote:
> Hi,
>
> to trigger the actual semihosting action in the debugger, we used some
> carefully constructed inline assembly sequence. This was motivated by
> the trigger being really just a single instruction, so originally this
> could be neatly inlined by the compiler.
> However we now have a separate function anyway, so inlining is no longer
> happening. On top of that the inline assembly was really fragile and
> hard to read.
>
> To clean that up, just use actual assembly functions, which does away
> with all the tricks to force the compiler into submission.
> Patch 1 is for ARM, patch 2 for RISC-V.
> Briefly tested on arm and aarch64 QEMU, and on an ARMv8 fastmodel, plus
> compile-tested for RISC-V. Please test it on your system!
>
> Cheers,
> Andre
>
> P.S. This idea came up before, but I don't remember if patches were
> floating around already. If there were, apologies for my ignorance, and
> I will be all too happy to use those patches instead of mine here, just
> point me to them.
>
> Andre Przywara (2):
> arm: semihosting: replace inline assembly with assembly file
> riscv: semihosting: replace inline assembly with assembly file
>
> arch/arm/lib/semihosting.S | 31 ++++++++++++++++++++++++
> arch/arm/lib/semihosting.c | 47 ------------------------------------
> arch/riscv/lib/semihosting.S | 22 +++++++++++++++++
> arch/riscv/lib/semihosting.c | 24 ------------------
> 4 files changed, 53 insertions(+), 71 deletions(-)
> create mode 100644 arch/arm/lib/semihosting.S
> delete mode 100644 arch/arm/lib/semihosting.c
> create mode 100644 arch/riscv/lib/semihosting.S
> delete mode 100644 arch/riscv/lib/semihosting.c
>
I would like to test this, but I don't think I'll have time for a bit.
--Sean
More information about the U-Boot
mailing list