Steven Liu wrote: > Hi All: > > I am working on the porting Linux to mips R3000 and have a problem > about sti( ) which is called in start_kernel( ). > > As we know, sti() is defined as __sti( ) in the > include/asm-mips/system.h: > > extern __inline__ void __sti(void) > { > __asm__ __volatile__( > ".set\tnoreorder\n\t" > ".set\tnoat\n\t" > "mfc0\t$1,$12\n\t" > "ori\t$1,0x1f\n\t" > "xori\t$1,0x1e\n\t" > "mtc0\t$1,$12\n\t" /* <----- problem here > ! */ Here should follow some nop's on a MIPS I system to make sure $12 is written (why is noreorder used here?). > ".set\tat\n\t" > ".set\treorder" > : /* no outputs */ > : /* no inputs */ > : "$1", "memory"); > } HTH, Thiemo