mirror of
https://github.com/libretro/mgba.git
synced 2024-11-24 08:30:30 +00:00
PowerPC: Fix potential register clobbering in LOAD_64LE
This commit is contained in:
parent
ed99f8b925
commit
064530e056
@ -119,13 +119,13 @@ typedef intptr_t ssize_t;
|
||||
#define STORE_32LE(SRC, ADDR, ARR) { \
|
||||
uint32_t _addr = (ADDR); \
|
||||
void* _ptr = (ARR); \
|
||||
__asm__("stwbrx %0, %1, %2" : : "r"(SRC), "b"(_ptr), "r"(_addr)); \
|
||||
__asm__("stwbrx %0, %1, %2" : : "r"(SRC), "b"(_ptr), "r"(_addr) : "memory"); \
|
||||
}
|
||||
|
||||
#define STORE_16LE(SRC, ADDR, ARR) { \
|
||||
uint32_t _addr = (ADDR); \
|
||||
void* _ptr = (ARR); \
|
||||
__asm__("sthbrx %0, %1, %2" : : "r"(SRC), "b"(_ptr), "r"(_addr)); \
|
||||
__asm__("sthbrx %0, %1, %2" : : "r"(SRC), "b"(_ptr), "r"(_addr) : "memory"); \
|
||||
}
|
||||
|
||||
#define LOAD_64LE(DEST, ADDR, ARR) { \
|
||||
@ -141,7 +141,7 @@ typedef intptr_t ssize_t;
|
||||
__asm__( \
|
||||
"lwbrx %0, %2, %3 \n" \
|
||||
"lwbrx %1, %2, %4 \n" \
|
||||
: "=r"(bswap->lo), "=r"(bswap->hi) : "b"(_ptr), "r"(_addr), "r"(_addr + 4)); \
|
||||
: "=&r"(bswap->lo), "=&r"(bswap->hi) : "b"(_ptr), "r"(_addr), "r"(_addr + 4)) ; \
|
||||
}
|
||||
|
||||
#define STORE_64LE(SRC, ADDR, ARR) { \
|
||||
@ -157,7 +157,7 @@ typedef intptr_t ssize_t;
|
||||
__asm__( \
|
||||
"stwbrx %0, %2, %3 \n" \
|
||||
"stwbrx %1, %2, %4 \n" \
|
||||
: : "r"(bswap->hi), "r"(bswap->lo), "b"(_ptr), "r"(_addr), "r"(_addr + 4)); \
|
||||
: : "r"(bswap->hi), "r"(bswap->lo), "b"(_ptr), "r"(_addr), "r"(_addr + 4) : "memory"); \
|
||||
}
|
||||
|
||||
#elif defined(__llvm__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
|
||||
|
Loading…
Reference in New Issue
Block a user