[NBLUG/talk] Bare metal question

Daniel Smith linux2002 at daniel.org
Sun May 25 12:12:01 PDT 2003


>In skimming the _Intel Architecture Software Developer's
>Manual_, vols. 1-3, (available for free download at
>http://x86.ddj.com/intel.doc/386manuals.htm), I came
>across a passage (the specifics of which I can't recall)
>that described the syntax of moving something into
>a register.  I recall clearly that, in this one particular
>passage, it was talking about moving something into
>a register that was _not_ a memory location.


If you want to skim something that goes into a lot
of detail about registers on the upcoming IBM PowerPC 970
(Mac OS X, or, Linux on Mac oriented), see:

http://arstechnica.com/cpu/03q1/ppc970/ppc970-0.html

(which does some comparison with the P4 and the G4e)

Many years ago, when I tried a bit of 6502 assembly
language programming (Atari 400), the general refrain
was "there aren't enough registers!".  I believe
there were 2: The X register and the Y register, both 8 bit.
(someone will correct me on this :-)

The 970 has lots of registers:
32 64-bit general purpose registers
32 64-bit floating-point registers
32 128-bit vector registers

Drifting to an ongoing programming conversation (and again,
I will be corrected if I am wrong), you can ask for use
of a register in code, such as:

register int foo;

Now, this doesn't guarantee that your code will actually
use a register (for speed).  It's just a hint to the
compiler that you would like "foo" to be situated in
a register, as opposed to slower general memory.  It's
up to the compiler to dole these out.

Winding back to the 970, with its plethora of registers and
other architectural goodies, I believe the Macs based on it
will be absolutely fast, awesome machines, for OS X or Linux.

Daniel

-- 
Daniel L. Smith - Sonoma County, CA - AIM: SonomaDaniel
JavaJoint.com   - daniel.org        - ThereAndThen.org




More information about the talk mailing list