On Wed, Jun 22, 2005 at 03:41:09PM -0500, Kumar Gala wrote: [snip]
> +#ifdef CONFIG_E200 > +#define DEBUG_EXCEPTION > \ > + START_EXCEPTION(Debug); \ > + DEBUG_EXCEPTION_PROLOG; \ > + \ > + /* \ > + * If there is a single step or branch-taken exception in an \ > + * exception entry sequence, it was probably meant to apply to \ > + * the code where the exception occurred (since exception entry \ > + * doesn't turn off DE automatically). We simulate the effect \ > + * of turning off DE on entry to an exception handler by turning \ > + * off DE in the CSRR1 value and clearing the debug status. \ > + */ \ > + mfspr r10,SPRN_DBSR; /* check single-step/branch taken */ \ > + andis. r10,r10,DBSR_IC at h; \ > + beq+ 2f; \ > + \ > + lis r10,KERNELBASE at h; /* check if exception in vectors */ \ > + ori r10,r10,KERNELBASE at l; > \ I think we can get rid of one instruction here :) -- Eugene
