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



Reply via email to