Author: tkreuzer Date: Sat May 2 14:07:28 2015 New Revision: 67511
URL: http://svn.reactos.org/svn/reactos?rev=67511&view=rev Log: [CRT] Implement _setjmp / longjmp on ARM
Added: trunk/reactos/lib/sdk/crt/setjmp/arm/ (with props) trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s (with props)
Propchange: trunk/reactos/lib/sdk/crt/setjmp/arm/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Sat May 2 14:07:28 2015 @@ -0,0 +1 @@ +((CORE|ROSTESTS|ROSAPPS)-\d+)(,? ?((CORE|ROSTESTS|ROSAPPS)-\d+))*(,? ?(and |or )?((CORE|ROSTESTS|ROSAPPS)-\d+))?
Propchange: trunk/reactos/lib/sdk/crt/setjmp/arm/ ------------------------------------------------------------------------------ bugtraq:message = See issue %BUGID% for more details.
Propchange: trunk/reactos/lib/sdk/crt/setjmp/arm/ ------------------------------------------------------------------------------ bugtraq:url = https://jira.reactos.org/browse/%BUGID%
Propchange: trunk/reactos/lib/sdk/crt/setjmp/arm/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Added: trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/setjmp/arm/setj... ============================================================================== --- trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s (added) +++ trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s [iso-8859-1] Sat May 2 14:07:28 2015 @@ -0,0 +1,62 @@ +/* + * COPYRIGHT: BSD - See COPYING.ARM in the top level directory + * PROJECT: ReactOS CRT library + * PURPOSE: Implementation of _setjmp / longjmp + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include <kxarm.h> + +/* CODE **********************************************************************/ + TEXTAREA + + LEAF_ENTRY _setjmp + + mov r1, sp + + /* Store r1 (->Frame) and r4 - r11 */ + stmia r0!, {r1,r4-r11} + + /* Store r1 (->Sp), lr (->Pc), fp (->Fpscr) */ + stmia r0!, {r1,lr,fp} + + /* Store NEON registers */ + vst1.64 {d0}, [r0]! + vst1.64 {d1}, [r0]! + vst1.64 {d2}, [r0]! + vst1.64 {d3}, [r0]! + vst1.64 {d4}, [r0]! + vst1.64 {d5}, [r0]! + vst1.64 {d6}, [r0]! + vst1.64 {d7}, [r0]! + + /* Return 0 */ + mov r0, #0 + bx lr + LEAF_END _setjmp + + LEAF_ENTRY longjmp + + ldmia r0!, {r1,r4-r11} + ldmia r0!, {r1,lr,fp} + mov sp, r1 + + /* Load NEON registers */ + vld1.64 {d0}, [r0]! + vld1.64 {d1}, [r0]! + vld1.64 {d2}, [r0]! + vld1.64 {d3}, [r0]! + vld1.64 {d4}, [r0]! + vld1.64 {d5}, [r0]! + vld1.64 {d6}, [r0]! + vld1.64 {d7}, [r0]! + + /* Return 1 */ + mov r0, #1 + bx lr + LEAF_END longjmp + + END +/* EOF */
Propchange: trunk/reactos/lib/sdk/crt/setjmp/arm/setjmp.s ------------------------------------------------------------------------------ svn:eol-style = native