CortexM4で関数のポインタ呼び出し
を実装すると、当の関数のポインタの値が、
実際のアドレスに+1された値が返る。
ん?なんでワード境界にならないんだっけ?
と一瞬、考えたけど。
あーこれ、ポインタ呼び出しするときに
なにも考えずに使えるように、
わざわざ、LSBのビットを立ててくれてる
ってことなのか?
Cortex、ジャンプ先アドレスは、
LSBを立ててから呼び出さないと
うまくないんだけど、
これをコンパイラがやってくれてる
ってことか。
まあ、ほかのプロセッサとの
互換性から言えば、コンパイラが
こっそりやってくれるのがスジなのかな。
| 固定リンク | 0
コメント