diff options
author | Suzuki K. Poulose <suzuki.poulose@arm.com> | 2015-07-22 11:38:14 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-07-27 11:08:41 +0100 |
commit | 9ded63aaf83eba76e1a54ac02581c2badc497f1a (patch) | |
tree | 84adaf6e11adde05c2c1c4d3525efe8822ab9af2 /arch/arm64/Kconfig | |
parent | 91a5cefa2f98bdd3404c2fba57048c4fa225cc37 (diff) | |
download | linux-9ded63aaf83eba76e1a54ac02581c2badc497f1a.tar.gz linux-9ded63aaf83eba76e1a54ac02581c2badc497f1a.tar.bz2 linux-9ded63aaf83eba76e1a54ac02581c2badc497f1a.zip |
arm64: Generalise msr_s/mrs_s operations
The system register encoding generated by sys_reg() works only
for MRS/MSR(Register) operations, as we hardcode Bit20 to 1 in
mrs_s/msr_s mask. This makes it unusable for generating instructions
accessing registers with Op0 < 2(e.g, PSTATE.x with Op0=0).
As per ARMv8 ARM, (Ref: ARMv8 ARM, Section: "System instruction class
encoding overview", C5.2, version:ARM DDI 0487A.f), the instruction
encoding reserves bits [20-19] for Op0.
This patch generalises the sys_reg, mrs_s and msr_s macros, so that
we could use them to access any of the supported system register.
Cc: James Morse <james.morse@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/Kconfig')
0 files changed, 0 insertions, 0 deletions