From d6c154bc773d40ed71ab5f032b37f3da1843658a Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 10 May 2015 21:02:53 +0000 Subject: [PATCH] [CRT] - Add _JUMP_BUFFER for ARM - On ARM there are no underscore prefixes svn path=/trunk/; revision=67637 --- reactos/include/crt/_mingw_mac.h | 4 ++-- reactos/include/crt/setjmp.h | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/reactos/include/crt/_mingw_mac.h b/reactos/include/crt/_mingw_mac.h index a3890f4b243..30dc4704258 100644 --- a/reactos/include/crt/_mingw_mac.h +++ b/reactos/include/crt/_mingw_mac.h @@ -22,8 +22,8 @@ #define __MINGW32_MAJOR_VERSION 3 #define __MINGW32_MINOR_VERSION 11 -#ifdef _WIN64 -/* MS does not prefix symbols by underscores for 64-bit. */ +#ifndef _M_IX86 +/* MS does not prefix symbols by underscores for anything other than x86. */ #ifndef __MINGW_USE_UNDERSCORE_PREFIX /* As we have to support older gcc version, which are using underscores as symbol prefix for x64, we have to check here for the user label diff --git a/reactos/include/crt/setjmp.h b/reactos/include/crt/setjmp.h index 3c1ab86995f..13f22fabe98 100644 --- a/reactos/include/crt/setjmp.h +++ b/reactos/include/crt/setjmp.h @@ -131,9 +131,25 @@ extern "C" { #elif defined(_M_ARM) -#define _JBLEN 11 +#define _JBLEN 28 #define _JBTYPE int + typedef struct _JUMP_BUFFER { + unsigned long Frame; + unsigned long R4; + unsigned long R5; + unsigned long R6; + unsigned long R7; + unsigned long R8; + unsigned long R9; + unsigned long R10; + unsigned long R11; + unsigned long Sp; + unsigned long Pc; + unsigned long Fpscr; + unsigned long long D[8]; // D8-D15 VFP/NEON regs + } _JUMP_BUFFER; + #else #error Define Setjmp for this architecture!