Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 // Copyright (C) 2020 ARM Limited
0003 
0004 #include "helper.h"
0005 
0006 size_t keyia_sign(size_t ptr)
0007 {
0008     asm volatile("paciza %0" : "+r" (ptr));
0009     return ptr;
0010 }
0011 
0012 size_t keyib_sign(size_t ptr)
0013 {
0014     asm volatile("pacizb %0" : "+r" (ptr));
0015     return ptr;
0016 }
0017 
0018 size_t keyda_sign(size_t ptr)
0019 {
0020     asm volatile("pacdza %0" : "+r" (ptr));
0021     return ptr;
0022 }
0023 
0024 size_t keydb_sign(size_t ptr)
0025 {
0026     asm volatile("pacdzb %0" : "+r" (ptr));
0027     return ptr;
0028 }
0029 
0030 size_t keyg_sign(size_t ptr)
0031 {
0032     /* output is encoded in the upper 32 bits */
0033     size_t dest = 0;
0034     size_t modifier = 0;
0035 
0036     asm volatile("pacga %0, %1, %2" : "=r" (dest) : "r" (ptr), "r" (modifier));
0037 
0038     return dest;
0039 }