Skip to the content.

P

← 전체 목차로 돌아가기


PACIASP

✅ Pointer Authentication Code for Instruction address, key A, using SP. Cryptographically signs the return address in X30(LR) using SP as a modifier, embedding the signature into unused high bits of the pointer. Emitted by the compiler at the START of a function to protect the return address from being overwritten (ROP attack mitigation).

✅ 명령어 주소 포인터 인증 코드(키 A, SP 사용). X30(LR)에 담긴 복귀 주소를 SP를 변형값(modifier)으로 삼아 암호학적으로 서명하고, 그 서명을 포인터의 사용되지 않는 상위 비트에 심습니다. 함수 시작부에서 컴파일러가 자동 삽입하여, 복귀 주소가 조작당하는 공격(ROP)을 막는 데 사용됩니다.

Syntax

PACIASP

Example

PACIASP              // 함수 프롤로그 맨 앞, STP x29,x30 저장 전에 흔히 삽입됨

🔗

PACIBSP

✅ Same as PACIASP but signs X30 using key B instead of key A. The OS/compiler picks one key consistently; the two keys exist so different contexts (e.g. kernel vs. user, or different compilation units) can use independent signing keys.

✅ PACIASP와 동일하지만 키 A 대신 키 B로 X30을 서명합니다. 서로 다른 문맥(예: 커널과 유저 모드, 또는 서로 다른 컴파일 단위)이 독립된 서명 키를 쓸 수 있도록 두 개의 키가 존재하며, OS/컴파일러가 일관되게 하나를 선택해 사용합니다.

Syntax

PACIBSP

Example

PACIBSP

🔗

PRFM

✅ Prefetch Memory. A performance hint that requests the memory system start loading data into cache before it is actually needed by a later load instruction, reducing wait time.

✅ 메모리 프리페치. 이후 load 명령어가 실제로 그 데이터를 필요로 하기 전에 미리 캐시에 불러오도록 요청하는 성능 힌트로, 대기 시간을 줄여줍니다.

Syntax

PRFM <prfop>, [<Xn|SP>{, #<imm>}]

Example

PRFM PLDL1KEEP, [X0, #64]   // 앞으로 쓸 데이터를 L1 캐시로 미리 당겨오기

🔗