This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Loss of information - SMMUL

Why the Cortex M4 instruction SMMUL (32 = 32 x 32b) preserves a redundant sign bit and discards one useful bit of information? What could possibly be the justification for such blatant disregard of the ISO/IEC TR 18037 standard Fract format?

Parents
  • I believe this is intended to be used for getting the highword result of a topword x topword multiplication.

    (note: by topword, I mean the most significant word of each factor; they could for instance be a 32-bit value multiplied by a 32-bit value or the highword of a 64-bit value multiplied by the highword of a 64-bit value; the product would go into the highest word of a 128-bit value).

    Without it, I think it would be cumbersome to multiply two more-than-32-bit signed values.

    Which operation do you need to perform in more details ?

Reply
  • I believe this is intended to be used for getting the highword result of a topword x topword multiplication.

    (note: by topword, I mean the most significant word of each factor; they could for instance be a 32-bit value multiplied by a 32-bit value or the highword of a 64-bit value multiplied by the highword of a 64-bit value; the product would go into the highest word of a 128-bit value).

    Without it, I think it would be cumbersome to multiply two more-than-32-bit signed values.

    Which operation do you need to perform in more details ?

Children