From 7c0908f301867b7f8667d7720094a3ad3616dd53 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 25 Sep 2020 14:18:09 -0400 Subject: [PATCH 1/2] codec: Make lookup table static constexpr Allows compilers to elide needing to push these values on the stack every time the function is called. --- src/audio_core/codec.cpp | 5 +++-- src/audio_core/codec.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/audio_core/codec.cpp b/src/audio_core/codec.cpp index c5a0d98cec..2fb91c13a6 100644 --- a/src/audio_core/codec.cpp +++ b/src/audio_core/codec.cpp @@ -16,8 +16,9 @@ std::vector DecodeADPCM(const u8* const data, std::size_t size, const ADPCM constexpr std::size_t FRAME_LEN = 8; constexpr std::size_t SAMPLES_PER_FRAME = 14; - constexpr std::array SIGNED_NIBBLES = { - {0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1}}; + static constexpr std::array SIGNED_NIBBLES{ + 0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1, + }; const std::size_t sample_count = (size / FRAME_LEN) * SAMPLES_PER_FRAME; const std::size_t ret_size = diff --git a/src/audio_core/codec.h b/src/audio_core/codec.h index ef2ce01a8c..9507abb1b8 100644 --- a/src/audio_core/codec.h +++ b/src/audio_core/codec.h @@ -38,7 +38,7 @@ using ADPCM_Coeff = std::array; * @param state ADPCM state, this is updated with new state * @return Decoded stereo signed PCM16 data, sample_count in length */ -std::vector DecodeADPCM(const u8* const data, std::size_t size, const ADPCM_Coeff& coeff, +std::vector DecodeADPCM(const u8* data, std::size_t size, const ADPCM_Coeff& coeff, ADPCMState& state); }; // namespace AudioCore::Codec From 90c61411640c049c6a5c376782b37d94f949f1f5 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 25 Sep 2020 18:30:49 -0400 Subject: [PATCH 2/2] command_generator: Make lookup table static constexpr Allows compilers to elide needing to push these values on the stack every time the function is called. --- src/audio_core/command_generator.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/audio_core/command_generator.cpp b/src/audio_core/command_generator.cpp index 8f7da49e6e..07c932e930 100644 --- a/src/audio_core/command_generator.cpp +++ b/src/audio_core/command_generator.cpp @@ -726,8 +726,9 @@ s32 CommandGenerator::DecodeAdpcm(ServerVoiceInfo& voice_info, VoiceState& dsp_s return 0; } - constexpr std::array SIGNED_NIBBLES = { - {0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1}}; + static constexpr std::array SIGNED_NIBBLES{ + 0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1, + }; constexpr std::size_t FRAME_LEN = 8; constexpr std::size_t NIBBLES_PER_SAMPLE = 16;