fix: cat 指令的输出问题

This commit is contained in:
KAAAsS 2022-04-21 23:22:29 +08:00
parent 21ac9ce01e
commit e9967889a0
Signed by: KAAAsS
GPG Key ID: D22F53AF662411FE
2 changed files with 5 additions and 2 deletions
lab5/user
lab5/apps
lib

@ -453,8 +453,6 @@ int fs_read_all(char *path, void **ret_buf)
if (cur < 0) {
return cur;
}
// FIXME: 此处在 Release 模式下第一次读取前 16 字节为空
memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur);
pos += cur;
buf += cur;

@ -12,6 +12,10 @@ void memset(void *dst, int c, u64 len)
}
}
// FIXME: 此处 workaround 用于避免 GCC 插入 SIMD 指令使用未被备份的寄存器导致程序问题
// See also: https://ipads.se.sjtu.edu.cn/mospi/discussion/d/205-memcpy-gcc
#pragma GCC push_options
#pragma GCC optimize("O0")
void memcpy(void *dst, const void *src, u64 len)
{
u64 i = 0;
@ -19,6 +23,7 @@ void memcpy(void *dst, const void *src, u64 len)
((u8 *) dst)[i] = ((u8 *) src)[i];
}
}
#pragma GCC pop_options
int memcmp(const void *s1, const void *s2, size_t n)
{