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;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 // first asm block generates "Rd and Rm should be different in mul" error
|
||||||
#define SPC_GAUSSIAN_FAST_AMP
|
#define SPC_GAUSSIAN_FAST_AMP
|
||||||
static inline int gaussian_fast_amp( struct voice_t* voice, int output,
|
static inline int gaussian_fast_amp( struct voice_t* voice, int output,
|
||||||
int* amp_0, int* amp_1 )
|
int* amp_0, int* amp_1 )
|
||||||
|
|
@ -73,6 +74,7 @@ static inline int gaussian_fast_amp( struct voice_t* voice, int output,
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SPC_GAUSSIAN_SLOW_INTERP
|
#define SPC_GAUSSIAN_SLOW_INTERP
|
||||||
static inline int gaussian_slow_interp( int16_t const* samples,
|
static inline int gaussian_slow_interp( int16_t const* samples,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue