What is MTMSREE PowerPC?
I am considering a basic dump of a PowerPC executable (Xenon) compiled with MSVC. The function I'm debugging has an op that the MSVC disassembler calls mtmsree r13
. mtmsree
not found in IBM docs for PPC; what does this op do?
This immediately follows mfmsr
and obviously moves something to the machine status register, but I don't know what this suffix means ee
. It must be some weird Microsoft alias for PPC documents to call something else.
source to share
The instruction is an extended form of the mtmsrd instruction, which has a bit (0x00010000). Instead of changing the entire MSR, it only changes btis EE (External Interrupt Interrupt) and RI (Recoverable Interrupt). This is faster than mtmsrd L = 0 because sync is done instead of context sync. This is a privileged instruction, so it will throw an exception from os and will be :. Still slower.
The IBM Book III has publicly available documentation: PowerPC Operating Environment Architecture v2.02 (page 91), http://www.ibm.com/developerworks/power/library/pa-archguidev2/?S_TACT=105AGX16&S_CMP=LP
- Luke H
source to share