Files
2025-12-03 11:12:34 +08:00

155 lines
2.1 KiB
C

#include "ui/ui_basic.h"
#include "ui/ui_type.h"
#define SET32(x) *d32 = x; d32++;
AT_UI_SIM_RAM
void _memset(void *dst, u8 v, u32 len)
{
#if 1
memset(dst, v, len);
#else
u8 *d8 = (u8 *) dst;
u32 d_align = (u32) d8 & ALIGN_MASK;
memset(dst, v, len);
return;
if (d_align) {
d_align = ALIGN_MASK + 1 - d_align;
while (d_align && len) {
*d8 = v;
d8++;
len--;
d_align--;
}
}
u32 v32 = v + (v << 8) + (v << 16) + (v << 24);
u32 *d32 = (u32 *)d8;
while (len > 32) {
SET32(v32);
SET32(v32);
SET32(v32);
SET32(v32);
SET32(v32);
SET32(v32);
SET32(v32);
SET32(v32);
len -= 32;
}
while (len > 4) {
SET32(v32);
len -= 4;
}
d8 = (u8 *)d32;
while (len) {
*d8 = v;
d8++;
len--;
}
#endif // 1
}
AT_UI_SIM_RAM
void _memset_ff(void *dst, u32 len)
{
#if 1
memset(dst, 0xff, len);
#else
u8 *d8 = (u8 *) dst;
u32 d_align = (u32) d8 & ALIGN_MASK;
memset(dst, 0xff, len);
if (d_align) {
d_align = ALIGN_MASK + 1 - d_align;
while (d_align && len) {
*d8 = 0xFF;
d8++;
len--;
d_align--;
}
}
u32 *d32 = (u32 *)d8;
while (len > 32) {
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
SET32(0xFFFFFFFF);
len -= 32;
}
while (len > 4) {
SET32(0xFFFFFFFF);
len -= 4;
}
d8 = (u8 *)d32;
while (len) {
*d8 = 0xFF;
d8++;
len--;
}
#endif // 1
}
AT_UI_SIM_RAM
void _memset_00(void *dst, u32 len)
{
#if 1
memset(dst, 0, len);
#else
u8 *d8 = (u8 *) dst;
u32 d_align = (u32) d8 & ALIGN_MASK;
memset(dst, 0x00, len);
return;
if (d_align) {
d_align = ALIGN_MASK + 1 - d_align;
while (d_align && len) {
*d8 = 0x00;
d8++;
len--;
d_align--;
}
}
u32 *d32 = (u32 *)d8;
while (len > 32) {
SET32(0);
SET32(0);
SET32(0);
SET32(0);
SET32(0);
SET32(0);
SET32(0);
SET32(0);
len -= 32;
}
while (len > 4) {
SET32(0);
len -= 4;
}
d8 = (u8 *)d32;
while (len) {
*d8 = 0;
d8++;
len--;
}
#endif // 1
}