Difference between revisions of "Overflow"

From Mill Computing Wiki
Jump to: navigation, search
Line 1:Line 1:
When integer operations produce values that can't be contained within the bit width of the result, there are different strategies of how to deal with it.
+
When integer operations produce values that can't be contained within the bit width of the result, there are different strategies of how to deal with it. Which one is used depends on the chosen operation.
  
 
In all cases the [[Condition_Code|condition codes]] are generated and can be queried with the dedicated ganged operations. What the overflow behavior does determine is the primary result that is produced.
 
In all cases the [[Condition_Code|condition codes]] are generated and can be queried with the dedicated ganged operations. What the overflow behavior does determine is the primary result that is produced.

Revision as of 10:00, 11 December 2014

When integer operations produce values that can't be contained within the bit width of the result, there are different strategies of how to deal with it. Which one is used depends on the chosen operation.

In all cases the condition codes are generated and can be queried with the dedicated ganged operations. What the overflow behavior does determine is the primary result that is produced.

  1. modulo - normal silent overflow or underflow, also called wraparound
  2. saturating - the highest of lowest representable value in the given with is the returned result
  3. excepting - the appropriate NaR is created as the result
  4. widening - here the scalar byte width is doubled and the full and exact result is the return value