Qual é a op MTMSREE PowerPC?
Pergunta
Eu estou olhando para um dump de memória de um executável (Xenon) PowerPC compilado com MSVC. A função que eu estou depuração tem um op que o desmontador MSVC chama mtmsree r13
. mtmsree
não está nos docs IBM para o PPC; o que isso op fazer?
Ele segue imediatamente um mfmsr
e, obviamente, ele está se movendo algo para o registo de estado da máquina, mas eu não sei o que esse sufixo ee
é suposto dizer. Deve ser algum tipo de cutesy Microsoft apelido para um op os docs PPC chamar algo diferente.
Solução
A instrução é uma forma estendida da instrução mtmsrd que tem o conjunto L bit (0x00010000). Em vez de modificar toda a MSR, só modifica o EE (de interrupção externa Activar) e RI (recuperável de interrupção) IPV. É mais rápido do que mtmsrd L = 0, uma vez que a execução da sincronização em vez de contexto de sincronização. É uma instrução privilegiada isso irá causar uma exceção para o sistema operacional, e é a seguinte:.. Ainda lento
Há documentação pública para isso no da IBM Livro III: PowerPC Operacional Arquitetura Ambiente v2.02 (página 91), http://www.ibm.com/developerworks/power/library/pa-archguidev2/?S_TACT=105AGX16&S_CMP=LP
- Lucas H
Outras dicas
Bits 21:30 da instrução mtmsr são 0010010010, 0010110010 não.
Meu palpite é que mtmsree é uma instrução específica de Xenon que define apenas o bit EE na MSR. As máquinas Livro E tem as instruções wrtee e wrteei de fazer isso. Eu gostaria de saber onde encontrar um PEM de Xenon.
Eu escolhi para além do código de máquina para a instrução (011111 01101 00001 00000 0010110010 0
) e verifica-se que mtmsree
é o que todo mundo só chama mtmsrd
.