|
archarmkernel 下head-armv.s中有一段代码:<br /><br />ldr lr, __switch_data # Link寄存器中得到的是__mmap_switched的虚拟地址 <br />mcr p15, 0, r0, c1, c0 //使能MMU <br />mov r0, r0 /* 插入三个空操作指令<br />mov r0, r0 <br />mov r0, r0 <br />mov pc, lr// 通过这条指令刷新PC指针<br /><br />为什么这里要插入三个空操作指令?网上有人解释是作三级流水填充,我想知道的<br /><br />是,假如不插入这三个空操作指令,会出错吗?什么样的错误?<br />望诸大侠出手相助!!! |