mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-19 14:19:58 +01:00
WIP
This commit is contained in:
@@ -581,32 +581,6 @@ void packed_plane_clear( size_t len, void *to )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void *memset_64(void *ptr, int value, size_t num) {
|
|
||||||
uint8_t *dest = (uint8_t *)ptr;
|
|
||||||
uint8_t byte_value = (uint8_t)value;
|
|
||||||
size_t num_bytes = num;
|
|
||||||
|
|
||||||
size_t num_words = num_bytes / sizeof(size_t);
|
|
||||||
size_t remainder = num_bytes % sizeof(size_t);
|
|
||||||
size_t pattern = 0;
|
|
||||||
|
|
||||||
for (size_t i = 0; i < sizeof(size_t); i++) {
|
|
||||||
pattern = (pattern << 8) | byte_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < num_words; i++) {
|
|
||||||
*((size_t *)(dest + i * sizeof(size_t))) = pattern;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < remainder; i++) {
|
|
||||||
dest[num_words * sizeof(size_t) + i] = byte_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#if defined (__SSE4_1__)
|
#if defined (__SSE4_1__)
|
||||||
static void *sse41_memcpy(void *to, const void *from, size_t len) {
|
static void *sse41_memcpy(void *to, const void *from, size_t len) {
|
||||||
void *retval = to;
|
void *retval = to;
|
||||||
@@ -2091,6 +2065,30 @@ void memset_asimd_32(uint8_t *dst, uint8_t value, size_t size) {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void *memset_64(void *ptr, int value, size_t num) {
|
||||||
|
uint8_t *dest = (uint8_t *)ptr;
|
||||||
|
uint8_t byte_value = (uint8_t)value;
|
||||||
|
size_t num_bytes = num;
|
||||||
|
|
||||||
|
size_t num_words = num_bytes / sizeof(size_t);
|
||||||
|
size_t remainder = num_bytes % sizeof(size_t);
|
||||||
|
size_t pattern = 0;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < sizeof(size_t); i++) {
|
||||||
|
pattern = (pattern << 8) | byte_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < num_words; i++) {
|
||||||
|
*((size_t *)(dest + i * sizeof(size_t))) = pattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < remainder; i++) {
|
||||||
|
dest[num_words * sizeof(size_t) + i] = byte_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
const char *name;
|
const char *name;
|
||||||
void *(*function)(void *to, const void *from, size_t len);
|
void *(*function)(void *to, const void *from, size_t len);
|
||||||
|
|||||||
Reference in New Issue
Block a user