Ticket #2004: sparc64-softint.diff

File sparc64-softint.diff, 998 bytes (added by Gedare Bloom, on 02/01/12 at 15:55:49)

new assembly macros for writing to softint register

  • sparc64.h

    RCS file: /usr1/CVS/rtems/cpukit/score/cpu/sparc64/rtems/score/sparc64.h,v
    retrieving revision 1.3
    diff -u -r1.3 sparc64.h
     
    287287 *
    288288 * sun4u and sun4v: softint_clr asr = 21, with mnemonic clear_softint
    289289 */
    290 #define sparc64_clear_interrupt_bits( _bit_mask ) \
     290#define sparc64_clear_interrupt_bits_reg( _bit_mask ) \
     291  do { \
     292  __asm__ volatile( "wr %%g0, %0, %%clear_softint" \
     293      : "=r" (_bit_mask) \
     294      :"0" (_bit_mask) ); \
     295  } while ( 0 )
     296
     297#define sparc64_clear_interrupt_bits_const( _bit_mask ) \
    291298  do { \
    292   __asm__ volatile( "wr %%g0, %0, %%clear_softint" : "=r" (_bit_mask) \
    293                                                : "0" (_bit_mask)); \
     299  __asm__ volatile( "wr %%g0, %0, %%clear_softint" : : "n" (_bit_mask) ); \
    294300  } while ( 0 )
    295301
    296302/************* DEPRECATED ****************/