Optimize xPortGetCoreID to 2-instruction inline assembly.
This commit is contained in:
parent
bdd67c98d6
commit
0403d43b19
|
@ -192,8 +192,7 @@ void vPortEndScheduler( void ) PRIVILEGED_FUNCTION;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Multi-core: get current core ID */
|
/* Multi-core: get current core ID */
|
||||||
int xPortGetCoreID( void );
|
#define xPortGetCoreID() __extension__({int id; asm volatile("rsr.prid %0; extui %0,%0,13,1":"=r"(id)); id;})
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -322,12 +322,7 @@ STRUCT_END(XtSolFrame)
|
||||||
#ifdef __ASSEMBLER__
|
#ifdef __ASSEMBLER__
|
||||||
.macro getcoreid reg
|
.macro getcoreid reg
|
||||||
rsr.prid \reg
|
rsr.prid \reg
|
||||||
bbci \reg,1,1f
|
extui \reg,\reg,13,1
|
||||||
movi \reg,1
|
|
||||||
j 2f
|
|
||||||
1:
|
|
||||||
movi \reg,0
|
|
||||||
2:
|
|
||||||
.endm
|
.endm
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,6 @@ inline static void panicPutHex(int a) { }
|
||||||
inline static void panicPutDec(int a) { }
|
inline static void panicPutDec(int a) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int xPortGetCoreID();
|
|
||||||
|
|
||||||
void __attribute__((weak)) vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName ) {
|
void __attribute__((weak)) vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName ) {
|
||||||
panicPutStr("***ERROR*** A stack overflow in task ");
|
panicPutStr("***ERROR*** A stack overflow in task ");
|
||||||
|
|
|
@ -51,18 +51,6 @@ port_switch_flag:
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* C function to get proc ID.*/
|
|
||||||
.global xPortGetCoreID
|
|
||||||
.type xPortGetCoreID,@function
|
|
||||||
.align 4
|
|
||||||
xPortGetCoreID:
|
|
||||||
ENTRY(16)
|
|
||||||
getcoreid a2
|
|
||||||
RET(16)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
* _frxt_setup_switch
|
* _frxt_setup_switch
|
||||||
|
|
Loading…
Reference in a new issue