From: "Tom St Denis" Newsgroups: comp.os.msdos.djgpp References: <5BF60CD649EDD411A04600B0D049F53A544468 AT hydmail02 DOT hyd DOT wilco-int DOT com> Subject: Re: Accessing registers from C Lines: 35 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2462.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2462.0000 Message-ID: <0XY%6.75909$Mf5.20934530@news3.rdc1.on.home.com> Date: Mon, 02 Jul 2001 11:30:04 GMT NNTP-Posting-Host: 24.112.8.23 X-Complaints-To: abuse AT home DOT net X-Trace: news3.rdc1.on.home.com 994073404 24.112.8.23 (Mon, 02 Jul 2001 04:30:04 PDT) NNTP-Posting-Date: Mon, 02 Jul 2001 04:30:04 PDT Organization: Excite AT Home - The Leader in Broadband http://home.com/faster To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Prashant Ramachandra" wrote in message news:5BF60CD649EDD411A04600B0D049F53A544468 AT hydmail02 DOT hyd DOT wilco-int DOT com... > On Monday, July 02, 2001 9:03 AM, Tom St Denis [SMTP:tomstdenis AT yahoo DOT com] > wrote: > | > | > Everytime you use the variable "eax", you're actually accessing > | > or > | modifying > | > the eax register itself. > | > | Perhaps, and by doing so you take away chances for GCC to optimize > | the code. > > Yes, but it's useful in certain cases. I posted some code to check the CPU > type back in 1998. That's the simplest use I can think of. You might want to > see that. And the linux kernel uses lots of this, too. Do you think they > weren't concerned about optimizing ther kernel code? > > | You might as well not write in C then. > > You won't be using this in every function. So this doesn't justify anything. Typically unless your function is an inline [say like a fixed point multiplication, etc] writting asm statements in C is a bad idea. It leads to poor messy code that is hard to maintain. Ideally all of your .C code is C code and you just have #ifdefs to excluded functions for which you have assembler equivalents. Tom