mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 09:43:38 +00:00
33 lines
1.6 KiB
C
33 lines
1.6 KiB
C
#ifndef GUARD_GBA_CPUSET_MACROS_H
|
|
#define GUARD_GBA_CPUSET_MACROS_H
|
|
|
|
#define CPU_FILL(value, dest, size, bit) \
|
|
{ \
|
|
vu##bit tmp = (vu##bit)(value); \
|
|
CpuSet((void *)&tmp, \
|
|
dest, \
|
|
CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \
|
|
}
|
|
|
|
#define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16)
|
|
#define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32)
|
|
|
|
#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF))
|
|
|
|
#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16)
|
|
#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32)
|
|
|
|
#define CpuFastFill(value, dest, size) \
|
|
{ \
|
|
volatile uintptr_t tmp = (volatile uintptr_t)(value); \
|
|
CpuFastSet((void *)&tmp, \
|
|
dest, \
|
|
CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \
|
|
}
|
|
|
|
#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size))
|
|
|
|
#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF))
|
|
|
|
#endif // GUARD_GBA_CPUSET_MACROS_H
|