参照元†
- reg
- データキャッシュラインサイズがバイトで格納されるレジスタ名を指定する。
- tmp
返り値†
/*
* dcache_line_size - get the minimum D-cache line size from the CTR register
* on ARMv7.
*/
.macro dcache_line_size, reg, tmp
mrc p15, 0, \tmp, c0, c0, 1 @ read ctr
- cp15 CRn=c0, opc1=0, CRm=c0, opc2=1, CTR レジスタ
lsr \tmp, \tmp, #16
and \tmp, \tmp, #0xf @ cache line size encoding
- Dminline[19:16] フィールドを読む
- D-cache の最小キャッシュラインの大きさが log2 の Word 数で書かれている。
- この値が 4 だとしたら、16(= 2^4)[word/line] * 4[byte/word] = 64[byte/line]
mov \reg, #4 @ bytes per word
mov \reg, \reg, lsl \tmp @ actual cache line size
.endm
コメント†