Don't duplicate byteswap code. Invent system where NEED_GENERIC_BYTESWAPS is set if the generic functions from system.h are needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27440 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c272144867
commit
6d732a32bc
|
@ -241,9 +241,10 @@ enum {
|
|||
#include "system-target.h"
|
||||
#elif defined(HAVE_SDL) /* SDL build */
|
||||
#include "system-sdl.h"
|
||||
#define NEED_GENERIC_BYTESWAPS
|
||||
#endif
|
||||
|
||||
#if (CONFIG_PLATFORM & PLATFORM_HOSTED)
|
||||
#ifdef NEED_GENERIC_BYTESWAPS
|
||||
static inline uint16_t swap16(uint16_t value)
|
||||
/*
|
||||
result[15..8] = value[ 7..0];
|
||||
|
@ -276,7 +277,7 @@ static inline uint32_t swap_odd_even32(uint32_t value)
|
|||
return (t >> 8) | ((t ^ value) << 8);
|
||||
}
|
||||
|
||||
#endif /* PLATFORM_HOSTED */
|
||||
#endif /* NEED_GENERIC_BYTESWAPS */
|
||||
|
||||
#ifndef BIT_N
|
||||
#define BIT_N(n) (1U << (n))
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
#include "system-sdl.h"
|
||||
|
||||
#define NEED_GENERIC_BYTESWAPS
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@
|
|||
#define CACHE_LINE_SIZE 32
|
||||
#include "mmu-mips.h"
|
||||
|
||||
/* no optimized byteswap functions implemented for mips, yet */
|
||||
#define NEED_GENERIC_BYTESWAPS
|
||||
|
||||
/* This one returns the old status */
|
||||
static inline int set_interrupt_status(int status, int mask)
|
||||
{
|
||||
|
@ -73,29 +76,6 @@ static inline void restore_interrupt(int status)
|
|||
#define set_irq_level(status) set_interrupt_status((status), ST0_IE)
|
||||
#define disable_irq_save() disable_interrupt_save(ST0_IE)
|
||||
#define restore_irq(c0_status) restore_interrupt(c0_status)
|
||||
|
||||
static inline uint16_t swap16(uint16_t value)
|
||||
/*
|
||||
result[15..8] = value[ 7..0];
|
||||
result[ 7..0] = value[15..8];
|
||||
*/
|
||||
{
|
||||
return (value >> 8) | (value << 8);
|
||||
}
|
||||
|
||||
static inline uint32_t swap32(uint32_t value)
|
||||
/*
|
||||
result[31..24] = value[ 7.. 0];
|
||||
result[23..16] = value[15.. 8];
|
||||
result[15.. 8] = value[23..16];
|
||||
result[ 7.. 0] = value[31..24];
|
||||
*/
|
||||
{
|
||||
uint32_t hi = swap16(value >> 16);
|
||||
uint32_t lo = swap16(value & 0xffff);
|
||||
return (lo << 16) | hi;
|
||||
}
|
||||
|
||||
#define UNCACHED_ADDRESS(addr) ((unsigned int)(addr) | 0xA0000000)
|
||||
#define UNCACHED_ADDR(x) UNCACHED_ADDRESS((x))
|
||||
#define PHYSADDR(x) ((x) & 0x1fffffff)
|
||||
|
|
Loading…
Reference in New Issue