Multiplication instruction for which execution completes without writing a carry flag
US-9990201-B2 · Jun 5, 2018 · US
US10649774B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10649774-B2 |
| Application number | US-201715855575-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 27, 2017 |
| Priority date | Dec 22, 2009 |
| Publication date | May 12, 2020 |
| Grant date | May 12, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method in one aspect may include receiving a multiply instruction. The multiply instruction may indicate a first source operand and a second source operand. A product of the first and second source operands may be stored in one or more destination operands indicated by the multiply instruction. Execution of the multiply instruction may complete without writing a carry flag. Other methods are also disclosed, as are apparatus, systems, and instructions on machine-readable medium.
Opening claim text (preview).
What is claimed is: 1. A processor comprising: a flags register to store arithmetic flags and a virtual-8086 mode flag; a decoder to decode instructions, including an unsigned multiply instruction; and execution circuitry coupled to the decoder, the execution circuitry to perform operations associated with the unsigned multiply instruction, the operations comprising to perform a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product, the execution circuitry to store a lower half of the unsigned product in a first destination register and to store an upper half of the unsigned product in a second destination register without affecting any of the arithmetic flags. 2. The processor of claim 1 , wherein the arithmetic flags include a carry flag and an overflow flag. 3. The processor of claim 2 , wherein the unsigned multiply instruction comprises an enable flag update control bit set to a first value to indicate that the carry flag and the overflow flag are not to be updated. 4. The processor of claim 1 , wherein the unsigned multiply instruction comprises an opcode F20F38F6/r in at least one mode. 5. The processor of claim 1 , further comprising instruction fetch circuitry to fetch instructions from a memory subsystem. 6. The processor of claim 1 , further comprising a memory controller to couple a core having the decoder to a system memory. 7. The processor of claim 1 , further comprising: a plurality of cores on a single integrated circuit (IC) chip, a first core comprising the flags register, the decoder, and the execution circuitry; a Level 1 (L1) cache to store data to be processed by the first core; and a first cache shared by the cores, the first cache to store data to be processed by the cores. 8. The processor of claim 1 , wherein the unsigned multiply instruction can be performed in a 32-bit mode in which the unsigned explicit source operand is to be stored in one of a 32-bit register or memory and a 64-bit mode in which the unsigned explicit source operand is to be stored in one of a 64-bit register or memory. 9. The processor of claim 8 , wherein the unsigned implicit source operand is to be stored in a 64-bit RDX register for the 64-bit mode. 10. A processor comprising: a flags register to store arithmetic flags; a decoder to decode instructions, including an unsigned multiply instruction; and execution circuitry coupled to the decoder, the execution circuitry to perform operations associated with the unsigned multiply instruction, the operations comprising to perform a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product, the execution circuitry to store a lower half of the unsigned product in a first destination register and to store an upper half of the unsigned product in a second destination register without affecting any of the arithmetic flags, wherein the arithmetic flags include a carry flag and an overflow flag, and wherein the flags register is to additionally store a parity flag, an auxiliary carry flag, a zero flag, a sign flag, a trap flag, an interrupt enable flag, an I/O privileged level, a nested task flag, a resume flag, a virtual-8086 mode flag, an alignment check flag, a virtual interrupt flag, a virtual interrupt pending flag, an ID flag, and a direction flag. 11. A method comprising: writing arithmetic flags in a flags register and writing an alignment check flag; decoding instructions, including an unsigned multiply instruction; performing operations associated with the unsigned multiply instruction, the operations comprising performing a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product; storing a lower half of the unsigned product in a first destination register; storing an upper half of the unsigned product in a second destination register; and completing performance of the unsigned multiply instruction without affecting any of the arithmetic flags. 12. The method of claim 11 , wherein said writing the arithmetic flags in the flags register comprises writing a carry flag and writing an overflow flag. 13. The method of claim 12 , further comprising determining that an enable flag update control bit associated with the unsigned multiply instruction is set to a first value to indicate that the carry flag and the overflow flag are not to be updated. 14. The method of claim 12 , further comprising accessing a plurality of other flags in the flags register, including a parity flag, an auxiliary carry flag, a zero flag, a sign flag, a trap flag, an interrupt enable flag, an I/O privileged level, a nested task flag, a resume flag, a virtual-8086 mode flag, an alignment check flag, a virtual interrupt flag, a virtual interrupt pending flag, an ID flag, and a direction flag. 15. The method of claim 11 , further comprising accessing data in a system memory with a memory controller. 16. The method of claim 11 , further comprising determining one of two modes in which to perform the unsigned multiply instruction, the two modes including a 32-bit mode in which the unsigned explicit source operand is to be stored in one of a 32-bit register or memory and a 64-bit mode in which the unsigned explicit source operand is to be stored in one of a 64-bit register or memory. 17. The method of claim 16 , further comprising accessing the unsigned implicit source operand from a 64-bit RDX register for the 64-bit mode. 18. An article of manufacture comprising a machine-readable storage medium, the machine-readable storage medium comprising at least one of an optical disk, a magnetic disk, a read only memory (ROM), and a random access memory (RAM), the machine-readable storage medium storing a set of instructions including an unsigned multiply instruction, the set of instructions when performed by a machine are to cause the machine to perform operations comprising to write arithmetic flags, an auxiliary carry flag, and a virtual interrupt pending flag in a flags register, and the unsigned multiply instruction when performed by a machine is to cause the machine to perform operations comprising to: decode the unsigned multiply instruction; perform operations associated with the unsigned multiply instruction, the operations including to perform a multiplication of an unsigned explicit source operand and an unsigned implicit source operand to generate an unsigned product; store a lower half of the unsigned product in a first destination register; store an upper half of the unsigned product in a second destination register; and complete the performance of the unsigned multiply instruction without affecting any of the arithmetic flags. 19. The article of manufacture of claim 18 , wherein the set of instructions further comprise instructions that when performed by the machine are to cause the machine to perform operations comprising to determine one of two modes in which to perform the unsigned multiply instruction, the two modes including a 32-bit mode in which the unsigned explicit source operand is to be stored in one of a 32-bit register or memory and a 64-bit mode in which the unsigned explicit source operand is to be stored in one of a 64-bit register or memory. 20. The article of manufacture of claim 19 , wherein the unsigned multiply instruction when performed by a machine is to cause the machine to perform operations comprising to access the unsigned implicit source operan
Condition code generation, e.g. Carry, Zero flag · CPC title
with variable precision · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.