2009-09-28 83 views
2

我正在查看使用MSVC編譯的(Xenon)PowerPC可執行文件的核心轉儲。我正在調試的函數有一個操作,MSVC反彙編程序調用mtmsree r13mtmsree不在PPC的IBM文檔中;這個操作是做什麼的?什麼是MTMSREE PowerPC操作?

它緊跟在mfmsr之後,顯然它正在將某些東西移動到機器狀態寄存器中,但我不知道後綴應該是什麼意思。它必須是某種可愛的微軟綽號,PPC文檔稱之爲不同的東西。

回答

4

該指令是具有L位置1(0x00010000)的mtmsrd指令的擴展形式。它只修改EE(外部中斷使能)和RI(可恢復中斷)btis,而不是修改整個MSR。它比mtmsrd L = 0更快,因爲它執行同步而不是上下文同步。這是一個特權指令,所以會導致os異常,並且仍然很慢。

有這個公開文件中IBM的第三篇:PowerPC的操作環境架構V2.02(91頁),http://www.ibm.com/developerworks/power/library/pa-archguidev2/?S_TACT=105AGX16&S_CMP=LP

  • 盧克^ h
0

我挑選了指令的機器代碼(011111 01101 00001 00000 0010110010 0),事實證明mtmsree是其他人只需撥打mtmsrd

的mtmsr指令
0

位21:30是0010010010,不是0010110010.

我的猜測是,mtmsree是一個特定的氙指令只設置EE位在MSR。 Book E機器具有wrtee和wrteei指令來執行此操作。我希望我知道在哪裏可以找到氙氣PEM。

+0

我的壞 - 0010110010是mtmsrd,不mtmsr(即64位版本)。但是,如果您在IBM文檔中搜索mtmsrd,它只會將您帶到MTMSR。 – Crashworks 2009-09-28 23:48:07

+0

據我所知,相關的PEM只是IBM的「PowerPC微處理器系列:用於64位和32位微處理器的編程環境手冊」。但是MSFT喜歡發明自己的古怪小代號。 – Crashworks 2009-09-28 23:50:16