Commit FS#12130 - Fix ADX decoding on 64-bit systems by Sean Bartell. Fixes an incorrect assumption in the ADX decoder that sizeof(int) == 32 when performing fixed point math. Update comments in the fixed point library to correct this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29927 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
79dd27de82
commit
0497adffcf
3 changed files with 3 additions and 3 deletions
|
@ -129,7 +129,7 @@ enum codec_status codec_run(void)
|
|||
|
||||
fp_sincos((unsigned long)phasemultiple,&z);
|
||||
|
||||
a = (M_SQRT2*big28)-(z*big28/LONG_MAX);
|
||||
a = (M_SQRT2*big28) - (z >> 3);
|
||||
|
||||
/**
|
||||
* In the long passed to fsqrt there are only 4 nonfractional bits,
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
* where phase is a 32 bit unsigned integer with 0 representing 0
|
||||
* and 0xFFFFFFFF representing 2*pi, and *cos is the address to
|
||||
* a long signed integer. Value returned is a long signed integer
|
||||
* from LONG_MIN to LONG_MAX, representing -1 to 1 respectively.
|
||||
* from -0x80000000 to 0x7fffffff, representing -1 to 1 respectively.
|
||||
* That is, value is a fixed point integer with 31 fractional bits.
|
||||
*
|
||||
* Take square root of a fixed point number:
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
* where phase is a 32 bit unsigned integer with 0 representing 0
|
||||
* and 0xFFFFFFFF representing 2*pi, and *cos is the address to
|
||||
* a long signed integer. Value returned is a long signed integer
|
||||
* from LONG_MIN to LONG_MAX, representing -1 to 1 respectively.
|
||||
* from -0x80000000 to 0x7fffffff, representing -1 to 1 respectively.
|
||||
* That is, value is a fixed point integer with 31 fractional bits.
|
||||
*
|
||||
* Take square root of a fixed point number:
|
||||
|
|
Loading…
Reference in a new issue