Oliver Smith-Denny d9715c133f MdePkg: Centralize RNDR Register Definition
RNDR is a standard register defined in the ARM ARM for
AARCH64. Move the definition from BaseRngLib to AArch64.h.

Furthermore, move the inclusion of this register definition
to the ARM specific header file.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-02-07 02:23:11 +00:00

40 lines
882 B
NASM

;------------------------------------------------------------------------------
;
; ArmRndr() for AArch64
;
; Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
;
; SPDX-License-Identifier: BSD-2-Clause-Patent
;
;------------------------------------------------------------------------------
#include "ArmRng.h"
EXPORT ArmRndr
AREA BaseLib_LowLevel, CODE, READONLY
;/**
; Generates a random number using RNDR.
; Returns TRUE on success; FALSE on failure.
;
; @param[out] Rand Buffer pointer to store the 64-bit random value.
;
; @retval TRUE Random number generated successfully.
; @retval FALSE Failed to generate the random number.
;
;**/
;BOOLEAN
;EFIAPI
;ArmRndr (
; OUT UINT64 *Rand
; );
;
ArmRndr
mrs x1, RNDR
str x1, [x0]
cset x0, ne // RNDR sets NZCV to 0b0100 on failure
ret
END