mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-10 08:03:04 -04:00
Upstream's OPUS_ARM_INLINE_ASM means any ARM with inline assembly, with OPUS_ARM_INLINE_EDSP layered on top for ARMv5E. config.h instead defines exactly one of them per core, so the names read as broader than they are, and code added ARM_ARCH tests beside them to pin the scope down. Renamed to OPUS_ARM_ASM_ARMV4_ONLY and OPUS_ARM_ASM_ARMV5E_AND_LATER throughout celt and silk, upstream files included; README.rockbox records it for the next libopus sync. No code change: opus.elf disassembly and section sizes are identical before and after on ARMv4 (e200v1), ARMv5E (Clip+) and ARMv6 (iPod Nano 4G). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Change-Id: I89932d348dedd76748a1bc7b3f2e7de1c5be49c8
30 lines
855 B
C
30 lines
855 B
C
/* ARM hooks for the Good-Thomas 15-point kernel.
|
|
|
|
Copyright (c) 2026 Michael Giacomelli
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the conditions stated in
|
|
celt/kiss_fft.c are met.
|
|
*/
|
|
#ifndef PFA_ARM_H
|
|
#define PFA_ARM_H
|
|
|
|
#if defined(FIXED_POINT) && defined(OPUS_PFA)
|
|
|
|
#if defined(OPUS_ARM_ASM_ARMV5E_AND_LATER)
|
|
|
|
#define OVERRIDE_PFA_FFT15
|
|
void pfa_fft15_armv5e(const kiss_fft_cpx *in, kiss_fft_cpx *out, int ostride);
|
|
#define PFA_FFT15(in, out, ostride) pfa_fft15_armv5e(in, out, ostride)
|
|
|
|
#elif defined(OPUS_ARM_ASM_ARMV4_ONLY)
|
|
|
|
#define OVERRIDE_PFA_FFT15
|
|
void pfa_fft15_armv4(const kiss_fft_cpx *in, kiss_fft_cpx *out, int ostride);
|
|
#define PFA_FFT15(in, out, ostride) pfa_fft15_armv4(in, out, ostride)
|
|
|
|
#endif
|
|
|
|
#endif /* FIXED_POINT && OPUS_PFA */
|
|
|
|
#endif /* PFA_ARM_H */
|