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/set…
==============================================================================
--- 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(a)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