News group discussion on ANDL instruction
http://www.ussg.iu.edu/hypermail/linux/kernel/0111.3/1893.html
ANDL instruction related to task_struct colouring
Again this is the "current" diff :
static inline struct task_struct * get_current(void)
{
- struct task_struct *current;
- __asm__("andl %%esp,%0; ":"=r" (current) : "0" (~8191UL));
- return current;
+ unsigned long *tskptr;
+ __asm__("andl %%esp,%0; ":"=r" (tskptr) : "0" (~8191UL));
+ return (struct task_struct *) *tskptr;
}
that will probably resolve in something like:
movl %esp, %eax
andl $-8192, %eax
movl (%eax), %eax