summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2006-04-10 21:32:42 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-04-10 21:32:42 +0100
commitbb54a335ae6d282a4f177c7b35cd149aa9b0b9be (patch)
tree66dc46a556ab5a11748a42a069b45aa32c4c126a
parent1320a80d1d2587545f39bc0d2dc3adaf390250ef (diff)
downloadlinux-bb54a335ae6d282a4f177c7b35cd149aa9b0b9be.tar.gz
linux-bb54a335ae6d282a4f177c7b35cd149aa9b0b9be.tar.bz2
linux-bb54a335ae6d282a4f177c7b35cd149aa9b0b9be.zip
[ARM] 3472/1: Use the D variants of FLDMIA/FSTMIA on ARMv6
Patch from Catalin Marinas The X variants are deprecated starting with ARMv6. Using the D variants, the fpmx_state in vfp_hard_struct is no longer needed. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--include/asm-arm/fpstate.h2
-rw-r--r--include/asm-arm/vfpmacros.h8
2 files changed, 10 insertions, 0 deletions
diff --git a/include/asm-arm/fpstate.h b/include/asm-arm/fpstate.h
index 6246bf83627d..52bae088a185 100644
--- a/include/asm-arm/fpstate.h
+++ b/include/asm-arm/fpstate.h
@@ -26,7 +26,9 @@
struct vfp_hard_struct {
__u64 fpregs[16];
+#if __LINUX_ARM_ARCH__ < 6
__u32 fpmx_state;
+#endif
__u32 fpexc;
__u32 fpscr;
/*
diff --git a/include/asm-arm/vfpmacros.h b/include/asm-arm/vfpmacros.h
index 15bd6e74c9cf..27fe028b4e72 100644
--- a/include/asm-arm/vfpmacros.h
+++ b/include/asm-arm/vfpmacros.h
@@ -16,10 +16,18 @@
@ read all the working registers back into the VFP
.macro VFPFLDMIA, base
+#if __LINUX_ARM_ARCH__ < 6
LDC p11, cr0, [\base],#33*4 @ FLDMIAX \base!, {d0-d15}
+#else
+ LDC p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d0-d15}
+#endif
.endm
@ write all the working registers out of the VFP
.macro VFPFSTMIA, base
+#if __LINUX_ARM_ARCH__ < 6
STC p11, cr0, [\base],#33*4 @ FSTMIAX \base!, {d0-d15}
+#else
+ STC p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d0-d15}
+#endif
.endm