nuttx/arch/arm/include
fangxinyong 6da525704d toolchain/ghs: fix the inline assembly code register alloc compile error
The following are the compile error that reported
by GreenHills compiler:

"/mnt/yang/qixinwei_commit/nuttx/include/arch/syscall.h", line 156 (col. 17): error #2036-D:
          cannot allocate "reg0" to specified caller-saved register

 "/mnt/yang/qixinwei_commit/nuttx/include/arch/syscall.h", line 157 (col. 17): error #2036-D:
          cannot allocate "reg1" to specified caller-saved register

Then we fix this greenhills compilation error by explicitly specifying
the registers in the clobber list in the inline assembly code.
This fix is successful in compiling on the
nuttx/boards/arm/mps/mps2-an500/configs/nsh platform and passes
the ostest test.
However, if we keep the implementation the same for both the default
and Greenhills compilers, the default compiler will report the
following two issues:
1. the "sys_call6" function will report compile error when
compiling on "./vendor/qemu/boards/smartspeaker/configs/smartspeaker-knsh"
platform, the detailed error info:

CC:  proxies/PROXY_mq_getattr.c In file included from /home/guoshichao/work_profile/vela_os/vela_qemu_1/nuttx/include/sys/syscall.h:35,
                 from /home/guoshichao/work_profile/vela_os/vela_qemu_1/nuttx/include/syscall.h:30,
                 from proxies/PROXY_mmap.c:5:
In function 'sys_call6',
    inlined from 'mmap' at proxies/PROXY_mmap.c:9:22:
/home/guoshichao/work_profile/vela_os/vela_qemu_1/nuttx/include/arch/syscall.h:297:3: error: 'asm' operand has impossible constraints
  297 |   __asm__ __volatile__
      |   ^~~~~~~

2. when running on qemu-armv7-a platform, the modification to
"smh_call()" function will make the system fail to boot up, so
we need to keep the default compiler implementation and greenhills
compiler implementation separate

Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
(cherry picked from commit cb48b749b1c9cad8cfb96bff7c5e9b6ebf20fc8a)
2024-08-11 14:28:12 -03:00
..
a1x
am335x
arm paging: Rename existing CONFIG_PAGING to CONFIG_LEGACY_PAGING 2024-03-05 09:45:49 +08:00
armv6-m toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
armv7-a toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
armv7-m toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
armv7-r toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
armv8-m toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
armv8-r toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
at32 Fix nuttx coding style 2023-12-13 17:29:08 +01:00
c5471
cxd32xx arch: cxd32xx: Add cxd32xx SoC support 2024-06-04 22:21:56 +08:00
cxd56xx arch: cxd56xx: Add new feature to use GNSS RAM 2024-02-05 05:53:51 -08:00
dm320
efm32
eoss3 Update kconfig2html.c 2023-12-14 20:02:52 -08:00
fvp-v8r-aarch32 Remove @ and % tag from all comments 2023-12-11 17:00:10 -03:00
gd32f4 add gd32f470i board support 2023-10-21 11:45:03 -03:00
goldfish arch/arm: GoldFish Platform support 2023-09-10 23:10:06 +08:00
imx1
imx6
imxrt Update kconfig2html.c 2023-12-14 20:02:52 -08:00
kinetis Update kconfig2html.c 2023-12-14 20:02:52 -08:00
kl
lc823450
lpc17xx_40xx
lpc31xx
lpc43xx
lpc54xx
lpc214x
lpc2378
max326xx
moxart
mps mps3:Support NuttX running on qemu cortex-m55 2024-04-26 18:42:35 -03:00
mx8mp Handle GPIO IRQs 2023-09-06 12:30:35 +08:00
nrf52
nrf53 arch/nrf53: UART0-3, SPI0-3 and TWI0-3 instances share the same interrupt vectors 2023-05-19 21:36:49 -07:00
nrf91 arch/arm: initial support for NRF91 2023-07-02 10:10:35 -03:00
nuc1xx
phy62xx
qemu arch/arm: add qemu support for ARM32 2023-08-15 23:56:41 +08:00
rp2040
s32k1xx
s32k3xx
sam34
sama5 sama5: add support for QSPI 2023-11-08 21:58:02 +01:00
samd2l2
samd5e5
samv7 Update kconfig2html.c 2023-12-14 20:02:52 -08:00
stm32 stm32f401rc-rs485: Add rs-485 support 2024-01-07 17:15:59 -08:00
stm32f0l0g0 stm32f0l0g0: Add GPIOE to STM32G0x 2023-05-10 18:01:07 +08:00
stm32f7
stm32h7 add stm32h755II chip 2024-05-17 10:16:39 -03:00
stm32l4
stm32l5
stm32u5 Initial support for NUCLEO-U5A5ZJ-Q board 2023-07-23 18:42:05 -07:00
stm32wb
stm32wl5
str71x
tiva
tlsr82 toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
tms570
xmc4
.gitignore
arch.h sched/addrenv: Remove up_addrenv_restore 2023-02-08 02:51:23 +08:00
elf.h elf: Move 32/64bit generic mapping from risc-v/arch_elf.c to elfxx.h 2023-07-10 13:09:47 -03:00
inttypes.h
irq.h toolchain/ghs: Fix green hills toolchain build Vela link error 2024-08-11 14:27:02 -03:00
limits.h
setjmp.h
spinlock.h
stdarg.h
syscall.h toolchain/ghs: fix the inline assembly code register alloc compile error 2024-08-11 14:28:12 -03:00
types.h