[common] fix compilation on clang

This commit is contained in:
Geoffrey McRae 2023-11-19 03:20:34 +11:00
parent 3330f83af6
commit 584de4133f
2 changed files with 22 additions and 6 deletions

View File

@ -225,8 +225,12 @@ static bool framebuffer_write_sse4_1(FrameBuffer * frame,
return true; return true;
} }
#ifdef __clang__
#pragma clang attribute push (__attribute__((target("avx2"))), apply_to=function)
#else
#pragma GCC push_options #pragma GCC push_options
#pragma GCC target ("avx2") #pragma GCC target ("avx2")
#endif
bool framebuffer_write_avx2(FrameBuffer * frame, bool framebuffer_write_avx2(FrameBuffer * frame,
const void * restrict src, size_t size) const void * restrict src, size_t size)
{ {
@ -303,7 +307,11 @@ bool framebuffer_write_avx2(FrameBuffer * frame,
return true; return true;
} }
#ifdef __clang__
#pragma clang attribute pop
#else
#pragma GCC pop_options #pragma GCC pop_options
#endif
static bool _framebuffer_write(FrameBuffer * frame, static bool _framebuffer_write(FrameBuffer * frame,
const void * restrict src, size_t size) const void * restrict src, size_t size)

View File

@ -314,8 +314,12 @@ static void rectCopyUnaligned_memcpy(uint8_t * dst, const uint8_t * src,
} }
} }
#ifdef __clang__
#pragma clang attribute push (__attribute__((target("avx"))), apply_to=function)
#else
#pragma GCC push_options #pragma GCC push_options
#pragma GCC target ("avx2") #pragma GCC target ("avx")
#endif
static void rectCopyUnaligned_avx(uint8_t * dst, const uint8_t * src, static void rectCopyUnaligned_avx(uint8_t * dst, const uint8_t * src,
int ystart, int yend, int dx, int dstPitch, int srcPitch, int width) int ystart, int yend, int dx, int dstPitch, int srcPitch, int width)
{ {
@ -338,7 +342,11 @@ static void rectCopyUnaligned_avx(uint8_t * dst, const uint8_t * src,
dst += dstPitch; dst += dstPitch;
} }
} }
#ifdef __clang__
#pragma clang attribute pop
#else
#pragma GCC pop_options #pragma GCC pop_options
#endif
static void _rectCopyUnaligned(uint8_t * dst, const uint8_t * src, static void _rectCopyUnaligned(uint8_t * dst, const uint8_t * src,
int ystart, int yend, int dx, int dstPitch, int srcPitch, int width) int ystart, int yend, int dx, int dstPitch, int srcPitch, int width)