mirror of https://github.com/snes9xgit/snes9x.git
port.h: Make READ_DWORD a real function instead of a macro
This commit is contained in:
parent
4d6bbf85f9
commit
a8f4390dd1
|
@ -189,7 +189,6 @@
|
|||
***********************************************************************************/
|
||||
|
||||
|
||||
#undef READ_DWORD(s)
|
||||
#undef WRITE_DWORD(s, d)
|
||||
|
||||
#define ZLIB
|
||||
|
|
21
port.h
21
port.h
|
@ -423,11 +423,28 @@ static inline void WRITE_3WORD(uint8 *out, uint32 in)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline uint32 READ_DWORD(uint8 *in)
|
||||
{
|
||||
union DWORD out;
|
||||
|
||||
#if defined(LSB_FIRST)
|
||||
out.u8[0] = in[0];
|
||||
out.u8[1] = in[1];
|
||||
out.u8[2] = in[2];
|
||||
out.u8[3] = in[3];
|
||||
#else
|
||||
out.u8[0] = in[3];
|
||||
out.u8[1] = in[2];
|
||||
out.u8[2] = in[1];
|
||||
out.u8[3] = in[0];
|
||||
#endif
|
||||
|
||||
return (out.u32);
|
||||
}
|
||||
|
||||
#ifdef FAST_LSB_WORD_ACCESS
|
||||
#define READ_DWORD(s) (*(uint32 *) (s))
|
||||
#define WRITE_DWORD(s, d) *(uint32 *) (s) = (d)
|
||||
#else
|
||||
#define READ_DWORD(s) (*(uint8 *) (s) | (*((uint8 *) (s) + 1) << 8) | (*((uint8 *) (s) + 2) << 16) | (*((uint8 *) (s) + 3) << 24))
|
||||
#define WRITE_DWORD(s, d) *(uint8 *) (s) = (uint8) (d), *((uint8 *) (s) + 1) = (uint8) ((d) >> 8), *((uint8 *) (s) + 2) = (uint8) ((d) >> 16), *((uint8 *) (s) + 3) = (uint8) ((d) >> 24)
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue