Browse Source

Fix GCC assembler broken during Keil port

remotes/origin_old/ugfx_release_2.7
inmarket 6 years ago
parent
commit
e927bff089
  1. 4
      src/gos/gos_x_threads_cortexm01.h
  2. 4
      src/gos/gos_x_threads_cortexm347.h
  3. 4
      src/gos/gos_x_threads_cortexm47fp.h

4
src/gos/gos_x_threads_cortexm01.h

@ -55,7 +55,7 @@
: "memory");
// Run the users function
gfxThreadExit(current->fn(current->param));
gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
}
#elif GFX_COMPILER == GFX_COMPILER_KEIL || GFX_COMPILER == GFX_COMPILER_ARMCC
@ -100,7 +100,7 @@
ldr sp, [r1,#__cpp(offsetof(thread,cxt))] // newt->cxt
// Run the users function - we save some code because gfxThreadExit() never returns
// gfxThreadExit(current->fn(current->param));
// gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
LDR r2,__cpp(&_gfxCurrentThread)
LDR r2,[r2,#0]
LDR r0,[r2,#__cpp(offsetof(thread,param))]

4
src/gos/gos_x_threads_cortexm347.h

@ -41,7 +41,7 @@
: "memory");
// Run the users function
gfxThreadExit(current->fn(current->param));
gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
}
#elif GFX_COMPILER == GFX_COMPILER_KEIL || GFX_COMPILER == GFX_COMPILER_ARMCC
@ -71,7 +71,7 @@
ldr sp, [r1,#__cpp(offsetof(thread,cxt))] // newt->cxt
// Run the users function - we save some code because gfxThreadExit() never returns
// gfxThreadExit(current->fn(current->param));
// gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
LDR r2,__cpp(&_gfxCurrentThread)
LDR r2,[r2,#0]
LDR r0,[r2,#__cpp(offsetof(thread,param))]

4
src/gos/gos_x_threads_cortexm47fp.h

@ -43,7 +43,7 @@
: "memory");
// Run the users function
gfxThreadExit(current->fn(current->param));
gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
}
#elif GFX_COMPILER == GFX_COMPILER_KEIL || GFX_COMPILER == GFX_COMPILER_ARMCC
@ -76,7 +76,7 @@
ldr sp, [r1,#__cpp(offsetof(thread,cxt))] // newt->cxt
// Run the users function - we save some code because gfxThreadExit() never returns
// gfxThreadExit(current->fn(current->param));
// gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
LDR r2,__cpp(&_gfxCurrentThread)
LDR r2,[r2,#0]
LDR r0,[r2,#__cpp(offsetof(thread,param))]

Loading…
Cancel
Save