fixup for clang

pull/68/head
graham sanderson 2023-03-19 17:31:16 -05:00
rodzic 71590f2a9f
commit 5200ce5fe3
6 zmienionych plików z 39 dodań i 29 usunięć

Wyświetl plik

@ -24,12 +24,12 @@ audio_upsample:
lsls r2, #1 lsls r2, #1
mov ip, r1 mov ip, r1
add ip, r2 add ip, r2
ldr r6, =#SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET ldr r6, =SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET
// interp_configure_with_signed_and_blend // interp_configure_with_signed_and_blend
ldr r4, =# ((AUDIO_UPSAMPLE_SCALE_BITS - 1) << SIO_INTERP0_CTRL_LANE0_SHIFT_LSB) | (1 << SIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB) | ((24 - AUDIO_UPSAMPLE_SCALE_BITS) << SIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE0_BLEND_BITS ldr r4, =((AUDIO_UPSAMPLE_SCALE_BITS - 1) << SIO_INTERP0_CTRL_LANE0_SHIFT_LSB) | (1 << SIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB) | ((24 - AUDIO_UPSAMPLE_SCALE_BITS) << SIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE0_BLEND_BITS
str r4, [r6, #SIO_INTERP0_CTRL_LANE0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r4, [r6, #SIO_INTERP0_CTRL_LANE0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
// interp_configure_with_signed_and_cross_input // interp_configure_with_signed_and_cross_input
ldr r4, =# ((AUDIO_UPSAMPLE_SCALE_BITS - 8) << SIO_INTERP0_CTRL_LANE1_SHIFT_LSB) | (0 << SIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB) | (7 << SIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE1_SIGNED_BITS | SIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS ldr r4, =((AUDIO_UPSAMPLE_SCALE_BITS - 8) << SIO_INTERP0_CTRL_LANE1_SHIFT_LSB) | (0 << SIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB) | (7 << SIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE1_SIGNED_BITS | SIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS
str r4, [r6, #SIO_INTERP0_CTRL_LANE1_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r4, [r6, #SIO_INTERP0_CTRL_LANE1_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
str r0, [r6, #SIO_INTERP0_BASE2_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r0, [r6, #SIO_INTERP0_BASE2_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
movs r0, #0 movs r0, #0
@ -91,12 +91,12 @@ audio_upsample_words:
lsls r2, #2 lsls r2, #2
mov ip, r1 mov ip, r1
add ip, r2 add ip, r2
ldr r6, =#SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET ldr r6, =SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET
// interp_configure_with_blend // interp_configure_with_blend
ldr r4, =# ((AUDIO_UPSAMPLE_SCALE_BITS - 1) << SIO_INTERP0_CTRL_LANE0_SHIFT_LSB) | (1 << SIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB) | ((24 -AUDIO_UPSAMPLE_SCALE_BITS) << SIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE0_BLEND_BITS ldr r4, =((AUDIO_UPSAMPLE_SCALE_BITS - 1) << SIO_INTERP0_CTRL_LANE0_SHIFT_LSB) | (1 << SIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB) | ((24 -AUDIO_UPSAMPLE_SCALE_BITS) << SIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE0_BLEND_BITS
str r4, [r6, #SIO_INTERP0_CTRL_LANE0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r4, [r6, #SIO_INTERP0_CTRL_LANE0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
// interp_configure_with_signed_and_cross_input // interp_configure_with_signed_and_cross_input
ldr r4, =# ((AUDIO_UPSAMPLE_SCALE_BITS - 8) << SIO_INTERP0_CTRL_LANE1_SHIFT_LSB) | (0 << SIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB) | (7 << SIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE1_SIGNED_BITS | SIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS ldr r4, =((AUDIO_UPSAMPLE_SCALE_BITS - 8) << SIO_INTERP0_CTRL_LANE1_SHIFT_LSB) | (0 << SIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB) | (7 << SIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE1_SIGNED_BITS | SIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS
str r4, [r6, #SIO_INTERP0_CTRL_LANE1_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r4, [r6, #SIO_INTERP0_CTRL_LANE1_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
str r0, [r6, #SIO_INTERP0_BASE2_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r0, [r6, #SIO_INTERP0_BASE2_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
movs r0, #0 movs r0, #0
@ -196,12 +196,12 @@ audio_upsample_double:
lsls r2, #2 lsls r2, #2
mov ip, r1 mov ip, r1
add ip, r2 add ip, r2
ldr r6, =#SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET ldr r6, =SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET
// interp_configure_with_signed_and_blend // interp_configure_with_signed_and_blend
ldr r4, =# ((AUDIO_UPSAMPLE_SCALE_BITS - 1) << SIO_INTERP0_CTRL_LANE0_SHIFT_LSB) | (1 << SIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB) | ((24 - AUDIO_UPSAMPLE_SCALE_BITS) << SIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE0_BLEND_BITS ldr r4, =((AUDIO_UPSAMPLE_SCALE_BITS - 1) << SIO_INTERP0_CTRL_LANE0_SHIFT_LSB) | (1 << SIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB) | ((24 - AUDIO_UPSAMPLE_SCALE_BITS) << SIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE0_BLEND_BITS
str r4, [r6, #SIO_INTERP0_CTRL_LANE0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r4, [r6, #SIO_INTERP0_CTRL_LANE0_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
// interp_configure_with_signed_and_cross_input // interp_configure_with_signed_and_cross_input
ldr r4, =# ((AUDIO_UPSAMPLE_SCALE_BITS - 8) << SIO_INTERP0_CTRL_LANE1_SHIFT_LSB) | (0 << SIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB) | (7 << SIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE1_SIGNED_BITS | SIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS ldr r4, =((AUDIO_UPSAMPLE_SCALE_BITS - 8) << SIO_INTERP0_CTRL_LANE1_SHIFT_LSB) | (0 << SIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB) | (7 << SIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB) | SIO_INTERP0_CTRL_LANE1_SIGNED_BITS | SIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS
str r4, [r6, #SIO_INTERP0_CTRL_LANE1_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r4, [r6, #SIO_INTERP0_CTRL_LANE1_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
str r0, [r6, #SIO_INTERP0_BASE2_OFFSET - SIO_INTERP0_ACCUM0_OFFSET] str r0, [r6, #SIO_INTERP0_BASE2_OFFSET - SIO_INTERP0_ACCUM0_OFFSET]
movs r0, #0 movs r0, #0

Wyświetl plik

@ -20,19 +20,19 @@ public:
typedef _sample_t sample_t; typedef _sample_t sample_t;
}; };
typedef struct : public FmtDetails<uint8_t> { struct FmtU8 : public FmtDetails<uint8_t> {
} FmtU8; };
typedef struct : public FmtDetails<int8_t> { struct FmtS8 : public FmtDetails<int8_t> {
} FmtS8; };
typedef struct : public FmtDetails<uint16_t> { struct FmtU16 : public FmtDetails<uint16_t> {
} FmtU16; };
typedef struct : public FmtDetails<int16_t> { struct FmtS16 : public FmtDetails<int16_t> {
} FmtS16; };
// Multi channel is just N samples back to back // Multi-channel is just N samples back to back
template<typename Fmt, uint ChannelCount> template<typename Fmt, uint ChannelCount>
struct MultiChannelFmt { struct MultiChannelFmt {
static const uint channel_count = ChannelCount; static const uint channel_count = ChannelCount;

Wyświetl plik

@ -92,7 +92,7 @@
.macro shuffle_7_bytes_to_8 tmp_a tmp_b .macro shuffle_7_bytes_to_8 tmp_a tmp_b
#ifndef VIDEO_DBI #ifndef VIDEO_DBI
ldr \tmp_b, =#0xff018401 ldr \tmp_b, =0xff018401
lsls \tmp_a, \tmp_b, #16 lsls \tmp_a, \tmp_b, #16
ands \tmp_b, r_bottom ands \tmp_b, r_bottom
ands \tmp_a, r_top ands \tmp_a, r_top
@ -107,7 +107,7 @@
orrs \tmp_b, \tmp_a orrs \tmp_b, \tmp_a
orrs r_bottom, \tmp_b orrs r_bottom, \tmp_b
#else #else
ldr \tmp_b, =#0xff210821 ldr \tmp_b, =0xff210821
lsls \tmp_a, \tmp_b, #16 lsls \tmp_a, \tmp_b, #16
ands \tmp_b, r_bottom ands \tmp_b, r_bottom
ands \tmp_a, r_top ands \tmp_a, r_top
@ -203,7 +203,7 @@
subs r1, r_output subs r1, r_output
mov r_row_delta, r1 mov r_row_delta, r1
// todo assert r_interps is r1 // todo assert r_interps is r1
ldr r_interps, =#SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET ldr r_interps, =SIO_BASE + SIO_INTERP0_ACCUM0_OFFSET
// todo assert r_source is r2 // todo assert r_source is r2
mov r_output_end, r3 mov r_output_end, r3

Wyświetl plik

@ -14,8 +14,8 @@
static_assert(8 == sizeof(spdif_subframe_t), ""); static_assert(8 == sizeof(spdif_subframe_t), "");
// subframe within SPDIF // subframe within SPDIF
typedef struct : public FmtDetails<spdif_subframe_t> { struct FmtSPDIF : public FmtDetails<spdif_subframe_t> {
} FmtSPDIF; };
template<typename FromFmt> template<typename FromFmt>
struct converting_copy<Stereo<FmtSPDIF>, Stereo<FromFmt>> { struct converting_copy<Stereo<FmtSPDIF>, Stereo<FromFmt>> {

Wyświetl plik

@ -10,4 +10,13 @@ if (TARGET pico_scanvideo)
target_include_directories(pico_scanvideo_dpi INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include) target_include_directories(pico_scanvideo_dpi INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include)
target_compile_definitions(pico_scanvideo_dpi INTERFACE VIDEO_DPI) target_compile_definitions(pico_scanvideo_dpi INTERFACE VIDEO_DPI)
target_link_libraries(pico_scanvideo_dpi INTERFACE hardware_dma hardware_pio hardware_irq pico_scanvideo) target_link_libraries(pico_scanvideo_dpi INTERFACE hardware_dma hardware_pio hardware_irq pico_scanvideo)
if (PICO_C_COMPILER_IS_CLANG)
# Clang does not support optimize pragma
set_source_files_properties(
${CMAKE_CURRENT_LIST_DIR}/scanvideo.c
PROPERTIES
COMPILE_OPTIONS "-O3"
)
endif()
endif() endif()

Wyświetl plik

@ -4,17 +4,18 @@
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#pragma GCC push_options #include <stdlib.h>
#include <stdio.h>
#include "pico.h"
GCC_Pragma("GCC push_options")
#if !PICO_SCANVIDEO_DEBUG_IMPL #if !PICO_SCANVIDEO_DEBUG_IMPL
#undef PARAM_ASSERTIONS_DISABLE_ALL #undef PARAM_ASSERTIONS_DISABLE_ALL
#define PARAM_ASSERTIONS_DISABLE_ALL 1 #define PARAM_ASSERTIONS_DISABLE_ALL 1
#pragma GCC optimize("O3") GCC_Pragma("GCC optimize(\"O3\")")
#endif #endif
#include <stdlib.h>
#include <stdio.h>
#include "pico/platform.h"
#include "pico/sem.h" #include "pico/sem.h"
#include "pico/util/buffer.h" #include "pico/util/buffer.h"
#include "hardware/clocks.h" #include "hardware/clocks.h"
@ -1855,4 +1856,4 @@ void validate_scanline(const uint32_t *dma_data, uint dma_data_size,
} }
#endif #endif
#pragma GCC pop_options GCC_Pragma("GCC pop_options")