Re: proxy_pda was Re: What was in the x86 merge for .20

2007-01-15 Thread Paweł Sikora
Hi, I've reviewed the thread and can propose a solution. Let's see e.g. the dev.s ( from fuse.ko ). Currently with gcc-4.2 we get: fuse_req_init_context: movl$_proxy_pda+8, %edx #, tmp62 #APP movl %gs:8,%ecx #, ret__ #NO_APP movl344(%ecx), %ecx # .fsuid, .fsuid

Re: proxy_pda was Re: What was in the x86 merge for .20

2006-12-08 Thread Arkadiusz Miskiewicz
On Friday 08 December 2006 22:22, Andi Kleen wrote: > The trouble is when it's CSEd it actually causes worse code because > a register is tied up. That might not be worth the advantage of having it? > > Hmm, maybe marking it volatile would help? Arkadiusz, does the following > patch help? Unfortu

Re: proxy_pda was Re: What was in the x86 merge for .20

2006-12-08 Thread Jeremy Fitzhardinge
Andi Kleen wrote: > The trouble is when it's CSEd it actually causes worse code because > a register is tied up. That might not be worth the advantage of having it? > I think so, definitely; without proxy_pda you need to make it asm volatile+mem clobber, which completely eliminates all optimisa

Re: proxy_pda was Re: What was in the x86 merge for .20

2006-12-08 Thread Andi Kleen
On Friday 08 December 2006 22:09, Jeremy Fitzhardinge wrote: > Andi Kleen wrote: > > Looking at Arkadiusz' output file it looks like gcc 4.2 decided to CSE the > > address :/ > > > > movl$_proxy_pda+8, %edx #, tmp65 > > > > Very sad, but legitimate. > > > > Yes, that was my conclusi

Re: proxy_pda was Re: What was in the x86 merge for .20

2006-12-08 Thread Jeremy Fitzhardinge
Andi Kleen wrote: > Looking at Arkadiusz' output file it looks like gcc 4.2 decided to CSE the > address :/ > > movl$_proxy_pda+8, %edx #, tmp65 > > Very sad, but legitimate. > Yes, that was my conclusion too. Though in this case the code could be cleaned up by cutting down on th

proxy_pda was Re: What was in the x86 merge for .20

2006-12-08 Thread Andi Kleen
On Friday 08 December 2006 21:35, Jeremy Fitzhardinge wrote: > Arkadiusz Miskiewicz wrote: > > LD .tmp_vmlinux1 > > arch/i386/kernel/built-in.o: In function `math_emulate': > > (.text+0x3809): undefined reference to `_proxy_pda' > > > > Hm, in theory nothing should ever generate a refere