# Linux Kernel Module Cheat

##### 30.6.1.1. ARM VFP registers

TODO example

ARMv8 architecture reference manual E1.3.1 "The SIMD and floating-point register file" Figure E1-1 "SIMD and floating-point register file, AArch32 operation":

    +-----+-----+-----+
    | S0  |     |     |
    +-----+ D0  +     |
    | S1  |     |     |
    +-----+-----+ Q0  |
    | S2  |     |     |
    +-----+ D1  +     |
    | S3  |     |     |
    +-----+-----+-----+
    | S4  |     |     |
    +-----+ D2  +     |
    | S5  |     |     |
    +-----+-----+ Q1  |
    | S6  |     |     |
    +-----+ D3  +     |
    | S7  |     |     |
    +-----+-----+-----+

Note how Sn is weirdly packed inside Dn, and Dn weirdly packed inside Qn, likely for historical reasons.

And you can’t access the higher bytes at D16 or greater with Sn.