unaligned: wire up h8300 and m32r arches
PATCH 5/7 unaligned: wire up h8300 and m32r arches
Provide arch overrides using memmove to avoid any functional changes. At a later time these arches should be able to just use the common header directly, but this is not certain currently.
Signed-off-by Harvey Harrison <[email protected]>
--- arch/h8300/include/asm/unaligned.h | 51 +++++++++++++++++++++++++++--- include/asm-m32r/unaligned.h | 60 ++++++++++++++++++++++++++++-------- 2 files changed, 93 insertions(+), 18 deletions(-)
arch/h8300/include/asm/unaligned.h +46 -5
@@ -1,11 +1,52 @@#ifndef _ASM_H8300_UNALIGNED_H#define _ASM_H8300_UNALIGNED_H -#include <linux/unaligned/be_memmove.h> -#include <linux/unaligned/le_byteshift.h> -#include <linux/unaligned/generic.h> +#include <linux/kernel.h> +#include <linux/string.h> -#define get_unaligned __get_unaligned_be -#define put_unaligned __put_unaligned_be +/* Use memmove here, so gcc does not insert a __builtin_memcpy. */ +static inline u16 __arch_load_cpu16_noalign (const void *p) +{ +u16 tmp; +memmove (&tmp, p,2 ); +return tmp; +} +#define __arch_load_cpu16_noalign __arch_load_cpu16_noalign + +static inline u32 __arch_load_cpu32_noalign (const void *p) +{ +u32 tmp; +memmove (&tmp, p,4 ); +return tmp; +} +#define __arch_load_cpu32_noalign __arch_load_cpu32_noalign + +static inline u64 __arch_load_cpu16_noalign (const void *p) +{ +u64 tmp; +memmove (&tmp, p,8 ); +return tmp; +} +#define __arch_load_cpu64_noalign __arch_load_cpu64_noalign + +static inline void __arch_store_cpu16_noalign (void *p,u16 val) +{ +memmove (p, &val,2 ); +} +#define __arch_store_cpu16_noalign __arch_store_cpu16_noalign + +static inline void __arch_store_cpu32_noalign (void *p,u32 val) +{ +memmove (p, &val,4 ); +} +#define __arch_store_cpu32_noalign __arch_store_cpu32_noalign + +static inline void __arch_store_cpu64_noalign (void *p,u64 val) +{ +memmove (p, &val,8 ); +} +#define __arch_store_cpu64_noalign __arch_store_cpu64_noalign + +#include <linux/unaligned.h> #endif /* _ASM_H8300_UNALIGNED_H */
include/asm-m32r/unaligned.h +47 -13
65 lines not on this page · raw message
Signature · 1 line
1.6.0.4.1044.g77718