이 질문은 Power8 in-core crypto patch입니다. 이 패치는 Power8 내장 기능을 사용하여 AES를 제공합니다. VSX 레지스터를로드 할 때 VSX 레지스터가 적절한 값을로드하는지 확인하기 위해 리틀 엔디안 시스템에서 실행할 때 128 비트 엔디안 반전을 수행해야합니다.내장 함수를 사용하여 런타임시 msr.le을 확인하는 방법은 무엇입니까?
컴파일시 우리는 __BYTE_ORDER__
과 같은 매크로를 검사 할 수 있습니다. 그러나 런타임시 시스템 상태 레지스터를 확인해야한다고 생각합니다. msr.le=1
이면 엔디안 스왑을 수행합니다. 또한 AltiVec Programming Environment Manual, 섹션 3.1.4, p를 참조하십시오. 3-5.
내장 기능을 사용하여 런타임에 기계 상태 레지스터를 어떻게 확인합니까?
감사합니다. @ 제레미. 그래서 저는 명확합니다. 컴파일시에만 확인하면됩니다. 우리는 런타임에 확인할 필요가 없습니다. 그 맞습니까? – jww
예, 정확하게. 이미 찾은 것처럼'__BYTE_ORDER__' 만 사용하십시오. LE 비트가 반대 엔디안으로 설정된 경우 어쨌든 엔디안을 검사 할 코드를 실행할 수 없습니다. –
감사합니다. 나는 명령에 적용된'msr [le] '도 몰랐다. 내가 그것을 안다면, 아마도 처음에는 질문하지 않았을 것입니다. o – jww