Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
3DNow!
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Advantages and disadvantages== One advantage of 3DNow! is that it is possible to add or multiply the two numbers that are stored in the same [[Processor register|register]]. With SSE, each number can only be combined with a number in the same position in another register. This capability, known as ''horizontal'' in Intel terminology, was the major addition to the [[SSE3]] instruction set. A disadvantage with 3DNow! is that 3DNow! instructions and MMX instructions share the same register-file, whereas SSE adds 8 new independent registers (<code>XMM0</code>–<code>XMM7</code>). Because MMX/3DNow! registers are shared by the standard [[x87]] FPU, 3DNow! instructions and x87 instructions cannot be executed simultaneously. However, because it is aliased to the x87 FPU, the 3DNow! and MMX register states can be saved and restored by the traditional x87 <code>F(N)SAVE</code> and <code>F(N)RSTOR</code> instructions. This arrangement allowed [[operating system]]s to support 3DNow! with no explicit modifications, whereas SSE registers required explicit operating system support to properly save and restore the new XMM registers (via the added <code>FXSAVE</code> and <code>FXRSTOR</code> instructions.) The FX* instructions from SSE provide a functional superset of the older x87 save and restore instructions. They can save not only SSE register states but also the x87 register states (hence are applicable also for MMX and 3DNow! operations where supported). On AMD [[Athlon XP]] and K8-based cores (i.e. [[Athlon 64]]), assembly programmers have noted that it is possible to combine 3DNow! and SSE instructions to reduce [[register pressure]], but in practice it is difficult to improve performance due to the instructions executing on shared functional units.<ref>{{cite newsgroup | title =3DNow+ vs SSE on Athlon XP | author =Larry Lewis | date =9 July 2003 | newsgroup =comp.sys.ibm.pc.hardware.chips | message-id =ad82cd69.0307090931.25391323@posting.google.com | url =https://groups.google.com/group/comp.sys.ibm.pc.hardware.chips/browse_thread/thread/9da2d940c5b69745 | url-access=subscription | access-date = 4 January 2023 | archive-url=https://web.archive.org/web/20121003002542/https://groups.google.com/group/comp.sys.ibm.pc.hardware.chips/browse_thread/thread/9da2d940c5b69745 | archive-date=2012-10-03 | via=Google Groups}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)