6d6a623e7d
The Semihosting v2 protocol requires us to output the Armv8-a HLT instruction
when in mixed mode (SEMIHOST_V2_MIXED_MODE), however it also requires this to
be done for Armv7-a and earlier architectures.
The HLT instruction is defined in the undefined encoding space for older
architectures but simulators such as QEMU already trap on it [1] for all
architectures and is a requirement for semihosting v2 [2].
Unfortunately the GAS restricts the use of HLT to Armv8-a which requires us to
use the instruction encodings we want directly in crt0.
This patch does this, I have not updated newlib/libc/* as that is quite out of
date already. A proper sync is needed in order to get things back in sync.
A different patch for this would be best.
[1]
|
||
---|---|---|
.. | ||
cpu-init | ||
Makefile.in | ||
_exit.c | ||
_kill.c | ||
aclocal.m4 | ||
arm.h | ||
coff-iq80310.specs | ||
coff-pid.specs | ||
coff-rdimon-v2m.specs | ||
coff-rdimon.specs | ||
coff-rdpmon.specs | ||
coff-redboot.ld | ||
coff-redboot.specs | ||
configure | ||
configure.in | ||
crt0.S | ||
elf-aprofile-validation-v2m.specs | ||
elf-aprofile-validation.specs | ||
elf-aprofile-ve-v2m.specs | ||
elf-aprofile-ve.specs | ||
elf-iq80310.specs | ||
elf-linux.specs | ||
elf-nano.specs | ||
elf-pid.specs | ||
elf-rdimon-v2m.specs | ||
elf-rdimon.specs | ||
elf-rdpmon.specs | ||
elf-redboot.ld | ||
elf-redboot.specs | ||
ftruncate.c | ||
libcfunc.c | ||
linux-crt0.c | ||
linux-syscall.h | ||
linux-syscalls0.S | ||
linux-syscalls1.c | ||
redboot-crt0.S | ||
redboot-syscalls.c | ||
swi.h | ||
syscall.h | ||
syscalls.c | ||
trap.S | ||
truncate.c |