Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into mailbox_integration
This commit is contained in:
commit
105cc84303
4 changed files with 22 additions and 5 deletions
|
@ -41,8 +41,8 @@
|
|||
|
||||
void* iRCCE_memcpy_get(void *dest, const void *src, size_t count)
|
||||
{
|
||||
#ifdef COPPERRIDGE
|
||||
return memcpy_from_mpb(dest, src, count);
|
||||
#if defined(COPPERRIDGE) || defined(SCC)
|
||||
return memcpy_get(dest, src, count);
|
||||
#else
|
||||
return memcpy(dest, src, count);
|
||||
#endif
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
|
||||
void* iRCCE_memcpy_put(void *dest, const void *src, size_t count)
|
||||
{
|
||||
#ifdef COPPERRIDGE
|
||||
return memcpy_to_mpb(dest, src, count);
|
||||
#if defined(COPPERRIDGE) || defined(SCC)
|
||||
return memcpy_put(dest, src, count);
|
||||
#else
|
||||
return memcpy(dest, src, count);
|
||||
#endif
|
||||
|
|
|
@ -90,7 +90,23 @@ inline static void *memcpy_get(void *dest, const void *src, size_t count)
|
|||
* In our kernel, we didn't want to use FPU registers.
|
||||
* Therefore, we use standard memcpy routine
|
||||
*/
|
||||
#define memcpy_put memcpy
|
||||
inline static void *memcpy_put(void* dest, const void *src, size_t count)
|
||||
{
|
||||
int32_t i, j, k;
|
||||
|
||||
if (BUILTIN_EXPECT(!dest || !src, 0))
|
||||
return dest;
|
||||
|
||||
asm volatile (
|
||||
"cld; rep movsl\n\t"
|
||||
"movl %4, %%ecx\n\t"
|
||||
"andl $3, %%ecx\n\t"
|
||||
"rep movsb\n\t"
|
||||
: "=&c"(i), "=&D"(j), "=&S"(k)
|
||||
: "0"(count/4), "g"(count), "1"(dest), "2"(src) : "memory");
|
||||
|
||||
return dest;
|
||||
}
|
||||
#else
|
||||
/** @brief Fast procedure to get a byte range from on-die memory into RAM.
|
||||
*
|
||||
|
|
|
@ -60,6 +60,7 @@ extern "C" {
|
|||
|
||||
// RCCE specific flags
|
||||
#define SCC
|
||||
#define COPPERRIDGE
|
||||
#define MS_BAREMETAL
|
||||
//#define GORY
|
||||
#define SHMADD
|
||||
|
|
Loading…
Add table
Reference in a new issue