Initial back-edge CFI implementation (#3606)
Give the user the option to sign and to authenticate function return addresses with the operations introduced by the Pointer Authentication extension to the Arm instruction set architecture. Copyright (c) 2021, Arm Limited.
This commit is contained in:
@@ -38,6 +38,25 @@ fn test_aarch64_binemit() {
|
||||
//
|
||||
// $ echo "mov x1, x2" | aarch64inst.sh
|
||||
insns.push((Inst::Ret { rets: vec![] }, "C0035FD6", "ret"));
|
||||
insns.push((
|
||||
Inst::AuthenticatedRet {
|
||||
key: APIKey::A,
|
||||
is_hint: true,
|
||||
rets: vec![],
|
||||
},
|
||||
"BF2303D5C0035FD6",
|
||||
"autiasp ; ret",
|
||||
));
|
||||
insns.push((
|
||||
Inst::AuthenticatedRet {
|
||||
key: APIKey::B,
|
||||
is_hint: false,
|
||||
rets: vec![],
|
||||
},
|
||||
"FF0F5FD6",
|
||||
"retab",
|
||||
));
|
||||
insns.push((Inst::Pacisp { key: APIKey::B }, "7F2303D5", "pacibsp"));
|
||||
insns.push((Inst::Nop0, "", "nop-zero-len"));
|
||||
insns.push((Inst::Nop4, "1F2003D5", "nop"));
|
||||
insns.push((Inst::Csdb, "9F2203D5", "csdb"));
|
||||
|
||||
Reference in New Issue
Block a user