Fix function which calculates the carry flag.
--HG-- extra : convert_revision : aeb4f2d4c3936089421dbe80647f28ae36178283
This commit is contained in:
parent
0baae59c09
commit
ee22bcd609
1 changed files with 4 additions and 1 deletions
|
@ -32,6 +32,7 @@
|
|||
#define __BASE_CONDCODE_HH__
|
||||
|
||||
#include "base/bitfield.hh"
|
||||
#include "base/trace.hh"
|
||||
|
||||
/**
|
||||
* Calculate the carry flag from an addition. This should work even when
|
||||
|
@ -41,7 +42,9 @@ inline
|
|||
bool
|
||||
findCarry(int width, uint64_t dest, uint64_t src1, uint64_t src2) {
|
||||
int shift = width - 1;
|
||||
return (~(dest >> shift) + (src1 >> shift) + (src2 >> shift)) & 0x2;
|
||||
return ((~(dest >> shift) & 1) +
|
||||
((src1 >> shift) & 1) +
|
||||
((src2 >> shift) & 1)) & 0x2;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue