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.hu...@embedded-brains.de
<mailto:sebastian.hu...@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@rtems.org <mailto:devel@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.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel