diff --git a/demos/Win32-MSVS/chcore.c b/demos/Win32-MSVS/chcore.c index 99876b8d6..facdea31c 100644 --- a/demos/Win32-MSVS/chcore.c +++ b/demos/Win32-MSVS/chcore.c @@ -84,7 +84,7 @@ __declspec(naked) void __fastcall chSysHalt(void) { exit(2); } -__declspec(naked) void __fastcall chSysSwitchI(Context *oldp, Context *newp) { +__declspec(naked) void __fastcall chSysSwitchI(Thread *otp, Thread *ntp) { __asm { // Switch out code @@ -92,9 +92,9 @@ __declspec(naked) void __fastcall chSysSwitchI(Context *oldp, Context *newp) { push esi push edi push ebx - mov dword ptr [ecx],esp + mov dword ptr 16[ecx],esp // Switch in code - mov esp,[edx] + mov esp,16[edx] pop ebx pop edi pop esi diff --git a/demos/Win32-MSVS/chcore.h b/demos/Win32-MSVS/chcore.h index b9fbb0147..18e96dc13 100644 --- a/demos/Win32-MSVS/chcore.h +++ b/demos/Win32-MSVS/chcore.h @@ -76,7 +76,7 @@ typedef struct { t_msg _IdleThread(void *p); void __fastcall chSysHalt(void); -void __fastcall chSysSwitchI(Context *oldp, Context *newp); +void __fastcall chSysSwitchI(Thread *otp, Thread *ntp); void __fastcall threadexit(void); #endif /* _CHCORE_H_ */ diff --git a/demos/Win32-MinGW/chcore.h b/demos/Win32-MinGW/chcore.h index 43265326b..6bb2664f5 100644 --- a/demos/Win32-MinGW/chcore.h +++ b/demos/Win32-MinGW/chcore.h @@ -76,7 +76,7 @@ typedef struct { t_msg _IdleThread(void *p); __attribute__((fastcall)) void chSysHalt(void); -__attribute__((fastcall)) void chSysSwitchI(Context *oldp, Context *newp); +__attribute__((fastcall)) void chSysSwitchI(Thread *otp, Thread *ntp); __attribute__((fastcall)) void threadstart(void); #endif /* _CHCORE_H_ */ diff --git a/demos/Win32-MinGW/chcore2.s b/demos/Win32-MinGW/chcore2.s index c8260e3e6..9334fbfdc 100644 --- a/demos/Win32-MinGW/chcore2.s +++ b/demos/Win32-MinGW/chcore2.s @@ -27,9 +27,9 @@ push %esi push %edi push %ebx - movl %esp,(%ecx) + movl %esp,16(%ecx) # Switch in - movl (%edx),%esp + movl 16(%edx),%esp pop %ebx pop %edi pop %esi