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
Pentium Pro
(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!
===Instruction set=== The Pentium Pro (P6) introduced new 'conditional move' instructions into the Intel range; the <code>CMOV''cc''</code> and <code>FCMOV''cc''</code> (‘conditional move’) instructions fetch a source value from a register or memory, and optionally write that value to a destination register according to a condition ''cc'' on the flags register, the same conditions used by the conditional jump (<code>J''cc''</code>) instructions. For example, <code>CMOVNE</code> moves a specified value into a register if the flags register matches the NE (not-equal) condition, i.e. the [[zero flag]] is unset. If the zero flag is set, the condition in false, and the destination register keeps its value. This allows simple if-then-else operations (such as commonly used by the [[Ternary conditional operator|<code>? :</code> operation]] in [[C (programming language)|C]]) without a costly conditional branch. The <code>FCMOV''cc''</code> variant provides the same functionality for floating-point registers. Unfortunately, <code>CMOV</code> does not support immediate (in-line constant) source values nor memory destinations. A second development was the documentation of the <code>UD2</code> illegal instruction. This op code is reserved and guaranteed to cause an illegal instruction exception on the P6 and all later processors. This allows developers to easily crash the current program in a future-proof fashion when a bug is detected by software.
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)