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.

+2


source to share


3 answers


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
+4


source


I chose machine code for the ( 011111 01101 00001 00000 0010110010 0

) instruction , and it turns out that mtmsree

is what everyone else just calls it mtmsrd

.



0


source


Bits 21:30 of the mtmsr command: 0010010010, not 0010110010.

My guess is that mtmsree is a xenon specific command that only sets the EE bit in MSR. Book E machines have wrtee and wrteei instructions for this. I wonder where to find PEM for Xenon.

0


source







All Articles