Browse Source

Cleaning up raw32 thread context switching functions (use consistent coding style)

remotes/origin_old/ugfx_release_2.7
Joel Bodenmann 6 years ago
parent
commit
0ab0e28bdb
  1. 20
      src/gos/gos_x_threads_cortexm01.h
  2. 20
      src/gos/gos_x_threads_cortexm347.h
  3. 20
      src/gos/gos_x_threads_cortexm47fp.h

20
src/gos/gos_x_threads_cortexm01.h

@ -83,9 +83,9 @@
static __asm void _gfxStartThread(thread *oldt, thread *newt) {
// Calculate where to generate the new context
// newt->cxt = (char *)newt + newt->size;
ldr r2,[r1,#__cpp(offsetof(thread,size))]
add r2,r2,r1
str r2,[r1,#__cpp(offsetof(thread,cxt))]
ldr r2,[r1,#__cpp(offsetof(thread,size))]
add r2,r2,r1
str r2,[r1,#__cpp(offsetof(thread,cxt))]
// Save the old context
push {r4, r5, r6, r7, lr}
@ -101,13 +101,13 @@
// Run the users function - we save some code because gfxThreadExit() never returns
// gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
LDR r2,__cpp(&_gfxCurrentThread)
LDR r2,[r2,#0]
LDR r0,[r2,#__cpp(offsetof(thread,param))]
LDR r1,[r2,#__cpp(offsetof(thread,fn))]
BLX r1
MOV r4,r0
BL gfxThreadExit
ldr r2,__cpp(&_gfxCurrentThread)
ldr r2,[r2,#0]
ldr r0,[r2,#__cpp(offsetof(thread,param))]
ldr r1,[r2,#__cpp(offsetof(thread,fn))]
blx r1
mov r4,r0
bl gfxThreadExit
}
#else

20
src/gos/gos_x_threads_cortexm347.h

@ -59,9 +59,9 @@
static __asm void _gfxStartThread(thread *oldt, thread *newt) {
// Calculate where to generate the new context
// newt->cxt = (char *)newt + newt->size;
ldr r2,[r1,#__cpp(offsetof(thread,size))]
add r2,r2,r1
str r2,[r1,#__cpp(offsetof(thread,cxt))]
ldr r2,[r1,#__cpp(offsetof(thread,size))]
add r2,r2,r1
str r2,[r1,#__cpp(offsetof(thread,cxt))]
// Save the old context
push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
@ -72,13 +72,13 @@
// Run the users function - we save some code because gfxThreadExit() never returns
// gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
LDR r2,__cpp(&_gfxCurrentThread)
LDR r2,[r2,#0]
LDR r0,[r2,#__cpp(offsetof(thread,param))]
LDR r1,[r2,#__cpp(offsetof(thread,fn))]
BLX r1
MOV r4,r0
BL gfxThreadExit
ldr r2,__cpp(&_gfxCurrentThread)
ldr r2,[r2,#0]
ldr r0,[r2,#__cpp(offsetof(thread,param))]
ldr r1,[r2,#__cpp(offsetof(thread,fn))]
blx r1
mov r4,r0
bl gfxThreadExit
}
#else

20
src/gos/gos_x_threads_cortexm47fp.h

@ -63,9 +63,9 @@
static __asm void _gfxStartThread(thread *oldt, thread *newt) {
// Calculate where to generate the new context
// newt->cxt = (char *)newt + newt->size;
ldr r2,[r1,#__cpp(offsetof(thread,size))]
add r2,r2,r1
str r2,[r1,#__cpp(offsetof(thread,cxt))]
ldr r2,[r1,#__cpp(offsetof(thread,size))]
add r2,r2,r1
str r2,[r1,#__cpp(offsetof(thread,cxt))]
// Save the old context
push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
@ -77,13 +77,13 @@
// Run the users function - we save some code because gfxThreadExit() never returns
// gfxThreadExit(_gfxCurrentThread->fn(_gfxCurrentThread->param));
LDR r2,__cpp(&_gfxCurrentThread)
LDR r2,[r2,#0]
LDR r0,[r2,#__cpp(offsetof(thread,param))]
LDR r1,[r2,#__cpp(offsetof(thread,fn))]
BLX r1
MOV r4,r0
BL gfxThreadExit
ldr r2,__cpp(&_gfxCurrentThread)
ldr r2,[r2,#0]
ldr r0,[r2,#__cpp(offsetof(thread,param))]
ldr r1,[r2,#__cpp(offsetof(thread,fn))]
blx r1
mov r4,r0
bl gfxThreadExit
}
#else

Loading…
Cancel
Save