public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* question about __builtin_prefetch for gcc 3.1,
@ 2002-07-17  3:22 Ravikiran G Thirumalai
  0 siblings, 0 replies; only message in thread
From: Ravikiran G Thirumalai @ 2002-07-17  3:22 UTC (permalink / raw)
  To: gcc-help

Hi,
I was trying out the "__builtin_prefetch" feature in gcc3.1 (gcc-3.1-7.i386.rpm
 - Rawhide) i just installed. 

I used the foll code snippet to see if "prefetch" insn was being generated --
<snippet>

 
#define prefetchw(x) __builtin_prefetch(x, 1, 0)
 
int main()
{
        element_t *temp;
        create_list(LIST_NOS);
 
        temp = head;
        while( temp != NULL) {
                int burn;
                prefetchw(temp->next);
                burn = test_rand()* test_rand();
                temp->member_int *= burn;
                temp = temp->next;
        }
 
        destroy_list();
        return 0;
}

</snippet>

Surprisingly, the objdump disassembly does not show "prefetch" insn at all.
Am I doing something stupid here??? or is the builtin broken??

Here is some more arch info:

Procesor:
---------
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 996.797
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 1985.74

Command used for compilaion:
----------------------------
gcc -O2 prefetch.c -o prefetch -Wall -march=i686     

objdump output:
---------------
08048410 <main>:
 8048410:       55                      push   %ebp
 8048411:       89 e5                   mov    %esp,%ebp
 8048413:       83 ec 08                sub    $0x8,%esp
 8048416:       83 e4 f0                and    $0xfffffff0,%esp
 8048419:       c7 04 24 64 00 00 00    movl   $0x64,(%esp,1)
 8048420:       e8 6b ff ff ff          call   8048390 <create_list>
 8048425:       8b 0d d8 94 04 08       mov    0x80494d8,%ecx
 804842b:       85 c9                   test   %ecx,%ecx
 804842d:       74 47                   je     8048476 <main+0x66>
 804842f:       90                      nop
 8048430:       a1 dc 94 04 08          mov    0x80494dc,%eax
 8048435:       69 c0 6d 4e c6 41       imul   $0x41c64e6d,%eax,%eax
 804843b:       05 39 30 00 00          add    $0x3039,%eax
 8048440:       89 c2                   mov    %eax,%edx
 8048442:       69 c0 6d 4e c6 41       imul   $0x41c64e6d,%eax,%eax
 8048448:       c1 fa 10                sar    $0x10,%edx
 804844b:       81 e2 ff 7f 00 00       and    $0x7fff,%edx
 8048451:       05 39 30 00 00          add    $0x3039,%eax
 8048456:       a3 dc 94 04 08          mov    %eax,0x80494dc
 804845b:       c1 f8 10                sar    $0x10,%eax
 804845e:       25 ff 7f 00 00          and    $0x7fff,%eax
 8048463:       0f af d0                imul   %eax,%edx
 8048466:       8b 41 14                mov    0x14(%ecx),%eax
 8048469:       0f af d0                imul   %eax,%edx
 804846c:       89 51 14                mov    %edx,0x14(%ecx)
 804846f:       8b 49 18                mov    0x18(%ecx),%ecx
 8048472:       85 c9                   test   %ecx,%ecx
 8048474:       75 ba                   jne    8048430 <main+0x20>
 8048476:       e8 65 ff ff ff          call   80483e0 <destroy_list>
 804847b:       c9                      leave
 804847c:       31 c0                   xor    %eax,%eax
 804847e:       c3                      ret
 804847f:       90                      nop


TIA
-Kiran

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-07-17 10:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-17  3:22 question about __builtin_prefetch for gcc 3.1, Ravikiran G Thirumalai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).