Hello All, There appears to be an error in the new set_cp0_ functions in the mipsregs.h file. #define __BUILD_SET_CP0(name,register) \ extern __inline__ unsigned int \ set_cp0_##name(unsigned int set) \ { \ unsigned int res; \ \ res = read_32bit_cp0_register(register); \ res |= ~set; \ write_32bit_cp0_register(register, res); \ \ return res; \ } \ The line res |= ~set; will set every bit except the bit you want to set. It should be changed to res |= set; Also in the mipsregs.h file the line #define ST0_UM <1 << 4) should probably be #define ST0_UM (1 << 4) I hope this helps. Dan Aizenstros Software Engineer V3 Semiconductor Corp.