[PATCH] sptests/spfatal26: Use an illegal instruction
Gedare Bloom
gedare at rtems.org
Thu Jul 19 13:49:44 UTC 2018
For now we don't need to generalize this approach or make any kind of
facility like this available outside of testing.
(FYI: 0 is a "nop" on some architectures)
Gedare
On Thu, Jul 19, 2018 at 9:37 AM, Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
> I thought about adding a _CPU_Illegal_instruction() function to
> <rtems/score/cpu.h>. But, do you want such a toxic function in a header file
> or librtemscpu.a? Now it is isolated in the test and can do no harm.
>
> On 19/07/18 15:35, Joel Sherrill wrote:
>>
>> This looks like a good approach. If 0 is a valid instruction on
>> some architecture, we can add a conditional.
>>
>> On Thu, Jul 19, 2018 at 5:55 AM, Sebastian Huber
>> <sebastian.huber at embedded-brains.de
>> <mailto:sebastian.huber at embedded-brains.de>> wrote:
>>
>> On some architectures/simulators it is difficult to provoke an
>> exception with misaligned or illegal data loads. Use an illegal
>> instruction instead.
>>
>> Update #3433.
>> ---
>> testsuites/sptests/spfatal26/init.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/testsuites/sptests/spfatal26/init.c
>> b/testsuites/sptests/spfatal26/init.c
>> index 1848659d6a..7d635f3b84 100644
>> --- a/testsuites/sptests/spfatal26/init.c
>> +++ b/testsuites/sptests/spfatal26/init.c
>> @@ -1,5 +1,5 @@
>> /*
>> - * Copyright (c) 2012 embedded brains GmbH. All rights reserved.
>> + * Copyright (c) 2012, 2018 embedded brains GmbH. All rights
>> reserved.
>> *
>> * embedded brains GmbH
>> * Obere Lagerstr. 30
>> @@ -24,6 +24,13 @@
>>
>> const char rtems_test_name[] = "SPFATAL 26";
>>
>> +static void provoke_illegal_instruction_exception( void )
>> +{
>> +#ifdef __riscv
>> + __asm__ volatile (".word 0");
>> +#endif
>> +}
>> +
>> static void provoke_aligment_or_data_access_exception( void )
>> {
>> uintptr_t one = 1;
>> @@ -53,6 +60,7 @@ static void Init( rtems_task_argument arg )
>> {
>> TEST_BEGIN();
>>
>> + provoke_illegal_instruction_exception();
>> provoke_aligment_or_data_access_exception();
>>
>> rtems_test_assert( 0 );
>> -- 2.13.7
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org <mailto:devel at rtems.org>
>> http://lists.rtems.org/mailman/listinfo/devel
>> <http://lists.rtems.org/mailman/listinfo/devel>
>>
>>
>
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone : +49 89 189 47 41-16
> Fax : +49 89 189 47 41-09
> E-Mail : sebastian.huber at embedded-brains.de
> PGP : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list