<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-08-17 17:25 GMT+02:00 Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Aug 16, 2017 at 11:13 AM, Denis Obrezkov<br>
<<a href="mailto:denisobrezkov@gmail.com">denisobrezkov@gmail.com</a>> wrote:<br>
> ---<br>
>  cpukit/score/cpu/riscv32/<wbr>riscv-context-switch.S | 12 ++++++++++--<br>
>  1 file changed, 10 insertions(+), 2 deletions(-)<br>
><br>
> diff --git a/cpukit/score/cpu/riscv32/<wbr>riscv-context-switch.S b/cpukit/score/cpu/riscv32/<wbr>riscv-context-switch.S<br>
> index a199596..bcdfe0e 100644<br>
> --- a/cpukit/score/cpu/riscv32/<wbr>riscv-context-switch.S<br>
> +++ b/cpukit/score/cpu/riscv32/<wbr>riscv-context-switch.S<br>
> @@ -46,6 +46,7 @@ PUBLIC(restore)<br>
><br>
>  SYM(_CPU_Context_switch):<br>
>    /* Disable interrupts and store all registers */<br>
> +  csrci mstatus, 0x8<br>
</span>Why is this necessary?<br>
<span class=""><br>
>    SREG x1, 4(a0)<br>
>    SREG x2, 8(a0)<br>
>    SREG x3, 12(a0)<br>
> @@ -78,8 +79,9 @@ SYM(_CPU_Context_switch):<br>
>    SREG x30, 120(a0)<br>
>    SREG x31, 124(a0)<br>
><br>
> -SYM(restore):<br>
><br>
> +SYM(restore):<br>
> +<br>
>    LREG x1, 4(a1)<br>
>    LREG x2, 8(a1)<br>
>    LREG x3, 12(a1)<br>
> @@ -111,9 +113,15 @@ SYM(restore):<br>
>    LREG x29, 116(a1)<br>
>    LREG x30, 120(a1)<br>
>    LREG x31, 124(a1)<br>
> -       ret<br>
> +<br>
> +<br>
> +  csrsi mstatus, 0x8<br>
> +  nop<br>
> +  nop<br>
</span>Why the nops?<br>
<span class=""><br>
> +  ret<br>
><br>
>  SYM(_CPU_Context_restore):<br>
> +  csrci mstatus, 0x8<br>
>    mv     a1, a0<br>
>    j       restore<br>
>    nop<br>
> --<br>
> 2.1.4<br>
><br>
</span>> ______________________________<wbr>_________________<br>
> devel mailing list<br>
> <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>
</blockquote></div>So, don't we turn off interrupts during the context switch?</div><div class="gmail_extra">Yes, nops are unnecessary. <br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Regards, Denis Obrezkov</div>
</div></div>