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