Claims
- 1. A method of operating a processor to calculate A-sign(A) in a single instruction cycle, where A is a signed binary integer represented in 2's complement form, sign(A) is equal to one when A is greater than zero, sign(A) is equal to zero when A is zero, and sign(A) is equal to negative one when A is less than zero, comprising:
- providing the processor with bit-complementing logic;
- bit-complementing A to obtain A with the bit-complementing logic;
- bit-complementing (A-1) to obtain A-sign(A) when A is less than zero with the bit-complementing logic;
- bit-complementing (A) to obtain A-sign(A) when A is equal to zero with bit-complementing logic; and
- bit-complementing (A+1) to obtain A-sign(A) when A is greater than zero with the bit-complementing logic.
- 2. The method of claim 1, including selecting (A-1) from a sum output when A is less than zero, selecting A from the sum output when A is zero, and selecting (A+1) from a sum-plus-one output when A is greater than zero.
- 3. The method of claim 1, including incrementing A and then bit-complementing (A+1) when A is greater than zero.
- 4. A method of operating a processor to calculate A-sign(A) in a single instruction cycle, where A is a signed binary integer represented in 2's complement form, sign(A) is equal to one when A is greater than zero, sign(A) is equal to zero when A is zero, and sign(A) is equal to negative one when A is less than zero, comprising:
- providing the processor with the bit-complementing logic;
- bit-complementing A to obtain A with the bit-complementing logic;
- calculating (A-1) and then bit-complementing (A-1) with the bit complementing logic to obtain A-sign(A) when A is less than zero;
- bit-complementing A with the bit-complementing logic to obtain A+sign(A) when A is equal to zero; and
- calculating (A+1) and then bit-complementing (A+1) with the bit-complementing logic to obtain A-sign(A) when A is greater than zero.
- 5. The method of claim 4, including setting a constant C to negative one and selecting a sum output of an adder circuit to provide (A-1) when A is less than zero, setting the constant C to zero and selecting the sum output of the adder circuit to provide A when A is zero, and setting the constant C to zero and selecting a sum-plus-one output of the adder circuit to provide (A+1) when A is greater than zero.
- 6. The method of claim 5, wherein setting the constant C is in response to a sign bit of A, indicative of whether A is positive or negative, and selecting the sum output or sum-plus-one output is in response to the sign bit of A and a zero detect flag, indicative of whether A is zero or nonzero.
- 7. The method of claim 5, wherein calculating (A-1) and calculating (A+1) includes applying A and the constant C to first and second operand inputs of an adder circuit.
- 8. The method of claim 5, wherein the selecting includes sending a select signal to a multiplexer having a first operand input coupled to the sum output, having a second operand input coupled to the sum-plus-one output, and having an output coupled to an inverter circuit.
- 9. The method of claim 4, including setting a zero detect flag to TRUE when a first carry-out bit from (A+0) and a second carry-out bit from (A+1) have different logical values, and setting the zero detect flag to FALSE when the first and second carry-out bits have identical logical values.
- 10. The method of claim 9, wherein the first and second carry-out bits are generated concurrently.
- 11. The method of claim 4, wherein calculating (A-1) and calculating (A+1) includes applying A to an operand input of an adder circuit.
- 12. The method of claim 4, wherein A is an n-bit number, A-sign(A) is an n-bit result, and overflow does not occur.
- 13. The method of claim 4, performed by a general purpose computer in a single instruction cycle.
Parent Case Info
The present application is a continuation of application Ser. No. 08/719,185, which issued as U.S. Pat. No. 5,856,936.
US Referenced Citations (7)
Continuations (1)
|
Number |
Date |
Country |
Parent |
719185 |
Sep 1996 |
|