#if defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)
tst r3,#FP_EXC_FRAME /* r3はLR。例外フレームには浮動小数点コンテキストを含んでいるか */
- it eq /* 含まれている場合の処理 */
+ it eq /* 含まれている場合の処理。0ならば含まれている */
vstmdbeq r2!,{s16-s31} /* preserved FPレジスタを保存。ここでlazystackingは解消される */
/* 共通処理 */
stmfd r2!,{r3} /* LRは、後でsvc_handlerから擬似リターンするときに使う */
stmfd r2!,{r3} /* アライメントのために2度プッシュ */
- it eq /* 含まれている場合の処理 */
- orreq r3,#FP_EXC_FRAME /* r3はLR。EXC_RETURNをFPなしフレームに強制する */
+ orr r3,#FP_EXC_FRAME /* r3はLR。EXC_RETURNをFPなしフレームに強制する */
/* この先はショート例外フレームである */
#endif /* defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)*/
add r0, #EXC_FRAME_SIZE /* スタックを捨てる */
#if defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)
ldmfd r0!,{lr}
- ldmfd r0!,{lr} /* LRã\83\95ã\83¬ã\83¼ã\83 ã\81¯ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88のために二度積まれている */
+ ldmfd r0!,{lr} /* LRã\81¯ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88ç¶æ\8c\81のために二度積まれている */
tst lr,#FP_EXC_FRAME /* 例外フレームには浮動小数点コンテキストを含んでいるか */
- it eq /* å½\93該ã\83\93ã\83\83ã\83\88ã\81\8c0ã\81ªã\82\89å\90«ã\82\93ã\81§ã\81\84ã\81ªã\82\8b */
- vldmiaeq r0!,{s16-s31} /* 含んでいるならpreserved FPレジスタを復帰する */
+ it eq /* 当該ビットが0なら含んでいる */
+ vldmiaeq r0!,{s16-s31} /* 含んでいるならpreserved FPレジスタを復帰する */
#endif /* defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)*/
msr psp, r0
mov r0, #0