2015-09-03 159 views
0

我試圖根據董事會編制「MRC」和「MCR」指令上AARCH64但我看到下面的錯誤消息MCR和MRC在AARCH64上不存在?

tmp/ccqOHmrK.s: Assembler messages: 
    /tmp/ccqOHmrK.s:43: Error: unknown mnemonic `mrc' -- `mrc p15,0,x0,c14,c3,1' 
    /tmp/ccqOHmrK.s:53: Error: unknown mnemonic `mrc' -- `mrc p15,0,x2,c14,c3,0' 

我試圖尋找到內核源/弓/ arm64但沒有在那裏MCR & & mrc已被使用,沒有仿真。

它是一些語法問題?

回答

2

您應該用適當的msr說明替換這些。 例如,arch/arm/include/asm/arch_timer.h有:

case ARCH_TIMER_REG_CTRL: 
    asm volatile("mcr p15, 0, %0, c14, c3, 1" : : "r" (val)); 

對方在arch/arm64/include/asm/arch_timer.h有:

case ARCH_TIMER_REG_CTRL: 
    asm volatile("msr cntv_ctl_el0, %0" : : "r" (val)); 
+0

好了,謝謝你。但是,我可以告訴您,ARMv8中已棄用MCR/MRC嗎? –

+1

它們當然沒有在指令集文檔中列出,彙編器也不知道它們,所以我會說它們不存在。 – Jester