[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