On Tue, Oct 08, 2013 at 12:39:31PM +0100, Markos Chandras wrote: > + /* > + * Clear ERL - restore segment mapping > + * Clear BEV - required for page fault exception handler to work > + */ > + mfc0 k0, CP0_STATUS > + ori k0, k0, ST0_EXL > + lui k1, %hi(~ST0_BEV) > + ori k1, k1, %lo(~ST0_ERL) Why not: li k1 ~(ST0_BEV | ST0_ERL) If you were afraid gas might use $1 expanding this macro instruction - no, it won't. A belt & suspenders approach might be to drop in a ".set noat"; it would make the assembler throw an error if should ever see the need to use $1. Ralf