SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Technology Stocks : Advanced Micro Devices - Moderated (AMD) -- Ignore unavailable to you. Want to Upgrade?


To: ptanner who wrote (56142)9/23/2001 10:24:36 PM
From: milo_moraiRespond to of 275872
 
wasabisystems.com



To: ptanner who wrote (56142)9/23/2001 10:49:41 PM
From: fyodor_Read Replies (1) | Respond to of 275872
 
PT: Any word of non-Linux x86-64 OS development progress? Not that I run any applications that need 64 bit
but I am sure that there are application which could with a new compiler take advantage of the extra width and
number of general purpose registers when running in Long Mode.


I seem to recall from discuss@x86-64.org (see x86-64.org ) that you can't count on the top half of the
registers when not in x86-64 mode. It could very well be that AMD already utilizes this extra register space
automatically when running in 32bit mode.

Ahh… I found the comments I was looking for:

> > When operating in Extended 64-bit, can I access the lower and upper =
> > 32-bit halves of the register, effectively doubling my 32 bit GPRs? Or, =
> > like x86, am I limited to accessing the lowerhalf only?
> > Documentation is unclear on the syntax.
> >
>
> Lower half only. Furthermore, doing a 32-bit write to a register
> clears the upper half.
>
> -hpa
>

Actually, in legacy mode or in compatibility mode, the upper 32 bits
are undefined (and not accessible, as hpa says). Please don't rely
on them being 0 or any other value when you return to 64-bit mode.

In 64-bit mode, a 32-bit write to a register will zero the upper
64-bits.

Kevin McGrath
AMD Fellow


To further clarify, the AMD white-paper you reference has a nice chart:
Mode                            OS Required        Recompile                  Defaults°
Required Address Size Operand Size Register Extensions¹ GPR Width

64bit mode New 64bit OS yes 64 32 yes 64
Long Mode²
Compatibility mode New 64bit OS no 32 or 16 32 no 32

Legacy Mode³ Legacy OS no 32 or 16 32 or 16 no 32

° Defaults can be overridden in most modes using an instruction prefix or system control bit.
¹ Register extensions includes eight new GPRs and eight new XMM registers (also called SSE registers)
² Long mode supports only x86 protected mode. It does not support x86 real mode or virtual-8086 mode.
Also, it does not support task switching.
³ Legacy mode supports x86 real mode, virtual-8086 mode, and protected mode.
FWIW…

-fyo

 
P.S. It's nice to see the SI preview function finally showing fixed-width text properly!