<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 19, 2018 at 8:49 AM, Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">For now we don't need to generalize this approach or make any kind of<br>
facility like this available outside of testing.<br>
<br>
(FYI: 0 is a "nop" on some architectures)<br>
<br>
Gedare<br>
<div><div class="h5"><br>
On Thu, Jul 19, 2018 at 9:37 AM, Sebastian Huber<br>
<<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a>> wrote:<br>
> I thought about adding a _CPU_Illegal_instruction() function to<br>
> <rtems/score/cpu.h>. But, do you want such a toxic function in a header file<br>
> or librtemscpu.a? Now it is isolated in the test and can do no harm.<br></div></div></blockquote><div><br></div><div>I have wondered if there enough architectural oddities like this in</div><div>the tests where a central place to address them would be helpful</div><div>when porting.</div><div><br></div><div>Where all do you have to check now when porting?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
><br>
> On 19/07/18 15:35, Joel Sherrill wrote:<br>
>><br>
>> This looks like a good approach. If 0 is a valid instruction on<br>
>> some architecture, we can add a conditional.<br>
>><br>
>> On Thu, Jul 19, 2018 at 5:55 AM, Sebastian Huber<br>
>> <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a><br>
>> <mailto:<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@<wbr>embedded-brains.de</a>>> wrote:<br>
>><br>
>>     On some architectures/simulators it is difficult to provoke an<br>
>>     exception with misaligned or illegal data loads.  Use an illegal<br>
>>     instruction instead.<br>
>><br>
>>     Update #3433.<br>
>>     ---<br>
>>      testsuites/sptests/spfatal26/<wbr>init.c | 10 +++++++++-<br>
>>      1 file changed, 9 insertions(+), 1 deletion(-)<br>
>><br>
>>     diff --git a/testsuites/sptests/<wbr>spfatal26/init.c<br>
>>     b/testsuites/sptests/<wbr>spfatal26/init.c<br>
>>     index 1848659d6a..7d635f3b84 100644<br>
>>     --- a/testsuites/sptests/<wbr>spfatal26/init.c<br>
>>     +++ b/testsuites/sptests/<wbr>spfatal26/init.c<br>
>>     @@ -1,5 +1,5 @@<br>
>>      /*<br>
>>     - * Copyright (c) 2012 embedded brains GmbH.  All rights reserved.<br>
>>     + * Copyright (c) 2012, 2018 embedded brains GmbH.  All rights<br>
>>     reserved.<br>
>>       *<br>
>>       *  embedded brains GmbH<br>
>>       *  Obere Lagerstr. 30<br>
>>     @@ -24,6 +24,13 @@<br>
>><br>
>>      const char rtems_test_name[] = "SPFATAL 26";<br>
>><br>
>>     +static void provoke_illegal_instruction_<wbr>exception( void )<br>
>>     +{<br>
>>     +#ifdef __riscv<br>
>>     +  __asm__ volatile (".word 0");<br>
>>     +#endif<br>
>>     +}<br>
>>     +<br>
>>      static void provoke_aligment_or_data_<wbr>access_exception( void )<br>
>>      {<br>
>>        uintptr_t one = 1;<br>
>>     @@ -53,6 +60,7 @@ static void Init( rtems_task_argument arg )<br>
>>      {<br>
>>        TEST_BEGIN();<br>
>><br>
>>     +  provoke_illegal_instruction_<wbr>exception();<br>
>>        provoke_aligment_or_data_<wbr>access_exception();<br>
>><br>
>>        rtems_test_assert( 0 );<br>
>>     --     2.13.7<br>
>><br>
>>     ______________________________<wbr>_________________<br>
>>     devel mailing list<br>
>>     <a href="mailto:devel@rtems.org">devel@rtems.org</a> <mailto:<a href="mailto:devel@rtems.org">devel@rtems.org</a>><br>
>>     <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/<wbr>mailman/listinfo/devel</a><br>
>>     <<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/<wbr>mailman/listinfo/devel</a>><br>
>><br>
>><br>
><br>
> --<br>
> Sebastian Huber, embedded brains GmbH<br>
><br>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
> Phone   : +49 89 189 47 41-16<br>
> Fax     : +49 89 189 47 41-09<br>
> E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a><br>
> PGP     : Public key available on request.<br>
><br>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> devel mailing list<br>
> <a href="mailto:devel@rtems.org">devel@rtems.org</a><br>
</div></div>> <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/<wbr>mailman/listinfo/devel</a><br>
</blockquote></div><br></div></div>