summaryrefslogtreecommitdiff
path: root/src/code/code_801068B0.c
blob: bf3ae57447aba2e86acd0e5f3220dc3b97f96ba2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <ultra64.h>
#include <global.h>

// memcpy used in __osMalloc.c
void* func_801068B0(void* dst, void* src, size_t size) {
    u8* spC;
    u8* sp8;
    register s32 a3;

    spC = dst;
    sp8 = src;

    if (spC == sp8) {
        return dst;
    }
    if (spC < sp8) {
        for (a3 = size--; a3 != 0; a3 = size--) {
            *spC++ = *sp8++;
        }
    } else {
        spC += size - 1;
        sp8 += size - 1;
        for (a3 = size--; a3 != 0; a3 = size--) {
            *spC-- = *sp8--;
        }
    }
    return dst;
}