Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/include Extend vfpreg to include all 32 64-bit ...



details:   https://anonhg.NetBSD.org/src/rev/c2aba671e019
branches:  trunk
changeset: 783144:c2aba671e019
user:      matt <matt%NetBSD.org@localhost>
date:      Fri Dec 07 18:49:13 2012 +0000

description:
Extend vfpreg to include all 32 64-bit FP registers.
For __ARM_EABI__, define __vfp_fstmx to have space for all 32 32-bit
FP registers (It's a newly supported ABI so we can "break" binary
compatibility.

diffstat:

 sys/arch/arm/include/mcontext.h |  8 +++++++-
 sys/arch/arm/include/reg.h      |  4 ++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diffs (43 lines):

diff -r cefb448d398d -r c2aba671e019 sys/arch/arm/include/mcontext.h
--- a/sys/arch/arm/include/mcontext.h   Fri Dec 07 18:48:54 2012 +0000
+++ b/sys/arch/arm/include/mcontext.h   Fri Dec 07 18:49:13 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mcontext.h,v 1.12 2012/12/05 19:05:46 matt Exp $       */
+/*     $NetBSD: mcontext.h,v 1.13 2012/12/07 18:49:13 matt Exp $       */
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -76,9 +76,15 @@
 } __fpregset_t;
 
 typedef struct {
+#ifdef __ARM_EABI__
+       unsigned int    __vfp_fpscr;
+       uint64_t        __vfp_fstmx[32];
+       unsigned int    __vfp_fpsid;
+#else
        unsigned int    __vfp_fpscr;
        unsigned int    __vfp_fstmx[33];
        unsigned int    __vfp_fpsid;
+#endif
 } __vfpregset_t;
 
 typedef struct {
diff -r cefb448d398d -r c2aba671e019 sys/arch/arm/include/reg.h
--- a/sys/arch/arm/include/reg.h        Fri Dec 07 18:48:54 2012 +0000
+++ b/sys/arch/arm/include/reg.h        Fri Dec 07 18:49:13 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: reg.h,v 1.3 2012/12/05 19:05:46 matt Exp $     */
+/*     $NetBSD: reg.h,v 1.4 2012/12/07 18:49:13 matt Exp $     */
 
 /*
  * Copyright (C) 1994, 1995 Frank Lancaster
@@ -51,7 +51,7 @@
        uint32_t vfp_fpscr;
        uint32_t vfp_fpinst;
        uint32_t vfp_fpinst2;
-       uint32_t vfp_regs[33];  /* In case we need fstmx format.  */
+       uint64_t vfp_regs[33];  /* In case we need fstmx format.  */
 };
 
 struct fpreg {



Home | Main Index | Thread Index | Old Index