初版
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
#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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user