这个问题与一段引导代码有关,您可以在__common_mmu_cache_on
.
1: mcr p15, 0, r0, c1, c0, 0 @ load control register
mrc p15, 0, r0, c1, c0, 0 @ and read it back to
sub pc, lr, r0, lsr #32 @ properly flush pipeline
第一条指令打开 mmu。
由于 3 级流水线,接下来的两条指令可能已被预取。所以我想知道是否sub pc, lr, r0, lsr #32
被视为两个单独的指令?如果没有,为什么不重写它,sub pc, lr
因为r0, lsr, #32
什么都不做。