forked from len0rd/rockbox
FS#12146: Fix libcook bugs introduced in r22055 by Sean Bartell.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29973 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9f65f2b6ad
commit
965113ed50
4 changed files with 38 additions and 5 deletions
|
@ -65,6 +65,7 @@ static inline int32_t MULT32(int32_t x, int32_t y) {
|
|||
magic.whole = (int64_t)x * y;
|
||||
return magic.halves.hi;
|
||||
}
|
||||
|
||||
static inline int32_t MULT31(int32_t x, int32_t y) {
|
||||
return MULT32(x,y)<<1;
|
||||
}
|
||||
|
@ -75,6 +76,12 @@ static inline int32_t MULT31_SHIFT15(int32_t x, int32_t y) {
|
|||
return ((uint32_t)(magic.halves.lo)>>15) | ((magic.halves.hi)<<17);
|
||||
}
|
||||
|
||||
static inline int32_t MULT31_SHIFT16(int32_t x, int32_t y) {
|
||||
union magic magic;
|
||||
magic.whole = (int64_t)x * y;
|
||||
return ((uint32_t)(magic.halves.lo)>>16) | ((magic.halves.hi)<<16);
|
||||
}
|
||||
|
||||
#else
|
||||
/* 32 bit multiply, more portable but less accurate */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue