1
0
Fork 0
qemu/tests/tcg/arm/semicall.h
Daniel Baumann ea34ddeea6
Adding upstream version 1:10.0.2+ds.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 14:27:05 +02:00

22 lines
471 B
C

/*
* Semihosting Tests - ARM Helper
*
* Copyright (c) 2019, 2024
* Written by Alex Bennée <alex.bennee@linaro.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
uintptr_t __semi_call(uintptr_t type, uintptr_t arg0)
{
register uintptr_t t asm("r0") = type;
register uintptr_t a0 asm("r1") = arg0;
#ifdef __thumb__
# define SVC "svc 0xab"
#else
# define SVC "svc 0x123456"
#endif
asm(SVC : "=r" (t)
: "r" (t), "r" (a0));
return t;
}