mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
learn more formally arm 32 bit CP registers, fix QEMU baremetal run with cli args
This commit is contained in:
34
README.adoc
34
README.adoc
@@ -21486,6 +21486,35 @@ Guaranteed undefined! Therefore raise illegal instruction signal. Used by GCC `_
|
||||
|
||||
Why GNU GAS 2.29 does not have a mnemonic for it in A64 because it is very recent: shows in <<armarm8-db>> but not `ca`.
|
||||
|
||||
==== ARM system register instructions
|
||||
|
||||
Examples of using them can be found at: <<dump-regs>>
|
||||
|
||||
aarch64 only uses exactly 2 instructions:
|
||||
|
||||
* MRS: reads a system register to a regular register
|
||||
* MSR: writes to the system register
|
||||
|
||||
aarch32 is a bit more messy due to older setups, we have both:
|
||||
|
||||
* MRS and MSR which are much like in aarch64
|
||||
* coprocessor accesses:
|
||||
** MRC: reads a system register, C means coprocessor, which is how system registers were previously known as
|
||||
** MCR: write to the system register
|
||||
** MRRC: like MRC, but used for the system registers that are marked as 64-bit, and reads to two general purpose regis
|
||||
** MCRR: write version of MCRR
|
||||
|
||||
<<armarm8-fa>> G1.19.4 "Background to the System register interface" says that only CP14 and CP15 are specified by the ISA:
|
||||
|
||||
____
|
||||
The interface to the System registers was originally defined as part of a generic coprocessor interface, that gave access to 15 coprocessors, CP0 - CP15. Of these, CP8 - CP15 were reserved for use by Arm, while CP0 - CP7 were available for IMPLEMENTATION DEFINED coprocessors.
|
||||
____
|
||||
|
||||
and the actual coprocessor registers are specified at:
|
||||
|
||||
* CP14: Table G7-1 "Mapping of (coproc ==0b1110) MCR, MRC, and MRRC instruction arguments to System registers"
|
||||
* CP15: Table G7-3 "VMSAv8-32 (coproc==0b1111) register summary, in MCR/MRC parameter order."
|
||||
|
||||
=== ARM SIMD
|
||||
|
||||
Parent section: xref:simd-assembly[xrefstyle=full]
|
||||
@@ -21909,6 +21938,11 @@ ISA quick references can be found in some places:
|
||||
|
||||
https://static.docs.arm.com/ddi0487/db/DDI0487D_b_armv8_arm.pdf
|
||||
|
||||
[[armarm8-fa]]
|
||||
===== ARMv8 architecture reference manual db
|
||||
|
||||
https://static.docs.arm.com/ddi0487/fa/DDI0487F_a_armv8_arm.pdf
|
||||
|
||||
[[armv8-programmers-guide]]
|
||||
===== Programmer's Guide for ARMv8-A
|
||||
|
||||
|
||||
Reference in New Issue
Block a user