This is the mail archive of the
mailing list for the binutils project.
ARM registers, documentation.
- From: Dave Pawson <dave dot pawson at gmail dot com>
- To: bin-utils <binutils at sourceware dot org>
- Cc: "Richard Earnshaw\" <rearnsha at arm dot com>, \"Paul Brook \"" <paul at codesourcery dot com>
- Date: Wed, 7 Dec 2011 10:40:16 +0000
- Subject: ARM registers, documentation.
Looking for information in
I dug it out for my own purposes.
I'm told the source is \texi, I've authored in xml docbook.
Hence text below is from the html.
VFP Status Registers
Floating Point System ID register (FPSID)
Floating-Point Status and Control Register, (FPSCR)
Floating-Point Exception Register, (FPEXC)
Floating-Point Instruction Register, (FPINST)
Floating-Point Instruction Register 2, (FPINST2).
VFP working registers (extension registers)
We have 32, 64bit registers, d0..d32
When you see instructions for register Qxx, please note they are only
available for SIMD
These registers are overlapped, without showing the copyrighted
diagram in section A.2.6.1 of Arm architecture Reference Manual I'm
pressed to describe them adequately. I'll try. It is necessary to
understand the overlap or you'll wind up in trouble. Consider two
banks of registers. Single precision registers S0..S31, takes up 32
words. OK. Next bank, double precision registers D0..D15, well that's
what we have available. Except.
The two banks are really one? I.e. S0 and S1 can be viewed as D0. I.e.
the same memory location is accessed as either one double precision
register (say D0), or two single precision registers, S0 and S1. Hence
my use of the word 'overlap'.
In the end, we have 32 single precision registers OR 16 double
Single precision (definition matches the IEEE 754 definition) register
layout is :
31 sign bit
The double precision register layout is:
31 sign bit
19..0 Upper 20 bits of fraction
31..0 Lower 32 bits of fraction
Interesting, but now forget it, unless you need it
In summary, our register set is now
d0..d12, the ARM general purpose registers
The ARM specials, SP, PC, Status
The FPU status registers (above)
The FPU Single precision registers s0..s31
The FPU Double precision registers d0..d15
Work with either single or double precision. If you need to mix them,
be aware of the overlap mentioned above.
XSLT XSL-FO FAQ.