forked from len0rd/rockbox
libspc: Temporarily disable problematic armv4 asm optimization
asm volatile ( "mov %[t0], %[out], asr #11 \n" "mul %[out], %[t0], %[envx] \n" : [out]"+r"(output), [t0]"=&r"(t0) : [envx]"r"((int) voice->envx)); This is resulting in "Rd and Rm should be different in mul" error, because the compiler is putting [out] and [t0] into the same register. After some poking there doesn't appear to be a sane way to change the constraints, so just disable it for now. Change-Id: I7827713c8aadb27f0bf4a6f4a3e1d910c6193686
This commit is contained in:
parent
bb251ba603
commit
caaea275eb
1 changed files with 3 additions and 1 deletions
|
@ -50,6 +50,7 @@ static inline int gaussian_fast_interp( int16_t const* samples,
|
|||
return output;
|
||||
}
|
||||
|
||||
#if 0 // first asm block generates "Rd and Rm should be different in mul" error
|
||||
#define SPC_GAUSSIAN_FAST_AMP
|
||||
static inline int gaussian_fast_amp( struct voice_t* voice, int output,
|
||||
int* amp_0, int* amp_1 )
|
||||
|
@ -73,6 +74,7 @@ static inline int gaussian_fast_amp( struct voice_t* voice, int output,
|
|||
|
||||
return output;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define SPC_GAUSSIAN_SLOW_INTERP
|
||||
static inline int gaussian_slow_interp( int16_t const* samples,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue