mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 13:22:23 +00:00
95b781c239
This adds support for unaligned loads on SH-4A, using the SH-4A's neutered movua.l instruction. As movua.l is r0-inspired, stores are still handled through the packed struct. Based on asm-generic/unaligned.h by Harvey Harrison. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
25 lines
733 B
C
25 lines
733 B
C
#ifndef _ASM_SH_UNALIGNED_H
|
|
#define _ASM_SH_UNALIGNED_H
|
|
|
|
#ifdef CONFIG_CPU_SH4A
|
|
/* SH-4A can handle unaligned loads in a relatively neutered fashion. */
|
|
#include <asm/unaligned-sh4a.h>
|
|
#else
|
|
/* Otherwise, SH can't handle unaligned accesses. */
|
|
#ifdef __LITTLE_ENDIAN__
|
|
# include <linux/unaligned/le_struct.h>
|
|
# include <linux/unaligned/be_byteshift.h>
|
|
# include <linux/unaligned/generic.h>
|
|
# define get_unaligned __get_unaligned_le
|
|
# define put_unaligned __put_unaligned_le
|
|
#else
|
|
# include <linux/unaligned/be_struct.h>
|
|
# include <linux/unaligned/le_byteshift.h>
|
|
# include <linux/unaligned/generic.h>
|
|
# define get_unaligned __get_unaligned_be
|
|
# define put_unaligned __put_unaligned_be
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* _ASM_SH_UNALIGNED_H */
|