[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 5/5] tests/tcg: add user version of dumb-as-bricks semicon
From: |
Richard Henderson |
Subject: |
Re: [PATCH v2 5/5] tests/tcg: add user version of dumb-as-bricks semiconsole test |
Date: |
Wed, 8 Jan 2020 11:13:13 +1000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 |
On 1/8/20 12:27 AM, Alex Bennée wrote:
>
> Richard Henderson <address@hidden> writes:
>
>> On 12/21/19 12:22 AM, Alex Bennée wrote:
>>> +#if defined(__arm__)
>>> + register uintptr_t t asm("r0") = type;
>>> + register uintptr_t a0 asm("r1") = arg0;
>>> + asm("svc 0xab"
>>> + : "=r" (t)
>>> + : "r" (t), "r" (a0));
>>
>> This is the #ifdef __thumb__ svc code. Are you enforcing that with
>> command-line arguments?
>
> No it is dealing with aarch64 vs 32 bit and the __arm__ is a compiler
> symbol.
I know that. But you're obviously assuming that the arm compiler is defaulting
to thumb mode, not arm mode, otherwise this doesn't work.
You need to test
#ifdef __arm__
# ifdef __thumb__
# define SVC "svc 0xab"
# else
# define SVC "svc 0x123456"
# endif
register ...
asm(SVC : ...);
#else
// aarch64
#endif
And run the compiler with -mthumb and -marm to test both.
r~