Armv8/Armv9的Pstate寄存器介绍

PSTATE概述

在Armv7及其之前,有一个重要的寄存器叫做程序状态寄存器CPSR,但是到了Armv8/Armv9的aarch64架构时,删除了CPSR寄存器,改为了PSTATE(PE状态寄存器)。

PSTATE表示一组小寄存器的集合,在软件中不能直接访问PSTATE,需访问PSTATE中的小寄存器。 具体方法:使用寄存器的方式方法。MSR/MRS指令。

以下给大家列出来PSTATE的概览和每一个寄存器在PSTAE大寄存器中的memory Layout位置

ALLINT

仅当实现 FEAT_NMI 时,此寄存器才存在。否则,对 ALLINT 的直接访问是UNDEFINED

CurrentEL

表示当前的异常等级。

DAIF

中断掩码比特位。分别是Debug、Serror、IRQ、FIQ的MASK位。

DIT

只有当FEAT_DIT 实现时,该比特位才有意义,否则访问该寄存器就是就是UNDEFINED

NZCV

条件标志比特位。

MRS <Xt>, NZCV
MSR NZCV, <Xt>

PAN

特权等级不允许访问寄存器。

EL0 Translation regime输出的地址,不让特权等级程序访问。

PM

当FEAT_EBEP 实现时,才有效。

SPSel

SP栈指针选择比特位。 选择SP位 SP_EL0 或SP_ELx

SVCR

SVE相关的功能,后续在介绍。

SSBS, Speculative Store Bypass Safe

TCO, Tag Check Override

UAO, User Access Override

相关推荐
紫金修道21 分钟前
【Linux】在Arm服务器源码编译onnxruntime-gpu的whl
linux·服务器·arm开发
pigfu1 天前
go 通过汇编学习atomic原子操作原理
汇编·golang·atomic·缓存行·lock指令
前进的程序员1 天前
ARM 芯片上移植 Ubuntu 操作系统详细步骤
linux·arm开发·ubuntu
楚灵魈1 天前
[Linux]从零开始的STM32MP157 Busybox根文件系统构建
linux·arm开发·stm32
sword devil9001 天前
stm32实战项目:无刷驱动
arm开发·stm32·单片机·嵌入式硬件
小鹿撞出了脑震荡1 天前
汇编学习——iOS开发对arm64汇编的初步了解
汇编·学习·ios
CN.LG2 天前
tmpfs和普通文件系统相比有哪些优缺点
arm开发
Jia ming2 天前
Linux 内核对 ARM 大小核架构的支持
linux·arm开发·架构
JANYI20183 天前
GCC编译器安装详细说明(举例arm-2013q3)
arm开发
染指11103 天前
21.第二阶段x64游戏实战-分析采集物偏移
汇编·游戏·反游戏外挂·游戏逆向·x64dbg·x64游戏