From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29524 invoked by alias); 3 Jun 2012 12:57:03 -0000 Received: (qmail 29506 invoked by uid 22791); 3 Jun 2012 12:57:02 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from hagrid.ecoscentric.com (HELO mail.ecoscentric.com) (212.13.207.197) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 03 Jun 2012 12:56:48 +0000 Received: from localhost (hagrid.ecoscentric.com [127.0.0.1]) by mail.ecoscentric.com (Postfix) with ESMTP id 48C9E2F78008 for ; Sun, 3 Jun 2012 13:56:47 +0100 (BST) Received: from mail.ecoscentric.com ([127.0.0.1]) by localhost (hagrid.ecoscentric.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nmcSqWE5HN0G; Sun, 3 Jun 2012 13:56:40 +0100 (BST) From: bugzilla-daemon@bugs.ecos.sourceware.org To: ecos-patches@ecos.sourceware.org Subject: [Bug 1001607] New: Cortex-M4F architectural Floating Point Support X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: eCos X-Bugzilla-Component: Patches and contributions X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: ilijak@siva.com.mk X-Bugzilla-Status: NEW X-Bugzilla-Priority: low X-Bugzilla-Assigned-To: unassigned@bugs.ecos.sourceware.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://bugs.ecos.sourceware.org/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Sun, 03 Jun 2012 12:57:00 -0000 Mailing-List: contact ecos-patches-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-patches-owner@ecos.sourceware.org X-SW-Source: 2012-06/txt/msg00000.txt.bz2 Please do not reply to this email. Use the web interface provided at: http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001607 Summary: Cortex-M4F architectural Floating Point Support Product: eCos Version: CVS Platform: stm3240g_eval (ST STM3240G-EVAL board) OS/Version: Cortex-M Status: NEW Severity: enhancement Priority: low Component: Patches and contributions AssignedTo: unassigned@bugs.ecos.sourceware.org ReportedBy: ilijak@siva.com.mk CC: ecos-patches@ecos.sourceware.org Class: Advice Request Created an attachment (id=1784) --> (http://bugs.ecos.sourceware.org/attachment.cgi?id=1784) Cortex-M4F Floating Point Support 120603 Here I submit architectural floating point support for Cortex-M4F. Floating point operation: Three context saving schemes are available as configurable options: LAZY: Save context only for threads that actually use FP. This scheme provides lower delay penalty for threads that don't use FP but is more complex than the other two as it involves Usage Fault Exception. It is suitable for applications where few threads use FP. ALL : Save FPU context for all threads. This is suitable for applications where all or most threads use hardware FP. Then average context switching delay may be lower than for LAZY. Also worst case delay is smaller than for LAZY. NONE: Do not save FPU context. This is applicable only if maximum one thread uses hardware FP and adds no additional delay compared to standard no FPU operation. The proposed code only supports FPU usage within thread context. FPU in exceptions and interrupts is possible but then the handler must save/restore the FP registers. Such example is the modified _default exception VSR_. This choice is deliberate since saving FPU context during interrupts would add considerable delay penalty (ALL) and/or complexity+penalty (LAZY). GDB STUB: GDB STUB is extended with floating point registers d0..d15 aka s0..s31 as per http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001524 . Testing: Software was tested on Kinetis K70. Testing programs, provided as separate attachments are taken from standard Kernel tests and may be included into if desirable: thread_switch_fpu.cxx - (context switching test stripped from tm_basic.cxx then modified to present different context switching cases) fptestf.c - fptest.c, only with float instead of double. fpinttest.c - fptestf.c with added some "integer" threads. Everybody is welcome to comment and ask. Ilija -- Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.