mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-05 05:23:46 +00:00
[bugfix] libcpu/arm/cortex-m/context_gcc: 修复thumb指令集汇编语法错误
当使用thumb指令集时,要求汇编语法中的“条件执行”要跟在IT指令后面,否则会编译不通过。
报错如下:Error: thumb conditional instruction should be in IT block -- `moveq r4,#0x01'
虽然可以通过指定"-Wa,-mimplicit-it=thumb"选项来告诉编译器识别隐式的IT指令,但是能在代码里面直接加上IT指令的话更好。
thumb指令集“条件执行”arm官网文档:
https://developer.arm.com/documentation/dui0473/m/condition-codes/conditional-execution-in-thumb-state
参考论坛帖子:
https://club.rt-thread.org/ask/question/433887.html
https://club.rt-thread.org/ask/question/4188.html
Signed-off-by: Mingrui Ren <jiladahe1997@gmail.com>
This commit is contained in:
@@ -143,6 +143,7 @@ contex_ns_store:
|
||||
|
||||
#if defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
TST lr, #0x10 /* if(!EXC_RETURN[4]) */
|
||||
IT EQ
|
||||
VSTMDBEQ r1!, {d8 - d15} /* push FPU register s16~s31 */
|
||||
#endif
|
||||
|
||||
@@ -187,6 +188,7 @@ contex_ns_load:
|
||||
|
||||
#if defined (__VFP_FP__) && !defined(__SOFTFP__)
|
||||
TST lr, #0x10 /* if(!EXC_RETURN[4]) */
|
||||
IT EQ
|
||||
VLDMIAEQ r1!, {d8 - d15} /* pop FPU register s16~s31 */
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user