On 05/21/2014 10:01 AM, Sebastian Huber wrote:
Hello Gedare,

thanks for your review.

On 2014-05-20 16:58, Gedare Bloom wrote:
@@ -54,7 +58,15 @@ SYM(_CPU_Context_switch):
>          ld      [%g6 + SPARC_PER_CPU_ISR_DISPATCH_DISABLE], %o4
>          ! save it a bit later so we do not waste a couple of cycles
>
>+#ifdef RTEMS_PARAVIRT_XTRATUM
>+        mov     %o0, %l6
>+        mov     sparc_get_psr_nr, %o0
>+        __XM_AHC
I'm guessing these symbols are defined in xm.h?

>+        mov     %o0, %o2
>+        mov     %l6, %o0
>+#else /* RTEMS_PARAVIRT_XTRATUM */
>          rd      %psr, %o2
>+#endif /* RTEMS_PARAVIRT_XTRATUM */
It would be cleaner code if you can write this get_psr as an assembler
macro, e.g.

.macro GET_PSR REG, TMP0
#ifdef RTEMS_PARAVIRT_XTRATUM
   mov %o0, \TMP
   mov sparc_get_psr_nr, %o0
   __XM_AHC
   mov %o0, \REG
   mov \TMP, %o0
#else
   rd %psr, \REG
#endif

Same for some of the other functions that get used multiple times in
this file, such as set_psr, set_pil, and clear_pil. Putting these in a
header file would make them useful in start.S also.

[...]


I also think that assembler macros could be useful here.

Daniel, what is you opinion with respect to the usage of assembler macros in 
this file?

Personally I prefer C preprocessor macros/defines mixed with the ASM code 
instead. If the RTEMS project uses ASM macros I'm fine with it.

Thanks,
Daniel


_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to