This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ARM registers, documentation.


Looking for information in
http://sourceware.org/binutils/docs-2.22/as/ARM_002dRegs.html#ARM_002dRegs
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.

HTH DaveP


 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

	Warning
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
precision registers.

Single precision (definition matches the IEEE 754 definition) register
layout is :

31       sign bit
30..23   exponent
22..0    fraction
The double precision register layout is:

upper word
31       sign bit
30..20   exponent
19..0    Upper 20 bits of fraction
lower word
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


	Caution
Work with either single or double precision. If you need to mix them,
be aware of the overlap mentioned above.


-- 
Dave Pawson
XSLT XSL-FO FAQ.
Docbook FAQ.
http://www.dpawson.co.uk


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]