diff options
author | Greg Ungerer <gerg@uclinux.org> | 2011-10-14 14:43:30 +1000 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2011-12-30 10:20:21 +1000 |
commit | e08d703cc2ab6e47dbd10a74eb029f7dfa93d71d (patch) | |
tree | f81a41ca2a92ed39a723b024b984d220373e6e01 /arch/m68k/include/asm/segment.h | |
parent | 2c9b82adb5ea65745d5d73d97bb0e1cc16cba4a0 (diff) | |
download | linux-e08d703cc2ab6e47dbd10a74eb029f7dfa93d71d.tar.gz linux-e08d703cc2ab6e47dbd10a74eb029f7dfa93d71d.tar.bz2 linux-e08d703cc2ab6e47dbd10a74eb029f7dfa93d71d.zip |
m68k: modify user space access functions to support ColdFire CPUs
Modify the user space access functions to support the ColdFire V4e cores
running with MMU enabled.
The ColdFire processors do not support the "moves" instruction used by
the traditional 680x0 processors for moving data into and out of another
address space. They only support the notion of a single address space,
and you use the usual "move" instruction to access that.
Create a new config symbol (CONFIG_CPU_HAS_ADDRESS_SPACES) to mark the
CPU types that support separate address spaces, and thus also support
the sfc/dfc registers and the "moves" instruction that go along with that.
The code is almost identical for user space access, so lets just use a
define to choose either the "move" or "moves" in the assembler code.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Acked-by: Matt Waddel <mwaddel@yahoo.com>
Acked-by: Kurt Mahan <kmahan@xmission.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68k/include/asm/segment.h')
-rw-r--r-- | arch/m68k/include/asm/segment.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/m68k/include/asm/segment.h b/arch/m68k/include/asm/segment.h index ee959219fdfe..1a142e9ceaad 100644 --- a/arch/m68k/include/asm/segment.h +++ b/arch/m68k/include/asm/segment.h @@ -31,7 +31,7 @@ typedef struct { static inline mm_segment_t get_fs(void) { -#ifdef CONFIG_MMU +#ifdef CONFIG_CPU_HAS_ADDRESS_SPACES mm_segment_t _v; __asm__ ("movec %/dfc,%0":"=r" (_v.seg):); @@ -49,7 +49,7 @@ static inline mm_segment_t get_ds(void) static inline void set_fs(mm_segment_t val) { -#ifdef CONFIG_MMU +#ifdef CONFIG_CPU_HAS_ADDRESS_SPACES __asm__ __volatile__ ("movec %0,%/sfc\n\t" "movec %0,%/dfc\n\t" : /* no outputs */ : "r" (val.seg) : "memory"); |